ping(PingParams params) {
}
/**
- * Optional connection token presented by the SDK client during the handshake.
+ * Parameters for the `server.connect` handshake: an optional connection token and optional connection-level opt-ins (e.g. GitHub telemetry forwarding).
*
* @apiNote This method is experimental and may change in a future version.
* @since 1.0.0
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/ServerSkill.java b/java/src/generated/java/com/github/copilot/generated/rpc/ServerSkill.java
index 9752907e9..349824526 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/ServerSkill.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/ServerSkill.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `ServerSkill` type.
+ * Server-side skill metadata, including name, description, source, enabled/invocable state, path, project path, and argument hint.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionDebugApi.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionDebugApi.java
new file mode 100644
index 000000000..e0ca94374
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionDebugApi.java
@@ -0,0 +1,49 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.github.copilot.CopilotExperimental;
+import java.util.concurrent.CompletableFuture;
+import javax.annotation.processing.Generated;
+
+/**
+ * API methods for the {@code debug} namespace.
+ *
+ * @since 1.0.0
+ */
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+public final class SessionDebugApi {
+
+ private static final com.fasterxml.jackson.databind.ObjectMapper MAPPER = RpcMapper.INSTANCE;
+
+ private final RpcCaller caller;
+ private final String sessionId;
+
+ /** @param caller the RPC transport function */
+ SessionDebugApi(RpcCaller caller, String sessionId) {
+ this.caller = caller;
+ this.sessionId = sessionId;
+ }
+
+ /**
+ * Options for collecting a redacted session debug bundle.
+ *
+ * Note: the {@code sessionId} field in the params record is overridden
+ * by the session-scoped wrapper; any value provided is ignored.
+ *
+ * @apiNote This method is experimental and may change in a future version.
+ * @since 1.0.0
+ */
+ @CopilotExperimental
+ public CompletableFuture collectLogs(SessionDebugCollectLogsParams params) {
+ com.fasterxml.jackson.databind.node.ObjectNode _p = MAPPER.valueToTree(params);
+ _p.put("sessionId", this.sessionId);
+ return caller.invoke("session.debug.collectLogs", _p, SessionDebugCollectLogsResult.class);
+ }
+
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionDebugCollectLogsParams.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionDebugCollectLogsParams.java
new file mode 100644
index 000000000..2076e2ad7
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionDebugCollectLogsParams.java
@@ -0,0 +1,37 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.copilot.CopilotExperimental;
+import java.util.List;
+import javax.annotation.processing.Generated;
+
+/**
+ * Options for collecting a redacted session debug bundle.
+ *
+ * @apiNote This method is experimental and may change in a future version.
+ * @since 1.0.0
+ */
+@CopilotExperimental
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionDebugCollectLogsParams(
+ /** Target session identifier */
+ @JsonProperty("sessionId") String sessionId,
+ /** Where the redacted bundle should be written. Use `archive` to produce a .tgz, or `directory` to stage redacted files for caller-managed upload/post-processing. */
+ @JsonProperty("destination") Object destination,
+ /** Which built-in session diagnostics to include. Omitted fields default to true. */
+ @JsonProperty("include") DebugCollectLogsInclude include,
+ /** Caller-provided server-local files or directories to include in addition to the runtime's built-in session diagnostics. This lets host applications add their own diagnostics without changing the API shape. */
+ @JsonProperty("additionalEntries") List additionalEntries
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionDebugCollectLogsResult.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionDebugCollectLogsResult.java
new file mode 100644
index 000000000..623792b02
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionDebugCollectLogsResult.java
@@ -0,0 +1,37 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.copilot.CopilotExperimental;
+import java.util.List;
+import javax.annotation.processing.Generated;
+
+/**
+ * Result of collecting a redacted debug bundle.
+ *
+ * @apiNote This method is experimental and may change in a future version.
+ * @since 1.0.0
+ */
+@CopilotExperimental
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionDebugCollectLogsResult(
+ /** Destination kind that was written. */
+ @JsonProperty("kind") DebugCollectLogsResultKind kind,
+ /** Actual archive path or staging directory path written. This may differ from the requested path when no-overwrite suffixing or fallback-to-temp-directory was needed. */
+ @JsonProperty("path") String path,
+ /** Files included in the redacted bundle. */
+ @JsonProperty("entries") List entries,
+ /** Optional files or directories that could not be included. */
+ @JsonProperty("skippedEntries") List skippedEntries
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionFsReaddirWithTypesEntry.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionFsReaddirWithTypesEntry.java
index f4c755951..3afa7fe12 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionFsReaddirWithTypesEntry.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionFsReaddirWithTypesEntry.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SessionFsReaddirWithTypesEntry` type.
+ * Directory entry returned by session filesystem `readdirWithTypes`, with name and entry type.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionInstalledPlugin.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionInstalledPlugin.java
index 5d1428558..ee1bc7154 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionInstalledPlugin.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionInstalledPlugin.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SessionInstalledPlugin` type.
+ * Installed plugin record for a session, with marketplace, version, install time, enabled state, cache path, and source.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsApi.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsApi.java
index bbac10acc..aba317708 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsApi.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsApi.java
@@ -103,7 +103,7 @@ public CompletableFuture setApproveAll(Se
}
/**
- * Whether to enable full allow-all permissions for the session.
+ * Allow-all mode to apply for the session.
*
* Note: the {@code sessionId} field in the params record is overridden
* by the session-scoped wrapper; any value provided is ignored.
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsGetAllowAllResult.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsGetAllowAllResult.java
index 772d9a0de..28d9915df 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsGetAllowAllResult.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsGetAllowAllResult.java
@@ -14,7 +14,7 @@
import javax.annotation.processing.Generated;
/**
- * Current full allow-all permission state.
+ * Current allow-all permission mode.
*
* @apiNote This method is experimental and may change in a future version.
* @since 1.0.0
@@ -25,6 +25,8 @@
@JsonIgnoreProperties(ignoreUnknown = true)
public record SessionPermissionsGetAllowAllResult(
/** Whether full allow-all permissions are currently active */
- @JsonProperty("enabled") Boolean enabled
+ @JsonProperty("enabled") Boolean enabled,
+ /** Current allow-all mode */
+ @JsonProperty("mode") PermissionsAllowAllMode mode
) {
}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsSetAllowAllParams.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsSetAllowAllParams.java
index 4a553ffcf..7bde47bc8 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsSetAllowAllParams.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsSetAllowAllParams.java
@@ -14,7 +14,7 @@
import javax.annotation.processing.Generated;
/**
- * Whether to enable full allow-all permissions for the session.
+ * Allow-all mode to apply for the session.
*
* @apiNote This method is experimental and may change in a future version.
* @since 1.0.0
@@ -26,8 +26,12 @@
public record SessionPermissionsSetAllowAllParams(
/** Target session identifier */
@JsonProperty("sessionId") String sessionId,
- /** Whether to enable full allow-all permissions */
+ /** Allow-all mode to apply. `on` enables full allow-all; `auto` enables advisory LLM auto-approval; `off` disables both. */
+ @JsonProperty("mode") PermissionsAllowAllMode mode,
+ /** Legacy full allow-all toggle. Prefer `mode`; when `mode` is omitted, `enabled: true` is treated as `mode: "on"` and any other value is treated as `mode: "off"`. */
@JsonProperty("enabled") Boolean enabled,
+ /** Optional model id for the `auto` mode auto-approval LLM judging. Only meaningful when `mode` is `auto`; ignored otherwise. When omitted, the session's active model is used. */
+ @JsonProperty("model") String model,
/** Optional source for allow-all telemetry. Defaults to `rpc` when omitted for SDK callers. */
@JsonProperty("source") PermissionsSetAllowAllSource source
) {
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsSetAllowAllResult.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsSetAllowAllResult.java
index ed14e554b..9b14d8f6a 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsSetAllowAllResult.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionPermissionsSetAllowAllResult.java
@@ -26,7 +26,9 @@
public record SessionPermissionsSetAllowAllResult(
/** Whether the operation succeeded */
@JsonProperty("success") Boolean success,
- /** Authoritative allow-all state after the mutation */
- @JsonProperty("enabled") Boolean enabled
+ /** Authoritative full allow-all state after the mutation */
+ @JsonProperty("enabled") Boolean enabled,
+ /** Authoritative allow-all mode after the mutation */
+ @JsonProperty("mode") PermissionsAllowAllMode mode
) {
}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionRpc.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionRpc.java
index 3881140bb..1007c0db7 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionRpc.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionRpc.java
@@ -31,6 +31,8 @@ public final class SessionRpc {
/** API methods for the {@code gitHubAuth} namespace. */
public final SessionGitHubAuthApi gitHubAuth;
+ /** API methods for the {@code debug} namespace. */
+ public final SessionDebugApi debug;
/** API methods for the {@code canvas} namespace. */
public final SessionCanvasApi canvas;
/** API methods for the {@code model} namespace. */
@@ -79,6 +81,8 @@ public final class SessionRpc {
public final SessionPermissionsApi permissions;
/** API methods for the {@code metadata} namespace. */
public final SessionMetadataApi metadata;
+ /** API methods for the {@code settings} namespace. */
+ public final SessionSettingsApi settings;
/** API methods for the {@code shell} namespace. */
public final SessionShellApi shell;
/** API methods for the {@code history} namespace. */
@@ -106,6 +110,7 @@ public SessionRpc(RpcCaller caller, String sessionId) {
this.caller = caller;
this.sessionId = sessionId;
this.gitHubAuth = new SessionGitHubAuthApi(caller, sessionId);
+ this.debug = new SessionDebugApi(caller, sessionId);
this.canvas = new SessionCanvasApi(caller, sessionId);
this.model = new SessionModelApi(caller, sessionId);
this.mode = new SessionModeApi(caller, sessionId);
@@ -130,6 +135,7 @@ public SessionRpc(RpcCaller caller, String sessionId) {
this.ui = new SessionUiApi(caller, sessionId);
this.permissions = new SessionPermissionsApi(caller, sessionId);
this.metadata = new SessionMetadataApi(caller, sessionId);
+ this.settings = new SessionSettingsApi(caller, sessionId);
this.shell = new SessionShellApi(caller, sessionId);
this.history = new SessionHistoryApi(caller, sessionId);
this.queue = new SessionQueueApi(caller, sessionId);
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsApi.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsApi.java
new file mode 100644
index 000000000..dd4acfdb5
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsApi.java
@@ -0,0 +1,60 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.github.copilot.CopilotExperimental;
+import java.util.concurrent.CompletableFuture;
+import javax.annotation.processing.Generated;
+
+/**
+ * API methods for the {@code settings} namespace.
+ *
+ * @since 1.0.0
+ */
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+public final class SessionSettingsApi {
+
+ private static final com.fasterxml.jackson.databind.ObjectMapper MAPPER = RpcMapper.INSTANCE;
+
+ private final RpcCaller caller;
+ private final String sessionId;
+
+ /** @param caller the RPC transport function */
+ SessionSettingsApi(RpcCaller caller, String sessionId) {
+ this.caller = caller;
+ this.sessionId = sessionId;
+ }
+
+ /**
+ * Identifies the target session.
+ *
+ * @apiNote This method is experimental and may change in a future version.
+ * @since 1.0.0
+ */
+ @CopilotExperimental
+ public CompletableFuture snapshot() {
+ return caller.invoke("session.settings.snapshot", java.util.Map.of("sessionId", this.sessionId), SessionSettingsSnapshotResult.class);
+ }
+
+ /**
+ * Named Rust-owned settings predicate to evaluate for this session.
+ *
+ * Note: the {@code sessionId} field in the params record is overridden
+ * by the session-scoped wrapper; any value provided is ignored.
+ *
+ * @apiNote This method is experimental and may change in a future version.
+ * @since 1.0.0
+ */
+ @CopilotExperimental
+ public CompletableFuture evaluatePredicate(SessionSettingsEvaluatePredicateParams params) {
+ com.fasterxml.jackson.databind.node.ObjectNode _p = MAPPER.valueToTree(params);
+ _p.put("sessionId", this.sessionId);
+ return caller.invoke("session.settings.evaluatePredicate", _p, SessionSettingsEvaluatePredicateResult.class);
+ }
+
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsBuiltInToolAvailabilitySnapshot.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsBuiltInToolAvailabilitySnapshot.java
new file mode 100644
index 000000000..98e6df29f
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsBuiltInToolAvailabilitySnapshot.java
@@ -0,0 +1,27 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import javax.annotation.processing.Generated;
+
+/**
+ * Availability of built-in job tools surfaced to boundary consumers.
+ *
+ * @since 1.0.0
+ */
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsBuiltInToolAvailabilitySnapshot(
+ @JsonProperty("reportProgress") Boolean reportProgress,
+ @JsonProperty("createPullRequest") Boolean createPullRequest
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsEvaluatePredicateParams.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsEvaluatePredicateParams.java
new file mode 100644
index 000000000..a7c1663e2
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsEvaluatePredicateParams.java
@@ -0,0 +1,34 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.copilot.CopilotExperimental;
+import javax.annotation.processing.Generated;
+
+/**
+ * Named Rust-owned settings predicate to evaluate for this session.
+ *
+ * @apiNote This method is experimental and may change in a future version.
+ * @since 1.0.0
+ */
+@CopilotExperimental
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsEvaluatePredicateParams(
+ /** Target session identifier */
+ @JsonProperty("sessionId") String sessionId,
+ /** Predicate name. The runtime owns the raw feature-flag names and composition logic. */
+ @JsonProperty("name") SessionSettingsPredicateName name,
+ /** Tool name for tool-scoped predicates such as trivial-change handling. */
+ @JsonProperty("toolName") String toolName
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsEvaluatePredicateResult.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsEvaluatePredicateResult.java
new file mode 100644
index 000000000..1f4a7ed32
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsEvaluatePredicateResult.java
@@ -0,0 +1,29 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.copilot.CopilotExperimental;
+import javax.annotation.processing.Generated;
+
+/**
+ * Result of evaluating a Rust-owned settings predicate.
+ *
+ * @apiNote This method is experimental and may change in a future version.
+ * @since 1.0.0
+ */
+@CopilotExperimental
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsEvaluatePredicateResult(
+ @JsonProperty("enabled") Boolean enabled
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsJobSnapshot.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsJobSnapshot.java
new file mode 100644
index 000000000..463660d8a
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsJobSnapshot.java
@@ -0,0 +1,28 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import javax.annotation.processing.Generated;
+
+/**
+ * Redacted job settings for a session. The job nonce is excluded.
+ *
+ * @since 1.0.0
+ */
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsJobSnapshot(
+ @JsonProperty("eventType") String eventType,
+ @JsonProperty("isTriggerJob") Boolean isTriggerJob,
+ @JsonProperty("builtInToolAvailability") SessionSettingsBuiltInToolAvailabilitySnapshot builtInToolAvailability
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsModelSnapshot.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsModelSnapshot.java
new file mode 100644
index 000000000..ce515c74d
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsModelSnapshot.java
@@ -0,0 +1,29 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import javax.annotation.processing.Generated;
+
+/**
+ * Redacted model routing settings for a session.
+ *
+ * @since 1.0.0
+ */
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsModelSnapshot(
+ @JsonProperty("model") String model,
+ @JsonProperty("defaultReasoningEffort") String defaultReasoningEffort,
+ @JsonProperty("instanceId") String instanceId,
+ @JsonProperty("callbackUrl") String callbackUrl
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsOnlineEvaluationSnapshot.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsOnlineEvaluationSnapshot.java
new file mode 100644
index 000000000..b1a5be6f3
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsOnlineEvaluationSnapshot.java
@@ -0,0 +1,27 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import javax.annotation.processing.Generated;
+
+/**
+ * Online-evaluation settings safe to expose across the SDK boundary.
+ *
+ * @since 1.0.0
+ */
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsOnlineEvaluationSnapshot(
+ @JsonProperty("disableOnlineEvaluation") Boolean disableOnlineEvaluation,
+ @JsonProperty("enableOnlineEvaluationOutputFile") Boolean enableOnlineEvaluationOutputFile
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsPredicateName.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsPredicateName.java
new file mode 100644
index 000000000..6c99c214a
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsPredicateName.java
@@ -0,0 +1,69 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import javax.annotation.processing.Generated;
+
+/**
+ * Rust-owned settings predicates exposed across the SDK boundary. Raw feature-flag names are intentionally not part of the contract.
+ *
+ * @since 1.0.0
+ */
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+public enum SessionSettingsPredicateName {
+ /** The {@code securityToolsEnabled} variant. */
+ SECURITYTOOLSENABLED("securityToolsEnabled"),
+ /** The {@code thirdPartySecurityPromptEnabled} variant. */
+ THIRDPARTYSECURITYPROMPTENABLED("thirdPartySecurityPromptEnabled"),
+ /** The {@code parallelValidationEnabled} variant. */
+ PARALLELVALIDATIONENABLED("parallelValidationEnabled"),
+ /** The {@code runtimeTimingTelemetryEnabled} variant. */
+ RUNTIMETIMINGTELEMETRYENABLED("runtimeTimingTelemetryEnabled"),
+ /** The {@code coAuthorHookEnabled} variant. */
+ COAUTHORHOOKENABLED("coAuthorHookEnabled"),
+ /** The {@code chronicleEnabled} variant. */
+ CHRONICLEENABLED("chronicleEnabled"),
+ /** The {@code contentExclusionSelfFetchEnabled} variant. */
+ CONTENTEXCLUSIONSELFFETCHENABLED("contentExclusionSelfFetchEnabled"),
+ /** The {@code capClaudeOpusTokenLimitsEnabled} variant. */
+ CAPCLAUDEOPUSTOKENLIMITSENABLED("capClaudeOpusTokenLimitsEnabled"),
+ /** The {@code codeReviewFeatureEnabled} variant. */
+ CODEREVIEWFEATUREENABLED("codeReviewFeatureEnabled"),
+ /** The {@code ccaUseTsAutofindEnabled} variant. */
+ CCAUSETSAUTOFINDENABLED("ccaUseTsAutofindEnabled"),
+ /** The {@code dependencyCheckerEnabled} variant. */
+ DEPENDENCYCHECKERENABLED("dependencyCheckerEnabled"),
+ /** The {@code dependabotCheckerEnabled} variant. */
+ DEPENDABOTCHECKERENABLED("dependabotCheckerEnabled"),
+ /** The {@code codeqlCheckerEnabled} variant. */
+ CODEQLCHECKERENABLED("codeqlCheckerEnabled"),
+ /** The {@code trivialChangeEnabled} variant. */
+ TRIVIALCHANGEENABLED("trivialChangeEnabled"),
+ /** The {@code trivialChangeSkipEnabled} variant. */
+ TRIVIALCHANGESKIPENABLED("trivialChangeSkipEnabled"),
+ /** The {@code trivialChangeEnabledForCodeReview} variant. */
+ TRIVIALCHANGEENABLEDFORCODEREVIEW("trivialChangeEnabledForCodeReview"),
+ /** The {@code trivialChangeSkipEnabledForCodeReview} variant. */
+ TRIVIALCHANGESKIPENABLEDFORCODEREVIEW("trivialChangeSkipEnabledForCodeReview"),
+ /** The {@code trivialChangeEnabledForTool} variant. */
+ TRIVIALCHANGEENABLEDFORTOOL("trivialChangeEnabledForTool"),
+ /** The {@code trivialChangeSkipEnabledForTool} variant. */
+ TRIVIALCHANGESKIPENABLEDFORTOOL("trivialChangeSkipEnabledForTool");
+
+ private final String value;
+ SessionSettingsPredicateName(String value) { this.value = value; }
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() { return value; }
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static SessionSettingsPredicateName fromValue(String value) {
+ for (SessionSettingsPredicateName v : values()) {
+ if (v.value.equals(value)) return v;
+ }
+ throw new IllegalArgumentException("Unknown SessionSettingsPredicateName value: " + value);
+ }
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsRepoSnapshot.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsRepoSnapshot.java
new file mode 100644
index 000000000..960853c52
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsRepoSnapshot.java
@@ -0,0 +1,37 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import javax.annotation.processing.Generated;
+
+/**
+ * Redacted repository and GitHub host settings for a session.
+ *
+ * @since 1.0.0
+ */
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsRepoSnapshot(
+ @JsonProperty("name") String name,
+ @JsonProperty("id") Double id,
+ @JsonProperty("branch") String branch,
+ @JsonProperty("commit") String commit,
+ @JsonProperty("readWrite") Boolean readWrite,
+ @JsonProperty("ownerName") String ownerName,
+ @JsonProperty("ownerId") Double ownerId,
+ @JsonProperty("serverUrl") String serverUrl,
+ @JsonProperty("host") String host,
+ @JsonProperty("hostProtocol") String hostProtocol,
+ @JsonProperty("secretScanningUrl") String secretScanningUrl,
+ @JsonProperty("prCommitCount") Double prCommitCount
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsSnapshotParams.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsSnapshotParams.java
new file mode 100644
index 000000000..8bad93152
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsSnapshotParams.java
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.copilot.CopilotExperimental;
+import javax.annotation.processing.Generated;
+
+/**
+ * Identifies the target session.
+ *
+ * @apiNote This method is experimental and may change in a future version.
+ * @since 1.0.0
+ */
+@CopilotExperimental
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsSnapshotParams(
+ /** Target session identifier */
+ @JsonProperty("sessionId") String sessionId
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsSnapshotResult.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsSnapshotResult.java
new file mode 100644
index 000000000..0851474d6
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsSnapshotResult.java
@@ -0,0 +1,37 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.copilot.CopilotExperimental;
+import javax.annotation.processing.Generated;
+
+/**
+ * Redacted, serializable view of session runtime settings for SDK boundary consumers. Secrets and raw feature flags are intentionally excluded.
+ *
+ * @apiNote This method is experimental and may change in a future version.
+ * @since 1.0.0
+ */
+@CopilotExperimental
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsSnapshotResult(
+ @JsonProperty("version") String version,
+ @JsonProperty("clientName") String clientName,
+ @JsonProperty("timeoutMs") Double timeoutMs,
+ @JsonProperty("startTimeMs") Double startTimeMs,
+ @JsonProperty("repo") SessionSettingsRepoSnapshot repo,
+ @JsonProperty("model") SessionSettingsModelSnapshot model,
+ @JsonProperty("validation") SessionSettingsValidationSnapshot validation,
+ @JsonProperty("job") SessionSettingsJobSnapshot job,
+ @JsonProperty("onlineEvaluation") SessionSettingsOnlineEvaluationSnapshot onlineEvaluation
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsValidationSnapshot.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsValidationSnapshot.java
new file mode 100644
index 000000000..375cfdfec
--- /dev/null
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionSettingsValidationSnapshot.java
@@ -0,0 +1,34 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ *--------------------------------------------------------------------------------------------*/
+
+// AUTO-GENERATED FILE - DO NOT EDIT
+// Generated from: api.schema.json
+
+package com.github.copilot.generated.rpc;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import javax.annotation.processing.Generated;
+
+/**
+ * Redacted validation and memory-tool settings for a session.
+ *
+ * @since 1.0.0
+ */
+@javax.annotation.processing.Generated("copilot-sdk-codegen")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public record SessionSettingsValidationSnapshot(
+ @JsonProperty("timeout") Double timeout,
+ @JsonProperty("dependabotTimeout") Double dependabotTimeout,
+ @JsonProperty("codeqlEnabled") Boolean codeqlEnabled,
+ @JsonProperty("codeReviewEnabled") Boolean codeReviewEnabled,
+ @JsonProperty("codeReviewModel") String codeReviewModel,
+ @JsonProperty("advisoryEnabled") Boolean advisoryEnabled,
+ @JsonProperty("secretScanningEnabled") Boolean secretScanningEnabled,
+ @JsonProperty("memoryStoreEnabled") Boolean memoryStoreEnabled,
+ @JsonProperty("memoryVoteEnabled") Boolean memoryVoteEnabled
+) {
+}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionUiHandlePendingExitPlanModeParams.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionUiHandlePendingExitPlanModeParams.java
index 87eccd1e2..2142a98f3 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionUiHandlePendingExitPlanModeParams.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionUiHandlePendingExitPlanModeParams.java
@@ -28,7 +28,7 @@ public record SessionUiHandlePendingExitPlanModeParams(
@JsonProperty("sessionId") String sessionId,
/** The unique request ID from the exit_plan_mode.requested event */
@JsonProperty("requestId") String requestId,
- /** Schema for the `UIExitPlanModeResponse` type. */
+ /** User response for a pending exit-plan-mode request, with approval state, selected action, auto-approve flag, and feedback. */
@JsonProperty("response") UIExitPlanModeResponse response
) {
}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionUiHandlePendingUserInputParams.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionUiHandlePendingUserInputParams.java
index 224035438..999a8738d 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionUiHandlePendingUserInputParams.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionUiHandlePendingUserInputParams.java
@@ -28,7 +28,7 @@ public record SessionUiHandlePendingUserInputParams(
@JsonProperty("sessionId") String sessionId,
/** The unique request ID from the user_input.requested event */
@JsonProperty("requestId") String requestId,
- /** Schema for the `UIUserInputResponse` type. */
+ /** User response for a pending user-input request, with answer text and whether it was typed freeform. */
@JsonProperty("response") UIUserInputResponse response
) {
}
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SessionsOpenProgress.java b/java/src/generated/java/com/github/copilot/generated/rpc/SessionsOpenProgress.java
index 44d1aa0de..8509295cb 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SessionsOpenProgress.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SessionsOpenProgress.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SessionsOpenProgress` type.
+ * `sessions.open` handoff progress update with step, status, and optional message.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/Skill.java b/java/src/generated/java/com/github/copilot/generated/rpc/Skill.java
index 5b1cea9b7..4ad411687 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/Skill.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/Skill.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `Skill` type.
+ * Skill metadata available to a session, with name, description, source, enabled/invocable state, path, plugin, and argument hint.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SkillDiscoveryPath.java b/java/src/generated/java/com/github/copilot/generated/rpc/SkillDiscoveryPath.java
index 4d2e90a5d..feea2794f 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SkillDiscoveryPath.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SkillDiscoveryPath.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SkillDiscoveryPath` type.
+ * Canonical directory where skills can be discovered or created, with scope, preference, and optional project path.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SkillsInvokedSkill.java b/java/src/generated/java/com/github/copilot/generated/rpc/SkillsInvokedSkill.java
index 697e18fa4..a020c89ec 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SkillsInvokedSkill.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SkillsInvokedSkill.java
@@ -14,7 +14,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SkillsInvokedSkill` type.
+ * Skill invocation record with name, path, content, allowed tools, and turn number.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandAgentPromptResult.java b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandAgentPromptResult.java
index 48a6c08a6..a034458c9 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandAgentPromptResult.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandAgentPromptResult.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SlashCommandAgentPromptResult` type.
+ * Slash-command invocation result that submits an agent prompt, with display prompt, optional mode, and settings-change flag.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandCompletedResult.java b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandCompletedResult.java
index 8c6ef74be..b2a1970a3 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandCompletedResult.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandCompletedResult.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SlashCommandCompletedResult` type.
+ * Slash-command invocation result indicating completion, with optional message and settings-change flag.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandInfo.java b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandInfo.java
index 61b2e933f..9a725ecec 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandInfo.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandInfo.java
@@ -14,7 +14,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SlashCommandInfo` type.
+ * Slash-command metadata with name, aliases, description, kind, input hint, execution allowance, and schedulability.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandSelectSubcommandOption.java b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandSelectSubcommandOption.java
index 317ec970f..00d8b423e 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandSelectSubcommandOption.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandSelectSubcommandOption.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SlashCommandSelectSubcommandOption` type.
+ * Selectable slash-command subcommand option with name, description, and optional group label.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandSelectSubcommandResult.java b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandSelectSubcommandResult.java
index 512c46355..5c151954b 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandSelectSubcommandResult.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandSelectSubcommandResult.java
@@ -14,7 +14,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SlashCommandSelectSubcommandResult` type.
+ * Slash-command invocation result asking the client to present subcommand options for a parent command.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandTextResult.java b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandTextResult.java
index 4aaab6969..5f232e8b9 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandTextResult.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/SlashCommandTextResult.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `SlashCommandTextResult` type.
+ * Slash-command invocation result containing text output plus Markdown/ANSI rendering flags.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/Tool.java b/java/src/generated/java/com/github/copilot/generated/rpc/Tool.java
index e4b1361c8..51fe65e6b 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/Tool.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/Tool.java
@@ -14,7 +14,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `Tool` type.
+ * Built-in tool metadata with identifier, optional namespaced name, description, input-parameter schema, and usage instructions.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/UIExitPlanModeResponse.java b/java/src/generated/java/com/github/copilot/generated/rpc/UIExitPlanModeResponse.java
index 50e201142..d74d1b504 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/UIExitPlanModeResponse.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/UIExitPlanModeResponse.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `UIExitPlanModeResponse` type.
+ * User response for a pending exit-plan-mode request, with approval state, selected action, auto-approve flag, and feedback.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/UIUserInputResponse.java b/java/src/generated/java/com/github/copilot/generated/rpc/UIUserInputResponse.java
index d4ce9899d..9abc82505 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/UIUserInputResponse.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/UIUserInputResponse.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `UIUserInputResponse` type.
+ * User response for a pending user-input request, with answer text and whether it was typed freeform.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsModelMetric.java b/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsModelMetric.java
index 7e34f43b3..1b66120cf 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsModelMetric.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsModelMetric.java
@@ -14,7 +14,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `UsageMetricsModelMetric` type.
+ * Per-model usage metrics, including request counts/costs, token usage, nano-AI units, and per-token-type details.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsModelMetricTokenDetail.java b/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsModelMetricTokenDetail.java
index e47a45fde..90af60c84 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsModelMetricTokenDetail.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsModelMetricTokenDetail.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `UsageMetricsModelMetricTokenDetail` type.
+ * Per-model token-detail entry containing the accumulated token count for one token type.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsTokenDetail.java b/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsTokenDetail.java
index 55d0b81c8..32149bfa7 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsTokenDetail.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/UsageMetricsTokenDetail.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `UsageMetricsTokenDetail` type.
+ * Session-wide token-detail entry containing the accumulated token count for one token type.
*
* @since 1.0.0
*/
diff --git a/java/src/generated/java/com/github/copilot/generated/rpc/WorkspacesCheckpoints.java b/java/src/generated/java/com/github/copilot/generated/rpc/WorkspacesCheckpoints.java
index 07de034a9..c3696236c 100644
--- a/java/src/generated/java/com/github/copilot/generated/rpc/WorkspacesCheckpoints.java
+++ b/java/src/generated/java/com/github/copilot/generated/rpc/WorkspacesCheckpoints.java
@@ -13,7 +13,7 @@
import javax.annotation.processing.Generated;
/**
- * Schema for the `WorkspacesCheckpoints` type.
+ * Workspace checkpoint metadata with assigned number, human-readable title, and checkpoint filename.
*
* @since 1.0.0
*/
diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json
index fb0db5f92..b68b1267e 100644
--- a/nodejs/package-lock.json
+++ b/nodejs/package-lock.json
@@ -9,7 +9,7 @@
"version": "0.0.0-dev",
"license": "MIT",
"dependencies": {
- "@github/copilot": "^1.0.69-0",
+ "@github/copilot": "^1.0.69-1",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
@@ -699,9 +699,9 @@
}
},
"node_modules/@github/copilot": {
- "version": "1.0.69-0",
- "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.69-0.tgz",
- "integrity": "sha512-Y/ZJBo1dtsP7k2LxDQxQT5pj2ZaN7+dCD4vx5jhX3i2T+YFlOx7ZhfUx8Hpe94wQPDlCs+232TXRHl2Wb5p62w==",
+ "version": "1.0.69-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.69-1.tgz",
+ "integrity": "sha512-3kWG41prhG/+bMdgW6QvPZXSji2oVGSxQICrUStnW954vvwg0Snabz5g2P3/1EM7BJqoecYSSNIo+vzznxpuTQ==",
"license": "SEE LICENSE IN LICENSE.md",
"dependencies": {
"detect-libc": "^2.1.2"
@@ -710,20 +710,20 @@
"copilot": "npm-loader.js"
},
"optionalDependencies": {
- "@github/copilot-darwin-arm64": "1.0.69-0",
- "@github/copilot-darwin-x64": "1.0.69-0",
- "@github/copilot-linux-arm64": "1.0.69-0",
- "@github/copilot-linux-x64": "1.0.69-0",
- "@github/copilot-linuxmusl-arm64": "1.0.69-0",
- "@github/copilot-linuxmusl-x64": "1.0.69-0",
- "@github/copilot-win32-arm64": "1.0.69-0",
- "@github/copilot-win32-x64": "1.0.69-0"
+ "@github/copilot-darwin-arm64": "1.0.69-1",
+ "@github/copilot-darwin-x64": "1.0.69-1",
+ "@github/copilot-linux-arm64": "1.0.69-1",
+ "@github/copilot-linux-x64": "1.0.69-1",
+ "@github/copilot-linuxmusl-arm64": "1.0.69-1",
+ "@github/copilot-linuxmusl-x64": "1.0.69-1",
+ "@github/copilot-win32-arm64": "1.0.69-1",
+ "@github/copilot-win32-x64": "1.0.69-1"
}
},
"node_modules/@github/copilot-darwin-arm64": {
- "version": "1.0.69-0",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.69-0.tgz",
- "integrity": "sha512-RyX31WkNGpXycW5FCAgJ7+MXTmfwSkiohHf7jWShKQPP6m/MEM0CrBuS4XPeWK0gjtWM4MdAwmVe7qXtbzZu1w==",
+ "version": "1.0.69-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.69-1.tgz",
+ "integrity": "sha512-rCgRgY+5AUK4SEcVxNIHTV4Apl8NwtWwlDMiVIV8UtE+re2oq7ojq3CGSo4wzagHWUQSjEAEpwVBL6+NFnSVYw==",
"cpu": [
"arm64"
],
@@ -737,9 +737,9 @@
}
},
"node_modules/@github/copilot-darwin-x64": {
- "version": "1.0.69-0",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.69-0.tgz",
- "integrity": "sha512-NaA44Uq6d1ijcF2eT8/Ql0eacyvjGFGYN8hVFLkD6CsjPmSbupMd39NFt2RWnZDjhg3S68J77OSXH4aj3vcaiA==",
+ "version": "1.0.69-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.69-1.tgz",
+ "integrity": "sha512-GnrRZziYWQrHJYpvbeZQoBWawbfOdVr43KgTqGru1ybVXh9BCtoYG/wcnIyla5ezlgNOtDphDg64cQHNhypgDQ==",
"cpu": [
"x64"
],
@@ -753,9 +753,9 @@
}
},
"node_modules/@github/copilot-linux-arm64": {
- "version": "1.0.69-0",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.69-0.tgz",
- "integrity": "sha512-dSFha3BrnGeMKLzqWE8c63tRdKgw3mjV9Apx4/i7L9BMJ0o13oycVVe+D+bEVniWH12gVriIxE1+TQUAAVWLIQ==",
+ "version": "1.0.69-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.69-1.tgz",
+ "integrity": "sha512-2Hls3xLhN4Gk1nEHzwEZ+0XySVAZeQa5Gz2KRXUbs+JJ0e0TikT7kKsGtK+1fhEgAFdZ721XvtvxB+LA32y/rQ==",
"cpu": [
"arm64"
],
@@ -769,9 +769,9 @@
}
},
"node_modules/@github/copilot-linux-x64": {
- "version": "1.0.69-0",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.69-0.tgz",
- "integrity": "sha512-2zH3yh7//D7rOriDt4eAc4+tYay+oQj9CcENP0Cb8aNEn27hyZmuKiLoA+xyGSrbhVqA4rzYLC3Hx9RI96xxSQ==",
+ "version": "1.0.69-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.69-1.tgz",
+ "integrity": "sha512-MqBrjkhoynBYbrEqZjStKNXXIMEu+kSF2aUtGbotyz24vauAeg4lOf4E6uM41B53l1qoMoj34dQ+gPT+Tlvf6A==",
"cpu": [
"x64"
],
@@ -785,9 +785,9 @@
}
},
"node_modules/@github/copilot-linuxmusl-arm64": {
- "version": "1.0.69-0",
- "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.69-0.tgz",
- "integrity": "sha512-vVezUNBfxp4ej9rTQy3zy8UT23imxFWqzkVu0yFrt6lqr9a7RSmPHhhKkPYkyxCWuzhSxGWLm3Ad6TDTYVVGog==",
+ "version": "1.0.69-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.69-1.tgz",
+ "integrity": "sha512-KfG+4vW53Aou5s6dYfAlrVIikIGvv8i3UQA+wGRJX0PvhB2Z2xje3+fcGhAGywghhCL/UjZT8rwaeyJWGvdrBg==",
"cpu": [
"arm64"
],
@@ -801,9 +801,9 @@
}
},
"node_modules/@github/copilot-linuxmusl-x64": {
- "version": "1.0.69-0",
- "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.69-0.tgz",
- "integrity": "sha512-Wlb421yC7iuw6ICMxuNPPL+ItG0f9+vv3wdHUeWhyCMte7+7tqxvhyfxSCzj46V5CXoGo32vUc0oOxmXMfSbyQ==",
+ "version": "1.0.69-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.69-1.tgz",
+ "integrity": "sha512-EgW/avqTW1vZp/7LfWotbUce9kkcpKELxn+PiVLGOcEFP/5/3nGt0mkXYpRJQJLwNcHTFFYLBfgLZSMJ3g1hTg==",
"cpu": [
"x64"
],
@@ -817,9 +817,9 @@
}
},
"node_modules/@github/copilot-win32-arm64": {
- "version": "1.0.69-0",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.69-0.tgz",
- "integrity": "sha512-H0p9kiCO8Rt6tMuZUPzszoxYaipIIvOBbUtqljV56UX+XwBaSnxME/ZjRCNn480jdrA2QbLjaobZWH2w3C4scg==",
+ "version": "1.0.69-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.69-1.tgz",
+ "integrity": "sha512-ySorVqbMWdSK21WvEUgSit4jTQcC+MnQeFF0ACWvtKj2q73dzXR6yh8AGJTXG2AzvEgVC2yY0TNAB28nk4zA+Q==",
"cpu": [
"arm64"
],
@@ -833,9 +833,9 @@
}
},
"node_modules/@github/copilot-win32-x64": {
- "version": "1.0.69-0",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.69-0.tgz",
- "integrity": "sha512-3W/e8Lhw1eStFJogIP4pf9bxg9izcI/c0KErHLFK+56HqfnzK5ZDQqb+oeqRw3+aq24MvzyLzHA421jPHLIoOQ==",
+ "version": "1.0.69-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.69-1.tgz",
+ "integrity": "sha512-S7Oj7o27olpS70s7BaipcDsMif2/YoHj7KyQI/2aoXJG2xZb25wds65f/gTtsgOQOnnpCefywt/bHpX8Bw8wDQ==",
"cpu": [
"x64"
],
diff --git a/nodejs/package.json b/nodejs/package.json
index 7e1e057c9..78182894e 100644
--- a/nodejs/package.json
+++ b/nodejs/package.json
@@ -56,7 +56,7 @@
"author": "GitHub",
"license": "MIT",
"dependencies": {
- "@github/copilot": "^1.0.69-0",
+ "@github/copilot": "^1.0.69-1",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
diff --git a/nodejs/samples/package-lock.json b/nodejs/samples/package-lock.json
index 122748e05..aafdf5493 100644
--- a/nodejs/samples/package-lock.json
+++ b/nodejs/samples/package-lock.json
@@ -18,7 +18,7 @@
"version": "0.0.0-dev",
"license": "MIT",
"dependencies": {
- "@github/copilot": "^1.0.69-0",
+ "@github/copilot": "^1.0.69-1",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
diff --git a/nodejs/src/generated/rpc.ts b/nodejs/src/generated/rpc.ts
index cd60dedcb..226236499 100644
--- a/nodejs/src/generated/rpc.ts
+++ b/nodejs/src/generated/rpc.ts
@@ -202,6 +202,20 @@ export type AgentRegistrySpawnValidationErrorField =
| "model"
/** The permissionMode parameter */
| "permissionMode";
+/**
+ * Current or requested allow-all mode.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "PermissionsAllowAllMode".
+ */
+/** @experimental */
+export type PermissionsAllowAllMode =
+ /** Permission requests follow the normal approval flow. */
+ | "off"
+ /** Tool, path, and URL permission requests are automatically approved. */
+ | "on"
+ /** Permission requests follow the normal approval flow with an LLM advisory recommendation attached; clients may choose to auto-approve requests the judge evaluated as acceptable. */
+ | "auto";
/**
* Authentication type
*
@@ -280,6 +294,84 @@ export type ContentFilterMode =
| "markdown"
/** Remove characters that can hide directives. */
| "hidden_characters";
+/**
+ * Source category for a collected debug bundle entry.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsSource".
+ */
+/** @experimental */
+export type DebugCollectLogsSource =
+ /** Session event log. */
+ | "events"
+ /** Process log for the session. */
+ | "process-log"
+ /** Interactive shell log for the session. */
+ | "shell-log"
+ /** Caller-provided diagnostic entry. */
+ | "additional";
+/**
+ * Destination for the redacted debug bundle.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsDestination".
+ */
+/** @experimental */
+export type DebugCollectLogsDestination =
+ | {
+ /**
+ * Absolute or server-relative path for the .tgz archive to create.
+ */
+ outputPath: string;
+ /**
+ * When true, create the archive atomically without overwriting an existing file by appending ` (N)` before the extension as needed. Defaults to false.
+ */
+ noOverwrite?: boolean;
+ kind: "archive";
+ }
+ | {
+ /**
+ * Directory where redacted files should be staged. The directory is created if needed.
+ */
+ outputDirectory: string;
+ kind: "directory";
+ };
+/**
+ * Kind of caller-provided debug log entry.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsEntryKind".
+ */
+/** @experimental */
+export type DebugCollectLogsEntryKind =
+ /** Include a single server-local file. */
+ | "file"
+ /** Include files from a server-local directory recursively. */
+ | "directory";
+/**
+ * How a collected debug entry should be redacted before being staged.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsRedaction".
+ */
+/** @experimental */
+export type DebugCollectLogsRedaction =
+ /** Redact the file as plain UTF-8 log text. */
+ | "plain-text"
+ /** Redact each non-empty line as a session event JSON object, falling back to plain-text redaction for malformed lines. */
+ | "events-jsonl";
+/**
+ * Destination kind that was written.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsResultKind".
+ */
+/** @experimental */
+export type DebugCollectLogsResultKind =
+ /** A .tgz archive was written. */
+ | "archive"
+ /** A directory containing redacted files was written. */
+ | "directory";
/**
* Server transport type: stdio, http, sse (deprecated), or memory
*
@@ -1254,7 +1346,7 @@ export type ProviderEndpointTransport =
/** WebSocket transport. */
| "websockets";
/**
- * Schema for the `PushAttachment` type.
+ * Attachment union accepted by push input, covering files, directories, GitHub objects, blobs, snippets, and extension context.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PushAttachment".
@@ -1641,6 +1733,52 @@ export type SessionsOpenProgressStatus =
| "in-progress"
/** The step has completed successfully. */
| "complete";
+/**
+ * Rust-owned settings predicates exposed across the SDK boundary. Raw feature-flag names are intentionally not part of the contract.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsPredicateName".
+ */
+/** @experimental */
+export type SessionSettingsPredicateName =
+ /** Whether the security-tools feature flag enables security tool wiring. */
+ | "securityToolsEnabled"
+ /** Whether third-party security tools should receive the security prompt. */
+ | "thirdPartySecurityPromptEnabled"
+ /** Whether validation may run in parallel. */
+ | "parallelValidationEnabled"
+ /** Whether runtime timing telemetry is enabled. */
+ | "runtimeTimingTelemetryEnabled"
+ /** Whether the co-author hook is enabled. */
+ | "coAuthorHookEnabled"
+ /** Whether Chronicle integration is enabled. */
+ | "chronicleEnabled"
+ /** Whether content-exclusion policy may self-fetch data. */
+ | "contentExclusionSelfFetchEnabled"
+ /** Whether Claude Opus token-limit caps should be applied. */
+ | "capClaudeOpusTokenLimitsEnabled"
+ /** Whether code-review behavior is enabled. */
+ | "codeReviewFeatureEnabled"
+ /** Whether CCA should use the TypeScript autofind behavior. */
+ | "ccaUseTsAutofindEnabled"
+ /** Whether the dependency checker is enabled. */
+ | "dependencyCheckerEnabled"
+ /** Whether the Dependabot checker is enabled. */
+ | "dependabotCheckerEnabled"
+ /** Whether the CodeQL checker is enabled. */
+ | "codeqlCheckerEnabled"
+ /** Whether trivial-change handling is enabled. */
+ | "trivialChangeEnabled"
+ /** Whether trivial-change skip behavior is enabled. */
+ | "trivialChangeSkipEnabled"
+ /** Whether trivial-change handling is enabled for code review. */
+ | "trivialChangeEnabledForCodeReview"
+ /** Whether trivial-change skip behavior is enabled for code review. */
+ | "trivialChangeSkipEnabledForCodeReview"
+ /** Whether trivial-change handling is enabled for a specific tool. */
+ | "trivialChangeEnabledForTool"
+ /** Whether trivial-change skip behavior is enabled for a specific tool. */
+ | "trivialChangeSkipEnabledForTool";
/**
* Which session sources to include. Defaults to `local` for backward compatibility.
*
@@ -1781,7 +1919,7 @@ export type TaskExecutionMode =
/** The task is managed in the background. */
| "background";
/**
- * Schema for the `TaskInfo` type.
+ * Tracked task union returned by task APIs, containing either an agent task or a shell task.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "TaskInfo".
@@ -1823,7 +1961,7 @@ export type UIAutoModeSwitchResponse =
/** Decline the automatic mode switch. */
| "no";
/**
- * Schema for the `UIElicitationFieldValue` type.
+ * Submitted UI elicitation field value: string, number, boolean, or an array of strings.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "UIElicitationFieldValue".
@@ -2001,7 +2139,7 @@ export interface AbortResult {
error?: string;
}
/**
- * Schema for the `AccountAllUsers` type.
+ * Authenticated account entry returned by `account.getAllUsers`, with auth info and an optional associated token.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "AccountAllUsers".
@@ -2015,7 +2153,7 @@ export interface AccountAllUsers {
token?: string;
}
/**
- * Schema for the `HMACAuthInfo` type.
+ * Authentication-info variant for GitHub-internal HMAC auth, carrying the public GitHub host and HMAC secret.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "HMACAuthInfo".
@@ -2044,9 +2182,21 @@ export interface HMACAuthInfo {
*/
/** @experimental */
export interface CopilotUserResponse {
+ /**
+ * GitHub login of the authenticated user.
+ */
login?: string;
+ /**
+ * Copilot access SKU identifier (e.g. `free_limited_copilot`, `copilot_for_business_seat_quota`) used to gate model and feature access.
+ */
access_type_sku?: string;
+ /**
+ * Opaque analytics tracking identifier for the user, forwarded from the Copilot API.
+ */
analytics_tracking_id?: string;
+ /**
+ * Date the Copilot seat was assigned to the user, if applicable.
+ */
assigned_date?:
| (
| {
@@ -2055,12 +2205,30 @@ export interface CopilotUserResponse {
| string
)
| null;
+ /**
+ * Whether the user is eligible to sign up for the free/limited Copilot tier.
+ */
can_signup_for_limited?: boolean;
+ /**
+ * Whether Copilot chat is enabled for the user.
+ */
chat_enabled?: boolean;
+ /**
+ * Copilot plan name for the user (e.g. `individual`, `business`, `enterprise`).
+ */
copilot_plan?: string;
+ /**
+ * Whether `.copilotignore` content-exclusion support is enabled for the user.
+ */
copilotignore_enabled?: boolean;
endpoints?: CopilotUserResponseEndpoints;
+ /**
+ * Logins of the organizations the user belongs to.
+ */
organization_login_list?: string[];
+ /**
+ * Organizations the user belongs to, each with an optional login and display name.
+ */
organization_list?:
| (
| {
@@ -2086,7 +2254,13 @@ export interface CopilotUserResponse {
} | null)[]
)
| null;
+ /**
+ * Whether the Codex agent is enabled for the user.
+ */
codex_agent_enabled?: boolean;
+ /**
+ * Whether MCP (Model Context Protocol) support is enabled for the user.
+ */
is_mcp_enabled?:
| (
| {
@@ -2095,26 +2269,62 @@ export interface CopilotUserResponse {
| boolean
)
| null;
+ /**
+ * Date the user's usage quota next resets, as a raw string from the Copilot API; see `quota_reset_date_utc` for the UTC-normalized value.
+ */
quota_reset_date?: string;
quota_snapshots?: CopilotUserResponseQuotaSnapshots;
+ /**
+ * Whether the user's telemetry is subject to restricted-data handling.
+ */
restricted_telemetry?: boolean;
+ /**
+ * Whether the user is a GitHub/Microsoft staff member.
+ */
is_staff?: boolean;
+ /**
+ * Raw passthrough of the Copilot API `te` flag for the user (an opaque server-side eligibility signal surfaced in telemetry); not otherwise interpreted by the runtime.
+ */
te?: boolean;
+ /**
+ * Whether the account is on usage-based (token/AI-credit) billing rather than a fixed premium-request quota.
+ */
token_based_billing?: boolean;
+ /**
+ * Whether the user is able to upgrade their Copilot plan.
+ */
can_upgrade_plan?: boolean;
+ /**
+ * UTC-normalized form of `quota_reset_date` (the date the user's usage quota next resets).
+ */
quota_reset_date_utc?: string;
+ /**
+ * Per-category quota allotments for free/limited-tier users, keyed by quota category.
+ */
limited_user_quotas?: {
[k: string]: number | undefined;
};
+ /**
+ * Date the free/limited-tier user's quotas next reset, as a raw string from the Copilot API.
+ */
limited_user_reset_date?: string;
+ /**
+ * Per-category monthly quota allotments, keyed by quota category.
+ */
monthly_quotas?: {
[k: string]: number | undefined;
};
+ /**
+ * Whether cloud session storage is enabled for the user.
+ */
cloud_session_storage_enabled?: boolean;
+ /**
+ * Whether CLI remote control is enabled for the user.
+ */
cli_remote_control_enabled?: boolean;
}
/**
- * Schema for the `CopilotUserResponseEndpoints` type.
+ * Endpoint URLs from the raw Copilot `/copilot_internal/v2/token` user-response passthrough.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "CopilotUserResponseEndpoints".
@@ -2127,7 +2337,7 @@ export interface CopilotUserResponseEndpoints {
telemetry?: string;
}
/**
- * Schema for the `CopilotUserResponseQuotaSnapshots` type.
+ * Quota snapshot map from the raw Copilot user-response passthrough, with chat, completions, premium-interactions, and other entries.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "CopilotUserResponseQuotaSnapshots".
@@ -2155,70 +2365,178 @@ export interface CopilotUserResponseQuotaSnapshots {
| undefined;
}
/**
- * Schema for the `CopilotUserResponseQuotaSnapshotsChat` type.
+ * Chat quota snapshot from the raw Copilot user-response passthrough, with entitlement, overage, remaining quota, reset, and billing fields.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "CopilotUserResponseQuotaSnapshotsChat".
*/
/** @experimental */
export interface CopilotUserResponseQuotaSnapshotsChat {
+ /**
+ * Number of requests/units included in the entitlement for this period; `-1` denotes an unlimited entitlement.
+ */
entitlement?: number;
+ /**
+ * Count of additional pay-per-request usage consumed this period beyond the entitlement.
+ */
overage_count?: number;
+ /**
+ * Whether usage may continue at pay-per-request rates once the entitlement is exhausted.
+ */
overage_permitted?: boolean;
+ /**
+ * Percentage of the entitlement remaining at the snapshot timestamp.
+ */
percent_remaining?: number;
+ /**
+ * Identifier of the quota bucket this snapshot describes.
+ */
quota_id?: string;
+ /**
+ * Amount of quota remaining at the snapshot timestamp.
+ */
quota_remaining?: number;
+ /**
+ * Remaining entitlement/quota amount at the snapshot timestamp.
+ */
remaining?: number;
+ /**
+ * Whether the entitlement for this category is unlimited.
+ */
unlimited?: boolean;
+ /**
+ * UTC timestamp when this snapshot was captured.
+ */
timestamp_utc?: string;
+ /**
+ * Whether the user currently has quota available; when `false` and not unlimited, further requests are blocked until the quota resets.
+ */
has_quota?: boolean;
+ /**
+ * Unix epoch time, in seconds, when this quota next resets.
+ */
quota_reset_at?: number;
+ /**
+ * Whether this category uses usage-based (token/AI-credit) billing rather than a fixed premium-request count.
+ */
token_based_billing?: boolean;
}
/**
- * Schema for the `CopilotUserResponseQuotaSnapshotsCompletions` type.
+ * Completions quota snapshot from the raw Copilot user-response passthrough, with entitlement, overage, remaining quota, reset, and billing fields.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "CopilotUserResponseQuotaSnapshotsCompletions".
*/
/** @experimental */
export interface CopilotUserResponseQuotaSnapshotsCompletions {
+ /**
+ * Number of requests/units included in the entitlement for this period; `-1` denotes an unlimited entitlement.
+ */
entitlement?: number;
+ /**
+ * Count of additional pay-per-request usage consumed this period beyond the entitlement.
+ */
overage_count?: number;
+ /**
+ * Whether usage may continue at pay-per-request rates once the entitlement is exhausted.
+ */
overage_permitted?: boolean;
+ /**
+ * Percentage of the entitlement remaining at the snapshot timestamp.
+ */
percent_remaining?: number;
+ /**
+ * Identifier of the quota bucket this snapshot describes.
+ */
quota_id?: string;
+ /**
+ * Amount of quota remaining at the snapshot timestamp.
+ */
quota_remaining?: number;
+ /**
+ * Remaining entitlement/quota amount at the snapshot timestamp.
+ */
remaining?: number;
+ /**
+ * Whether the entitlement for this category is unlimited.
+ */
unlimited?: boolean;
+ /**
+ * UTC timestamp when this snapshot was captured.
+ */
timestamp_utc?: string;
+ /**
+ * Whether the user currently has quota available; when `false` and not unlimited, further requests are blocked until the quota resets.
+ */
has_quota?: boolean;
+ /**
+ * Unix epoch time, in seconds, when this quota next resets.
+ */
quota_reset_at?: number;
+ /**
+ * Whether this category uses usage-based (token/AI-credit) billing rather than a fixed premium-request count.
+ */
token_based_billing?: boolean;
}
/**
- * Schema for the `CopilotUserResponseQuotaSnapshotsPremiumInteractions` type.
+ * Premium-interactions quota snapshot from the raw Copilot user-response passthrough, with entitlement, overage, remaining quota, reset, and billing fields.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "CopilotUserResponseQuotaSnapshotsPremiumInteractions".
*/
/** @experimental */
export interface CopilotUserResponseQuotaSnapshotsPremiumInteractions {
+ /**
+ * Number of requests/units included in the entitlement for this period; `-1` denotes an unlimited entitlement.
+ */
entitlement?: number;
+ /**
+ * Count of additional pay-per-request usage consumed this period beyond the entitlement.
+ */
overage_count?: number;
+ /**
+ * Whether usage may continue at pay-per-request rates once the entitlement is exhausted.
+ */
overage_permitted?: boolean;
+ /**
+ * Percentage of the entitlement remaining at the snapshot timestamp.
+ */
percent_remaining?: number;
+ /**
+ * Identifier of the quota bucket this snapshot describes.
+ */
quota_id?: string;
+ /**
+ * Amount of quota remaining at the snapshot timestamp.
+ */
quota_remaining?: number;
+ /**
+ * Remaining entitlement/quota amount at the snapshot timestamp.
+ */
remaining?: number;
+ /**
+ * Whether the entitlement for this category is unlimited.
+ */
unlimited?: boolean;
+ /**
+ * UTC timestamp when this snapshot was captured.
+ */
timestamp_utc?: string;
+ /**
+ * Whether the user currently has quota available; when `false` and not unlimited, further requests are blocked until the quota resets.
+ */
has_quota?: boolean;
+ /**
+ * Unix epoch time, in seconds, when this quota next resets.
+ */
quota_reset_at?: number;
+ /**
+ * Whether this category uses usage-based (token/AI-credit) billing rather than a fixed premium-request count.
+ */
token_based_billing?: boolean;
}
/**
- * Schema for the `EnvAuthInfo` type.
+ * Authentication-info variant for a token sourced from an environment variable, with host, optional login, token, and env var name.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "EnvAuthInfo".
@@ -2248,7 +2566,7 @@ export interface EnvAuthInfo {
copilotUser?: CopilotUserResponse;
}
/**
- * Schema for the `TokenAuthInfo` type.
+ * Authentication-info variant for SDK-configured token authentication, carrying host and the secret token value.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "TokenAuthInfo".
@@ -2270,7 +2588,7 @@ export interface TokenAuthInfo {
copilotUser?: CopilotUserResponse;
}
/**
- * Schema for the `CopilotApiTokenAuthInfo` type.
+ * Authentication-info variant for direct Copilot API token auth sourced from environment variables, with public GitHub host.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "CopilotApiTokenAuthInfo".
@@ -2288,7 +2606,7 @@ export interface CopilotApiTokenAuthInfo {
copilotUser?: CopilotUserResponse;
}
/**
- * Schema for the `UserAuthInfo` type.
+ * Authentication-info variant for OAuth user auth, with host and login; the token remains in the runtime secret store.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "UserAuthInfo".
@@ -2310,7 +2628,7 @@ export interface UserAuthInfo {
copilotUser?: CopilotUserResponse;
}
/**
- * Schema for the `GhCliAuthInfo` type.
+ * Authentication-info variant for GitHub CLI credentials, carrying host, login, and the `gh auth token` value.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "GhCliAuthInfo".
@@ -2336,7 +2654,7 @@ export interface GhCliAuthInfo {
copilotUser?: CopilotUserResponse;
}
/**
- * Schema for the `ApiKeyAuthInfo` type.
+ * Authentication-info variant for API-key authentication to a non-GitHub LLM provider, carrying the secret `apiKey` and host.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "ApiKeyAuthInfo".
@@ -2395,7 +2713,7 @@ export interface AccountGetQuotaResult {
};
}
/**
- * Schema for the `AccountQuotaSnapshot` type.
+ * Quota usage snapshot for a Copilot quota type, including entitlement, used requests, overage, reset date, and remaining percentage.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "AccountQuotaSnapshot".
@@ -2493,7 +2811,7 @@ export interface AccountLogoutResult {
hasMoreUsers: boolean;
}
/**
- * Schema for the `AgentDiscoveryPath` type.
+ * Canonical directory where custom agents can be discovered or created, with scope, preference, and optional project path.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "AgentDiscoveryPath".
@@ -2541,7 +2859,7 @@ export interface AgentGetCurrentResult {
agent?: AgentInfo | null;
}
/**
- * Schema for the `AgentInfo` type.
+ * Custom agent metadata, including identifiers, display details, source, tools, model, MCP servers, skills, and file path.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "AgentInfo".
@@ -2894,12 +3212,13 @@ export interface AllowAllPermissionSetResult {
*/
success: boolean;
/**
- * Authoritative allow-all state after the mutation
+ * Authoritative full allow-all state after the mutation
*/
enabled: boolean;
+ mode?: PermissionsAllowAllMode;
}
/**
- * Current full allow-all permission state.
+ * Current allow-all permission mode.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "AllowAllPermissionState".
@@ -2910,6 +3229,7 @@ export interface AllowAllPermissionState {
* Whether full allow-all permissions are currently active
*/
enabled: boolean;
+ mode?: PermissionsAllowAllMode;
}
/**
* Cancellation result for a user-requested shell command.
@@ -3309,7 +3629,7 @@ export interface CommandList {
commands: SlashCommandInfo[];
}
/**
- * Schema for the `SlashCommandInfo` type.
+ * Slash-command metadata with name, aliases, description, kind, input hint, execution allowance, and schedulability.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SlashCommandInfo".
@@ -3469,7 +3789,7 @@ export interface CommandsRespondToQueuedCommandRequest {
result: QueuedCommandResult;
}
/**
- * Schema for the `QueuedCommandHandled` type.
+ * Queued-command response indicating the host executed the command, with an optional flag to stop queue processing.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "QueuedCommandHandled".
@@ -3486,7 +3806,7 @@ export interface QueuedCommandHandled {
stopProcessingQueue?: boolean;
}
/**
- * Schema for the `QueuedCommandNotHandled` type.
+ * Queued-command response indicating the host did not execute the command and the queue may continue.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "QueuedCommandNotHandled".
@@ -3689,7 +4009,7 @@ export interface ConnectRemoteSessionParams {
sessionId: string;
}
/**
- * Optional connection token presented by the SDK client during the handshake.
+ * Parameters for the `server.connect` handshake: an optional connection token and optional connection-level opt-ins (e.g. GitHub telemetry forwarding).
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "ConnectRequest".
@@ -3701,6 +4021,10 @@ export interface ConnectRequest {
* Connection token; required when the server was started with COPILOT_CONNECTION_TOKEN
*/
token?: string;
+ /**
+ * Opt this connection in to GitHub telemetry forwarding for its lifetime. When set, the runtime forwards every internal telemetry event it emits — across all sessions, plus sessionless events — to this connection over the `gitHubTelemetry.event` notification, in addition to the runtime's normal GitHub/CTS emission (dual-write). Intended for first-party hosts that re-emit the events into their own telemetry stores. Both unrestricted and restricted events are forwarded, each tagged with a `restricted` discriminator; a backstop drops restricted events when restricted telemetry is disabled.
+ */
+ enableGitHubTelemetryForwarding?: boolean;
}
/**
* Handshake result reporting the server's protocol version and package version on success.
@@ -3807,7 +4131,143 @@ export interface CurrentToolMetadata {
deferLoading?: boolean;
}
/**
- * Schema for the `DiscoveredMcpServer` type.
+ * A file included in the redacted debug bundle.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsCollectedEntry".
+ */
+/** @experimental */
+export interface DebugCollectLogsCollectedEntry {
+ /**
+ * Relative path of the file in the staged bundle/archive.
+ */
+ bundlePath: string;
+ source: DebugCollectLogsSource;
+ /**
+ * Redacted output size in bytes.
+ */
+ sizeBytes: number;
+}
+/**
+ * A caller-provided server-local file or directory to include in the debug bundle.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsEntry".
+ */
+/** @experimental */
+export interface DebugCollectLogsEntry {
+ kind: DebugCollectLogsEntryKind;
+ /**
+ * Server-local source path to read.
+ */
+ path: string;
+ /**
+ * Relative path to use inside the staged bundle/archive.
+ */
+ bundlePath: string;
+ redaction?: DebugCollectLogsRedaction;
+ /**
+ * When true, collection fails if this entry cannot be read. Defaults to false, which records the entry in `skippedEntries`.
+ */
+ required?: boolean;
+}
+/**
+ * Built-in session diagnostics to include in the bundle. Omitted fields default to true.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsInclude".
+ */
+/** @experimental */
+export interface DebugCollectLogsInclude {
+ /**
+ * Include the session event log (`events.jsonl`). Defaults to true.
+ */
+ events?: boolean;
+ /**
+ * Include process logs for the session. Defaults to true.
+ */
+ processLogs?: boolean;
+ /**
+ * Include interactive shell logs written under the session's `shell-logs` directory. Defaults to true.
+ */
+ shellLogs?: boolean;
+ /**
+ * Server-local path to the session's events.jsonl file. Internal callers normally omit this and let the runtime derive it from the session.
+ */
+ eventsPath?: string;
+ /**
+ * Server-local path to the current process log. When set, it is included as `process.log` and its directory is searched for prior logs from the same session.
+ */
+ currentProcessLogPath?: string;
+ /**
+ * Server-local process log directory to search when `currentProcessLogPath` is unavailable, useful for collecting logs for inactive sessions.
+ */
+ processLogDirectory?: string;
+ /**
+ * Maximum number of previous process logs to include. Defaults to 5.
+ */
+ previousProcessLogLimit?: number;
+}
+/**
+ * Options for collecting a redacted session debug bundle.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsRequest".
+ */
+/** @experimental */
+export interface DebugCollectLogsRequest {
+ destination: DebugCollectLogsDestination;
+ include?: DebugCollectLogsInclude;
+ /**
+ * Caller-provided server-local files or directories to include in addition to the runtime's built-in session diagnostics. This lets host applications add their own diagnostics without changing the API shape.
+ */
+ additionalEntries?: DebugCollectLogsEntry[];
+}
+/**
+ * Result of collecting a redacted debug bundle.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsResult".
+ */
+/** @experimental */
+export interface DebugCollectLogsResult {
+ kind: DebugCollectLogsResultKind;
+ /**
+ * Actual archive path or staging directory path written. This may differ from the requested path when no-overwrite suffixing or fallback-to-temp-directory was needed.
+ */
+ path: string;
+ /**
+ * Files included in the redacted bundle.
+ */
+ entries: DebugCollectLogsCollectedEntry[];
+ /**
+ * Optional files or directories that could not be included.
+ */
+ skippedEntries?: DebugCollectLogsSkippedEntry[];
+}
+/**
+ * An optional debug bundle entry that could not be included.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "DebugCollectLogsSkippedEntry".
+ */
+/** @experimental */
+export interface DebugCollectLogsSkippedEntry {
+ /**
+ * Relative path requested for this bundle entry.
+ */
+ bundlePath: string;
+ /**
+ * Server-local source path that could not be read.
+ */
+ path?: string;
+ /**
+ * Reason the entry was skipped.
+ */
+ reason: string;
+}
+/**
+ * MCP server discovered by `mcp.discover`, with config source, optional plugin source, transport type, and enabled state.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "DiscoveredMcpServer".
@@ -3961,7 +4421,7 @@ export interface ExecuteCommandResult {
error?: string;
}
/**
- * Schema for the `Extension` type.
+ * Discovered extension metadata, including source-qualified ID, name, discovery source, status, and optional process ID.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "Extension".
@@ -4477,7 +4937,7 @@ export interface GitHubTelemetryEvent {
client?: GitHubTelemetryClientInfo;
}
/**
- * Payload for a `gitHubTelemetry.event` notification: a single GitHub telemetry event the runtime forwards to a host connection that opted into telemetry forwarding for the session.
+ * Payload for a `gitHubTelemetry.event` notification: a single GitHub telemetry event the runtime forwards to a host connection that opted into telemetry forwarding during the `server.connect` handshake.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "GitHubTelemetryNotification".
@@ -4485,9 +4945,9 @@ export interface GitHubTelemetryEvent {
/** @experimental */
export interface GitHubTelemetryNotification {
/**
- * Session the telemetry event belongs to.
+ * Session the telemetry event belongs to, when it is session-scoped. Omitted for sessionless events (for example, `server.sendTelemetry` calls with no session id), which are still forwarded to opted-in connections.
*/
- sessionId: string;
+ sessionId?: string;
/**
* Whether this is a restricted telemetry event (cli.restricted_telemetry). Hosts must route restricted events to first-party Microsoft stores only.
*/
@@ -4663,7 +5123,7 @@ export interface HistoryTruncateResult {
eventsRemoved: number;
}
/**
- * Schema for the `InstalledPlugin` type.
+ * Installed plugin record from global state, with marketplace, version, install time, enabled state, cache path, and source.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "InstalledPlugin".
@@ -4697,7 +5157,7 @@ export interface InstalledPlugin {
source?: InstalledPluginSource;
}
/**
- * Schema for the `InstalledPluginSourceGitHub` type.
+ * Source descriptor for a direct GitHub plugin install, with `owner/repo`, optional ref, and optional subpath.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "InstalledPluginSourceGitHub".
@@ -4713,7 +5173,7 @@ export interface InstalledPluginSourceGitHub {
path?: string;
}
/**
- * Schema for the `InstalledPluginSourceUrl` type.
+ * Source descriptor for a direct URL plugin install, with URL, optional ref, and optional subpath.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "InstalledPluginSourceUrl".
@@ -4729,7 +5189,7 @@ export interface InstalledPluginSourceUrl {
path?: string;
}
/**
- * Schema for the `InstalledPluginSourceLocal` type.
+ * Source descriptor for a direct local plugin install, with a local filesystem path.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "InstalledPluginSourceLocal".
@@ -4772,7 +5232,7 @@ export interface InstalledPluginInfo {
enabled: boolean;
}
/**
- * Schema for the `InstructionDiscoveryPath` type.
+ * Canonical file or directory where custom instructions can be discovered or created, with location, kind, preference, and project path.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "InstructionDiscoveryPath".
@@ -4855,7 +5315,7 @@ export interface InstructionsGetSourcesResult {
sources: InstructionSource[];
}
/**
- * Schema for the `InstructionSource` type.
+ * Loaded instruction source for a session, including path, content, category, location, applicability, and optional description.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "InstructionSource".
@@ -4974,6 +5434,18 @@ export interface LlmInferenceHttpRequestStartRequest {
url: string;
headers: LlmInferenceHeaders;
transport?: LlmInferenceHttpRequestStartTransport;
+ /**
+ * Stable per-agent-instance id attributing this request to a specific agent trajectory. Present when the request originates from an agent turn; absent for requests issued outside any agent context (e.g. some SDK callers). A request with an `agentId` but no `parentAgentId` is a root-agent request; one carrying both is a subagent request. Sourced from the runtime's per-request agent context and surfaced on the envelope independently of transport, so it is available for both first-party (CAPI) and BYOK/custom-provider requests; on the CAPI transport the runtime derives the upstream `X-Agent-Task-Id` header from this same context. Consumers routing each provider call to a training trajectory should key on this rather than on lifecycle events, since it is available on the request path before sampling.
+ */
+ agentId?: string;
+ /**
+ * Id of the parent agent that spawned the agent issuing this request. Present only for subagent requests; absent for root-agent requests and non-agent requests. Combined with `agentId`, this lets consumers attribute a call to a child trajectory versus the root. Like `agentId`, it comes from the runtime's per-request agent context independently of transport; on the CAPI transport the runtime derives the upstream `X-Parent-Agent-Id` header from this same context.
+ */
+ parentAgentId?: string;
+ /**
+ * Coarse classification of the interaction that produced this request. Open string for forward-compatibility; known values include `conversation-agent`, `conversation-subagent`, `conversation-sampling`, `conversation-background`, `conversation-compaction`, and `conversation-user`. Absent when the runtime did not classify the request. Comes from the runtime's per-request agent context independently of transport; on the CAPI transport the runtime derives the upstream `X-Interaction-Type` header from this same context.
+ */
+ interactionType?: string;
}
/**
* Acknowledgement. Returning successfully simply means the SDK accepted the start frame; it does not imply the request will succeed.
@@ -5088,7 +5560,7 @@ export interface LlmInferenceSetProviderResult {
success: boolean;
}
/**
- * Schema for the `LocalSessionMetadataValue` type.
+ * Persisted local session metadata, including identifiers, timestamps, summary/name, client, context, detached state, and task ID.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "LocalSessionMetadataValue".
@@ -5301,7 +5773,7 @@ export interface MarketplaceListResult {
marketplaces: MarketplaceInfo[];
}
/**
- * Schema for the `MarketplaceRefreshEntry` type.
+ * Per-marketplace refresh result, including marketplace name, success flag, and optional failure error.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "MarketplaceRefreshEntry".
@@ -5352,7 +5824,7 @@ export interface MarketplaceRemoveResult {
dependentPlugins?: string[];
}
/**
- * Schema for the `McpAllowedServer` type.
+ * MCP server allowed by policy, with server name and optional PII-free explanatory note.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "McpAllowedServer".
@@ -5567,7 +6039,7 @@ export interface McpAppsReadResourceResult {
contents: McpAppsResourceContent[];
}
/**
- * Schema for the `McpAppsResourceContent` type.
+ * MCP Apps resource content with URI, optional MIME type, text or base64 blob, and resource metadata.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "McpAppsResourceContent".
@@ -5973,7 +6445,7 @@ export interface McpExecuteSamplingResult {
[k: string]: unknown | undefined;
}
/**
- * Schema for the `McpFilteredServer` type.
+ * MCP server filtered by policy, with name, reason, optional redacted reason, and enterprise login.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "McpFilteredServer".
@@ -6148,7 +6620,7 @@ export interface McpListToolsResult {
tools: McpTools[];
}
/**
- * Schema for the `McpTools` type.
+ * MCP tool metadata with tool name and optional description.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "McpTools".
@@ -6379,7 +6851,7 @@ export interface McpSamplingExecutionResult {
error?: string;
}
/**
- * Schema for the `McpServer` type.
+ * MCP server status entry, including config source/plugin source and any connection error.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "McpServer".
@@ -6765,7 +7237,7 @@ export interface MetadataSnapshotRemoteMetadataRepository {
branch: string;
}
/**
- * Schema for the `Model` type.
+ * Copilot model metadata, including identifier, display name, capabilities, policy, billing, reasoning efforts, and picker categories.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "Model".
@@ -7261,7 +7733,7 @@ export interface NameSetRequest {
name: string;
}
/**
- * Schema for the `OptionsUpdateAdditionalContentExclusionPolicy` type.
+ * Content-exclusion policy supplied to `session.options.update`, with rules, last-updated data, and scope.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "OptionsUpdateAdditionalContentExclusionPolicy".
@@ -7273,7 +7745,7 @@ export interface OptionsUpdateAdditionalContentExclusionPolicy {
scope: OptionsUpdateAdditionalContentExclusionPolicyScope;
}
/**
- * Schema for the `OptionsUpdateAdditionalContentExclusionPolicyRule` type.
+ * Single content-exclusion rule supplied to `session.options.update`, with paths, match conditions, and source.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "OptionsUpdateAdditionalContentExclusionPolicyRule".
@@ -7286,7 +7758,7 @@ export interface OptionsUpdateAdditionalContentExclusionPolicyRule {
source: OptionsUpdateAdditionalContentExclusionPolicyRuleSource;
}
/**
- * Schema for the `OptionsUpdateAdditionalContentExclusionPolicyRuleSource` type.
+ * Source descriptor for a `session.options.update` content-exclusion rule, with source name and type.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "OptionsUpdateAdditionalContentExclusionPolicyRuleSource".
@@ -7297,7 +7769,7 @@ export interface OptionsUpdateAdditionalContentExclusionPolicyRuleSource {
type: string;
}
/**
- * Schema for the `PendingPermissionRequest` type.
+ * Pending permission prompt reconstructed from event history, with request ID and user-facing prompt details.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PendingPermissionRequest".
@@ -7324,7 +7796,7 @@ export interface PendingPermissionRequestList {
items: PendingPermissionRequest[];
}
/**
- * Schema for the `PermissionDecisionApproveOnce` type.
+ * Permission-decision request variant to approve only the current permission request.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveOnce".
@@ -7337,7 +7809,7 @@ export interface PermissionDecisionApproveOnce {
kind: "approve-once";
}
/**
- * Schema for the `PermissionDecisionApproveForSession` type.
+ * Permission-decision request variant to approve for the rest of the session, with optional tool approval or URL domain.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSession".
@@ -7355,7 +7827,7 @@ export interface PermissionDecisionApproveForSession {
domain?: string;
}
/**
- * Schema for the `PermissionDecisionApproveForSessionApprovalCommands` type.
+ * Session-scoped approval details for specific command identifiers.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSessionApprovalCommands".
@@ -7372,7 +7844,7 @@ export interface PermissionDecisionApproveForSessionApprovalCommands {
commandIdentifiers: string[];
}
/**
- * Schema for the `PermissionDecisionApproveForSessionApprovalRead` type.
+ * Session-scoped approval details for read-only filesystem operations.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSessionApprovalRead".
@@ -7385,7 +7857,7 @@ export interface PermissionDecisionApproveForSessionApprovalRead {
kind: "read";
}
/**
- * Schema for the `PermissionDecisionApproveForSessionApprovalWrite` type.
+ * Session-scoped approval details for filesystem write operations.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSessionApprovalWrite".
@@ -7398,7 +7870,7 @@ export interface PermissionDecisionApproveForSessionApprovalWrite {
kind: "write";
}
/**
- * Schema for the `PermissionDecisionApproveForSessionApprovalMcp` type.
+ * Session-scoped approval details for an MCP server tool, or all tools on the server when `toolName` is null.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSessionApprovalMcp".
@@ -7419,7 +7891,7 @@ export interface PermissionDecisionApproveForSessionApprovalMcp {
toolName: string | null;
}
/**
- * Schema for the `PermissionDecisionApproveForSessionApprovalMcpSampling` type.
+ * Session-scoped approval details for MCP sampling requests from a server.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSessionApprovalMcpSampling".
@@ -7436,7 +7908,7 @@ export interface PermissionDecisionApproveForSessionApprovalMcpSampling {
serverName: string;
}
/**
- * Schema for the `PermissionDecisionApproveForSessionApprovalMemory` type.
+ * Session-scoped approval details for writes to long-term memory.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSessionApprovalMemory".
@@ -7449,7 +7921,7 @@ export interface PermissionDecisionApproveForSessionApprovalMemory {
kind: "memory";
}
/**
- * Schema for the `PermissionDecisionApproveForSessionApprovalCustomTool` type.
+ * Session-scoped approval details for a custom tool, keyed by tool name.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSessionApprovalCustomTool".
@@ -7466,7 +7938,7 @@ export interface PermissionDecisionApproveForSessionApprovalCustomTool {
toolName: string;
}
/**
- * Schema for the `PermissionDecisionApproveForSessionApprovalExtensionManagement` type.
+ * Session-scoped approval details for extension-management operations, optionally narrowed by operation.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSessionApprovalExtensionManagement".
@@ -7483,7 +7955,7 @@ export interface PermissionDecisionApproveForSessionApprovalExtensionManagement
operation?: string;
}
/**
- * Schema for the `PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess` type.
+ * Session-scoped approval details for an extension's permission-gated capability access, keyed by extension name.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess".
@@ -7500,7 +7972,7 @@ export interface PermissionDecisionApproveForSessionApprovalExtensionPermissionA
extensionName: string;
}
/**
- * Schema for the `PermissionDecisionApproveForLocation` type.
+ * Permission-decision request variant to approve and persist a permission for a project location, with approval details and location key.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocation".
@@ -7518,7 +7990,7 @@ export interface PermissionDecisionApproveForLocation {
locationKey: string;
}
/**
- * Schema for the `PermissionDecisionApproveForLocationApprovalCommands` type.
+ * Location-scoped approval details for specific command identifiers.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocationApprovalCommands".
@@ -7535,7 +8007,7 @@ export interface PermissionDecisionApproveForLocationApprovalCommands {
commandIdentifiers: string[];
}
/**
- * Schema for the `PermissionDecisionApproveForLocationApprovalRead` type.
+ * Location-scoped approval details for read-only filesystem operations.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocationApprovalRead".
@@ -7548,7 +8020,7 @@ export interface PermissionDecisionApproveForLocationApprovalRead {
kind: "read";
}
/**
- * Schema for the `PermissionDecisionApproveForLocationApprovalWrite` type.
+ * Location-scoped approval details for filesystem write operations.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocationApprovalWrite".
@@ -7561,7 +8033,7 @@ export interface PermissionDecisionApproveForLocationApprovalWrite {
kind: "write";
}
/**
- * Schema for the `PermissionDecisionApproveForLocationApprovalMcp` type.
+ * Location-scoped approval details for an MCP server tool, or all tools on the server when `toolName` is null.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocationApprovalMcp".
@@ -7582,7 +8054,7 @@ export interface PermissionDecisionApproveForLocationApprovalMcp {
toolName: string | null;
}
/**
- * Schema for the `PermissionDecisionApproveForLocationApprovalMcpSampling` type.
+ * Location-scoped approval details for MCP sampling requests from a server.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocationApprovalMcpSampling".
@@ -7599,7 +8071,7 @@ export interface PermissionDecisionApproveForLocationApprovalMcpSampling {
serverName: string;
}
/**
- * Schema for the `PermissionDecisionApproveForLocationApprovalMemory` type.
+ * Location-scoped approval details for writes to long-term memory.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocationApprovalMemory".
@@ -7612,7 +8084,7 @@ export interface PermissionDecisionApproveForLocationApprovalMemory {
kind: "memory";
}
/**
- * Schema for the `PermissionDecisionApproveForLocationApprovalCustomTool` type.
+ * Location-scoped approval details for a custom tool, keyed by tool name.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocationApprovalCustomTool".
@@ -7629,7 +8101,7 @@ export interface PermissionDecisionApproveForLocationApprovalCustomTool {
toolName: string;
}
/**
- * Schema for the `PermissionDecisionApproveForLocationApprovalExtensionManagement` type.
+ * Location-scoped approval details for extension-management operations, optionally narrowed by operation.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocationApprovalExtensionManagement".
@@ -7646,7 +8118,7 @@ export interface PermissionDecisionApproveForLocationApprovalExtensionManagement
operation?: string;
}
/**
- * Schema for the `PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess` type.
+ * Location-scoped approval details for an extension's permission-gated capability access, keyed by extension name.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess".
@@ -7663,7 +8135,7 @@ export interface PermissionDecisionApproveForLocationApprovalExtensionPermission
extensionName: string;
}
/**
- * Schema for the `PermissionDecisionApprovePermanently` type.
+ * Permission-decision request variant to permanently approve a URL domain across sessions.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApprovePermanently".
@@ -7680,7 +8152,7 @@ export interface PermissionDecisionApprovePermanently {
domain: string;
}
/**
- * Schema for the `PermissionDecisionReject` type.
+ * Permission-decision request variant to reject a pending permission request, with optional feedback.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionReject".
@@ -7697,7 +8169,7 @@ export interface PermissionDecisionReject {
feedback?: string;
}
/**
- * Schema for the `PermissionDecisionUserNotAvailable` type.
+ * Permission-decision variant indicating no user was available to confirm the request.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionUserNotAvailable".
@@ -7710,7 +8182,7 @@ export interface PermissionDecisionUserNotAvailable {
kind: "user-not-available";
}
/**
- * Schema for the `PermissionDecisionApproved` type.
+ * Permission-decision variant indicating the request was approved.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApproved".
@@ -7723,7 +8195,7 @@ export interface PermissionDecisionApproved {
kind: "approved";
}
/**
- * Schema for the `PermissionDecisionApprovedForSession` type.
+ * Permission-decision variant indicating approval was remembered for the session, with approval details.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApprovedForSession".
@@ -7737,7 +8209,7 @@ export interface PermissionDecisionApprovedForSession {
approval: UserToolSessionApproval;
}
/**
- * Schema for the `PermissionDecisionApprovedForLocation` type.
+ * Permission-decision variant indicating approval was persisted for a project location, with approval details and location key.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionApprovedForLocation".
@@ -7755,7 +8227,7 @@ export interface PermissionDecisionApprovedForLocation {
locationKey: string;
}
/**
- * Schema for the `PermissionDecisionCancelled` type.
+ * Permission-decision variant indicating the request was cancelled before use, with an optional reason.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionCancelled".
@@ -7772,7 +8244,7 @@ export interface PermissionDecisionCancelled {
reason?: string;
}
/**
- * Schema for the `PermissionDecisionDeniedByRules` type.
+ * Permission-decision variant indicating explicit denial by permission rules, with the matching rules.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionDeniedByRules".
@@ -7789,7 +8261,7 @@ export interface PermissionDecisionDeniedByRules {
rules: PermissionRule[];
}
/**
- * Schema for the `PermissionDecisionDeniedNoApprovalRuleAndCouldNotRequestFromUser` type.
+ * Permission-decision variant indicating no approval rule matched and user confirmation was unavailable.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionDeniedNoApprovalRuleAndCouldNotRequestFromUser".
@@ -7802,7 +8274,7 @@ export interface PermissionDecisionDeniedNoApprovalRuleAndCouldNotRequestFromUse
kind: "denied-no-approval-rule-and-could-not-request-from-user";
}
/**
- * Schema for the `PermissionDecisionDeniedInteractivelyByUser` type.
+ * Permission-decision variant indicating the user denied an interactive prompt, with optional feedback and force-reject flag.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionDeniedInteractivelyByUser".
@@ -7823,7 +8295,7 @@ export interface PermissionDecisionDeniedInteractivelyByUser {
forceReject?: boolean;
}
/**
- * Schema for the `PermissionDecisionDeniedByContentExclusionPolicy` type.
+ * Permission-decision variant indicating denial by content-exclusion policy, with path and message.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionDeniedByContentExclusionPolicy".
@@ -7844,7 +8316,7 @@ export interface PermissionDecisionDeniedByContentExclusionPolicy {
message: string;
}
/**
- * Schema for the `PermissionDecisionDeniedByPermissionRequestHook` type.
+ * Permission-decision variant indicating denial by a permission request hook, with optional message and interrupt flag.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionDecisionDeniedByPermissionRequestHook".
@@ -7893,7 +8365,7 @@ export interface PermissionLocationAddToolApprovalParams {
approval: PermissionsLocationsAddToolApprovalDetails;
}
/**
- * Schema for the `PermissionsLocationsAddToolApprovalDetailsCommands` type.
+ * Location-persisted tool approval details for specific command identifiers.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsLocationsAddToolApprovalDetailsCommands".
@@ -7910,7 +8382,7 @@ export interface PermissionsLocationsAddToolApprovalDetailsCommands {
commandIdentifiers: string[];
}
/**
- * Schema for the `PermissionsLocationsAddToolApprovalDetailsRead` type.
+ * Location-persisted tool approval details for read-only filesystem operations.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsLocationsAddToolApprovalDetailsRead".
@@ -7923,7 +8395,7 @@ export interface PermissionsLocationsAddToolApprovalDetailsRead {
kind: "read";
}
/**
- * Schema for the `PermissionsLocationsAddToolApprovalDetailsWrite` type.
+ * Location-persisted tool approval details for filesystem write operations.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsLocationsAddToolApprovalDetailsWrite".
@@ -7936,7 +8408,7 @@ export interface PermissionsLocationsAddToolApprovalDetailsWrite {
kind: "write";
}
/**
- * Schema for the `PermissionsLocationsAddToolApprovalDetailsMcp` type.
+ * Location-persisted tool approval details for an MCP server tool, or all tools when `toolName` is null.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsLocationsAddToolApprovalDetailsMcp".
@@ -7957,7 +8429,7 @@ export interface PermissionsLocationsAddToolApprovalDetailsMcp {
toolName: string | null;
}
/**
- * Schema for the `PermissionsLocationsAddToolApprovalDetailsMcpSampling` type.
+ * Location-persisted tool approval details for MCP sampling requests from a server.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsLocationsAddToolApprovalDetailsMcpSampling".
@@ -7974,7 +8446,7 @@ export interface PermissionsLocationsAddToolApprovalDetailsMcpSampling {
serverName: string;
}
/**
- * Schema for the `PermissionsLocationsAddToolApprovalDetailsMemory` type.
+ * Location-persisted tool approval details for writes to long-term memory.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsLocationsAddToolApprovalDetailsMemory".
@@ -7987,7 +8459,7 @@ export interface PermissionsLocationsAddToolApprovalDetailsMemory {
kind: "memory";
}
/**
- * Schema for the `PermissionsLocationsAddToolApprovalDetailsCustomTool` type.
+ * Location-persisted tool approval details for a custom tool, keyed by tool name.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsLocationsAddToolApprovalDetailsCustomTool".
@@ -8004,7 +8476,7 @@ export interface PermissionsLocationsAddToolApprovalDetailsCustomTool {
toolName: string;
}
/**
- * Schema for the `PermissionsLocationsAddToolApprovalDetailsExtensionManagement` type.
+ * Location-persisted tool approval details for extension-management operations, optionally narrowed by operation.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsLocationsAddToolApprovalDetailsExtensionManagement".
@@ -8021,7 +8493,7 @@ export interface PermissionsLocationsAddToolApprovalDetailsExtensionManagement {
operation?: string;
}
/**
- * Schema for the `PermissionsLocationsAddToolApprovalDetailsExtensionPermissionAccess` type.
+ * Location-persisted tool approval details for an extension's permission-gated capability access, keyed by extension name.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsLocationsAddToolApprovalDetailsExtensionPermissionAccess".
@@ -8271,7 +8743,7 @@ export interface PermissionRulesSet {
denied: PermissionRule[];
}
/**
- * Schema for the `PermissionsConfigureAdditionalContentExclusionPolicy` type.
+ * Content-exclusion policy supplied to `session.permissions.configure`, with rules, last-updated data, and scope.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsConfigureAdditionalContentExclusionPolicy".
@@ -8283,7 +8755,7 @@ export interface PermissionsConfigureAdditionalContentExclusionPolicy {
scope: PermissionsConfigureAdditionalContentExclusionPolicyScope;
}
/**
- * Schema for the `PermissionsConfigureAdditionalContentExclusionPolicyRule` type.
+ * Single content-exclusion rule supplied to `session.permissions.configure`, with paths, match conditions, and source.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsConfigureAdditionalContentExclusionPolicyRule".
@@ -8296,7 +8768,7 @@ export interface PermissionsConfigureAdditionalContentExclusionPolicyRule {
source: PermissionsConfigureAdditionalContentExclusionPolicyRuleSource;
}
/**
- * Schema for the `PermissionsConfigureAdditionalContentExclusionPolicyRuleSource` type.
+ * Source descriptor for a `session.permissions.configure` content-exclusion rule, with source name and type.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsConfigureAdditionalContentExclusionPolicyRuleSource".
@@ -8506,17 +8978,22 @@ export interface PermissionsResetSessionApprovalsResult {
success: boolean;
}
/**
- * Whether to enable full allow-all permissions for the session.
+ * Allow-all mode to apply for the session.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PermissionsSetAllowAllRequest".
*/
/** @experimental */
export interface PermissionsSetAllowAllRequest {
+ mode?: PermissionsAllowAllMode;
/**
- * Whether to enable full allow-all permissions
+ * Legacy full allow-all toggle. Prefer `mode`; when `mode` is omitted, `enabled: true` is treated as `mode: "on"` and any other value is treated as `mode: "off"`.
*/
- enabled: boolean;
+ enabled?: boolean;
+ /**
+ * Optional model id for the `auto` mode auto-approval LLM judging. Only meaningful when `mode` is `auto`; ignored otherwise. When omitted, the session's active model is used.
+ */
+ model?: string;
source?: PermissionsSetAllowAllSource;
}
/**
@@ -8739,7 +9216,7 @@ export interface PlanUpdateRequest {
content: string;
}
/**
- * Schema for the `Plugin` type.
+ * Session plugin metadata, with name, marketplace, optional version, and enabled state.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "Plugin".
@@ -8961,7 +9438,7 @@ export interface PluginsUpdateRequest {
name: string;
}
/**
- * Schema for the `PluginUpdateAllEntry` type.
+ * Per-plugin result from updating all plugins, with versions, skills installed, success flag, and optional error.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "PluginUpdateAllEntry".
@@ -9713,7 +10190,7 @@ export interface PushAttachmentBlob {
displayName?: string;
}
/**
- * Schema for the `QueuePendingItems` type.
+ * User-facing pending queue entry, with kind and display text for a queued message, slash command, or model change.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "QueuePendingItems".
@@ -10258,14 +10735,6 @@ export interface SandboxConfigUserPolicyNetwork {
* Whether traffic to local/loopback addresses is allowed.
*/
allowLocalNetwork?: boolean;
- /**
- * Hosts allowed in addition to the base policy.
- */
- allowedHosts?: string[];
- /**
- * Hosts explicitly blocked.
- */
- blockedHosts?: string[];
}
/**
* macOS seatbelt-specific options.
@@ -10304,7 +10773,7 @@ export interface SandboxConfigUserPolicyExperimentalSeatbelt {
keychainAccess?: boolean;
}
/**
- * Schema for the `ScheduleEntry` type.
+ * Scheduled prompt entry with ID, timing (`intervalMs`, `cron`, or `at`), prompt text, recurrence, and next run time.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "ScheduleEntry".
@@ -10530,7 +10999,7 @@ export interface ServerInstructionSourceList {
sources: InstructionSource[];
}
/**
- * Schema for the `ServerSkill` type.
+ * Server-side skill metadata, including name, description, source, enabled/invocable state, path, project path, and argument hint.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "ServerSkill".
@@ -10781,7 +11250,7 @@ export interface SessionFsReaddirResult {
error?: SessionFsError;
}
/**
- * Schema for the `SessionFsReaddirWithTypesEntry` type.
+ * Directory entry returned by session filesystem `readdirWithTypes`, with name and entry type.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SessionFsReaddirWithTypesEntry".
@@ -11085,7 +11554,7 @@ export interface SessionFsWriteFileRequest {
mode?: number;
}
/**
- * Schema for the `SessionInstalledPlugin` type.
+ * Installed plugin record for a session, with marketplace, version, install time, enabled state, cache path, and source.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SessionInstalledPlugin".
@@ -11119,7 +11588,7 @@ export interface SessionInstalledPlugin {
source?: SessionInstalledPluginSource;
}
/**
- * Schema for the `SessionInstalledPluginSourceGitHub` type.
+ * Source descriptor for a direct GitHub plugin install, with `owner/repo`, optional ref, and optional subpath.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SessionInstalledPluginSourceGitHub".
@@ -11135,7 +11604,7 @@ export interface SessionInstalledPluginSourceGitHub {
path?: string;
}
/**
- * Schema for the `SessionInstalledPluginSourceUrl` type.
+ * Source descriptor for a direct URL plugin install, with URL, optional ref, and optional subpath.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SessionInstalledPluginSourceUrl".
@@ -11151,7 +11620,7 @@ export interface SessionInstalledPluginSourceUrl {
path?: string;
}
/**
- * Schema for the `SessionInstalledPluginSourceLocal` type.
+ * Source descriptor for a direct local plugin install, with a local filesystem path.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SessionInstalledPluginSourceLocal".
@@ -11350,6 +11819,10 @@ export interface SessionOpenOptions {
expAssignments?: {
[k: string]: unknown | undefined;
};
+ /**
+ * Opt-in: self-fetch enterprise managed settings at session bootstrap.
+ */
+ selfFetchManagedSettings?: boolean;
/**
* Feature-flag values resolved by the host.
*/
@@ -11527,7 +12000,7 @@ export interface SessionOpenOptions {
sessionCapabilities?: SessionCapability[];
}
/**
- * Schema for the `SessionOpenOptionsAdditionalContentExclusionPolicy` type.
+ * Content-exclusion policy supplied to `sessions.open` options, with rules, last-updated data, and scope.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SessionOpenOptionsAdditionalContentExclusionPolicy".
@@ -11539,7 +12012,7 @@ export interface SessionOpenOptionsAdditionalContentExclusionPolicy {
scope: SessionOpenOptionsAdditionalContentExclusionPolicyScope;
}
/**
- * Schema for the `SessionOpenOptionsAdditionalContentExclusionPolicyRule` type.
+ * Single content-exclusion rule supplied to `sessions.open` options, with paths, match conditions, and source.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SessionOpenOptionsAdditionalContentExclusionPolicyRule".
@@ -11552,7 +12025,7 @@ export interface SessionOpenOptionsAdditionalContentExclusionPolicyRule {
source: SessionOpenOptionsAdditionalContentExclusionPolicyRuleSource;
}
/**
- * Schema for the `SessionOpenOptionsAdditionalContentExclusionPolicyRuleSource` type.
+ * Source descriptor for a `sessions.open` content-exclusion rule, with source name and type.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SessionOpenOptionsAdditionalContentExclusionPolicyRuleSource".
@@ -11750,7 +12223,7 @@ export interface SessionOpenResult {
progress?: SessionsOpenProgress[];
}
/**
- * Schema for the `SessionsOpenProgress` type.
+ * `sessions.open` handoff progress update with step, status, and optional message.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SessionsOpenProgress".
@@ -11893,6 +12366,134 @@ export interface SessionSetCredentialsResult {
*/
copilotUserResolved?: boolean;
}
+/**
+ * Availability of built-in job tools surfaced to boundary consumers.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsBuiltInToolAvailabilitySnapshot".
+ */
+/** @experimental */
+export interface SessionSettingsBuiltInToolAvailabilitySnapshot {
+ reportProgress?: boolean;
+ createPullRequest?: boolean;
+}
+/**
+ * Named Rust-owned settings predicate to evaluate for this session.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsEvaluatePredicateRequest".
+ */
+/** @experimental */
+export interface SessionSettingsEvaluatePredicateRequest {
+ name: SessionSettingsPredicateName;
+ /**
+ * Tool name for tool-scoped predicates such as trivial-change handling.
+ */
+ toolName?: string;
+}
+/**
+ * Result of evaluating a Rust-owned settings predicate.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsEvaluatePredicateResult".
+ */
+/** @experimental */
+export interface SessionSettingsEvaluatePredicateResult {
+ enabled: boolean;
+}
+/**
+ * Redacted job settings for a session. The job nonce is excluded.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsJobSnapshot".
+ */
+/** @experimental */
+export interface SessionSettingsJobSnapshot {
+ eventType?: string;
+ isTriggerJob?: boolean;
+ builtInToolAvailability?: SessionSettingsBuiltInToolAvailabilitySnapshot;
+}
+/**
+ * Redacted model routing settings for a session.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsModelSnapshot".
+ */
+/** @experimental */
+export interface SessionSettingsModelSnapshot {
+ model?: string;
+ defaultReasoningEffort?: string;
+ instanceId?: string;
+ callbackUrl?: string;
+}
+/**
+ * Online-evaluation settings safe to expose across the SDK boundary.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsOnlineEvaluationSnapshot".
+ */
+/** @experimental */
+export interface SessionSettingsOnlineEvaluationSnapshot {
+ disableOnlineEvaluation?: boolean;
+ enableOnlineEvaluationOutputFile?: boolean;
+}
+/**
+ * Redacted repository and GitHub host settings for a session.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsRepoSnapshot".
+ */
+/** @experimental */
+export interface SessionSettingsRepoSnapshot {
+ name?: string;
+ id?: number;
+ branch?: string;
+ commit?: string;
+ readWrite?: boolean;
+ ownerName?: string;
+ ownerId?: number;
+ serverUrl?: string;
+ host?: string;
+ hostProtocol?: string;
+ secretScanningUrl?: string;
+ prCommitCount?: number;
+}
+/**
+ * Redacted, serializable view of session runtime settings for SDK boundary consumers. Secrets and raw feature flags are intentionally excluded.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsSnapshot".
+ */
+/** @experimental */
+export interface SessionSettingsSnapshot {
+ version?: string;
+ clientName?: string;
+ timeoutMs?: number;
+ startTimeMs?: number;
+ repo: SessionSettingsRepoSnapshot;
+ model: SessionSettingsModelSnapshot;
+ validation: SessionSettingsValidationSnapshot;
+ job: SessionSettingsJobSnapshot;
+ onlineEvaluation: SessionSettingsOnlineEvaluationSnapshot;
+}
+/**
+ * Redacted validation and memory-tool settings for a session.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "SessionSettingsValidationSnapshot".
+ */
+/** @experimental */
+export interface SessionSettingsValidationSnapshot {
+ timeout?: number;
+ dependabotTimeout?: number;
+ codeqlEnabled?: boolean;
+ codeReviewEnabled?: boolean;
+ codeReviewModel?: string;
+ advisoryEnabled?: boolean;
+ secretScanningEnabled?: boolean;
+ memoryStoreEnabled?: boolean;
+ memoryVoteEnabled?: boolean;
+}
/**
* UUID prefix to resolve to a unique session ID.
*
@@ -12637,7 +13238,7 @@ export interface ShutdownRequest {
reason?: string;
}
/**
- * Schema for the `Skill` type.
+ * Skill metadata available to a session, with name, description, source, enabled/invocable state, path, plugin, and argument hint.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "Skill".
@@ -12675,7 +13276,7 @@ export interface Skill {
argumentHint?: string;
}
/**
- * Schema for the `SkillDiscoveryPath` type.
+ * Canonical directory where skills can be discovered or created, with scope, preference, and optional project path.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SkillDiscoveryPath".
@@ -12813,7 +13414,7 @@ export interface SkillsGetInvokedResult {
skills: SkillsInvokedSkill[];
}
/**
- * Schema for the `SkillsInvokedSkill` type.
+ * Skill invocation record with name, path, content, allowed tools, and turn number.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SkillsInvokedSkill".
@@ -12859,7 +13460,7 @@ export interface SkillsLoadDiagnostics {
errors: string[];
}
/**
- * Schema for the `SlashCommandAgentPromptResult` type.
+ * Slash-command invocation result that submits an agent prompt, with display prompt, optional mode, and settings-change flag.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SlashCommandAgentPromptResult".
@@ -12885,7 +13486,7 @@ export interface SlashCommandAgentPromptResult {
runtimeSettingsChanged?: boolean;
}
/**
- * Schema for the `SlashCommandCompletedResult` type.
+ * Slash-command invocation result indicating completion, with optional message and settings-change flag.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SlashCommandCompletedResult".
@@ -12906,7 +13507,7 @@ export interface SlashCommandCompletedResult {
runtimeSettingsChanged?: boolean;
}
/**
- * Schema for the `SlashCommandTextResult` type.
+ * Slash-command invocation result containing text output plus Markdown/ANSI rendering flags.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SlashCommandTextResult".
@@ -12935,7 +13536,7 @@ export interface SlashCommandTextResult {
runtimeSettingsChanged?: boolean;
}
/**
- * Schema for the `SlashCommandSelectSubcommandResult` type.
+ * Slash-command invocation result asking the client to present subcommand options for a parent command.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SlashCommandSelectSubcommandResult".
@@ -12964,7 +13565,7 @@ export interface SlashCommandSelectSubcommandResult {
runtimeSettingsChanged?: boolean;
}
/**
- * Schema for the `SlashCommandSelectSubcommandOption` type.
+ * Selectable slash-command subcommand option with name, description, and optional group label.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "SlashCommandSelectSubcommandOption".
@@ -13003,7 +13604,7 @@ export interface SubagentSettingsEntry {
contextTier?: SubagentSettingsEntryContextTier;
}
/**
- * Schema for the `TaskAgentInfo` type.
+ * Tracked background agent task metadata, including IDs, status, timing, agent type, prompt, model, result, and latest response.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "TaskAgentInfo".
@@ -13082,7 +13683,7 @@ export interface TaskAgentInfo {
idleSince?: string;
}
/**
- * Schema for the `TaskAgentProgress` type.
+ * Progress snapshot for an agent task, with recent activity lines and optional latest intent.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "TaskAgentProgress".
@@ -13103,7 +13704,7 @@ export interface TaskAgentProgress {
latestIntent?: string;
}
/**
- * Schema for the `TaskProgressLine` type.
+ * Timestamped display line for task progress output or recent agent activity.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "TaskProgressLine".
@@ -13120,7 +13721,7 @@ export interface TaskProgressLine {
timestamp: string;
}
/**
- * Schema for the `TaskShellInfo` type.
+ * Tracked shell task metadata, including ID, command, status, timing, attachment/execution mode, log path, and PID.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "TaskShellInfo".
@@ -13181,7 +13782,7 @@ export interface TaskList {
tasks: TaskInfo[];
}
/**
- * Schema for the `TaskShellProgress` type.
+ * Progress snapshot for a shell task, with recent stdout/stderr output and optional process ID.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "TaskShellProgress".
@@ -13437,7 +14038,7 @@ export interface TelemetrySetFeatureOverridesRequest {
};
}
/**
- * Schema for the `Tool` type.
+ * Built-in tool metadata with identifier, optional namespaced name, description, input-parameter schema, and usage instructions.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "Tool".
@@ -13570,7 +14171,7 @@ export interface UIElicitationArrayAnyOfFieldItems {
anyOf: UIElicitationArrayAnyOfFieldItemsAnyOf[];
}
/**
- * Schema for the `UIElicitationArrayAnyOfFieldItemsAnyOf` type.
+ * Selectable option for a UI elicitation multi-select array item, with submitted value and display label.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "UIElicitationArrayAnyOfFieldItemsAnyOf".
@@ -13737,7 +14338,7 @@ export interface UIElicitationStringOneOfField {
default?: string;
}
/**
- * Schema for the `UIElicitationStringOneOfFieldOneOf` type.
+ * Selectable option for a UI elicitation single-select string field, with submitted value and display label.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "UIElicitationStringOneOfFieldOneOf".
@@ -13919,7 +14520,7 @@ export interface UIEphemeralQueryResult {
answer: string;
}
/**
- * Schema for the `UIExitPlanModeResponse` type.
+ * User response for a pending exit-plan-mode request, with approval state, selected action, auto-approve flag, and feedback.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "UIExitPlanModeResponse".
@@ -14066,7 +14667,7 @@ export interface UIHandlePendingUserInputRequest {
response: UIUserInputResponse;
}
/**
- * Schema for the `UIUserInputResponse` type.
+ * User response for a pending user-input request, with answer text and whether it was typed freeform.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "UIUserInputResponse".
@@ -14189,7 +14790,7 @@ export interface UsageGetMetricsResult {
lastCallOutputTokens: number;
}
/**
- * Schema for the `UsageMetricsTokenDetail` type.
+ * Session-wide token-detail entry containing the accumulated token count for one token type.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "UsageMetricsTokenDetail".
@@ -14227,7 +14828,7 @@ export interface UsageMetricsCodeChanges {
filesModified: string[];
}
/**
- * Schema for the `UsageMetricsModelMetric` type.
+ * Per-model usage metrics, including request counts/costs, token usage, nano-AI units, and per-token-type details.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "UsageMetricsModelMetric".
@@ -14294,7 +14895,7 @@ export interface UsageMetricsModelMetricUsage {
reasoningTokens?: number;
}
/**
- * Schema for the `UsageMetricsModelMetricTokenDetail` type.
+ * Per-model token-detail entry containing the accumulated token count for one token type.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "UsageMetricsModelMetricTokenDetail".
@@ -14499,7 +15100,7 @@ export interface WorkspaceDiffResult {
isFallback: boolean;
}
/**
- * Schema for the `WorkspacesCheckpoints` type.
+ * Workspace checkpoint metadata with assigned number, human-readable title, and checkpoint filename.
*
* This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
* via the `definition` "WorkspacesCheckpoints".
@@ -15363,7 +15964,7 @@ export function createInternalServerRpc(connection: MessageConnection) {
/**
* Performs the SDK server connection handshake and validates the optional connection token. Marked internal because this is JSON-RPC transport plumbing invoked automatically by an SDK client's own `connect()` wrapper, not a user-facing method. Stays internal as long as the SDK client owns the handshake; would only become public if the SDK ever exposed the raw schema surface to consumers without a connection wrapper.
*
- * @param params Optional connection token presented by the SDK client during the handshake.
+ * @param params Parameters for the `server.connect` handshake: an optional connection token and optional connection-level opt-ins (e.g. GitHub telemetry forwarding).
*
* @returns Handshake result reporting the server's protocol version and package version on success.
*
@@ -15481,6 +16082,18 @@ export function createSessionRpc(connection: MessageConnection, sessionId: strin
connection.sendRequest("session.gitHubAuth.setCredentials", { sessionId, ...params }),
},
/** @experimental */
+ debug: {
+ /**
+ * Collects a redacted session debug log bundle into a local archive or staging directory. The runtime includes session-owned logs by default and accepts caller-provided diagnostic entries so host applications can add their own files without changing this API shape.
+ *
+ * @param params Options for collecting a redacted session debug bundle.
+ *
+ * @returns Result of collecting a redacted debug bundle.
+ */
+ collectLogs: async (params: DebugCollectLogsRequest): Promise =>
+ connection.sendRequest("session.debug.collectLogs", { sessionId, ...params }),
+ },
+ /** @experimental */
canvas: {
/**
* Lists canvases declared for the session.
@@ -16429,18 +17042,18 @@ export function createSessionRpc(connection: MessageConnection, sessionId: strin
setApproveAll: async (params: PermissionsSetApproveAllRequest): Promise =>
connection.sendRequest("session.permissions.setApproveAll", { sessionId, ...params }),
/**
- * Enables or disables full allow-all permissions (tools, paths, and URLs) for the session. Used by attach-mode clients (e.g. LocalRpcSession's `/allow-all` forwarder) to flip the target session's permission state. Unlike `setApproveAll`, this swaps in the unrestricted path and URL managers and emits `session.permissions_changed` on transition. The result returns the authoritative post-mutation state so callers can update their local mirrors without racing the `session.permissions_changed` notification on the same wire.
+ * Sets the allow-all permission mode for the session. Used by attach-mode clients (e.g. LocalRpcSession's `/allow-all` forwarder) to flip the target session's permission state. The `on` mode swaps in unrestricted path and URL managers and emits `session.permissions_changed` on transition; the `auto` mode keeps normal prompt paths active while attaching LLM safety recommendations. The result returns the authoritative post-mutation state so callers can update their local mirrors without racing the `session.permissions_changed` notification on the same wire.
*
- * @param params Whether to enable full allow-all permissions for the session.
+ * @param params Allow-all mode to apply for the session.
*
* @returns Indicates whether the operation succeeded and reports the post-mutation state.
*/
setAllowAll: async (params: PermissionsSetAllowAllRequest): Promise =>
connection.sendRequest("session.permissions.setAllowAll", { sessionId, ...params }),
/**
- * Returns whether full allow-all permissions are currently active for the session.
+ * Returns the current allow-all permission mode for the session.
*
- * @returns Current full allow-all permission state.
+ * @returns Current allow-all permission mode.
*/
getAllowAll: async (): Promise =>
connection.sendRequest("session.permissions.getAllowAll", { sessionId }),
@@ -16960,6 +17573,25 @@ export function createInternalSessionRpc(connection: MessageConnection, sessionI
connection.sendRequest("session.mcp.oauth.respond", { sessionId, ...params }),
},
},
+ /** @experimental */
+ settings: {
+ /**
+ * Returns a redacted snapshot of session runtime settings, with secrets and raw feature flags excluded. Internal: the runtime settings shape is a runtime-internal surface and is deliberately kept out of the public SDK, because consumers should not depend on the runtime's internal settings layout. It remains callable in-process and is expected to be reworked as the runtime internals are consolidated.
+ *
+ * @returns Redacted, serializable view of session runtime settings for SDK boundary consumers. Secrets and raw feature flags are intentionally excluded.
+ */
+ snapshot: async (): Promise =>
+ connection.sendRequest("session.settings.snapshot", { sessionId }),
+ /**
+ * Evaluates a named Rust-owned settings predicate without exposing raw feature flags. Internal: the raw feature-flag names and composition are runtime-internal, so this predicate-evaluation helper is kept out of the public SDK surface and is callable in-process only.
+ *
+ * @param params Named Rust-owned settings predicate to evaluate for this session.
+ *
+ * @returns Result of evaluating a Rust-owned settings predicate.
+ */
+ evaluatePredicate: async (params: SessionSettingsEvaluatePredicateRequest): Promise =>
+ connection.sendRequest("session.settings.evaluatePredicate", { sessionId, ...params }),
+ },
};
}
@@ -17228,9 +17860,9 @@ export interface LlmInferenceHandler {
/** @experimental */
export interface GitHubTelemetryHandler {
/**
- * Forwards a single GitHub telemetry event to a host connection that opted into telemetry forwarding for the session.
+ * Forwards a single GitHub telemetry event to a host connection that opted into telemetry forwarding during the `server.connect` handshake. Opted-in connections receive every event the runtime emits after the handshake — across all sessions, plus sessionless events (for example, `server.sendTelemetry` calls with no session id).
*
- * @param params Payload for a `gitHubTelemetry.event` notification: a single GitHub telemetry event the runtime forwards to a host connection that opted into telemetry forwarding for the session.
+ * @param params Payload for a `gitHubTelemetry.event` notification: a single GitHub telemetry event the runtime forwards to a host connection that opted into telemetry forwarding during the `server.connect` handshake.
*/
event(params: GitHubTelemetryNotification): Promise;
}
diff --git a/nodejs/src/generated/session-events.ts b/nodejs/src/generated/session-events.ts
index 5d7eac82d..2f846c721 100644
--- a/nodejs/src/generated/session-events.ts
+++ b/nodejs/src/generated/session-events.ts
@@ -167,6 +167,17 @@ export type SessionMode =
| "plan"
/** The agent is working autonomously toward task completion. */
| "autopilot";
+/**
+ * Allow-all mode for the session.
+ */
+/** @experimental */
+export type PermissionAllowAllMode =
+ /** Permission requests follow the normal approval flow. */
+ | "off"
+ /** Tool, path, and URL permission requests are automatically approved. */
+ | "on"
+ /** Permission requests follow the normal approval flow with an LLM advisory recommendation attached; clients may choose to auto-approve requests the judge evaluated as acceptable. */
+ | "auto";
/**
* The type of operation performed on the plan file
*/
@@ -481,6 +492,19 @@ export type PermissionPromptRequest =
| PermissionPromptRequestHook
| PermissionPromptRequestExtensionManagement
| PermissionPromptRequestExtensionPermissionAccess;
+/**
+ * Outcome of the auto-approval safety judge for a permission request. Present only when auto mode is enabled; its absence means the judge did not evaluate the request (auto mode was off).
+ */
+/** @experimental */
+export type AutoApprovalRecommendation =
+ /** The judge evaluated the request and recommends automatically approving it. */
+ | "approve"
+ /** The judge evaluated the request and does not recommend auto-approving it; explicit approval is required. Whether that means prompting, denying, or something else is the consumer's decision. */
+ | "requireApproval"
+ /** Auto mode is enabled, but this request category is never auto-approvable (for example, sandbox-bypass requests), so the judge was not consulted. */
+ | "excluded"
+ /** The judge was consulted but did not return a usable recommendation, so the request requires explicit approval. */
+ | "error";
/**
* Underlying permission kind that needs path approval
*/
@@ -1515,7 +1539,7 @@ export interface SessionLimitsChangedData {
sessionLimits: SessionLimitsConfig | null;
}
/**
- * Session event "session.permissions_changed". Permissions change details carrying the aggregate allow-all boolean transition.
+ * Session event "session.permissions_changed". Permissions change details carrying the aggregate allow-all transition.
*/
export interface PermissionsChangedEvent {
/**
@@ -1545,13 +1569,25 @@ export interface PermissionsChangedEvent {
type: "session.permissions_changed";
}
/**
- * Permissions change details carrying the aggregate allow-all boolean transition.
+ * Permissions change details carrying the aggregate allow-all transition.
*/
export interface PermissionsChangedData {
+ /**
+ * Allow-all mode after the change
+ *
+ * @experimental
+ */
+ allowAllPermissionMode?: PermissionAllowAllMode;
/**
* Aggregate allow-all flag after the change
*/
allowAllPermissions: boolean;
+ /**
+ * Allow-all mode before the change
+ *
+ * @experimental
+ */
+ previousAllowAllPermissionMode?: PermissionAllowAllMode;
/**
* Aggregate allow-all flag before the change
*/
@@ -1966,7 +2002,7 @@ export interface ShutdownCodeChanges {
linesRemoved: number;
}
/**
- * Schema for the `ShutdownModelMetric` type.
+ * Per-model shutdown metrics with request counts, token usage, nano-AI units, and token details.
*/
export interface ShutdownModelMetric {
requests: ShutdownModelMetricRequests;
@@ -2002,7 +2038,7 @@ export interface ShutdownModelMetricRequests {
count?: number;
}
/**
- * Schema for the `ShutdownModelMetricTokenDetail` type.
+ * A token-type entry in a shutdown model metric, storing the accumulated token count.
*/
export interface ShutdownModelMetricTokenDetail {
/**
@@ -2036,7 +2072,7 @@ export interface ShutdownModelMetricUsage {
reasoningTokens?: number;
}
/**
- * Schema for the `ShutdownTokenDetail` type.
+ * A session-wide shutdown token-type entry storing the accumulated token count.
*/
export interface ShutdownTokenDetail {
/**
@@ -2220,6 +2256,10 @@ export interface CompactionStartData {
* Token count from non-system messages (user, assistant, tool) at compaction start
*/
conversationTokens?: number;
+ /**
+ * Model identifier used for compaction, when known
+ */
+ model?: string;
/**
* Token count from system message(s) at compaction start
*/
@@ -2449,7 +2489,7 @@ export interface TaskCompleteData {
summary?: string;
}
/**
- * Session event "user.message".
+ * Session event "user.message". Payload of `user.message` with displayed and model-transformed content, attachments, source/delivery metadata, mode, and telemetry IDs.
*/
export interface UserMessageEvent {
/**
@@ -2479,7 +2519,7 @@ export interface UserMessageEvent {
type: "user.message";
}
/**
- * Schema for the `UserMessageData` type.
+ * Payload of `user.message` with displayed and model-transformed content, attachments, source/delivery metadata, mode, and telemetry IDs.
*/
export interface UserMessageData {
agentMode?: UserMessageAgentMode;
@@ -3033,6 +3073,10 @@ export interface AssistantTurnStartData {
* CAPI interaction ID for correlating this turn with upstream telemetry
*/
interactionId?: string;
+ /**
+ * Model identifier used for this turn, when known
+ */
+ model?: string;
/**
* Identifier for this turn within the agentic loop, typically a stringified turn number
*/
@@ -3613,6 +3657,10 @@ export interface AssistantTurnEndEvent {
* Turn completion metadata including the turn identifier
*/
export interface AssistantTurnEndData {
+ /**
+ * Model identifier used for this turn, when known
+ */
+ model?: string;
/**
* Identifier of the turn that has ended, matching the corresponding assistant.turn_start event
*/
@@ -3814,7 +3862,7 @@ export interface AssistantUsageCopilotUsageTokenDetail {
tokenType: string;
}
/**
- * Schema for the `AssistantUsageQuotaSnapshot` type.
+ * Internal per-quota snapshot for assistant usage, including entitlement, consumed requests, overage, reset date, and remaining quota.
*/
/** @internal */
export interface AssistantUsageQuotaSnapshot {
@@ -4199,7 +4247,7 @@ export interface ToolExecutionStartToolDescriptionMeta {
ui?: ToolExecutionStartToolDescriptionMetaUI;
}
/**
- * Schema for the `ToolExecutionStartToolDescriptionMetaUI` type.
+ * MCP Apps tool `_meta.ui` resource URI and visibility captured on `tool.execution_start`.
*/
export interface ToolExecutionStartToolDescriptionMetaUI {
/**
@@ -4692,7 +4740,7 @@ export interface ToolExecutionCompleteContentResource {
type: "resource";
}
/**
- * Schema for the `EmbeddedTextResourceContents` type.
+ * Embedded text resource contents identified by a URI, with an optional MIME type and a text payload.
*/
export interface EmbeddedTextResourceContents {
/**
@@ -4709,7 +4757,7 @@ export interface EmbeddedTextResourceContents {
uri: string;
}
/**
- * Schema for the `EmbeddedBlobResourceContents` type.
+ * Embedded binary resource contents identified by a URI, with an optional MIME type and a base64-encoded blob.
*/
export interface EmbeddedBlobResourceContents {
/**
@@ -4754,7 +4802,7 @@ export interface ToolExecutionCompleteUIResourceMeta {
ui?: ToolExecutionCompleteUIResourceMetaUI;
}
/**
- * Schema for the `ToolExecutionCompleteUIResourceMetaUI` type.
+ * MCP Apps UI resource metadata for a completed tool result, including CSP, permissions, domain, and border preference.
*/
export interface ToolExecutionCompleteUIResourceMetaUI {
csp?: ToolExecutionCompleteUIResourceMetaUICsp;
@@ -4763,7 +4811,7 @@ export interface ToolExecutionCompleteUIResourceMetaUI {
prefersBorder?: boolean;
}
/**
- * Schema for the `ToolExecutionCompleteUIResourceMetaUICsp` type.
+ * CSP domain allowlists for an MCP Apps UI resource, including connect, resource, frame, and base URI domains.
*/
export interface ToolExecutionCompleteUIResourceMetaUICsp {
baseUriDomains?: string[];
@@ -4772,7 +4820,7 @@ export interface ToolExecutionCompleteUIResourceMetaUICsp {
resourceDomains?: string[];
}
/**
- * Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissions` type.
+ * Browser permission metadata for an MCP Apps UI resource, including camera, microphone, geolocation, and clipboard-write.
*/
export interface ToolExecutionCompleteUIResourceMetaUIPermissions {
camera?: ToolExecutionCompleteUIResourceMetaUIPermissionsCamera;
@@ -4781,19 +4829,19 @@ export interface ToolExecutionCompleteUIResourceMetaUIPermissions {
microphone?: ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone;
}
/**
- * Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissionsCamera` type.
+ * Marker object for camera permission on an MCP Apps UI resource.
*/
export interface ToolExecutionCompleteUIResourceMetaUIPermissionsCamera {}
/**
- * Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite` type.
+ * Marker object for clipboard-write permission on an MCP Apps UI resource.
*/
export interface ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite {}
/**
- * Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation` type.
+ * Marker object for geolocation permission on an MCP Apps UI resource.
*/
export interface ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation {}
/**
- * Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone` type.
+ * Marker object for microphone permission on an MCP Apps UI resource.
*/
export interface ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone {}
/**
@@ -4817,7 +4865,7 @@ export interface ToolExecutionCompleteToolDescriptionMeta {
ui?: ToolExecutionCompleteToolDescriptionMetaUI;
}
/**
- * Schema for the `ToolExecutionCompleteToolDescriptionMetaUI` type.
+ * MCP Apps tool `_meta.ui` resource URI and visibility captured on `tool.execution_complete`.
*/
export interface ToolExecutionCompleteToolDescriptionMetaUI {
/**
@@ -4875,6 +4923,10 @@ export interface SkillInvokedData {
* Description of the skill from its SKILL.md frontmatter
*/
description?: string;
+ /**
+ * Model identifier active when the skill was invoked, when known
+ */
+ model?: string;
/**
* Name of the invoked skill
*/
@@ -5490,7 +5542,7 @@ export interface SystemNotificationData {
kind: SystemNotification;
}
/**
- * Schema for the `SystemNotificationAgentCompleted` type.
+ * System notification metadata for a background agent that completed or failed, including agent ID, type, status, description, and prompt.
*/
export interface SystemNotificationAgentCompleted {
/**
@@ -5516,7 +5568,7 @@ export interface SystemNotificationAgentCompleted {
type: "agent_completed";
}
/**
- * Schema for the `SystemNotificationAgentIdle` type.
+ * System notification metadata for a background agent that became idle, including agent ID, type, and description.
*/
export interface SystemNotificationAgentIdle {
/**
@@ -5537,7 +5589,7 @@ export interface SystemNotificationAgentIdle {
type: "agent_idle";
}
/**
- * Schema for the `SystemNotificationNewInboxMessage` type.
+ * System notification metadata for a new inbox message, including entry ID, sender details, and summary.
*/
export interface SystemNotificationNewInboxMessage {
/**
@@ -5562,7 +5614,7 @@ export interface SystemNotificationNewInboxMessage {
type: "new_inbox_message";
}
/**
- * Schema for the `SystemNotificationShellCompleted` type.
+ * System notification metadata for a shell session that completed, including shell ID, optional exit code, and description.
*/
export interface SystemNotificationShellCompleted {
/**
@@ -5583,7 +5635,7 @@ export interface SystemNotificationShellCompleted {
type: "shell_completed";
}
/**
- * Schema for the `SystemNotificationShellDetachedCompleted` type.
+ * System notification metadata for a detached shell session that completed, including shell ID and description.
*/
export interface SystemNotificationShellDetachedCompleted {
/**
@@ -5600,7 +5652,7 @@ export interface SystemNotificationShellDetachedCompleted {
type: "shell_detached_completed";
}
/**
- * Schema for the `SystemNotificationInstructionDiscovered` type.
+ * System notification metadata for an instruction file discovered during tool access, including source, trigger file, and tool.
*/
export interface SystemNotificationInstructionDiscovered {
/**
@@ -5723,7 +5775,7 @@ export interface PermissionRequestShell {
warning?: string;
}
/**
- * Schema for the `PermissionRequestShellCommand` type.
+ * A parsed command identifier in a shell permission request, including whether it is read-only.
*/
export interface PermissionRequestShellCommand {
/**
@@ -5736,7 +5788,7 @@ export interface PermissionRequestShellCommand {
readOnly: boolean;
}
/**
- * Schema for the `PermissionRequestShellPossibleUrl` type.
+ * A URL that may be accessed by a command in a shell permission request.
*/
export interface PermissionRequestShellPossibleUrl {
/**
@@ -5993,6 +6045,12 @@ export interface PermissionRequestExtensionPermissionAccess {
* Shell command permission prompt
*/
export interface PermissionPromptRequestCommands {
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Whether the UI can offer session-wide approval for this command pattern
*/
@@ -6022,10 +6080,27 @@ export interface PermissionPromptRequestCommands {
*/
warning?: string;
}
+/**
+ * Auto-approval judge information attached to a permission request. Present (non-null) only when the session's allow-all mode is "auto"; its absence means auto mode was off and the judge did not evaluate the request. The `recommendation` conveys the judge's disposition for this request.
+ */
+/** @experimental */
+export interface PermissionAutoApproval {
+ /**
+ * Human-readable reason for the judge's recommendation, when available.
+ */
+ reason?: string;
+ recommendation: AutoApprovalRecommendation;
+}
/**
* File write permission prompt
*/
export interface PermissionPromptRequestWrite {
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Whether the UI can offer session-wide approval for file write operations
*/
@@ -6059,6 +6134,12 @@ export interface PermissionPromptRequestWrite {
* File read permission prompt
*/
export interface PermissionPromptRequestRead {
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Human-readable description of why the file is being read
*/
@@ -6086,6 +6167,12 @@ export interface PermissionPromptRequestMcp {
args?: {
[k: string]: unknown | undefined;
};
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Prompt kind discriminator
*/
@@ -6111,6 +6198,12 @@ export interface PermissionPromptRequestMcp {
* URL access permission prompt
*/
export interface PermissionPromptRequestUrl {
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Human-readable description of why the URL is being accessed
*/
@@ -6133,6 +6226,12 @@ export interface PermissionPromptRequestUrl {
*/
export interface PermissionPromptRequestMemory {
action?: PermissionRequestMemoryAction;
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Source references for the stored fact (store only)
*/
@@ -6169,6 +6268,12 @@ export interface PermissionPromptRequestCustomTool {
args?: {
[k: string]: unknown | undefined;
};
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Prompt kind discriminator
*/
@@ -6191,6 +6296,12 @@ export interface PermissionPromptRequestCustomTool {
*/
export interface PermissionPromptRequestPath {
accessKind: PermissionPromptRequestPathAccessKind;
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Prompt kind discriminator
*/
@@ -6208,6 +6319,12 @@ export interface PermissionPromptRequestPath {
* Hook confirmation permission prompt
*/
export interface PermissionPromptRequestHook {
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Optional message from the hook explaining why confirmation is needed
*/
@@ -6235,6 +6352,12 @@ export interface PermissionPromptRequestHook {
* Extension management permission prompt
*/
export interface PermissionPromptRequestExtensionManagement {
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Name of the extension being managed
*/
@@ -6256,6 +6379,12 @@ export interface PermissionPromptRequestExtensionManagement {
* Extension permission access prompt
*/
export interface PermissionPromptRequestExtensionPermissionAccess {
+ /**
+ * Auto-approval judge information for this request; present only when auto mode is enabled.
+ *
+ * @experimental
+ */
+ autoApproval?: PermissionAutoApproval;
/**
* Capabilities the extension is requesting
*/
@@ -6318,7 +6447,7 @@ export interface PermissionCompletedData {
toolCallId?: string;
}
/**
- * Schema for the `PermissionApproved` type.
+ * Permission response variant indicating the request was approved without persisting an approval rule.
*/
export interface PermissionApproved {
/**
@@ -6327,7 +6456,7 @@ export interface PermissionApproved {
kind: "approved";
}
/**
- * Schema for the `PermissionApprovedForSession` type.
+ * Permission response variant that approves a request and remembers the provided approval for the rest of the session.
*/
export interface PermissionApprovedForSession {
approval: UserToolSessionApproval;
@@ -6337,7 +6466,7 @@ export interface PermissionApprovedForSession {
kind: "approved-for-session";
}
/**
- * Schema for the `UserToolSessionApprovalCommands` type.
+ * Session-scoped tool-approval rule for specific shell command identifiers.
*/
export interface UserToolSessionApprovalCommands {
/**
@@ -6350,7 +6479,7 @@ export interface UserToolSessionApprovalCommands {
kind: "commands";
}
/**
- * Schema for the `UserToolSessionApprovalRead` type.
+ * Session-scoped tool-approval rule for read-only filesystem operations.
*/
export interface UserToolSessionApprovalRead {
/**
@@ -6359,7 +6488,7 @@ export interface UserToolSessionApprovalRead {
kind: "read";
}
/**
- * Schema for the `UserToolSessionApprovalWrite` type.
+ * Session-scoped tool-approval rule for filesystem write operations.
*/
export interface UserToolSessionApprovalWrite {
/**
@@ -6368,7 +6497,7 @@ export interface UserToolSessionApprovalWrite {
kind: "write";
}
/**
- * Schema for the `UserToolSessionApprovalMcp` type.
+ * Session-scoped tool-approval rule for an MCP server tool, or all tools on the server when `toolName` is null.
*/
export interface UserToolSessionApprovalMcp {
/**
@@ -6385,7 +6514,7 @@ export interface UserToolSessionApprovalMcp {
toolName: string | null;
}
/**
- * Schema for the `UserToolSessionApprovalMemory` type.
+ * Session-scoped tool-approval rule for writes to long-term memory.
*/
export interface UserToolSessionApprovalMemory {
/**
@@ -6394,7 +6523,7 @@ export interface UserToolSessionApprovalMemory {
kind: "memory";
}
/**
- * Schema for the `UserToolSessionApprovalCustomTool` type.
+ * Session-scoped tool-approval rule for a custom tool, keyed by tool name.
*/
export interface UserToolSessionApprovalCustomTool {
/**
@@ -6407,7 +6536,7 @@ export interface UserToolSessionApprovalCustomTool {
toolName: string;
}
/**
- * Schema for the `UserToolSessionApprovalExtensionManagement` type.
+ * Session-scoped tool-approval rule for extension-management operations, optionally narrowed by operation.
*/
export interface UserToolSessionApprovalExtensionManagement {
/**
@@ -6420,7 +6549,7 @@ export interface UserToolSessionApprovalExtensionManagement {
operation?: string;
}
/**
- * Schema for the `UserToolSessionApprovalExtensionPermissionAccess` type.
+ * Session-scoped tool-approval rule for an extension's permission-gated capability access, keyed by extension name.
*/
export interface UserToolSessionApprovalExtensionPermissionAccess {
/**
@@ -6433,7 +6562,7 @@ export interface UserToolSessionApprovalExtensionPermissionAccess {
kind: "extension-permission-access";
}
/**
- * Schema for the `PermissionApprovedForLocation` type.
+ * Permission response variant that approves a request and persists the provided approval to a project location key.
*/
export interface PermissionApprovedForLocation {
approval: UserToolSessionApproval;
@@ -6447,7 +6576,7 @@ export interface PermissionApprovedForLocation {
locationKey: string;
}
/**
- * Schema for the `PermissionCancelled` type.
+ * Permission response variant indicating the request was cancelled before use, with an optional reason.
*/
export interface PermissionCancelled {
/**
@@ -6460,7 +6589,7 @@ export interface PermissionCancelled {
reason?: string;
}
/**
- * Schema for the `PermissionDeniedByRules` type.
+ * Permission response variant denied because matching approval rules explicitly blocked the request.
*/
export interface PermissionDeniedByRules {
/**
@@ -6473,7 +6602,7 @@ export interface PermissionDeniedByRules {
rules: PermissionRule[];
}
/**
- * Schema for the `PermissionRule` type.
+ * A permission approval or denial rule matched against a tool request, identified by a rule kind with an optional argument value.
*/
export interface PermissionRule {
/**
@@ -6486,7 +6615,7 @@ export interface PermissionRule {
kind: string;
}
/**
- * Schema for the `PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser` type.
+ * Permission response variant denied because no approval rule matched and user confirmation was unavailable.
*/
export interface PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
/**
@@ -6495,7 +6624,7 @@ export interface PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser {
kind: "denied-no-approval-rule-and-could-not-request-from-user";
}
/**
- * Schema for the `PermissionDeniedInteractivelyByUser` type.
+ * Permission response variant denied in an interactive user prompt, with optional feedback and force-reject flag.
*/
export interface PermissionDeniedInteractivelyByUser {
/**
@@ -6512,7 +6641,7 @@ export interface PermissionDeniedInteractivelyByUser {
kind: "denied-interactively-by-user";
}
/**
- * Schema for the `PermissionDeniedByContentExclusionPolicy` type.
+ * Permission response variant denying a path under content exclusion policy, with the path and message.
*/
export interface PermissionDeniedByContentExclusionPolicy {
/**
@@ -6529,7 +6658,7 @@ export interface PermissionDeniedByContentExclusionPolicy {
path: string;
}
/**
- * Schema for the `PermissionDeniedByPermissionRequestHook` type.
+ * Permission response variant denied by a permission-request hook, with optional message and interrupt flag.
*/
export interface PermissionDeniedByPermissionRequestHook {
/**
@@ -6770,7 +6899,7 @@ export interface ElicitationCompletedData {
requestId: string;
}
/**
- * Schema for the `ElicitationCompletedContent` type.
+ * Opaque JSON value submitted for one field in accepted `elicitation.completed` form content.
*/
export interface ElicitationCompletedContent {
[k: string]: unknown | undefined;
@@ -7613,7 +7742,7 @@ export interface CommandsChangedData {
commands: CommandsChangedCommand[];
}
/**
- * Schema for the `CommandsChangedCommand` type.
+ * A single slash command available in the session, as listed by the `commands.changed` event.
*/
export interface CommandsChangedCommand {
/**
@@ -7783,7 +7912,7 @@ export interface ExitPlanModeCompletedData {
selectedAction?: ExitPlanModeAction;
}
/**
- * Session event "session.tools_updated".
+ * Session event "session.tools_updated". Payload of `session.tools_updated` identifying the model whose resolved tools were updated.
*/
export interface ToolsUpdatedEvent {
/**
@@ -7813,7 +7942,7 @@ export interface ToolsUpdatedEvent {
type: "session.tools_updated";
}
/**
- * Schema for the `ToolsUpdatedData` type.
+ * Payload of `session.tools_updated` identifying the model whose resolved tools were updated.
*/
export interface ToolsUpdatedData {
/**
@@ -7822,7 +7951,7 @@ export interface ToolsUpdatedData {
model: string;
}
/**
- * Session event "session.background_tasks_changed".
+ * Session event "session.background_tasks_changed". Empty payload for `session.background_tasks_changed`, indicating background task state changed.
*/
export interface BackgroundTasksChangedEvent {
/**
@@ -7852,11 +7981,11 @@ export interface BackgroundTasksChangedEvent {
type: "session.background_tasks_changed";
}
/**
- * Schema for the `BackgroundTasksChangedData` type.
+ * Empty payload for `session.background_tasks_changed`, indicating background task state changed.
*/
export interface BackgroundTasksChangedData {}
/**
- * Session event "session.skills_loaded".
+ * Session event "session.skills_loaded". Payload of `session.skills_loaded` listing resolved skill metadata.
*/
export interface SkillsLoadedEvent {
/**
@@ -7886,7 +8015,7 @@ export interface SkillsLoadedEvent {
type: "session.skills_loaded";
}
/**
- * Schema for the `SkillsLoadedData` type.
+ * Payload of `session.skills_loaded` listing resolved skill metadata.
*/
export interface SkillsLoadedData {
/**
@@ -7895,7 +8024,7 @@ export interface SkillsLoadedData {
skills: SkillsLoadedSkill[];
}
/**
- * Schema for the `SkillsLoadedSkill` type.
+ * A single resolved skill in `session.skills_loaded`, including source, invocability, enabled state, path, and argument hint.
*/
export interface SkillsLoadedSkill {
/**
@@ -7925,7 +8054,7 @@ export interface SkillsLoadedSkill {
userInvocable: boolean;
}
/**
- * Session event "session.custom_agents_updated".
+ * Session event "session.custom_agents_updated". Payload of `session.custom_agents_updated` with loaded custom agents plus non-fatal warnings and fatal errors.
*/
export interface CustomAgentsUpdatedEvent {
/**
@@ -7955,7 +8084,7 @@ export interface CustomAgentsUpdatedEvent {
type: "session.custom_agents_updated";
}
/**
- * Schema for the `CustomAgentsUpdatedData` type.
+ * Payload of `session.custom_agents_updated` with loaded custom agents plus non-fatal warnings and fatal errors.
*/
export interface CustomAgentsUpdatedData {
/**
@@ -7972,7 +8101,7 @@ export interface CustomAgentsUpdatedData {
warnings: string[];
}
/**
- * Schema for the `CustomAgentsUpdatedAgent` type.
+ * A single loaded custom agent in `session.custom_agents_updated`, with identity, source, tools, invocability, and model override.
*/
export interface CustomAgentsUpdatedAgent {
/**
@@ -8009,7 +8138,7 @@ export interface CustomAgentsUpdatedAgent {
userInvocable: boolean;
}
/**
- * Session event "session.mcp_servers_loaded".
+ * Session event "session.mcp_servers_loaded". Payload of `session.mcp_servers_loaded` listing MCP server status summaries.
*/
export interface McpServersLoadedEvent {
/**
@@ -8039,7 +8168,7 @@ export interface McpServersLoadedEvent {
type: "session.mcp_servers_loaded";
}
/**
- * Schema for the `McpServersLoadedData` type.
+ * Payload of `session.mcp_servers_loaded` listing MCP server status summaries.
*/
export interface McpServersLoadedData {
/**
@@ -8048,7 +8177,7 @@ export interface McpServersLoadedData {
servers: McpServersLoadedServer[];
}
/**
- * Schema for the `McpServersLoadedServer` type.
+ * A single MCP server status summary in `session.mcp_servers_loaded`, including name, status, source, transport, and plugin metadata.
*/
export interface McpServersLoadedServer {
/**
@@ -8072,7 +8201,7 @@ export interface McpServersLoadedServer {
transport?: McpServerTransport;
}
/**
- * Session event "session.mcp_server_status_changed".
+ * Session event "session.mcp_server_status_changed". Payload of `session.mcp_server_status_changed` for one MCP server's status and optional failure error.
*/
export interface McpServerStatusChangedEvent {
/**
@@ -8102,7 +8231,7 @@ export interface McpServerStatusChangedEvent {
type: "session.mcp_server_status_changed";
}
/**
- * Schema for the `McpServerStatusChangedData` type.
+ * Payload of `session.mcp_server_status_changed` for one MCP server's status and optional failure error.
*/
export interface McpServerStatusChangedData {
/**
@@ -8116,7 +8245,7 @@ export interface McpServerStatusChangedData {
status: McpServerStatus;
}
/**
- * Session event "session.extensions_loaded".
+ * Session event "session.extensions_loaded". Payload of `session.extensions_loaded` listing discovered extensions and their statuses.
*/
export interface ExtensionsLoadedEvent {
/**
@@ -8146,7 +8275,7 @@ export interface ExtensionsLoadedEvent {
type: "session.extensions_loaded";
}
/**
- * Schema for the `ExtensionsLoadedData` type.
+ * Payload of `session.extensions_loaded` listing discovered extensions and their statuses.
*/
export interface ExtensionsLoadedData {
/**
@@ -8155,7 +8284,7 @@ export interface ExtensionsLoadedData {
extensions: ExtensionsLoadedExtension[];
}
/**
- * Schema for the `ExtensionsLoadedExtension` type.
+ * A single extension discovered by `session.extensions_loaded`, including qualified ID, source, and current status.
*/
export interface ExtensionsLoadedExtension {
/**
@@ -8170,7 +8299,7 @@ export interface ExtensionsLoadedExtension {
status: ExtensionsLoadedExtensionStatus;
}
/**
- * Session event "session.canvas.opened".
+ * Session event "session.canvas.opened". Payload of `session.canvas.opened` with canvas instance and provider IDs plus optional title, status, URL, and input.
*/
/** @experimental */
export interface CanvasOpenedEvent {
@@ -8201,7 +8330,7 @@ export interface CanvasOpenedEvent {
type: "session.canvas.opened";
}
/**
- * Schema for the `CanvasOpenedData` type.
+ * Payload of `session.canvas.opened` with canvas instance and provider IDs plus optional title, status, URL, and input.
*/
/** @experimental */
export interface CanvasOpenedData {
@@ -8241,7 +8370,7 @@ export interface CanvasOpenedData {
url?: string;
}
/**
- * Session event "session.canvas.registry_changed".
+ * Session event "session.canvas.registry_changed". Payload of `session.canvas.registry_changed` listing the canvas declarations currently available.
*/
/** @experimental */
export interface CanvasRegistryChangedEvent {
@@ -8272,7 +8401,7 @@ export interface CanvasRegistryChangedEvent {
type: "session.canvas.registry_changed";
}
/**
- * Schema for the `CanvasRegistryChangedData` type.
+ * Payload of `session.canvas.registry_changed` listing the canvas declarations currently available.
*/
/** @experimental */
export interface CanvasRegistryChangedData {
@@ -8282,7 +8411,7 @@ export interface CanvasRegistryChangedData {
canvases: CanvasRegistryChangedCanvas[];
}
/**
- * Schema for the `CanvasRegistryChangedCanvas` type.
+ * A single canvas declaration in `session.canvas.registry_changed`, including provider IDs, display metadata, input schema, and actions.
*/
/** @experimental */
export interface CanvasRegistryChangedCanvas {
@@ -8318,7 +8447,7 @@ export interface CanvasRegistryChangedCanvas {
};
}
/**
- * Schema for the `CanvasRegistryChangedCanvasAction` type.
+ * A single action within a canvas declaration, with its name, optional description, and optional input schema.
*/
/** @experimental */
export interface CanvasRegistryChangedCanvasAction {
@@ -8338,7 +8467,7 @@ export interface CanvasRegistryChangedCanvasAction {
name: string;
}
/**
- * Session event "session.canvas.closed".
+ * Session event "session.canvas.closed". Payload of `session.canvas.closed` with the closed canvas instance ID, provider ID, and canvas ID.
*/
/** @experimental */
export interface CanvasClosedEvent {
@@ -8369,7 +8498,7 @@ export interface CanvasClosedEvent {
type: "session.canvas.closed";
}
/**
- * Schema for the `CanvasClosedData` type.
+ * Payload of `session.canvas.closed` with the closed canvas instance ID, provider ID, and canvas ID.
*/
/** @experimental */
export interface CanvasClosedData {
@@ -8544,7 +8673,7 @@ export interface CanvasRemovedData {
instanceId: string;
}
/**
- * Session event "session.extensions.attachments_pushed".
+ * Session event "session.extensions.attachments_pushed". Payload of `session.extensions.attachments_pushed` with extension-contributed attachments for the next send.
*/
export interface ExtensionsAttachmentsPushedEvent {
/**
@@ -8574,7 +8703,7 @@ export interface ExtensionsAttachmentsPushedEvent {
type: "session.extensions.attachments_pushed";
}
/**
- * Schema for the `ExtensionsAttachmentsPushedData` type.
+ * Payload of `session.extensions.attachments_pushed` with extension-contributed attachments for the next send.
*/
export interface ExtensionsAttachmentsPushedData {
/**
@@ -8663,7 +8792,7 @@ export interface McpAppToolCallCompleteToolMeta {
ui?: McpAppToolCallCompleteToolMetaUI;
}
/**
- * Schema for the `McpAppToolCallCompleteToolMetaUI` type.
+ * MCP App tool `_meta.ui` resource URI and SEP-1865 visibility captured with an `mcp_app.tool_call_complete` result.
*/
export interface McpAppToolCallCompleteToolMetaUI {
/**
diff --git a/python/copilot/generated/rpc.py b/python/copilot/generated/rpc.py
index 436f53211..1c12d2ce2 100644
--- a/python/copilot/generated/rpc.py
+++ b/python/copilot/generated/rpc.py
@@ -123,7 +123,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class CopilotUserResponseEndpoints:
- """Schema for the `CopilotUserResponseEndpoints` type."""
+ """Endpoint URLs from the raw Copilot `/copilot_internal/v2/token` user-response passthrough."""
api: str | None = None
origin_tracker: str | None = None
@@ -151,6 +151,102 @@ def to_dict(self) -> dict:
result["telemetry"] = from_union([from_str, from_none], self.telemetry)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class CopilotUserResponseQuotaSnapshots:
+ """Chat quota snapshot from the raw Copilot user-response passthrough, with entitlement,
+ overage, remaining quota, reset, and billing fields.
+
+ Completions quota snapshot from the raw Copilot user-response passthrough, with
+ entitlement, overage, remaining quota, reset, and billing fields.
+
+ Premium-interactions quota snapshot from the raw Copilot user-response passthrough, with
+ entitlement, overage, remaining quota, reset, and billing fields.
+ """
+ entitlement: float | None = None
+ """Number of requests/units included in the entitlement for this period; `-1` denotes an
+ unlimited entitlement.
+ """
+ has_quota: bool | None = None
+ """Whether the user currently has quota available; when `false` and not unlimited, further
+ requests are blocked until the quota resets.
+ """
+ overage_count: float | None = None
+ """Count of additional pay-per-request usage consumed this period beyond the entitlement."""
+
+ overage_permitted: bool | None = None
+ """Whether usage may continue at pay-per-request rates once the entitlement is exhausted."""
+
+ percent_remaining: float | None = None
+ """Percentage of the entitlement remaining at the snapshot timestamp."""
+
+ quota_id: str | None = None
+ """Identifier of the quota bucket this snapshot describes."""
+
+ quota_remaining: float | None = None
+ """Amount of quota remaining at the snapshot timestamp."""
+
+ quota_reset_at: float | None = None
+ """Unix epoch time, in seconds, when this quota next resets."""
+
+ remaining: float | None = None
+ """Remaining entitlement/quota amount at the snapshot timestamp."""
+
+ timestamp_utc: str | None = None
+ """UTC timestamp when this snapshot was captured."""
+
+ token_based_billing: bool | None = None
+ """Whether this category uses usage-based (token/AI-credit) billing rather than a fixed
+ premium-request count.
+ """
+ unlimited: bool | None = None
+ """Whether the entitlement for this category is unlimited."""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'CopilotUserResponseQuotaSnapshots':
+ assert isinstance(obj, dict)
+ entitlement = from_union([from_float, from_none], obj.get("entitlement"))
+ has_quota = from_union([from_bool, from_none], obj.get("has_quota"))
+ overage_count = from_union([from_float, from_none], obj.get("overage_count"))
+ overage_permitted = from_union([from_bool, from_none], obj.get("overage_permitted"))
+ percent_remaining = from_union([from_float, from_none], obj.get("percent_remaining"))
+ quota_id = from_union([from_str, from_none], obj.get("quota_id"))
+ quota_remaining = from_union([from_float, from_none], obj.get("quota_remaining"))
+ quota_reset_at = from_union([from_float, from_none], obj.get("quota_reset_at"))
+ remaining = from_union([from_float, from_none], obj.get("remaining"))
+ timestamp_utc = from_union([from_str, from_none], obj.get("timestamp_utc"))
+ token_based_billing = from_union([from_bool, from_none], obj.get("token_based_billing"))
+ unlimited = from_union([from_bool, from_none], obj.get("unlimited"))
+ return CopilotUserResponseQuotaSnapshots(entitlement, has_quota, overage_count, overage_permitted, percent_remaining, quota_id, quota_remaining, quota_reset_at, remaining, timestamp_utc, token_based_billing, unlimited)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.entitlement is not None:
+ result["entitlement"] = from_union([to_float, from_none], self.entitlement)
+ if self.has_quota is not None:
+ result["has_quota"] = from_union([from_bool, from_none], self.has_quota)
+ if self.overage_count is not None:
+ result["overage_count"] = from_union([to_float, from_none], self.overage_count)
+ if self.overage_permitted is not None:
+ result["overage_permitted"] = from_union([from_bool, from_none], self.overage_permitted)
+ if self.percent_remaining is not None:
+ result["percent_remaining"] = from_union([to_float, from_none], self.percent_remaining)
+ if self.quota_id is not None:
+ result["quota_id"] = from_union([from_str, from_none], self.quota_id)
+ if self.quota_remaining is not None:
+ result["quota_remaining"] = from_union([to_float, from_none], self.quota_remaining)
+ if self.quota_reset_at is not None:
+ result["quota_reset_at"] = from_union([to_float, from_none], self.quota_reset_at)
+ if self.remaining is not None:
+ result["remaining"] = from_union([to_float, from_none], self.remaining)
+ if self.timestamp_utc is not None:
+ result["timestamp_utc"] = from_union([from_str, from_none], self.timestamp_utc)
+ if self.token_based_billing is not None:
+ result["token_based_billing"] = from_union([from_bool, from_none], self.token_based_billing)
+ if self.unlimited is not None:
+ result["unlimited"] = from_union([from_bool, from_none], self.unlimited)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
class AuthInfoType(Enum):
"""Authentication type"""
@@ -166,7 +262,8 @@ class AuthInfoType(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class AccountAllUsers:
- """Schema for the `AccountAllUsers` type.
+ """Authenticated account entry returned by `account.getAllUsers`, with auth info and an
+ optional associated token.
List of all authenticated users
"""
@@ -239,8 +336,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class AccountQuotaSnapshot:
- """Schema for the `AccountQuotaSnapshot` type."""
-
+ """Quota usage snapshot for a Copilot quota type, including entitlement, used requests,
+ overage, reset date, and remaining percentage.
+ """
entitlement_requests: int
"""Number of requests included in the entitlement, or -1 for unlimited entitlements"""
@@ -578,47 +676,19 @@ def to_dict(self) -> dict:
return result
# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class AllowAllPermissionSetResult:
- """Indicates whether the operation succeeded and reports the post-mutation state."""
-
- enabled: bool
- """Authoritative allow-all state after the mutation"""
-
- success: bool
- """Whether the operation succeeded"""
-
- @staticmethod
- def from_dict(obj: Any) -> 'AllowAllPermissionSetResult':
- assert isinstance(obj, dict)
- enabled = from_bool(obj.get("enabled"))
- success = from_bool(obj.get("success"))
- return AllowAllPermissionSetResult(enabled, success)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["enabled"] = from_bool(self.enabled)
- result["success"] = from_bool(self.success)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class AllowAllPermissionState:
- """Current full allow-all permission state."""
+class PermissionsAllowAllMode(Enum):
+ """Authoritative allow-all mode after the mutation
- enabled: bool
- """Whether full allow-all permissions are currently active"""
+ Current or requested allow-all mode.
- @staticmethod
- def from_dict(obj: Any) -> 'AllowAllPermissionState':
- assert isinstance(obj, dict)
- enabled = from_bool(obj.get("enabled"))
- return AllowAllPermissionState(enabled)
+ Current allow-all mode
- def to_dict(self) -> dict:
- result: dict = {}
- result["enabled"] = from_bool(self.enabled)
- return result
+ Allow-all mode to apply. `on` enables full allow-all; `auto` enables advisory LLM
+ auto-approval; `off` disables both.
+ """
+ AUTO = "auto"
+ OFF = "off"
+ ON = "on"
class APIKeyAuthInfoType(Enum):
API_KEY = "api-key"
@@ -1227,19 +1297,32 @@ def to_dict(self) -> dict:
# Internal: this type is an internal SDK API and is not part of the public surface.
@dataclass
class _ConnectRequest:
- """Optional connection token presented by the SDK client during the handshake."""
-
+ """Parameters for the `server.connect` handshake: an optional connection token and optional
+ connection-level opt-ins (e.g. GitHub telemetry forwarding).
+ """
+ enable_git_hub_telemetry_forwarding: bool | None = None
+ """Opt this connection in to GitHub telemetry forwarding for its lifetime. When set, the
+ runtime forwards every internal telemetry event it emits — across all sessions, plus
+ sessionless events — to this connection over the `gitHubTelemetry.event` notification, in
+ addition to the runtime's normal GitHub/CTS emission (dual-write). Intended for
+ first-party hosts that re-emit the events into their own telemetry stores. Both
+ unrestricted and restricted events are forwarded, each tagged with a `restricted`
+ discriminator; a backstop drops restricted events when restricted telemetry is disabled.
+ """
token: str | None = None
"""Connection token; required when the server was started with COPILOT_CONNECTION_TOKEN"""
@staticmethod
def from_dict(obj: Any) -> '_ConnectRequest':
assert isinstance(obj, dict)
+ enable_git_hub_telemetry_forwarding = from_union([from_bool, from_none], obj.get("enableGitHubTelemetryForwarding"))
token = from_union([from_str, from_none], obj.get("token"))
- return _ConnectRequest(token)
+ return _ConnectRequest(enable_git_hub_telemetry_forwarding, token)
def to_dict(self) -> dict:
result: dict = {}
+ if self.enable_git_hub_telemetry_forwarding is not None:
+ result["enableGitHubTelemetryForwarding"] = from_union([from_bool, from_none], self.enable_git_hub_telemetry_forwarding)
if self.token is not None:
result["token"] = from_union([from_str, from_none], self.token)
return result
@@ -1363,20 +1446,47 @@ class CopilotAPITokenAuthInfoType(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class CopilotUserResponseQuotaSnapshotsChat:
- """Schema for the `CopilotUserResponseQuotaSnapshotsChat` type."""
-
+ """Chat quota snapshot from the raw Copilot user-response passthrough, with entitlement,
+ overage, remaining quota, reset, and billing fields.
+ """
entitlement: float | None = None
+ """Number of requests/units included in the entitlement for this period; `-1` denotes an
+ unlimited entitlement.
+ """
has_quota: bool | None = None
+ """Whether the user currently has quota available; when `false` and not unlimited, further
+ requests are blocked until the quota resets.
+ """
overage_count: float | None = None
+ """Count of additional pay-per-request usage consumed this period beyond the entitlement."""
+
overage_permitted: bool | None = None
+ """Whether usage may continue at pay-per-request rates once the entitlement is exhausted."""
+
percent_remaining: float | None = None
+ """Percentage of the entitlement remaining at the snapshot timestamp."""
+
quota_id: str | None = None
+ """Identifier of the quota bucket this snapshot describes."""
+
quota_remaining: float | None = None
+ """Amount of quota remaining at the snapshot timestamp."""
+
quota_reset_at: float | None = None
+ """Unix epoch time, in seconds, when this quota next resets."""
+
remaining: float | None = None
+ """Remaining entitlement/quota amount at the snapshot timestamp."""
+
timestamp_utc: str | None = None
+ """UTC timestamp when this snapshot was captured."""
+
token_based_billing: bool | None = None
+ """Whether this category uses usage-based (token/AI-credit) billing rather than a fixed
+ premium-request count.
+ """
unlimited: bool | None = None
+ """Whether the entitlement for this category is unlimited."""
@staticmethod
def from_dict(obj: Any) -> 'CopilotUserResponseQuotaSnapshotsChat':
@@ -1426,20 +1536,47 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class CopilotUserResponseQuotaSnapshotsCompletions:
- """Schema for the `CopilotUserResponseQuotaSnapshotsCompletions` type."""
-
+ """Completions quota snapshot from the raw Copilot user-response passthrough, with
+ entitlement, overage, remaining quota, reset, and billing fields.
+ """
entitlement: float | None = None
+ """Number of requests/units included in the entitlement for this period; `-1` denotes an
+ unlimited entitlement.
+ """
has_quota: bool | None = None
+ """Whether the user currently has quota available; when `false` and not unlimited, further
+ requests are blocked until the quota resets.
+ """
overage_count: float | None = None
+ """Count of additional pay-per-request usage consumed this period beyond the entitlement."""
+
overage_permitted: bool | None = None
+ """Whether usage may continue at pay-per-request rates once the entitlement is exhausted."""
+
percent_remaining: float | None = None
+ """Percentage of the entitlement remaining at the snapshot timestamp."""
+
quota_id: str | None = None
+ """Identifier of the quota bucket this snapshot describes."""
+
quota_remaining: float | None = None
+ """Amount of quota remaining at the snapshot timestamp."""
+
quota_reset_at: float | None = None
+ """Unix epoch time, in seconds, when this quota next resets."""
+
remaining: float | None = None
+ """Remaining entitlement/quota amount at the snapshot timestamp."""
+
timestamp_utc: str | None = None
+ """UTC timestamp when this snapshot was captured."""
+
token_based_billing: bool | None = None
+ """Whether this category uses usage-based (token/AI-credit) billing rather than a fixed
+ premium-request count.
+ """
unlimited: bool | None = None
+ """Whether the entitlement for this category is unlimited."""
@staticmethod
def from_dict(obj: Any) -> 'CopilotUserResponseQuotaSnapshotsCompletions':
@@ -1489,20 +1626,47 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class CopilotUserResponseQuotaSnapshotsPremiumInteractions:
- """Schema for the `CopilotUserResponseQuotaSnapshotsPremiumInteractions` type."""
-
+ """Premium-interactions quota snapshot from the raw Copilot user-response passthrough, with
+ entitlement, overage, remaining quota, reset, and billing fields.
+ """
entitlement: float | None = None
+ """Number of requests/units included in the entitlement for this period; `-1` denotes an
+ unlimited entitlement.
+ """
has_quota: bool | None = None
+ """Whether the user currently has quota available; when `false` and not unlimited, further
+ requests are blocked until the quota resets.
+ """
overage_count: float | None = None
+ """Count of additional pay-per-request usage consumed this period beyond the entitlement."""
+
overage_permitted: bool | None = None
+ """Whether usage may continue at pay-per-request rates once the entitlement is exhausted."""
+
percent_remaining: float | None = None
+ """Percentage of the entitlement remaining at the snapshot timestamp."""
+
quota_id: str | None = None
+ """Identifier of the quota bucket this snapshot describes."""
+
quota_remaining: float | None = None
+ """Amount of quota remaining at the snapshot timestamp."""
+
quota_reset_at: float | None = None
+ """Unix epoch time, in seconds, when this quota next resets."""
+
remaining: float | None = None
+ """Remaining entitlement/quota amount at the snapshot timestamp."""
+
timestamp_utc: str | None = None
+ """UTC timestamp when this snapshot was captured."""
+
token_based_billing: bool | None = None
+ """Whether this category uses usage-based (token/AI-credit) billing rather than a fixed
+ premium-request count.
+ """
unlimited: bool | None = None
+ """Whether the entitlement for this category is unlimited."""
@staticmethod
def from_dict(obj: Any) -> 'CopilotUserResponseQuotaSnapshotsPremiumInteractions':
@@ -1586,6 +1750,126 @@ def to_dict(self) -> dict:
result["reasoningEffort"] = from_union([from_str, from_none], self.reasoning_effort)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+class DebugCollectLogsSource(Enum):
+ """Source category for this entry.
+
+ Source category for a collected debug bundle entry.
+ """
+ ADDITIONAL = "additional"
+ EVENTS = "events"
+ PROCESS_LOG = "process-log"
+ SHELL_LOG = "shell-log"
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+class DebugCollectLogsResultKind(Enum):
+ """Destination kind that was written."""
+
+ ARCHIVE = "archive"
+ DIRECTORY = "directory"
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+class DebugCollectLogsRedaction(Enum):
+ """How text content from this entry should be redacted. Defaults to plain-text.
+
+ How a collected debug entry should be redacted before being staged.
+ """
+ EVENTS_JSONL = "events-jsonl"
+ PLAIN_TEXT = "plain-text"
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class DebugCollectLogsInclude:
+ """Built-in session diagnostics to include in the bundle. Omitted fields default to true.
+
+ Which built-in session diagnostics to include. Omitted fields default to true.
+ """
+ current_process_log_path: str | None = None
+ """Server-local path to the current process log. When set, it is included as `process.log`
+ and its directory is searched for prior logs from the same session.
+ """
+ events: bool | None = None
+ """Include the session event log (`events.jsonl`). Defaults to true."""
+
+ events_path: str | None = None
+ """Server-local path to the session's events.jsonl file. Internal callers normally omit this
+ and let the runtime derive it from the session.
+ """
+ previous_process_log_limit: int | None = None
+ """Maximum number of previous process logs to include. Defaults to 5."""
+
+ process_log_directory: str | None = None
+ """Server-local process log directory to search when `currentProcessLogPath` is unavailable,
+ useful for collecting logs for inactive sessions.
+ """
+ process_logs: bool | None = None
+ """Include process logs for the session. Defaults to true."""
+
+ shell_logs: bool | None = None
+ """Include interactive shell logs written under the session's `shell-logs` directory.
+ Defaults to true.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'DebugCollectLogsInclude':
+ assert isinstance(obj, dict)
+ current_process_log_path = from_union([from_str, from_none], obj.get("currentProcessLogPath"))
+ events = from_union([from_bool, from_none], obj.get("events"))
+ events_path = from_union([from_str, from_none], obj.get("eventsPath"))
+ previous_process_log_limit = from_union([from_int, from_none], obj.get("previousProcessLogLimit"))
+ process_log_directory = from_union([from_str, from_none], obj.get("processLogDirectory"))
+ process_logs = from_union([from_bool, from_none], obj.get("processLogs"))
+ shell_logs = from_union([from_bool, from_none], obj.get("shellLogs"))
+ return DebugCollectLogsInclude(current_process_log_path, events, events_path, previous_process_log_limit, process_log_directory, process_logs, shell_logs)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.current_process_log_path is not None:
+ result["currentProcessLogPath"] = from_union([from_str, from_none], self.current_process_log_path)
+ if self.events is not None:
+ result["events"] = from_union([from_bool, from_none], self.events)
+ if self.events_path is not None:
+ result["eventsPath"] = from_union([from_str, from_none], self.events_path)
+ if self.previous_process_log_limit is not None:
+ result["previousProcessLogLimit"] = from_union([from_int, from_none], self.previous_process_log_limit)
+ if self.process_log_directory is not None:
+ result["processLogDirectory"] = from_union([from_str, from_none], self.process_log_directory)
+ if self.process_logs is not None:
+ result["processLogs"] = from_union([from_bool, from_none], self.process_logs)
+ if self.shell_logs is not None:
+ result["shellLogs"] = from_union([from_bool, from_none], self.shell_logs)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class DebugCollectLogsSkippedEntry:
+ """An optional debug bundle entry that could not be included."""
+
+ bundle_path: str
+ """Relative path requested for this bundle entry."""
+
+ reason: str
+ """Reason the entry was skipped."""
+
+ path: str | None = None
+ """Server-local source path that could not be read."""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'DebugCollectLogsSkippedEntry':
+ assert isinstance(obj, dict)
+ bundle_path = from_str(obj.get("bundlePath"))
+ reason = from_str(obj.get("reason"))
+ path = from_union([from_str, from_none], obj.get("path"))
+ return DebugCollectLogsSkippedEntry(bundle_path, reason, path)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["bundlePath"] = from_str(self.bundle_path)
+ result["reason"] = from_str(self.reason)
+ if self.path is not None:
+ result["path"] = from_union([from_str, from_none], self.path)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
class DiscoveredMCPServerType(Enum):
"""Server transport type: stdio, http, sse (deprecated), or memory"""
@@ -2655,8 +2939,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class MarketplaceRefreshEntry:
- """Schema for the `MarketplaceRefreshEntry` type."""
-
+ """Per-marketplace refresh result, including marketplace name, success flag, and optional
+ failure error.
+ """
name: str
"""Marketplace name that was refreshed"""
@@ -2711,7 +2996,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class MCPAllowedServer:
- """Schema for the `McpAllowedServer` type."""
+ """MCP server allowed by policy, with server name and optional PII-free explanatory note."""
name: str
"""Allowed server name"""
@@ -2907,8 +3192,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class MCPAppsResourceContent:
- """Schema for the `McpAppsResourceContent` type."""
-
+ """MCP Apps resource content with URI, optional MIME type, text or base64 blob, and resource
+ metadata.
+ """
uri: str
"""The resource URI (typically ui://...)"""
@@ -3200,8 +3486,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class MCPFilteredServer:
- """Schema for the `McpFilteredServer` type."""
-
+ """MCP server filtered by policy, with name, reason, optional redacted reason, and
+ enterprise login.
+ """
name: str
"""Filtered server name"""
@@ -4269,8 +4556,9 @@ class ProviderWireAPI(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class OptionsUpdateAdditionalContentExclusionPolicyRuleSource:
- """Schema for the `OptionsUpdateAdditionalContentExclusionPolicyRuleSource` type."""
-
+ """Source descriptor for a `session.options.update` content-exclusion rule, with source name
+ and type.
+ """
name: str
type: str
@@ -4320,8 +4608,9 @@ class OptionsUpdateToolFilterPrecedence(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PendingPermissionRequest:
- """Schema for the `PendingPermissionRequest` type."""
-
+ """Pending permission prompt reconstructed from event history, with request ID and
+ user-facing prompt details.
+ """
request: PermissionPromptRequest
"""The user-facing permission prompt details (commands, write, read, mcp, url, memory,
custom-tool, path, hook)
@@ -4773,8 +5062,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsConfigureAdditionalContentExclusionPolicyRuleSource:
- """Schema for the `PermissionsConfigureAdditionalContentExclusionPolicyRuleSource` type."""
-
+ """Source descriptor for a `session.permissions.configure` content-exclusion rule, with
+ source name and type.
+ """
name: str
type: str
@@ -5247,7 +5537,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class Plugin:
- """Schema for the `Plugin` type."""
+ """Session plugin metadata, with name, marketplace, optional version, and enabled state."""
enabled: bool
"""Whether the plugin is currently enabled"""
@@ -5731,8 +6021,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class QueuedCommandHandled:
- """Schema for the `QueuedCommandHandled` type."""
-
+ """Queued-command response indicating the host executed the command, with an optional flag
+ to stop queue processing.
+ """
handled: ClassVar[str] = "true"
"""The host actually executed the queued command."""
@@ -5757,8 +6048,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class QueuedCommandNotHandled:
- """Schema for the `QueuedCommandNotHandled` type."""
-
+ """Queued-command response indicating the host did not execute the command and the queue may
+ continue.
+ """
handled: ClassVar[str] = "false"
"""The host did not execute the queued command. Unblocks the queue without claiming the
command was processed (e.g. when the handler threw before completing).
@@ -6179,37 +6471,25 @@ def to_dict(self) -> dict:
class SandboxConfigUserPolicyNetwork:
"""Network rules to merge into the base policy."""
- allowed_hosts: list[str] | None = None
- """Hosts allowed in addition to the base policy."""
-
allow_local_network: bool | None = None
"""Whether traffic to local/loopback addresses is allowed."""
allow_outbound: bool | None = None
"""Whether outbound network traffic is allowed at all."""
- blocked_hosts: list[str] | None = None
- """Hosts explicitly blocked."""
-
@staticmethod
def from_dict(obj: Any) -> 'SandboxConfigUserPolicyNetwork':
assert isinstance(obj, dict)
- allowed_hosts = from_union([lambda x: from_list(from_str, x), from_none], obj.get("allowedHosts"))
allow_local_network = from_union([from_bool, from_none], obj.get("allowLocalNetwork"))
allow_outbound = from_union([from_bool, from_none], obj.get("allowOutbound"))
- blocked_hosts = from_union([lambda x: from_list(from_str, x), from_none], obj.get("blockedHosts"))
- return SandboxConfigUserPolicyNetwork(allowed_hosts, allow_local_network, allow_outbound, blocked_hosts)
+ return SandboxConfigUserPolicyNetwork(allow_local_network, allow_outbound)
def to_dict(self) -> dict:
result: dict = {}
- if self.allowed_hosts is not None:
- result["allowedHosts"] = from_union([lambda x: from_list(from_str, x), from_none], self.allowed_hosts)
if self.allow_local_network is not None:
result["allowLocalNetwork"] = from_union([from_bool, from_none], self.allow_local_network)
if self.allow_outbound is not None:
result["allowOutbound"] = from_union([from_bool, from_none], self.allow_outbound)
- if self.blocked_hosts is not None:
- result["blockedHosts"] = from_union([lambda x: from_list(from_str, x), from_none], self.blocked_hosts)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -6237,7 +6517,8 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class ScheduleEntry:
- """Schema for the `ScheduleEntry` type.
+ """Scheduled prompt entry with ID, timing (`intervalMs`, `cron`, or `at`), prompt text,
+ recurrence, and next run time.
The removed entry, or omitted if no entry matched.
"""
@@ -6436,8 +6717,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class ServerSkill:
- """Schema for the `ServerSkill` type."""
-
+ """Server-side skill metadata, including name, description, source, enabled/invocable state,
+ path, project path, and argument hint.
+ """
description: str
"""Description of what the skill does"""
@@ -7084,7 +7366,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionOpenOptionsAdditionalContentExclusionPolicyRuleSource:
- """Schema for the `SessionOpenOptionsAdditionalContentExclusionPolicyRuleSource` type."""
+ """Source descriptor for a `sessions.open` content-exclusion rule, with source name and type."""
name: str
type: str
@@ -7243,55 +7525,291 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class SessionSizes:
- """Map of sessionId -> on-disk size in bytes for each session's workspace directory."""
+class SessionSettingsBuiltInToolAvailabilitySnapshot:
+ """Availability of built-in job tools surfaced to boundary consumers."""
- sizes: dict[str, int]
- """Map of sessionId -> on-disk size in bytes for the session's workspace directory"""
+ create_pull_request: bool | None = None
+ report_progress: bool | None = None
@staticmethod
- def from_dict(obj: Any) -> 'SessionSizes':
+ def from_dict(obj: Any) -> 'SessionSettingsBuiltInToolAvailabilitySnapshot':
assert isinstance(obj, dict)
- sizes = from_dict(from_int, obj.get("sizes"))
- return SessionSizes(sizes)
+ create_pull_request = from_union([from_bool, from_none], obj.get("createPullRequest"))
+ report_progress = from_union([from_bool, from_none], obj.get("reportProgress"))
+ return SessionSettingsBuiltInToolAvailabilitySnapshot(create_pull_request, report_progress)
def to_dict(self) -> dict:
result: dict = {}
- result["sizes"] = from_dict(from_int, self.sizes)
+ if self.create_pull_request is not None:
+ result["createPullRequest"] = from_union([from_bool, from_none], self.create_pull_request)
+ if self.report_progress is not None:
+ result["reportProgress"] = from_union([from_bool, from_none], self.report_progress)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
-class SessionSource(Enum):
- """Which session sources to include. Defaults to `local` for backward compatibility."""
+class SessionSettingsPredicateName(Enum):
+ """Predicate name. The runtime owns the raw feature-flag names and composition logic.
- ALL = "all"
- LOCAL = "local"
- REMOTE = "remote"
+ Rust-owned settings predicates exposed across the SDK boundary. Raw feature-flag names
+ are intentionally not part of the contract.
+ """
+ CAP_CLAUDE_OPUS_TOKEN_LIMITS_ENABLED = "capClaudeOpusTokenLimitsEnabled"
+ CCA_USE_TS_AUTOFIND_ENABLED = "ccaUseTsAutofindEnabled"
+ CHRONICLE_ENABLED = "chronicleEnabled"
+ CODEQL_CHECKER_ENABLED = "codeqlCheckerEnabled"
+ CODE_REVIEW_FEATURE_ENABLED = "codeReviewFeatureEnabled"
+ CONTENT_EXCLUSION_SELF_FETCH_ENABLED = "contentExclusionSelfFetchEnabled"
+ CO_AUTHOR_HOOK_ENABLED = "coAuthorHookEnabled"
+ DEPENDABOT_CHECKER_ENABLED = "dependabotCheckerEnabled"
+ DEPENDENCY_CHECKER_ENABLED = "dependencyCheckerEnabled"
+ PARALLEL_VALIDATION_ENABLED = "parallelValidationEnabled"
+ RUNTIME_TIMING_TELEMETRY_ENABLED = "runtimeTimingTelemetryEnabled"
+ SECURITY_TOOLS_ENABLED = "securityToolsEnabled"
+ THIRD_PARTY_SECURITY_PROMPT_ENABLED = "thirdPartySecurityPromptEnabled"
+ TRIVIAL_CHANGE_ENABLED = "trivialChangeEnabled"
+ TRIVIAL_CHANGE_ENABLED_FOR_CODE_REVIEW = "trivialChangeEnabledForCodeReview"
+ TRIVIAL_CHANGE_ENABLED_FOR_TOOL = "trivialChangeEnabledForTool"
+ TRIVIAL_CHANGE_SKIP_ENABLED = "trivialChangeSkipEnabled"
+ TRIVIAL_CHANGE_SKIP_ENABLED_FOR_CODE_REVIEW = "trivialChangeSkipEnabledForCodeReview"
+ TRIVIAL_CHANGE_SKIP_ENABLED_FOR_TOOL = "trivialChangeSkipEnabledForTool"
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class SessionTelemetryEngagement:
- """Telemetry engagement ID for the session, when available."""
+class SessionSettingsEvaluatePredicateResult:
+ """Result of evaluating a Rust-owned settings predicate."""
- engagement_id: str | None = None
- """Current telemetry engagement ID, when available."""
+ enabled: bool
@staticmethod
- def from_dict(obj: Any) -> 'SessionTelemetryEngagement':
+ def from_dict(obj: Any) -> 'SessionSettingsEvaluatePredicateResult':
assert isinstance(obj, dict)
- engagement_id = from_union([from_str, from_none], obj.get("engagementId"))
- return SessionTelemetryEngagement(engagement_id)
+ enabled = from_bool(obj.get("enabled"))
+ return SessionSettingsEvaluatePredicateResult(enabled)
def to_dict(self) -> dict:
result: dict = {}
- if self.engagement_id is not None:
- result["engagementId"] = from_union([from_str, from_none], self.engagement_id)
+ result["enabled"] = from_bool(self.enabled)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class SessionUpdateOptionsResult:
- """Indicates whether the session options patch was applied successfully."""
+class SessionSettingsModelSnapshot:
+ """Redacted model routing settings for a session."""
+
+ callback_url: str | None = None
+ default_reasoning_effort: str | None = None
+ instance_id: str | None = None
+ model: str | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionSettingsModelSnapshot':
+ assert isinstance(obj, dict)
+ callback_url = from_union([from_str, from_none], obj.get("callbackUrl"))
+ default_reasoning_effort = from_union([from_str, from_none], obj.get("defaultReasoningEffort"))
+ instance_id = from_union([from_str, from_none], obj.get("instanceId"))
+ model = from_union([from_str, from_none], obj.get("model"))
+ return SessionSettingsModelSnapshot(callback_url, default_reasoning_effort, instance_id, model)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.callback_url is not None:
+ result["callbackUrl"] = from_union([from_str, from_none], self.callback_url)
+ if self.default_reasoning_effort is not None:
+ result["defaultReasoningEffort"] = from_union([from_str, from_none], self.default_reasoning_effort)
+ if self.instance_id is not None:
+ result["instanceId"] = from_union([from_str, from_none], self.instance_id)
+ if self.model is not None:
+ result["model"] = from_union([from_str, from_none], self.model)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SessionSettingsOnlineEvaluationSnapshot:
+ """Online-evaluation settings safe to expose across the SDK boundary."""
+
+ disable_online_evaluation: bool | None = None
+ enable_online_evaluation_output_file: bool | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionSettingsOnlineEvaluationSnapshot':
+ assert isinstance(obj, dict)
+ disable_online_evaluation = from_union([from_bool, from_none], obj.get("disableOnlineEvaluation"))
+ enable_online_evaluation_output_file = from_union([from_bool, from_none], obj.get("enableOnlineEvaluationOutputFile"))
+ return SessionSettingsOnlineEvaluationSnapshot(disable_online_evaluation, enable_online_evaluation_output_file)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.disable_online_evaluation is not None:
+ result["disableOnlineEvaluation"] = from_union([from_bool, from_none], self.disable_online_evaluation)
+ if self.enable_online_evaluation_output_file is not None:
+ result["enableOnlineEvaluationOutputFile"] = from_union([from_bool, from_none], self.enable_online_evaluation_output_file)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SessionSettingsRepoSnapshot:
+ """Redacted repository and GitHub host settings for a session."""
+
+ branch: str | None = None
+ commit: str | None = None
+ host: str | None = None
+ host_protocol: str | None = None
+ id: float | None = None
+ name: str | None = None
+ owner_id: float | None = None
+ owner_name: str | None = None
+ pr_commit_count: float | None = None
+ read_write: bool | None = None
+ secret_scanning_url: str | None = None
+ server_url: str | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionSettingsRepoSnapshot':
+ assert isinstance(obj, dict)
+ branch = from_union([from_str, from_none], obj.get("branch"))
+ commit = from_union([from_str, from_none], obj.get("commit"))
+ host = from_union([from_str, from_none], obj.get("host"))
+ host_protocol = from_union([from_str, from_none], obj.get("hostProtocol"))
+ id = from_union([from_float, from_none], obj.get("id"))
+ name = from_union([from_str, from_none], obj.get("name"))
+ owner_id = from_union([from_float, from_none], obj.get("ownerId"))
+ owner_name = from_union([from_str, from_none], obj.get("ownerName"))
+ pr_commit_count = from_union([from_float, from_none], obj.get("prCommitCount"))
+ read_write = from_union([from_bool, from_none], obj.get("readWrite"))
+ secret_scanning_url = from_union([from_str, from_none], obj.get("secretScanningUrl"))
+ server_url = from_union([from_str, from_none], obj.get("serverUrl"))
+ return SessionSettingsRepoSnapshot(branch, commit, host, host_protocol, id, name, owner_id, owner_name, pr_commit_count, read_write, secret_scanning_url, server_url)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.branch is not None:
+ result["branch"] = from_union([from_str, from_none], self.branch)
+ if self.commit is not None:
+ result["commit"] = from_union([from_str, from_none], self.commit)
+ if self.host is not None:
+ result["host"] = from_union([from_str, from_none], self.host)
+ if self.host_protocol is not None:
+ result["hostProtocol"] = from_union([from_str, from_none], self.host_protocol)
+ if self.id is not None:
+ result["id"] = from_union([to_float, from_none], self.id)
+ if self.name is not None:
+ result["name"] = from_union([from_str, from_none], self.name)
+ if self.owner_id is not None:
+ result["ownerId"] = from_union([to_float, from_none], self.owner_id)
+ if self.owner_name is not None:
+ result["ownerName"] = from_union([from_str, from_none], self.owner_name)
+ if self.pr_commit_count is not None:
+ result["prCommitCount"] = from_union([to_float, from_none], self.pr_commit_count)
+ if self.read_write is not None:
+ result["readWrite"] = from_union([from_bool, from_none], self.read_write)
+ if self.secret_scanning_url is not None:
+ result["secretScanningUrl"] = from_union([from_str, from_none], self.secret_scanning_url)
+ if self.server_url is not None:
+ result["serverUrl"] = from_union([from_str, from_none], self.server_url)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SessionSettingsValidationSnapshot:
+ """Redacted validation and memory-tool settings for a session."""
+
+ advisory_enabled: bool | None = None
+ codeql_enabled: bool | None = None
+ code_review_enabled: bool | None = None
+ code_review_model: str | None = None
+ dependabot_timeout: float | None = None
+ memory_store_enabled: bool | None = None
+ memory_vote_enabled: bool | None = None
+ secret_scanning_enabled: bool | None = None
+ timeout: float | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionSettingsValidationSnapshot':
+ assert isinstance(obj, dict)
+ advisory_enabled = from_union([from_bool, from_none], obj.get("advisoryEnabled"))
+ codeql_enabled = from_union([from_bool, from_none], obj.get("codeqlEnabled"))
+ code_review_enabled = from_union([from_bool, from_none], obj.get("codeReviewEnabled"))
+ code_review_model = from_union([from_str, from_none], obj.get("codeReviewModel"))
+ dependabot_timeout = from_union([from_float, from_none], obj.get("dependabotTimeout"))
+ memory_store_enabled = from_union([from_bool, from_none], obj.get("memoryStoreEnabled"))
+ memory_vote_enabled = from_union([from_bool, from_none], obj.get("memoryVoteEnabled"))
+ secret_scanning_enabled = from_union([from_bool, from_none], obj.get("secretScanningEnabled"))
+ timeout = from_union([from_float, from_none], obj.get("timeout"))
+ return SessionSettingsValidationSnapshot(advisory_enabled, codeql_enabled, code_review_enabled, code_review_model, dependabot_timeout, memory_store_enabled, memory_vote_enabled, secret_scanning_enabled, timeout)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.advisory_enabled is not None:
+ result["advisoryEnabled"] = from_union([from_bool, from_none], self.advisory_enabled)
+ if self.codeql_enabled is not None:
+ result["codeqlEnabled"] = from_union([from_bool, from_none], self.codeql_enabled)
+ if self.code_review_enabled is not None:
+ result["codeReviewEnabled"] = from_union([from_bool, from_none], self.code_review_enabled)
+ if self.code_review_model is not None:
+ result["codeReviewModel"] = from_union([from_str, from_none], self.code_review_model)
+ if self.dependabot_timeout is not None:
+ result["dependabotTimeout"] = from_union([to_float, from_none], self.dependabot_timeout)
+ if self.memory_store_enabled is not None:
+ result["memoryStoreEnabled"] = from_union([from_bool, from_none], self.memory_store_enabled)
+ if self.memory_vote_enabled is not None:
+ result["memoryVoteEnabled"] = from_union([from_bool, from_none], self.memory_vote_enabled)
+ if self.secret_scanning_enabled is not None:
+ result["secretScanningEnabled"] = from_union([from_bool, from_none], self.secret_scanning_enabled)
+ if self.timeout is not None:
+ result["timeout"] = from_union([to_float, from_none], self.timeout)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SessionSizes:
+ """Map of sessionId -> on-disk size in bytes for each session's workspace directory."""
+
+ sizes: dict[str, int]
+ """Map of sessionId -> on-disk size in bytes for the session's workspace directory"""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionSizes':
+ assert isinstance(obj, dict)
+ sizes = from_dict(from_int, obj.get("sizes"))
+ return SessionSizes(sizes)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["sizes"] = from_dict(from_int, self.sizes)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+class SessionSource(Enum):
+ """Which session sources to include. Defaults to `local` for backward compatibility."""
+
+ ALL = "all"
+ LOCAL = "local"
+ REMOTE = "remote"
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SessionTelemetryEngagement:
+ """Telemetry engagement ID for the session, when available."""
+
+ engagement_id: str | None = None
+ """Current telemetry engagement ID, when available."""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionTelemetryEngagement':
+ assert isinstance(obj, dict)
+ engagement_id = from_union([from_str, from_none], obj.get("engagementId"))
+ return SessionTelemetryEngagement(engagement_id)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.engagement_id is not None:
+ result["engagementId"] = from_union([from_str, from_none], self.engagement_id)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SessionUpdateOptionsResult:
+ """Indicates whether the session options patch was applied successfully."""
success: bool
"""Whether the operation succeeded"""
@@ -8129,8 +8647,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class Skill:
- """Schema for the `Skill` type."""
-
+ """Skill metadata available to a session, with name, description, source, enabled/invocable
+ state, path, plugin, and argument hint.
+ """
description: str
"""Description of what the skill does"""
@@ -8293,46 +8812,6 @@ def to_dict(self) -> dict:
result["projectPaths"] = from_union([lambda x: from_list(from_str, x), from_none], self.project_paths)
return result
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class SkillsInvokedSkill:
- """Schema for the `SkillsInvokedSkill` type."""
-
- content: str
- """Full content of the skill file"""
-
- invoked_at_turn: int
- """Turn number when the skill was invoked"""
-
- name: str
- """Unique identifier for the skill"""
-
- path: str
- """Path to the SKILL.md file"""
-
- allowed_tools: list[str] | None = None
- """Tools that should be auto-approved when this skill is active, captured at invocation time"""
-
- @staticmethod
- def from_dict(obj: Any) -> 'SkillsInvokedSkill':
- assert isinstance(obj, dict)
- content = from_str(obj.get("content"))
- invoked_at_turn = from_int(obj.get("invokedAtTurn"))
- name = from_str(obj.get("name"))
- path = from_str(obj.get("path"))
- allowed_tools = from_union([lambda x: from_list(from_str, x), from_none], obj.get("allowedTools"))
- return SkillsInvokedSkill(content, invoked_at_turn, name, path, allowed_tools)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["content"] = from_str(self.content)
- result["invokedAtTurn"] = from_int(self.invoked_at_turn)
- result["name"] = from_str(self.name)
- result["path"] = from_str(self.path)
- if self.allowed_tools is not None:
- result["allowedTools"] = from_union([lambda x: from_list(from_str, x), from_none], self.allowed_tools)
- return result
-
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SkillsLoadDiagnostics:
@@ -8372,8 +8851,9 @@ class SlashCommandInvocationResultKind(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SlashCommandSelectSubcommandOption:
- """Schema for the `SlashCommandSelectSubcommandOption` type."""
-
+ """Selectable slash-command subcommand option with name, description, and optional group
+ label.
+ """
description: str
"""Human-readable description of the subcommand"""
@@ -8433,7 +8913,7 @@ class TaskAgentInfoType(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class TaskProgressLine:
- """Schema for the `TaskProgressLine` type."""
+ """Timestamped display line for task progress output or recent agent activity."""
message: str
"""Display message, e.g., "▸ bash", "✓ edit src/foo.ts\""""
@@ -8846,8 +9326,9 @@ class TokenAuthInfoType(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class Tool:
- """Schema for the `Tool` type."""
-
+ """Built-in tool metadata with identifier, optional namespaced name, description,
+ input-parameter schema, and usage instructions.
+ """
description: str
"""Description of what the tool does"""
@@ -8949,8 +9430,9 @@ class UIAutoModeSwitchResponse(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class UIElicitationArrayAnyOfFieldItemsAnyOf:
- """Schema for the `UIElicitationArrayAnyOfFieldItemsAnyOf` type."""
-
+ """Selectable option for a UI elicitation multi-select array item, with submitted value and
+ display label.
+ """
const: str
"""Value submitted when this option is selected."""
@@ -8988,8 +9470,9 @@ class UIElicitationSchemaPropertyStringFormat(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class UIElicitationStringOneOfFieldOneOf:
- """Schema for the `UIElicitationStringOneOfFieldOneOf` type."""
-
+ """Selectable option for a UI elicitation single-select string field, with submitted value
+ and display label.
+ """
const: str
"""Value submitted when this option is selected."""
@@ -9154,8 +9637,9 @@ class UISessionLimitsExhaustedResponseAction(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class UIUserInputResponse:
- """Schema for the `UIUserInputResponse` type."""
-
+ """User response for a pending user-input request, with answer text and whether it was typed
+ freeform.
+ """
answer: str
"""The user's answer text"""
@@ -9304,7 +9788,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class UsageMetricsModelMetricTokenDetail:
- """Schema for the `UsageMetricsModelMetricTokenDetail` type."""
+ """Per-model token-detail entry containing the accumulated token count for one token type."""
token_count: int
"""Accumulated token count for this token type"""
@@ -9363,7 +9847,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class UsageMetricsTokenDetail:
- """Schema for the `UsageMetricsTokenDetail` type."""
+ """Session-wide token-detail entry containing the accumulated token count for one token type."""
token_count: int
"""Accumulated token count for this token type"""
@@ -9476,35 +9960,6 @@ class WorkspaceDiffMode(Enum):
SESSION = "session"
UNSTAGED = "unstaged"
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class WorkspacesCheckpoints:
- """Schema for the `WorkspacesCheckpoints` type."""
-
- filename: str
- """Filename of the checkpoint within the workspace checkpoints directory"""
-
- number: int
- """Checkpoint number assigned by the workspace manager"""
-
- title: str
- """Human-readable checkpoint title"""
-
- @staticmethod
- def from_dict(obj: Any) -> 'WorkspacesCheckpoints':
- assert isinstance(obj, dict)
- filename = from_str(obj.get("filename"))
- number = from_int(obj.get("number"))
- title = from_str(obj.get("title"))
- return WorkspacesCheckpoints(filename, number, title)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["filename"] = from_str(self.filename)
- result["number"] = from_int(self.number)
- result["title"] = from_str(self.title)
- return result
-
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class WorkspacesCreateFileRequest:
@@ -9806,8 +10261,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class AgentDiscoveryPath:
- """Schema for the `AgentDiscoveryPath` type."""
-
+ """Canonical directory where custom agents can be discovered or created, with scope,
+ preference, and optional project path.
+ """
path: str
"""Absolute path of the search/create directory (may not exist on disk yet)"""
@@ -9942,6 +10398,61 @@ def to_dict(self) -> dict:
result["field"] = from_union([lambda x: to_enum(AgentRegistrySpawnValidationErrorField, x), from_none], self.field)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class AllowAllPermissionSetResult:
+ """Indicates whether the operation succeeded and reports the post-mutation state."""
+
+ enabled: bool
+ """Authoritative full allow-all state after the mutation"""
+
+ success: bool
+ """Whether the operation succeeded"""
+
+ mode: PermissionsAllowAllMode | None = None
+ """Authoritative allow-all mode after the mutation"""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'AllowAllPermissionSetResult':
+ assert isinstance(obj, dict)
+ enabled = from_bool(obj.get("enabled"))
+ success = from_bool(obj.get("success"))
+ mode = from_union([PermissionsAllowAllMode, from_none], obj.get("mode"))
+ return AllowAllPermissionSetResult(enabled, success, mode)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["enabled"] = from_bool(self.enabled)
+ result["success"] = from_bool(self.success)
+ if self.mode is not None:
+ result["mode"] = from_union([lambda x: to_enum(PermissionsAllowAllMode, x), from_none], self.mode)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class AllowAllPermissionState:
+ """Current allow-all permission mode."""
+
+ enabled: bool
+ """Whether full allow-all permissions are currently active"""
+
+ mode: PermissionsAllowAllMode | None = None
+ """Current allow-all mode"""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'AllowAllPermissionState':
+ assert isinstance(obj, dict)
+ enabled = from_bool(obj.get("enabled"))
+ mode = from_union([PermissionsAllowAllMode, from_none], obj.get("mode"))
+ return AllowAllPermissionState(enabled, mode)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["enabled"] = from_bool(self.enabled)
+ if self.mode is not None:
+ result["mode"] = from_union([lambda x: to_enum(PermissionsAllowAllMode, x), from_none], self.mode)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class DiscoveredCanvas:
@@ -10231,69 +10742,70 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class CopilotUserResponseQuotaSnapshots:
- """Schema for the `CopilotUserResponseQuotaSnapshotsChat` type.
+class DebugCollectLogsCollectedEntry:
+ """A file included in the redacted debug bundle."""
- Schema for the `CopilotUserResponseQuotaSnapshotsCompletions` type.
+ bundle_path: str
+ """Relative path of the file in the staged bundle/archive."""
- Schema for the `CopilotUserResponseQuotaSnapshotsPremiumInteractions` type.
- """
- entitlement: float | None = None
- has_quota: bool | None = None
- overage_count: float | None = None
- overage_permitted: bool | None = None
- percent_remaining: float | None = None
- quota_id: str | None = None
- quota_remaining: float | None = None
- quota_reset_at: float | None = None
- remaining: float | None = None
- timestamp_utc: str | None = None
- token_based_billing: bool | None = None
- unlimited: bool | None = None
+ size_bytes: int
+ """Redacted output size in bytes."""
+
+ source: DebugCollectLogsSource
+ """Source category for this entry."""
@staticmethod
- def from_dict(obj: Any) -> 'CopilotUserResponseQuotaSnapshots':
+ def from_dict(obj: Any) -> 'DebugCollectLogsCollectedEntry':
assert isinstance(obj, dict)
- entitlement = from_union([from_float, from_none], obj.get("entitlement"))
- has_quota = from_union([from_bool, from_none], obj.get("has_quota"))
- overage_count = from_union([from_float, from_none], obj.get("overage_count"))
- overage_permitted = from_union([from_bool, from_none], obj.get("overage_permitted"))
- percent_remaining = from_union([from_float, from_none], obj.get("percent_remaining"))
- quota_id = from_union([from_str, from_none], obj.get("quota_id"))
- quota_remaining = from_union([from_float, from_none], obj.get("quota_remaining"))
- quota_reset_at = from_union([from_float, from_none], obj.get("quota_reset_at"))
- remaining = from_union([from_float, from_none], obj.get("remaining"))
- timestamp_utc = from_union([from_str, from_none], obj.get("timestamp_utc"))
- token_based_billing = from_union([from_bool, from_none], obj.get("token_based_billing"))
- unlimited = from_union([from_bool, from_none], obj.get("unlimited"))
- return CopilotUserResponseQuotaSnapshots(entitlement, has_quota, overage_count, overage_permitted, percent_remaining, quota_id, quota_remaining, quota_reset_at, remaining, timestamp_utc, token_based_billing, unlimited)
+ bundle_path = from_str(obj.get("bundlePath"))
+ size_bytes = from_int(obj.get("sizeBytes"))
+ source = DebugCollectLogsSource(obj.get("source"))
+ return DebugCollectLogsCollectedEntry(bundle_path, size_bytes, source)
def to_dict(self) -> dict:
result: dict = {}
- if self.entitlement is not None:
- result["entitlement"] = from_union([to_float, from_none], self.entitlement)
- if self.has_quota is not None:
- result["has_quota"] = from_union([from_bool, from_none], self.has_quota)
- if self.overage_count is not None:
- result["overage_count"] = from_union([to_float, from_none], self.overage_count)
- if self.overage_permitted is not None:
- result["overage_permitted"] = from_union([from_bool, from_none], self.overage_permitted)
- if self.percent_remaining is not None:
- result["percent_remaining"] = from_union([to_float, from_none], self.percent_remaining)
- if self.quota_id is not None:
- result["quota_id"] = from_union([from_str, from_none], self.quota_id)
- if self.quota_remaining is not None:
- result["quota_remaining"] = from_union([to_float, from_none], self.quota_remaining)
- if self.quota_reset_at is not None:
- result["quota_reset_at"] = from_union([to_float, from_none], self.quota_reset_at)
- if self.remaining is not None:
- result["remaining"] = from_union([to_float, from_none], self.remaining)
- if self.timestamp_utc is not None:
- result["timestamp_utc"] = from_union([from_str, from_none], self.timestamp_utc)
- if self.token_based_billing is not None:
- result["token_based_billing"] = from_union([from_bool, from_none], self.token_based_billing)
- if self.unlimited is not None:
- result["unlimited"] = from_union([from_bool, from_none], self.unlimited)
+ result["bundlePath"] = from_str(self.bundle_path)
+ result["sizeBytes"] = from_int(self.size_bytes)
+ result["source"] = to_enum(DebugCollectLogsSource, self.source)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class DebugCollectLogsDestination:
+ """Destination for the redacted debug bundle.
+
+ Where the redacted bundle should be written. Use `archive` to produce a .tgz, or
+ `directory` to stage redacted files for caller-managed upload/post-processing.
+ """
+ kind: DebugCollectLogsResultKind
+ no_overwrite: bool | None = None
+ """When true, create the archive atomically without overwriting an existing file by
+ appending ` (N)` before the extension as needed. Defaults to false.
+ """
+ output_path: str | None = None
+ """Absolute or server-relative path for the .tgz archive to create."""
+
+ output_directory: str | None = None
+ """Directory where redacted files should be staged. The directory is created if needed."""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'DebugCollectLogsDestination':
+ assert isinstance(obj, dict)
+ kind = DebugCollectLogsResultKind(obj.get("kind"))
+ no_overwrite = from_union([from_bool, from_none], obj.get("noOverwrite"))
+ output_path = from_union([from_str, from_none], obj.get("outputPath"))
+ output_directory = from_union([from_str, from_none], obj.get("outputDirectory"))
+ return DebugCollectLogsDestination(kind, no_overwrite, output_path, output_directory)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["kind"] = to_enum(DebugCollectLogsResultKind, self.kind)
+ if self.no_overwrite is not None:
+ result["noOverwrite"] = from_union([from_bool, from_none], self.no_overwrite)
+ if self.output_path is not None:
+ result["outputPath"] = from_union([from_str, from_none], self.output_path)
+ if self.output_directory is not None:
+ result["outputDirectory"] = from_union([from_str, from_none], self.output_directory)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -10395,8 +10907,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class Extension:
- """Schema for the `Extension` type."""
-
+ """Discovered extension metadata, including source-qualified ID, name, discovery source,
+ status, and optional process ID.
+ """
id: str
"""Source-qualified ID (e.g., 'project:my-ext', 'user:auth-helper',
'plugin:my-plugin:my-ext')
@@ -10730,7 +11243,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SlashCommandTextResult:
- """Schema for the `SlashCommandTextResult` type."""
+ """Slash-command invocation result containing text output plus Markdown/ANSI rendering flags."""
kind: ClassVar[str] = "text"
"""Text result discriminator"""
@@ -10816,9 +11329,102 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class InstalledPluginSourceGitHub:
- """Schema for the `InstalledPluginSourceGitHub` type."""
+class InstalledPluginSource:
+ """Source descriptor for a direct GitHub plugin install, with `owner/repo`, optional ref,
+ and optional subpath.
+
+ Source descriptor for a direct URL plugin install, with URL, optional ref, and optional
+ subpath.
+
+ Source descriptor for a direct local plugin install, with a local filesystem path.
+ """
+ source: PurpleSource
+ """Constant value. Always "github".
+
+ Constant value. Always "url".
+
+ Constant value. Always "local".
+ """
+ path: str | None = None
+ ref: str | None = None
+ repo: str | None = None
+ url: str | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'InstalledPluginSource':
+ assert isinstance(obj, dict)
+ source = PurpleSource(obj.get("source"))
+ path = from_union([from_str, from_none], obj.get("path"))
+ ref = from_union([from_str, from_none], obj.get("ref"))
+ repo = from_union([from_str, from_none], obj.get("repo"))
+ url = from_union([from_str, from_none], obj.get("url"))
+ return InstalledPluginSource(source, path, ref, repo, url)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["source"] = to_enum(PurpleSource, self.source)
+ if self.path is not None:
+ result["path"] = from_union([from_str, from_none], self.path)
+ if self.ref is not None:
+ result["ref"] = from_union([from_str, from_none], self.ref)
+ if self.repo is not None:
+ result["repo"] = from_union([from_str, from_none], self.repo)
+ if self.url is not None:
+ result["url"] = from_union([from_str, from_none], self.url)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SessionInstalledPluginSource:
+ """Source descriptor for a direct GitHub plugin install, with `owner/repo`, optional ref,
+ and optional subpath.
+
+ Source descriptor for a direct URL plugin install, with URL, optional ref, and optional
+ subpath.
+
+ Source descriptor for a direct local plugin install, with a local filesystem path.
+ """
+ source: PurpleSource
+ """Constant value. Always "github".
+
+ Constant value. Always "url".
+
+ Constant value. Always "local".
+ """
+ path: str | None = None
+ ref: str | None = None
+ repo: str | None = None
+ url: str | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionInstalledPluginSource':
+ assert isinstance(obj, dict)
+ source = PurpleSource(obj.get("source"))
+ path = from_union([from_str, from_none], obj.get("path"))
+ ref = from_union([from_str, from_none], obj.get("ref"))
+ repo = from_union([from_str, from_none], obj.get("repo"))
+ url = from_union([from_str, from_none], obj.get("url"))
+ return SessionInstalledPluginSource(source, path, ref, repo, url)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["source"] = to_enum(PurpleSource, self.source)
+ if self.path is not None:
+ result["path"] = from_union([from_str, from_none], self.path)
+ if self.ref is not None:
+ result["ref"] = from_union([from_str, from_none], self.ref)
+ if self.repo is not None:
+ result["repo"] = from_union([from_str, from_none], self.repo)
+ if self.url is not None:
+ result["url"] = from_union([from_str, from_none], self.url)
+ return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class InstalledPluginSourceGitHub:
+ """Source descriptor for a direct GitHub plugin install, with `owner/repo`, optional ref,
+ and optional subpath.
+ """
repo: str
source: FluffySource
"""Constant value. Always "github"."""
@@ -10848,8 +11454,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionInstalledPluginSourceGitHub:
- """Schema for the `SessionInstalledPluginSourceGitHub` type."""
-
+ """Source descriptor for a direct GitHub plugin install, with `owner/repo`, optional ref,
+ and optional subpath.
+ """
repo: str
source: FluffySource
"""Constant value. Always "github"."""
@@ -10879,7 +11486,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class InstalledPluginSourceLocal:
- """Schema for the `InstalledPluginSourceLocal` type."""
+ """Source descriptor for a direct local plugin install, with a local filesystem path."""
path: str
source: TentacledSource
@@ -10901,7 +11508,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionInstalledPluginSourceLocal:
- """Schema for the `SessionInstalledPluginSourceLocal` type."""
+ """Source descriptor for a direct local plugin install, with a local filesystem path."""
path: str
source: TentacledSource
@@ -10923,8 +11530,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class InstalledPluginSourceURL:
- """Schema for the `InstalledPluginSourceUrl` type."""
-
+ """Source descriptor for a direct URL plugin install, with URL, optional ref, and optional
+ subpath.
+ """
source: StickySource
"""Constant value. Always "url"."""
@@ -10954,8 +11562,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionInstalledPluginSourceURL:
- """Schema for the `SessionInstalledPluginSourceUrl` type."""
-
+ """Source descriptor for a direct URL plugin install, with URL, optional ref, and optional
+ subpath.
+ """
source: StickySource
"""Constant value. Always "url"."""
@@ -10985,8 +11594,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class InstructionSource:
- """Schema for the `InstructionSource` type."""
-
+ """Loaded instruction source for a session, including path, content, category, location,
+ applicability, and optional description.
+ """
content: str
"""Raw content of the instruction file"""
@@ -11071,6 +11681,35 @@ class LlmInferenceHTTPRequestStartRequest:
url: str
"""Absolute request URL."""
+ agent_id: str | None = None
+ """Stable per-agent-instance id attributing this request to a specific agent trajectory.
+ Present when the request originates from an agent turn; absent for requests issued
+ outside any agent context (e.g. some SDK callers). A request with an `agentId` but no
+ `parentAgentId` is a root-agent request; one carrying both is a subagent request. Sourced
+ from the runtime's per-request agent context and surfaced on the envelope independently
+ of transport, so it is available for both first-party (CAPI) and BYOK/custom-provider
+ requests; on the CAPI transport the runtime derives the upstream `X-Agent-Task-Id` header
+ from this same context. Consumers routing each provider call to a training trajectory
+ should key on this rather than on lifecycle events, since it is available on the request
+ path before sampling.
+ """
+ interaction_type: str | None = None
+ """Coarse classification of the interaction that produced this request. Open string for
+ forward-compatibility; known values include `conversation-agent`,
+ `conversation-subagent`, `conversation-sampling`, `conversation-background`,
+ `conversation-compaction`, and `conversation-user`. Absent when the runtime did not
+ classify the request. Comes from the runtime's per-request agent context independently of
+ transport; on the CAPI transport the runtime derives the upstream `X-Interaction-Type`
+ header from this same context.
+ """
+ parent_agent_id: str | None = None
+ """Id of the parent agent that spawned the agent issuing this request. Present only for
+ subagent requests; absent for root-agent requests and non-agent requests. Combined with
+ `agentId`, this lets consumers attribute a call to a child trajectory versus the root.
+ Like `agentId`, it comes from the runtime's per-request agent context independently of
+ transport; on the CAPI transport the runtime derives the upstream `X-Parent-Agent-Id`
+ header from this same context.
+ """
session_id: str | None = None
"""Id of the runtime session that triggered this request, when one is in scope. Absent for
requests issued outside any session (e.g. startup model-catalog or capability
@@ -11093,9 +11732,12 @@ def from_dict(obj: Any) -> 'LlmInferenceHTTPRequestStartRequest':
method = from_str(obj.get("method"))
request_id = from_str(obj.get("requestId"))
url = from_str(obj.get("url"))
+ agent_id = from_union([from_str, from_none], obj.get("agentId"))
+ interaction_type = from_union([from_str, from_none], obj.get("interactionType"))
+ parent_agent_id = from_union([from_str, from_none], obj.get("parentAgentId"))
session_id = from_union([from_str, from_none], obj.get("sessionId"))
transport = from_union([LlmInferenceHTTPRequestStartTransport, from_none], obj.get("transport"))
- return LlmInferenceHTTPRequestStartRequest(headers, method, request_id, url, session_id, transport)
+ return LlmInferenceHTTPRequestStartRequest(headers, method, request_id, url, agent_id, interaction_type, parent_agent_id, session_id, transport)
def to_dict(self) -> dict:
result: dict = {}
@@ -11103,6 +11745,12 @@ def to_dict(self) -> dict:
result["method"] = from_str(self.method)
result["requestId"] = from_str(self.request_id)
result["url"] = from_str(self.url)
+ if self.agent_id is not None:
+ result["agentId"] = from_union([from_str, from_none], self.agent_id)
+ if self.interaction_type is not None:
+ result["interactionType"] = from_union([from_str, from_none], self.interaction_type)
+ if self.parent_agent_id is not None:
+ result["parentAgentId"] = from_union([from_str, from_none], self.parent_agent_id)
if self.session_id is not None:
result["sessionId"] = from_union([from_str, from_none], self.session_id)
if self.transport is not None:
@@ -12185,8 +12833,12 @@ def to_dict(self) -> dict:
return result
# Experimental: this type is part of an experimental API and may change or be removed.
-class InstructionDiscoveryPathKind(Enum):
- """Whether the target is a single file or a directory of instruction files
+class DebugCollectLogsEntryKind(Enum):
+ """Kind of source path to include.
+
+ Kind of caller-provided debug log entry.
+
+ Whether the target is a single file or a directory of instruction files
Entry type
"""
@@ -12656,12 +13308,14 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class OptionsUpdateAdditionalContentExclusionPolicyRule:
- """Schema for the `OptionsUpdateAdditionalContentExclusionPolicyRule` type."""
-
+ """Single content-exclusion rule supplied to `session.options.update`, with paths, match
+ conditions, and source.
+ """
paths: list[str]
source: OptionsUpdateAdditionalContentExclusionPolicyRuleSource
- """Schema for the `OptionsUpdateAdditionalContentExclusionPolicyRuleSource` type."""
-
+ """Source descriptor for a `session.options.update` content-exclusion rule, with source name
+ and type.
+ """
if_any_match: list[str] | None = None
if_none_match: list[str] | None = None
@@ -12710,8 +13364,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForLocation:
- """Schema for the `PermissionDecisionApproveForLocation` type."""
-
+ """Permission-decision request variant to approve and persist a permission for a project
+ location, with approval details and location key.
+ """
approval: PermissionDecisionApproveForLocationApproval
"""Approval to persist for this location"""
@@ -12738,7 +13393,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForLocationApprovalCommands:
- """Schema for the `PermissionDecisionApproveForLocationApprovalCommands` type."""
+ """Location-scoped approval details for specific command identifiers."""
command_identifiers: list[str]
"""Command identifiers covered by this approval."""
@@ -12761,7 +13416,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForSessionApprovalCommands:
- """Schema for the `PermissionDecisionApproveForSessionApprovalCommands` type."""
+ """Session-scoped approval details for specific command identifiers."""
command_identifiers: list[str]
"""Command identifiers covered by this approval."""
@@ -12784,7 +13439,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsLocationsAddToolApprovalDetailsCommands:
- """Schema for the `PermissionsLocationsAddToolApprovalDetailsCommands` type."""
+ """Location-persisted tool approval details for specific command identifiers."""
command_identifiers: list[str]
"""Command identifiers covered by this approval."""
@@ -12807,7 +13462,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForLocationApprovalCustomTool:
- """Schema for the `PermissionDecisionApproveForLocationApprovalCustomTool` type."""
+ """Location-scoped approval details for a custom tool, keyed by tool name."""
kind: ClassVar[str] = "custom-tool"
"""Approval covering a custom tool."""
@@ -12830,7 +13485,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForSessionApprovalCustomTool:
- """Schema for the `PermissionDecisionApproveForSessionApprovalCustomTool` type."""
+ """Session-scoped approval details for a custom tool, keyed by tool name."""
kind: ClassVar[str] = "custom-tool"
"""Approval covering a custom tool."""
@@ -12853,7 +13508,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsLocationsAddToolApprovalDetailsCustomTool:
- """Schema for the `PermissionsLocationsAddToolApprovalDetailsCustomTool` type."""
+ """Location-persisted tool approval details for a custom tool, keyed by tool name."""
kind: ClassVar[str] = "custom-tool"
"""Approval covering a custom tool."""
@@ -12876,8 +13531,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForLocationApprovalExtensionManagement:
- """Schema for the `PermissionDecisionApproveForLocationApprovalExtensionManagement` type."""
-
+ """Location-scoped approval details for extension-management operations, optionally narrowed
+ by operation.
+ """
kind: ClassVar[str] = "extension-management"
"""Approval covering extension lifecycle operations such as enable, disable, or reload."""
@@ -12902,8 +13558,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForSessionApprovalExtensionManagement:
- """Schema for the `PermissionDecisionApproveForSessionApprovalExtensionManagement` type."""
-
+ """Session-scoped approval details for extension-management operations, optionally narrowed
+ by operation.
+ """
kind: ClassVar[str] = "extension-management"
"""Approval covering extension lifecycle operations such as enable, disable, or reload."""
@@ -12928,8 +13585,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsLocationsAddToolApprovalDetailsExtensionManagement:
- """Schema for the `PermissionsLocationsAddToolApprovalDetailsExtensionManagement` type."""
-
+ """Location-persisted tool approval details for extension-management operations, optionally
+ narrowed by operation.
+ """
kind: ClassVar[str] = "extension-management"
"""Approval covering extension lifecycle operations such as enable, disable, or reload."""
@@ -12954,8 +13612,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForLocationApprovalMCP:
- """Schema for the `PermissionDecisionApproveForLocationApprovalMcp` type."""
-
+ """Location-scoped approval details for an MCP server tool, or all tools on the server when
+ `toolName` is null.
+ """
kind: ClassVar[str] = "mcp"
"""Approval covering an MCP tool."""
@@ -12982,8 +13641,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForSessionApprovalMCP:
- """Schema for the `PermissionDecisionApproveForSessionApprovalMcp` type."""
-
+ """Session-scoped approval details for an MCP server tool, or all tools on the server when
+ `toolName` is null.
+ """
kind: ClassVar[str] = "mcp"
"""Approval covering an MCP tool."""
@@ -13010,8 +13670,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsLocationsAddToolApprovalDetailsMCP:
- """Schema for the `PermissionsLocationsAddToolApprovalDetailsMcp` type."""
-
+ """Location-persisted tool approval details for an MCP server tool, or all tools when
+ `toolName` is null.
+ """
kind: ClassVar[str] = "mcp"
"""Approval covering an MCP tool."""
@@ -13038,7 +13699,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForLocationApprovalMCPSampling:
- """Schema for the `PermissionDecisionApproveForLocationApprovalMcpSampling` type."""
+ """Location-scoped approval details for MCP sampling requests from a server."""
kind: ClassVar[str] = "mcp-sampling"
"""Approval covering MCP sampling requests for a server."""
@@ -13061,7 +13722,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForSessionApprovalMCPSampling:
- """Schema for the `PermissionDecisionApproveForSessionApprovalMcpSampling` type."""
+ """Session-scoped approval details for MCP sampling requests from a server."""
kind: ClassVar[str] = "mcp-sampling"
"""Approval covering MCP sampling requests for a server."""
@@ -13084,7 +13745,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsLocationsAddToolApprovalDetailsMCPSampling:
- """Schema for the `PermissionsLocationsAddToolApprovalDetailsMcpSampling` type."""
+ """Location-persisted tool approval details for MCP sampling requests from a server."""
kind: ClassVar[str] = "mcp-sampling"
"""Approval covering MCP sampling requests for a server."""
@@ -13107,7 +13768,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForLocationApprovalMemory:
- """Schema for the `PermissionDecisionApproveForLocationApprovalMemory` type."""
+ """Location-scoped approval details for writes to long-term memory."""
kind: ClassVar[str] = "memory"
"""Approval covering writes to long-term memory."""
@@ -13125,7 +13786,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForSessionApprovalMemory:
- """Schema for the `PermissionDecisionApproveForSessionApprovalMemory` type."""
+ """Session-scoped approval details for writes to long-term memory."""
kind: ClassVar[str] = "memory"
"""Approval covering writes to long-term memory."""
@@ -13143,7 +13804,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsLocationsAddToolApprovalDetailsMemory:
- """Schema for the `PermissionsLocationsAddToolApprovalDetailsMemory` type."""
+ """Location-persisted tool approval details for writes to long-term memory."""
kind: ClassVar[str] = "memory"
"""Approval covering writes to long-term memory."""
@@ -13161,7 +13822,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForLocationApprovalRead:
- """Schema for the `PermissionDecisionApproveForLocationApprovalRead` type."""
+ """Location-scoped approval details for read-only filesystem operations."""
kind: ClassVar[str] = "read"
"""Approval covering read-only filesystem operations."""
@@ -13179,7 +13840,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForSessionApprovalRead:
- """Schema for the `PermissionDecisionApproveForSessionApprovalRead` type."""
+ """Session-scoped approval details for read-only filesystem operations."""
kind: ClassVar[str] = "read"
"""Approval covering read-only filesystem operations."""
@@ -13197,7 +13858,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsLocationsAddToolApprovalDetailsRead:
- """Schema for the `PermissionsLocationsAddToolApprovalDetailsRead` type."""
+ """Location-persisted tool approval details for read-only filesystem operations."""
kind: ClassVar[str] = "read"
"""Approval covering read-only filesystem operations."""
@@ -13215,7 +13876,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForLocationApprovalWrite:
- """Schema for the `PermissionDecisionApproveForLocationApprovalWrite` type."""
+ """Location-scoped approval details for filesystem write operations."""
kind: ClassVar[str] = "write"
"""Approval covering filesystem write operations."""
@@ -13233,7 +13894,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForSessionApprovalWrite:
- """Schema for the `PermissionDecisionApproveForSessionApprovalWrite` type."""
+ """Session-scoped approval details for filesystem write operations."""
kind: ClassVar[str] = "write"
"""Approval covering filesystem write operations."""
@@ -13251,7 +13912,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsLocationsAddToolApprovalDetailsWrite:
- """Schema for the `PermissionsLocationsAddToolApprovalDetailsWrite` type."""
+ """Location-persisted tool approval details for filesystem write operations."""
kind: ClassVar[str] = "write"
"""Approval covering filesystem write operations."""
@@ -13269,8 +13930,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveForSession:
- """Schema for the `PermissionDecisionApproveForSession` type."""
-
+ """Permission-decision request variant to approve for the rest of the session, with optional
+ tool approval or URL domain.
+ """
kind: ClassVar[str] = "approve-for-session"
"""Approve and remember for the rest of the session"""
@@ -13299,7 +13961,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproveOnce:
- """Schema for the `PermissionDecisionApproveOnce` type."""
+ """Permission-decision request variant to approve only the current permission request."""
kind: ClassVar[str] = "approve-once"
"""Approve this single request only"""
@@ -13317,7 +13979,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApprovePermanently:
- """Schema for the `PermissionDecisionApprovePermanently` type."""
+ """Permission-decision request variant to permanently approve a URL domain across sessions."""
domain: str
"""URL domain to approve permanently"""
@@ -13340,7 +14002,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApproved:
- """Schema for the `PermissionDecisionApproved` type."""
+ """Permission-decision variant indicating the request was approved."""
kind: ClassVar[str] = "approved"
"""The permission request was approved"""
@@ -13358,8 +14020,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApprovedForLocation:
- """Schema for the `PermissionDecisionApprovedForLocation` type."""
-
+ """Permission-decision variant indicating approval was persisted for a project location,
+ with approval details and location key.
+ """
approval: UserToolSessionApproval
"""The approval to persist for this location"""
@@ -13386,8 +14049,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionApprovedForSession:
- """Schema for the `PermissionDecisionApprovedForSession` type."""
-
+ """Permission-decision variant indicating approval was remembered for the session, with
+ approval details.
+ """
approval: UserToolSessionApproval
"""The approval to add as a session-scoped rule"""
@@ -13409,8 +14073,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionCancelled:
- """Schema for the `PermissionDecisionCancelled` type."""
-
+ """Permission-decision variant indicating the request was cancelled before use, with an
+ optional reason.
+ """
kind: ClassVar[str] = "cancelled"
"""The permission request was cancelled before a response was used"""
@@ -13433,8 +14098,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionDeniedByContentExclusionPolicy:
- """Schema for the `PermissionDecisionDeniedByContentExclusionPolicy` type."""
-
+ """Permission-decision variant indicating denial by content-exclusion policy, with path and
+ message.
+ """
kind: ClassVar[str] = "denied-by-content-exclusion-policy"
"""Denied by the organization's content exclusion policy"""
@@ -13461,8 +14127,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionDeniedByPermissionRequestHook:
- """Schema for the `PermissionDecisionDeniedByPermissionRequestHook` type."""
-
+ """Permission-decision variant indicating denial by a permission request hook, with optional
+ message and interrupt flag.
+ """
kind: ClassVar[str] = "denied-by-permission-request-hook"
"""Denied by a permission request hook registered by an extension or plugin"""
@@ -13491,8 +14158,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionDeniedByRules:
- """Schema for the `PermissionDecisionDeniedByRules` type."""
-
+ """Permission-decision variant indicating explicit denial by permission rules, with the
+ matching rules.
+ """
kind: ClassVar[str] = "denied-by-rules"
"""Denied because approval rules explicitly blocked it"""
@@ -13514,8 +14182,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionDeniedInteractivelyByUser:
- """Schema for the `PermissionDecisionDeniedInteractivelyByUser` type."""
-
+ """Permission-decision variant indicating the user denied an interactive prompt, with
+ optional feedback and force-reject flag.
+ """
kind: ClassVar[str] = "denied-interactively-by-user"
"""Denied by the user during an interactive prompt"""
@@ -13544,8 +14213,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionDeniedNoApprovalRuleAndCouldNotRequestFromUser:
- """Schema for the `PermissionDecisionDeniedNoApprovalRuleAndCouldNotRequestFromUser` type."""
-
+ """Permission-decision variant indicating no approval rule matched and user confirmation was
+ unavailable.
+ """
kind: ClassVar[str] = "denied-no-approval-rule-and-could-not-request-from-user"
"""Denied because no approval rule matched and user confirmation was unavailable"""
@@ -13562,8 +14232,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionReject:
- """Schema for the `PermissionDecisionReject` type."""
-
+ """Permission-decision request variant to reject a pending permission request, with optional
+ feedback.
+ """
kind: ClassVar[str] = "reject"
"""Reject the request"""
@@ -13586,7 +14257,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionDecisionUserNotAvailable:
- """Schema for the `PermissionDecisionUserNotAvailable` type."""
+ """Permission-decision variant indicating no user was available to confirm the request."""
kind: ClassVar[str] = "user-not-available"
"""No user is available to confirm the request"""
@@ -13672,12 +14343,14 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsConfigureAdditionalContentExclusionPolicyRule:
- """Schema for the `PermissionsConfigureAdditionalContentExclusionPolicyRule` type."""
-
+ """Single content-exclusion rule supplied to `session.permissions.configure`, with paths,
+ match conditions, and source.
+ """
paths: list[str]
source: PermissionsConfigureAdditionalContentExclusionPolicyRuleSource
- """Schema for the `PermissionsConfigureAdditionalContentExclusionPolicyRuleSource` type."""
-
+ """Source descriptor for a `session.permissions.configure` content-exclusion rule, with
+ source name and type.
+ """
if_any_match: list[str] | None = None
if_none_match: list[str] | None = None
@@ -13791,8 +14464,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class DiscoveredMCPServer:
- """Schema for the `DiscoveredMcpServer` type."""
-
+ """MCP server discovered by `mcp.discover`, with config source, optional plugin source,
+ transport type, and enabled state.
+ """
enabled: bool
"""Whether the server is enabled (not in the disabled list)"""
@@ -13909,7 +14583,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class MCPServer:
- """Schema for the `McpServer` type."""
+ """MCP server status entry, including config source/plugin source and any connection error."""
name: str
"""Server name (config key)"""
@@ -13976,8 +14650,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PluginUpdateAllEntry:
- """Schema for the `PluginUpdateAllEntry` type."""
-
+ """Per-plugin result from updating all plugins, with versions, skills installed, success
+ flag, and optional error.
+ """
marketplace: str
"""Marketplace the plugin came from. Empty string ("") for direct installs."""
@@ -14722,8 +15397,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class QueuePendingItems:
- """Schema for the `QueuePendingItems` type."""
-
+ """User-facing pending queue entry, with kind and display text for a queued message, slash
+ command, or model change.
+ """
display_text: str
"""Human-readable text to display for this queue entry in the UI"""
@@ -15249,11 +15925,12 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionOpenOptionsAdditionalContentExclusionPolicyRule:
- """Schema for the `SessionOpenOptionsAdditionalContentExclusionPolicyRule` type."""
-
+ """Single content-exclusion rule supplied to `sessions.open` options, with paths, match
+ conditions, and source.
+ """
paths: list[str]
source: SessionOpenOptionsAdditionalContentExclusionPolicyRuleSource
- """Schema for the `SessionOpenOptionsAdditionalContentExclusionPolicyRuleSource` type."""
+ """Source descriptor for a `sessions.open` content-exclusion rule, with source name and type."""
if_any_match: list[str] | None = None
if_none_match: list[str] | None = None
@@ -15280,7 +15957,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionsOpenProgress:
- """Schema for the `SessionsOpenProgress` type."""
+ """`sessions.open` handoff progress update with step, status, and optional message."""
status: SessionsOpenProgressStatus
"""Step status."""
@@ -15307,6 +15984,33 @@ def to_dict(self) -> dict:
result["message"] = from_union([from_str, from_none], self.message)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SessionSettingsJobSnapshot:
+ """Redacted job settings for a session. The job nonce is excluded."""
+
+ built_in_tool_availability: SessionSettingsBuiltInToolAvailabilitySnapshot | None = None
+ event_type: str | None = None
+ is_trigger_job: bool | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionSettingsJobSnapshot':
+ assert isinstance(obj, dict)
+ built_in_tool_availability = from_union([SessionSettingsBuiltInToolAvailabilitySnapshot.from_dict, from_none], obj.get("builtInToolAvailability"))
+ event_type = from_union([from_str, from_none], obj.get("eventType"))
+ is_trigger_job = from_union([from_bool, from_none], obj.get("isTriggerJob"))
+ return SessionSettingsJobSnapshot(built_in_tool_availability, event_type, is_trigger_job)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.built_in_tool_availability is not None:
+ result["builtInToolAvailability"] = from_union([lambda x: to_class(SessionSettingsBuiltInToolAvailabilitySnapshot, x), from_none], self.built_in_tool_availability)
+ if self.event_type is not None:
+ result["eventType"] = from_union([from_str, from_none], self.event_type)
+ if self.is_trigger_job is not None:
+ result["isTriggerJob"] = from_union([from_bool, from_none], self.is_trigger_job)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionsListRequest:
@@ -15505,7 +16209,8 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class AgentInfo:
- """Schema for the `AgentInfo` type.
+ """Custom agent metadata, including identifiers, display details, source, tools, model, MCP
+ servers, skills, and file path.
The newly selected custom agent
"""
@@ -15626,9 +16331,50 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class SkillDiscoveryPath:
- """Schema for the `SkillDiscoveryPath` type."""
+class SkillsInvokedSkill:
+ """Skill invocation record with name, path, content, allowed tools, and turn number."""
+
+ content: str
+ """Full content of the skill file"""
+
+ invoked_at_turn: int
+ """Turn number when the skill was invoked"""
+
+ name: str
+ """Unique identifier for the skill"""
+
+ path: str
+ """Path to the SKILL.md file"""
+
+ allowed_tools: list[str] | None = None
+ """Tools that should be auto-approved when this skill is active, captured at invocation time"""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SkillsInvokedSkill':
+ assert isinstance(obj, dict)
+ content = from_str(obj.get("content"))
+ invoked_at_turn = from_int(obj.get("invokedAtTurn"))
+ name = from_str(obj.get("name"))
+ path = from_str(obj.get("path"))
+ allowed_tools = from_union([lambda x: from_list(from_str, x), from_none], obj.get("allowedTools"))
+ return SkillsInvokedSkill(content, invoked_at_turn, name, path, allowed_tools)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["content"] = from_str(self.content)
+ result["invokedAtTurn"] = from_int(self.invoked_at_turn)
+ result["name"] = from_str(self.name)
+ result["path"] = from_str(self.path)
+ if self.allowed_tools is not None:
+ result["allowedTools"] = from_union([lambda x: from_list(from_str, x), from_none], self.allowed_tools)
+ return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SkillDiscoveryPath:
+ """Canonical directory where skills can be discovered or created, with scope, preference,
+ and optional project path.
+ """
path: str
"""Absolute path of the create/discovery target (may not exist on disk yet)"""
@@ -15663,33 +16409,15 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class SkillsGetInvokedResult:
- """Skills invoked during this session, ordered by invocation time (most recent last)."""
+class SlashCommandAgentPromptResult:
+ """Slash-command invocation result that submits an agent prompt, with display prompt,
+ optional mode, and settings-change flag.
+ """
+ display_prompt: str
+ """Prompt text to display to the user"""
- skills: list[SkillsInvokedSkill]
- """Skills invoked during this session, ordered by invocation time (most recent last)"""
-
- @staticmethod
- def from_dict(obj: Any) -> 'SkillsGetInvokedResult':
- assert isinstance(obj, dict)
- skills = from_list(SkillsInvokedSkill.from_dict, obj.get("skills"))
- return SkillsGetInvokedResult(skills)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["skills"] = from_list(lambda x: to_class(SkillsInvokedSkill, x), self.skills)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class SlashCommandAgentPromptResult:
- """Schema for the `SlashCommandAgentPromptResult` type."""
-
- display_prompt: str
- """Prompt text to display to the user"""
-
- kind: ClassVar[str] = "agent-prompt"
- """Agent prompt result discriminator"""
+ kind: ClassVar[str] = "agent-prompt"
+ """Agent prompt result discriminator"""
prompt: str
"""Prompt to submit to the agent"""
@@ -15725,8 +16453,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SlashCommandCompletedResult:
- """Schema for the `SlashCommandCompletedResult` type."""
-
+ """Slash-command invocation result indicating completion, with optional message and
+ settings-change flag.
+ """
kind: ClassVar[str] = "completed"
"""Completed result discriminator"""
@@ -15757,8 +16486,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SlashCommandSelectSubcommandResult:
- """Schema for the `SlashCommandSelectSubcommandResult` type."""
-
+ """Slash-command invocation result asking the client to present subcommand options for a
+ parent command.
+ """
command: str
"""Parent command name that requires subcommand selection"""
@@ -15798,8 +16528,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class TaskAgentProgress:
- """Schema for the `TaskAgentProgress` type."""
-
+ """Progress snapshot for an agent task, with recent activity lines and optional latest
+ intent.
+ """
recent_activity: list[TaskProgressLine]
"""Recent tool execution events converted to display lines"""
@@ -15827,9 +16558,57 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class TaskShellInfo:
- """Schema for the `TaskShellInfo` type."""
+class TaskProgress:
+ """Progress snapshot for an agent task, with recent activity lines and optional latest
+ intent.
+
+ Progress snapshot for a shell task, with recent stdout/stderr output and optional process
+ ID.
+ """
+ type: TaskInfoType
+ """Progress kind"""
+
+ latest_intent: str | None = None
+ """The most recent intent reported by the agent"""
+
+ recent_activity: list[TaskProgressLine] | None = None
+ """Recent tool execution events converted to display lines"""
+
+ pid: int | None = None
+ """Process ID when available"""
+
+ recent_output: str | None = None
+ """Recent stdout/stderr lines from the running shell command"""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'TaskProgress':
+ assert isinstance(obj, dict)
+ type = TaskInfoType(obj.get("type"))
+ latest_intent = from_union([from_str, from_none], obj.get("latestIntent"))
+ recent_activity = from_union([lambda x: from_list(TaskProgressLine.from_dict, x), from_none], obj.get("recentActivity"))
+ pid = from_union([from_int, from_none], obj.get("pid"))
+ recent_output = from_union([from_str, from_none], obj.get("recentOutput"))
+ return TaskProgress(type, latest_intent, recent_activity, pid, recent_output)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["type"] = to_enum(TaskInfoType, self.type)
+ if self.latest_intent is not None:
+ result["latestIntent"] = from_union([from_str, from_none], self.latest_intent)
+ if self.recent_activity is not None:
+ result["recentActivity"] = from_union([lambda x: from_list(lambda x: to_class(TaskProgressLine, x), x), from_none], self.recent_activity)
+ if self.pid is not None:
+ result["pid"] = from_union([from_int, from_none], self.pid)
+ if self.recent_output is not None:
+ result["recentOutput"] = from_union([from_str, from_none], self.recent_output)
+ return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class TaskShellInfo:
+ """Tracked shell task metadata, including ID, command, status, timing, attachment/execution
+ mode, log path, and PID.
+ """
attachment_mode: TaskShellInfoAttachmentMode
"""Whether the shell runs inside a managed PTY session or as an independent background
process
@@ -15907,8 +16686,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class TaskShellProgress:
- """Schema for the `TaskShellProgress` type."""
-
+ """Progress snapshot for a shell task, with recent stdout/stderr output and optional process
+ ID.
+ """
recent_output: str
"""Recent stdout/stderr lines from the running shell command"""
@@ -15974,7 +16754,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class MCPTools:
- """Schema for the `McpTools` type."""
+ """MCP tool metadata with tool name and optional description."""
name: str
"""Tool name."""
@@ -16022,9 +16802,35 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class TaskAgentInfo:
- """Schema for the `TaskAgentInfo` type."""
+class SessionSettingsEvaluatePredicateRequest:
+ """Named Rust-owned settings predicate to evaluate for this session."""
+
+ name: SessionSettingsPredicateName
+ """Predicate name. The runtime owns the raw feature-flag names and composition logic."""
+
+ tool_name: str | None = None
+ """Tool name for tool-scoped predicates such as trivial-change handling."""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionSettingsEvaluatePredicateRequest':
+ assert isinstance(obj, dict)
+ name = SessionSettingsPredicateName(obj.get("name"))
+ tool_name = from_union([from_str, from_none], obj.get("toolName"))
+ return SessionSettingsEvaluatePredicateRequest(name, tool_name)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["name"] = to_enum(SessionSettingsPredicateName, self.name)
+ if self.tool_name is not None:
+ result["toolName"] = from_union([from_str, from_none], self.tool_name)
+ return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class TaskAgentInfo:
+ """Tracked background agent task metadata, including IDs, status, timing, agent type,
+ prompt, model, result, and latest response.
+ """
agent_type: str
"""Type of agent running this task"""
@@ -16561,8 +17367,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class UIExitPlanModeResponse:
- """Schema for the `UIExitPlanModeResponse` type."""
-
+ """User response for a pending exit-plan-mode request, with approval state, selected action,
+ auto-approve flag, and feedback.
+ """
approved: bool
"""Whether the plan was approved."""
@@ -16639,7 +17446,9 @@ class UIHandlePendingUserInputRequest:
"""The unique request ID from the user_input.requested event"""
response: UIUserInputResponse
- """Schema for the `UIUserInputResponse` type."""
+ """User response for a pending user-input request, with answer text and whether it was typed
+ freeform.
+ """
@staticmethod
def from_dict(obj: Any) -> 'UIHandlePendingUserInputRequest':
@@ -16657,8 +17466,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class UsageMetricsModelMetric:
- """Schema for the `UsageMetricsModelMetric` type."""
-
+ """Per-model usage metrics, including request counts/costs, token usage, nano-AI units, and
+ per-token-type details.
+ """
requests: UsageMetricsModelMetricRequests
"""Request count and cost metrics for this model"""
@@ -16871,8 +17681,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SlashCommandInfo:
- """Schema for the `SlashCommandInfo` type."""
-
+ """Slash-command metadata with name, aliases, description, kind, input hint, execution
+ allowance, and schedulability.
+ """
allow_during_agent_execution: bool
"""Whether the command may run while an agent turn is active"""
@@ -16976,127 +17787,38 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class CopilotUserResponse:
- """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
- GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
- verbatim and does not re-fetch when set.
- """
- access_type_sku: str | None = None
- analytics_tracking_id: str | None = None
- assigned_date: Any = None
- can_signup_for_limited: bool | None = None
- can_upgrade_plan: bool | None = None
- chat_enabled: bool | None = None
- cli_remote_control_enabled: bool | None = None
- cloud_session_storage_enabled: bool | None = None
- codex_agent_enabled: bool | None = None
- copilot_plan: str | None = None
- copilotignore_enabled: bool | None = None
- endpoints: CopilotUserResponseEndpoints | None = None
- """Schema for the `CopilotUserResponseEndpoints` type."""
+class DebugCollectLogsResult:
+ """Result of collecting a redacted debug bundle."""
- is_mcp_enabled: Any = None
- is_staff: bool | None = None
- limited_user_quotas: dict[str, float] | None = None
- limited_user_reset_date: str | None = None
- login: str | None = None
- monthly_quotas: dict[str, float] | None = None
- organization_list: Any = None
- organization_login_list: list[str] | None = None
- quota_reset_date: str | None = None
- quota_reset_date_utc: str | None = None
- quota_snapshots: dict[str, CopilotUserResponseQuotaSnapshots | None] | None = None
- """Schema for the `CopilotUserResponseQuotaSnapshots` type."""
+ entries: list[DebugCollectLogsCollectedEntry]
+ """Files included in the redacted bundle."""
- restricted_telemetry: bool | None = None
- te: bool | None = None
- token_based_billing: bool | None = None
+ kind: DebugCollectLogsResultKind
+ """Destination kind that was written."""
+
+ path: str
+ """Actual archive path or staging directory path written. This may differ from the requested
+ path when no-overwrite suffixing or fallback-to-temp-directory was needed.
+ """
+ skipped_entries: list[DebugCollectLogsSkippedEntry] | None = None
+ """Optional files or directories that could not be included."""
@staticmethod
- def from_dict(obj: Any) -> 'CopilotUserResponse':
+ def from_dict(obj: Any) -> 'DebugCollectLogsResult':
assert isinstance(obj, dict)
- access_type_sku = from_union([from_str, from_none], obj.get("access_type_sku"))
- analytics_tracking_id = from_union([from_str, from_none], obj.get("analytics_tracking_id"))
- assigned_date = obj.get("assigned_date")
- can_signup_for_limited = from_union([from_bool, from_none], obj.get("can_signup_for_limited"))
- can_upgrade_plan = from_union([from_bool, from_none], obj.get("can_upgrade_plan"))
- chat_enabled = from_union([from_bool, from_none], obj.get("chat_enabled"))
- cli_remote_control_enabled = from_union([from_bool, from_none], obj.get("cli_remote_control_enabled"))
- cloud_session_storage_enabled = from_union([from_bool, from_none], obj.get("cloud_session_storage_enabled"))
- codex_agent_enabled = from_union([from_bool, from_none], obj.get("codex_agent_enabled"))
- copilot_plan = from_union([from_str, from_none], obj.get("copilot_plan"))
- copilotignore_enabled = from_union([from_bool, from_none], obj.get("copilotignore_enabled"))
- endpoints = from_union([CopilotUserResponseEndpoints.from_dict, from_none], obj.get("endpoints"))
- is_mcp_enabled = obj.get("is_mcp_enabled")
- is_staff = from_union([from_bool, from_none], obj.get("is_staff"))
- limited_user_quotas = from_union([lambda x: from_dict(from_float, x), from_none], obj.get("limited_user_quotas"))
- limited_user_reset_date = from_union([from_str, from_none], obj.get("limited_user_reset_date"))
- login = from_union([from_str, from_none], obj.get("login"))
- monthly_quotas = from_union([lambda x: from_dict(from_float, x), from_none], obj.get("monthly_quotas"))
- organization_list = obj.get("organization_list")
- organization_login_list = from_union([lambda x: from_list(from_str, x), from_none], obj.get("organization_login_list"))
- quota_reset_date = from_union([from_str, from_none], obj.get("quota_reset_date"))
- quota_reset_date_utc = from_union([from_str, from_none], obj.get("quota_reset_date_utc"))
- quota_snapshots = from_union([lambda x: from_dict(lambda x: from_union([CopilotUserResponseQuotaSnapshots.from_dict, from_none], x), x), from_none], obj.get("quota_snapshots"))
- restricted_telemetry = from_union([from_bool, from_none], obj.get("restricted_telemetry"))
- te = from_union([from_bool, from_none], obj.get("te"))
- token_based_billing = from_union([from_bool, from_none], obj.get("token_based_billing"))
- return CopilotUserResponse(access_type_sku, analytics_tracking_id, assigned_date, can_signup_for_limited, can_upgrade_plan, chat_enabled, cli_remote_control_enabled, cloud_session_storage_enabled, codex_agent_enabled, copilot_plan, copilotignore_enabled, endpoints, is_mcp_enabled, is_staff, limited_user_quotas, limited_user_reset_date, login, monthly_quotas, organization_list, organization_login_list, quota_reset_date, quota_reset_date_utc, quota_snapshots, restricted_telemetry, te, token_based_billing)
+ entries = from_list(DebugCollectLogsCollectedEntry.from_dict, obj.get("entries"))
+ kind = DebugCollectLogsResultKind(obj.get("kind"))
+ path = from_str(obj.get("path"))
+ skipped_entries = from_union([lambda x: from_list(DebugCollectLogsSkippedEntry.from_dict, x), from_none], obj.get("skippedEntries"))
+ return DebugCollectLogsResult(entries, kind, path, skipped_entries)
def to_dict(self) -> dict:
result: dict = {}
- if self.access_type_sku is not None:
- result["access_type_sku"] = from_union([from_str, from_none], self.access_type_sku)
- if self.analytics_tracking_id is not None:
- result["analytics_tracking_id"] = from_union([from_str, from_none], self.analytics_tracking_id)
- if self.assigned_date is not None:
- result["assigned_date"] = self.assigned_date
- if self.can_signup_for_limited is not None:
- result["can_signup_for_limited"] = from_union([from_bool, from_none], self.can_signup_for_limited)
- if self.can_upgrade_plan is not None:
- result["can_upgrade_plan"] = from_union([from_bool, from_none], self.can_upgrade_plan)
- if self.chat_enabled is not None:
- result["chat_enabled"] = from_union([from_bool, from_none], self.chat_enabled)
- if self.cli_remote_control_enabled is not None:
- result["cli_remote_control_enabled"] = from_union([from_bool, from_none], self.cli_remote_control_enabled)
- if self.cloud_session_storage_enabled is not None:
- result["cloud_session_storage_enabled"] = from_union([from_bool, from_none], self.cloud_session_storage_enabled)
- if self.codex_agent_enabled is not None:
- result["codex_agent_enabled"] = from_union([from_bool, from_none], self.codex_agent_enabled)
- if self.copilot_plan is not None:
- result["copilot_plan"] = from_union([from_str, from_none], self.copilot_plan)
- if self.copilotignore_enabled is not None:
- result["copilotignore_enabled"] = from_union([from_bool, from_none], self.copilotignore_enabled)
- if self.endpoints is not None:
- result["endpoints"] = from_union([lambda x: to_class(CopilotUserResponseEndpoints, x), from_none], self.endpoints)
- if self.is_mcp_enabled is not None:
- result["is_mcp_enabled"] = self.is_mcp_enabled
- if self.is_staff is not None:
- result["is_staff"] = from_union([from_bool, from_none], self.is_staff)
- if self.limited_user_quotas is not None:
- result["limited_user_quotas"] = from_union([lambda x: from_dict(to_float, x), from_none], self.limited_user_quotas)
- if self.limited_user_reset_date is not None:
- result["limited_user_reset_date"] = from_union([from_str, from_none], self.limited_user_reset_date)
- if self.login is not None:
- result["login"] = from_union([from_str, from_none], self.login)
- if self.monthly_quotas is not None:
- result["monthly_quotas"] = from_union([lambda x: from_dict(to_float, x), from_none], self.monthly_quotas)
- if self.organization_list is not None:
- result["organization_list"] = self.organization_list
- if self.organization_login_list is not None:
- result["organization_login_list"] = from_union([lambda x: from_list(from_str, x), from_none], self.organization_login_list)
- if self.quota_reset_date is not None:
- result["quota_reset_date"] = from_union([from_str, from_none], self.quota_reset_date)
- if self.quota_reset_date_utc is not None:
- result["quota_reset_date_utc"] = from_union([from_str, from_none], self.quota_reset_date_utc)
- if self.quota_snapshots is not None:
- result["quota_snapshots"] = from_union([lambda x: from_dict(lambda x: from_union([lambda x: to_class(CopilotUserResponseQuotaSnapshots, x), from_none], x), x), from_none], self.quota_snapshots)
- if self.restricted_telemetry is not None:
- result["restricted_telemetry"] = from_union([from_bool, from_none], self.restricted_telemetry)
- if self.te is not None:
- result["te"] = from_union([from_bool, from_none], self.te)
- if self.token_based_billing is not None:
- result["token_based_billing"] = from_union([from_bool, from_none], self.token_based_billing)
+ result["entries"] = from_list(lambda x: to_class(DebugCollectLogsCollectedEntry, x), self.entries)
+ result["kind"] = to_enum(DebugCollectLogsResultKind, self.kind)
+ result["path"] = from_str(self.path)
+ if self.skipped_entries is not None:
+ result["skippedEntries"] = from_union([lambda x: from_list(lambda x: to_class(DebugCollectLogsSkippedEntry, x), x), from_none], self.skipped_entries)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -17118,60 +17840,182 @@ def to_dict(self) -> dict:
result["extensions"] = from_list(lambda x: to_class(Extension, x), self.extensions)
return result
-# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess:
- """Schema for the `PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess`
- type.
- """
- extension_name: str
- """Extension name."""
+class PermissionDecisionApproveForIonApproval:
+ """Session-scoped approval to remember (tool prompts only; omitted for path/url prompts)
- kind: ClassVar[str] = "extension-permission-access"
- """Approval covering an extension's request to access a permission-gated capability."""
+ Session-scoped approval details for specific command identifiers.
- @staticmethod
- def from_dict(obj: Any) -> 'PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess':
- assert isinstance(obj, dict)
- extension_name = from_str(obj.get("extensionName"))
- return PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess(extension_name)
+ Session-scoped approval details for read-only filesystem operations.
- def to_dict(self) -> dict:
- result: dict = {}
- result["extensionName"] = from_str(self.extension_name)
- result["kind"] = self.kind
- return result
+ Session-scoped approval details for filesystem write operations.
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess:
- """Schema for the `PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess`
- type.
- """
- extension_name: str
- """Extension name."""
+ Session-scoped approval details for an MCP server tool, or all tools on the server when
+ `toolName` is null.
- kind: ClassVar[str] = "extension-permission-access"
- """Approval covering an extension's request to access a permission-gated capability."""
+ Session-scoped approval details for MCP sampling requests from a server.
- @staticmethod
- def from_dict(obj: Any) -> 'PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess':
- assert isinstance(obj, dict)
- extension_name = from_str(obj.get("extensionName"))
- return PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess(extension_name)
+ Session-scoped approval details for writes to long-term memory.
- def to_dict(self) -> dict:
- result: dict = {}
- result["extensionName"] = from_str(self.extension_name)
- result["kind"] = self.kind
- return result
+ Session-scoped approval details for a custom tool, keyed by tool name.
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class PermissionsLocationsAddToolApprovalDetailsExtensionPermissionAccess:
- """Schema for the `PermissionsLocationsAddToolApprovalDetailsExtensionPermissionAccess` type."""
+ Session-scoped approval details for extension-management operations, optionally narrowed
+ by operation.
- extension_name: str
+ Session-scoped approval details for an extension's permission-gated capability access,
+ keyed by extension name.
+
+ Approval to persist for this location
+
+ Location-scoped approval details for specific command identifiers.
+
+ Location-scoped approval details for read-only filesystem operations.
+
+ Location-scoped approval details for filesystem write operations.
+
+ Location-scoped approval details for an MCP server tool, or all tools on the server when
+ `toolName` is null.
+
+ Location-scoped approval details for MCP sampling requests from a server.
+
+ Location-scoped approval details for writes to long-term memory.
+
+ Location-scoped approval details for a custom tool, keyed by tool name.
+
+ Location-scoped approval details for extension-management operations, optionally narrowed
+ by operation.
+
+ Location-scoped approval details for an extension's permission-gated capability access,
+ keyed by extension name.
+
+ The approval to add as a session-scoped rule
+
+ The approval to persist for this location
+ """
+ command_identifiers: list[str] | None = None
+ """Command identifiers covered by this approval."""
+
+ kind: ApprovalKind | None = None
+ """Approval scoped to specific command identifiers.
+
+ Approval covering read-only filesystem operations.
+
+ Approval covering filesystem write operations.
+
+ Approval covering an MCP tool.
+
+ Approval covering MCP sampling requests for a server.
+
+ Approval covering writes to long-term memory.
+
+ Approval covering a custom tool.
+
+ Approval covering extension lifecycle operations such as enable, disable, or reload.
+
+ Approval covering an extension's request to access a permission-gated capability.
+ """
+ server_name: str | None = None
+ """MCP server name."""
+
+ tool_name: str | None = None
+ """MCP tool name, or null to cover every tool on the server.
+
+ Custom tool name.
+ """
+ operation: str | None = None
+ """Optional operation identifier; when omitted, the approval covers all extension management
+ operations.
+ """
+ extension_name: str | None = None
+ """Extension name."""
+
+ external_ref_marker_external_ref_user_tool_session_approval: str | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'PermissionDecisionApproveForIonApproval':
+ assert isinstance(obj, dict)
+ command_identifiers = from_union([lambda x: from_list(from_str, x), from_none], obj.get("commandIdentifiers"))
+ kind = from_union([ApprovalKind, from_none], obj.get("kind"))
+ server_name = from_union([from_str, from_none], obj.get("serverName"))
+ tool_name = from_union([from_none, from_str], obj.get("toolName"))
+ operation = from_union([from_str, from_none], obj.get("operation"))
+ extension_name = from_union([from_str, from_none], obj.get("extensionName"))
+ external_ref_marker_external_ref_user_tool_session_approval = from_union([from_str, from_none], obj.get("__externalRefMarker___ExternalRef_UserToolSessionApproval"))
+ return PermissionDecisionApproveForIonApproval(command_identifiers, kind, server_name, tool_name, operation, extension_name, external_ref_marker_external_ref_user_tool_session_approval)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.command_identifiers is not None:
+ result["commandIdentifiers"] = from_union([lambda x: from_list(from_str, x), from_none], self.command_identifiers)
+ if self.kind is not None:
+ result["kind"] = from_union([lambda x: to_enum(ApprovalKind, x), from_none], self.kind)
+ if self.server_name is not None:
+ result["serverName"] = from_union([from_str, from_none], self.server_name)
+ if self.tool_name is not None:
+ result["toolName"] = from_union([from_none, from_str], self.tool_name)
+ if self.operation is not None:
+ result["operation"] = from_union([from_str, from_none], self.operation)
+ if self.extension_name is not None:
+ result["extensionName"] = from_union([from_str, from_none], self.extension_name)
+ if self.external_ref_marker_external_ref_user_tool_session_approval is not None:
+ result["__externalRefMarker___ExternalRef_UserToolSessionApproval"] = from_union([from_str, from_none], self.external_ref_marker_external_ref_user_tool_session_approval)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess:
+ """Location-scoped approval details for an extension's permission-gated capability access,
+ keyed by extension name.
+ """
+ extension_name: str
+ """Extension name."""
+
+ kind: ClassVar[str] = "extension-permission-access"
+ """Approval covering an extension's request to access a permission-gated capability."""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess':
+ assert isinstance(obj, dict)
+ extension_name = from_str(obj.get("extensionName"))
+ return PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess(extension_name)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["extensionName"] = from_str(self.extension_name)
+ result["kind"] = self.kind
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess:
+ """Session-scoped approval details for an extension's permission-gated capability access,
+ keyed by extension name.
+ """
+ extension_name: str
+ """Extension name."""
+
+ kind: ClassVar[str] = "extension-permission-access"
+ """Approval covering an extension's request to access a permission-gated capability."""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess':
+ assert isinstance(obj, dict)
+ extension_name = from_str(obj.get("extensionName"))
+ return PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess(extension_name)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["extensionName"] = from_str(self.extension_name)
+ result["kind"] = self.kind
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class PermissionsLocationsAddToolApprovalDetailsExtensionPermissionAccess:
+ """Location-persisted tool approval details for an extension's permission-gated capability
+ access, keyed by extension name.
+ """
+ extension_name: str
"""Extension name."""
kind: ClassVar[str] = "extension-permission-access"
@@ -17313,105 +18157,123 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class InstalledPluginSource:
- """Schema for the `InstalledPluginSourceGitHub` type.
+class InstalledPlugin:
+ """Installed plugin record from global state, with marketplace, version, install time,
+ enabled state, cache path, and source.
+ """
+ enabled: bool
+ """Whether the plugin is currently enabled"""
- Schema for the `InstalledPluginSourceUrl` type.
+ installed_at: str
+ """Installation timestamp"""
- Schema for the `InstalledPluginSourceLocal` type.
- """
- source: PurpleSource
- """Constant value. Always "github".
+ marketplace: str
+ """Marketplace the plugin came from (empty string for direct repo installs)"""
- Constant value. Always "url".
+ name: str
+ """Plugin name"""
- Constant value. Always "local".
- """
- path: str | None = None
- ref: str | None = None
- repo: str | None = None
- url: str | None = None
+ cache_path: str | None = None
+ """Path where the plugin is cached locally"""
+
+ source: InstalledPluginSource | str | None = None
+ """Source for direct repo installs (when marketplace is empty)"""
+
+ version: str | None = None
+ """Version installed (if available)"""
@staticmethod
- def from_dict(obj: Any) -> 'InstalledPluginSource':
+ def from_dict(obj: Any) -> 'InstalledPlugin':
assert isinstance(obj, dict)
- source = PurpleSource(obj.get("source"))
- path = from_union([from_str, from_none], obj.get("path"))
- ref = from_union([from_str, from_none], obj.get("ref"))
- repo = from_union([from_str, from_none], obj.get("repo"))
- url = from_union([from_str, from_none], obj.get("url"))
- return InstalledPluginSource(source, path, ref, repo, url)
+ enabled = from_bool(obj.get("enabled"))
+ installed_at = from_str(obj.get("installed_at"))
+ marketplace = from_str(obj.get("marketplace"))
+ name = from_str(obj.get("name"))
+ cache_path = from_union([from_str, from_none], obj.get("cache_path"))
+ source = from_union([InstalledPluginSource.from_dict, from_str, from_none], obj.get("source"))
+ version = from_union([from_str, from_none], obj.get("version"))
+ return InstalledPlugin(enabled, installed_at, marketplace, name, cache_path, source, version)
def to_dict(self) -> dict:
result: dict = {}
- result["source"] = to_enum(PurpleSource, self.source)
- if self.path is not None:
- result["path"] = from_union([from_str, from_none], self.path)
- if self.ref is not None:
- result["ref"] = from_union([from_str, from_none], self.ref)
- if self.repo is not None:
- result["repo"] = from_union([from_str, from_none], self.repo)
- if self.url is not None:
- result["url"] = from_union([from_str, from_none], self.url)
+ result["enabled"] = from_bool(self.enabled)
+ result["installed_at"] = from_str(self.installed_at)
+ result["marketplace"] = from_str(self.marketplace)
+ result["name"] = from_str(self.name)
+ if self.cache_path is not None:
+ result["cache_path"] = from_union([from_str, from_none], self.cache_path)
+ if self.source is not None:
+ result["source"] = from_union([lambda x: to_class(InstalledPluginSource, x), from_str, from_none], self.source)
+ if self.version is not None:
+ result["version"] = from_union([from_str, from_none], self.version)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class SessionInstalledPluginSource:
- """Schema for the `SessionInstalledPluginSourceGitHub` type.
-
- Schema for the `SessionInstalledPluginSourceUrl` type.
-
- Schema for the `SessionInstalledPluginSourceLocal` type.
+class SessionInstalledPlugin:
+ """Installed plugin record for a session, with marketplace, version, install time, enabled
+ state, cache path, and source.
"""
- source: PurpleSource
- """Constant value. Always "github".
+ enabled: bool
+ """Whether the plugin is currently enabled"""
- Constant value. Always "url".
+ installed_at: str
+ """Installation timestamp (ISO-8601)"""
- Constant value. Always "local".
- """
- path: str | None = None
- ref: str | None = None
- repo: str | None = None
- url: str | None = None
+ marketplace: str
+ """Marketplace the plugin came from (empty string for direct repo installs)"""
- @staticmethod
- def from_dict(obj: Any) -> 'SessionInstalledPluginSource':
- assert isinstance(obj, dict)
- source = PurpleSource(obj.get("source"))
- path = from_union([from_str, from_none], obj.get("path"))
- ref = from_union([from_str, from_none], obj.get("ref"))
- repo = from_union([from_str, from_none], obj.get("repo"))
- url = from_union([from_str, from_none], obj.get("url"))
- return SessionInstalledPluginSource(source, path, ref, repo, url)
+ name: str
+ """Plugin name"""
- def to_dict(self) -> dict:
- result: dict = {}
- result["source"] = to_enum(PurpleSource, self.source)
- if self.path is not None:
- result["path"] = from_union([from_str, from_none], self.path)
- if self.ref is not None:
- result["ref"] = from_union([from_str, from_none], self.ref)
- if self.repo is not None:
- result["repo"] = from_union([from_str, from_none], self.repo)
- if self.url is not None:
- result["url"] = from_union([from_str, from_none], self.url)
- return result
+ cache_path: str | None = None
+ """Path where the plugin is cached locally"""
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class InstructionsGetSourcesResult:
- """Instruction sources loaded for the session, in merge order."""
+ source: SessionInstalledPluginSource | str | None = None
+ """Source descriptor for direct repo installs (when marketplace is empty)"""
- sources: list[InstructionSource]
- """Instruction sources for the session"""
+ version: str | None = None
+ """Installed version, if known"""
@staticmethod
- def from_dict(obj: Any) -> 'InstructionsGetSourcesResult':
+ def from_dict(obj: Any) -> 'SessionInstalledPlugin':
assert isinstance(obj, dict)
- sources = from_list(InstructionSource.from_dict, obj.get("sources"))
- return InstructionsGetSourcesResult(sources)
+ enabled = from_bool(obj.get("enabled"))
+ installed_at = from_str(obj.get("installed_at"))
+ marketplace = from_str(obj.get("marketplace"))
+ name = from_str(obj.get("name"))
+ cache_path = from_union([from_str, from_none], obj.get("cache_path"))
+ source = from_union([SessionInstalledPluginSource.from_dict, from_str, from_none], obj.get("source"))
+ version = from_union([from_str, from_none], obj.get("version"))
+ return SessionInstalledPlugin(enabled, installed_at, marketplace, name, cache_path, source, version)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["enabled"] = from_bool(self.enabled)
+ result["installed_at"] = from_str(self.installed_at)
+ result["marketplace"] = from_str(self.marketplace)
+ result["name"] = from_str(self.name)
+ if self.cache_path is not None:
+ result["cache_path"] = from_union([from_str, from_none], self.cache_path)
+ if self.source is not None:
+ result["source"] = from_union([lambda x: to_class(SessionInstalledPluginSource, x), from_str, from_none], self.source)
+ if self.version is not None:
+ result["version"] = from_union([from_str, from_none], self.version)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class InstructionsGetSourcesResult:
+ """Instruction sources loaded for the session, in merge order."""
+
+ sources: list[InstructionSource]
+ """Instruction sources for the session"""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'InstructionsGetSourcesResult':
+ assert isinstance(obj, dict)
+ sources = from_list(InstructionSource.from_dict, obj.get("sources"))
+ return InstructionsGetSourcesResult(sources)
def to_dict(self) -> dict:
result: dict = {}
@@ -17440,8 +18302,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class LocalSessionMetadataValue:
- """Schema for the `LocalSessionMetadataValue` type."""
-
+ """Persisted local session metadata, including identifiers, timestamps, summary/name,
+ client, context, detached state, and task ID.
+ """
is_remote: bool
"""Always false for local sessions."""
@@ -17769,6 +18632,36 @@ def to_dict(self) -> dict:
result["user_named"] = from_union([from_bool, from_none], self.user_named)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class WorkspacesCheckpoints:
+ """Workspace checkpoint metadata with assigned number, human-readable title, and checkpoint
+ filename.
+ """
+ filename: str
+ """Filename of the checkpoint within the workspace checkpoints directory"""
+
+ number: int
+ """Checkpoint number assigned by the workspace manager"""
+
+ title: str
+ """Human-readable checkpoint title"""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'WorkspacesCheckpoints':
+ assert isinstance(obj, dict)
+ filename = from_str(obj.get("filename"))
+ number = from_int(obj.get("number"))
+ title = from_str(obj.get("title"))
+ return WorkspacesCheckpoints(filename, number, title)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["filename"] = from_str(self.filename)
+ result["number"] = from_int(self.number)
+ result["title"] = from_str(self.title)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class WorkspacesGetWorkspaceResult:
@@ -17796,25 +18689,6 @@ def to_dict(self) -> dict:
result["workspace"] = from_union([lambda x: to_class(Workspace, x), from_none], self.workspace)
return result
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class WorkspacesListCheckpointsResult:
- """Workspace checkpoints in chronological order; empty when the workspace is not enabled."""
-
- checkpoints: list[WorkspacesCheckpoints]
- """Workspace checkpoints in chronological order. Empty when workspace is not enabled."""
-
- @staticmethod
- def from_dict(obj: Any) -> 'WorkspacesListCheckpointsResult':
- assert isinstance(obj, dict)
- checkpoints = from_list(WorkspacesCheckpoints.from_dict, obj.get("checkpoints"))
- return WorkspacesListCheckpointsResult(checkpoints)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["checkpoints"] = from_list(lambda x: to_class(WorkspacesCheckpoints, x), self.checkpoints)
- return result
-
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class MCPAppsHostContext:
@@ -18022,10 +18896,54 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class InstructionDiscoveryPath:
- """Schema for the `InstructionDiscoveryPath` type."""
+class DebugCollectLogsEntry:
+ """A caller-provided server-local file or directory to include in the debug bundle."""
+
+ bundle_path: str
+ """Relative path to use inside the staged bundle/archive."""
+
+ kind: DebugCollectLogsEntryKind
+ """Kind of source path to include."""
+
+ path: str
+ """Server-local source path to read."""
+
+ redaction: DebugCollectLogsRedaction | None = None
+ """How text content from this entry should be redacted. Defaults to plain-text."""
+
+ required: bool | None = None
+ """When true, collection fails if this entry cannot be read. Defaults to false, which
+ records the entry in `skippedEntries`.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'DebugCollectLogsEntry':
+ assert isinstance(obj, dict)
+ bundle_path = from_str(obj.get("bundlePath"))
+ kind = DebugCollectLogsEntryKind(obj.get("kind"))
+ path = from_str(obj.get("path"))
+ redaction = from_union([DebugCollectLogsRedaction, from_none], obj.get("redaction"))
+ required = from_union([from_bool, from_none], obj.get("required"))
+ return DebugCollectLogsEntry(bundle_path, kind, path, redaction, required)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["bundlePath"] = from_str(self.bundle_path)
+ result["kind"] = to_enum(DebugCollectLogsEntryKind, self.kind)
+ result["path"] = from_str(self.path)
+ if self.redaction is not None:
+ result["redaction"] = from_union([lambda x: to_enum(DebugCollectLogsRedaction, x), from_none], self.redaction)
+ if self.required is not None:
+ result["required"] = from_union([from_bool, from_none], self.required)
+ return result
- kind: InstructionDiscoveryPathKind
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class InstructionDiscoveryPath:
+ """Canonical file or directory where custom instructions can be discovered or created, with
+ location, kind, preference, and project path.
+ """
+ kind: DebugCollectLogsEntryKind
"""Whether the target is a single file or a directory of instruction files"""
location: InstructionLocation
@@ -18044,7 +18962,7 @@ class InstructionDiscoveryPath:
@staticmethod
def from_dict(obj: Any) -> 'InstructionDiscoveryPath':
assert isinstance(obj, dict)
- kind = InstructionDiscoveryPathKind(obj.get("kind"))
+ kind = DebugCollectLogsEntryKind(obj.get("kind"))
location = InstructionLocation(obj.get("location"))
path = from_str(obj.get("path"))
preferred_for_creation = from_bool(obj.get("preferredForCreation"))
@@ -18053,7 +18971,7 @@ def from_dict(obj: Any) -> 'InstructionDiscoveryPath':
def to_dict(self) -> dict:
result: dict = {}
- result["kind"] = to_enum(InstructionDiscoveryPathKind, self.kind)
+ result["kind"] = to_enum(DebugCollectLogsEntryKind, self.kind)
result["location"] = to_enum(InstructionLocation, self.location)
result["path"] = from_str(self.path)
result["preferredForCreation"] = from_bool(self.preferred_for_creation)
@@ -18064,25 +18982,26 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionFSReaddirWithTypesEntry:
- """Schema for the `SessionFsReaddirWithTypesEntry` type."""
-
+ """Directory entry returned by session filesystem `readdirWithTypes`, with name and entry
+ type.
+ """
name: str
"""Entry name"""
- type: InstructionDiscoveryPathKind
+ type: DebugCollectLogsEntryKind
"""Entry type"""
@staticmethod
def from_dict(obj: Any) -> 'SessionFSReaddirWithTypesEntry':
assert isinstance(obj, dict)
name = from_str(obj.get("name"))
- type = InstructionDiscoveryPathKind(obj.get("type"))
+ type = DebugCollectLogsEntryKind(obj.get("type"))
return SessionFSReaddirWithTypesEntry(name, type)
def to_dict(self) -> dict:
result: dict = {}
result["name"] = from_str(self.name)
- result["type"] = to_enum(InstructionDiscoveryPathKind, self.type)
+ result["type"] = to_enum(DebugCollectLogsEntryKind, self.type)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -18204,8 +19123,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class OptionsUpdateAdditionalContentExclusionPolicy:
- """Schema for the `OptionsUpdateAdditionalContentExclusionPolicy` type."""
-
+ """Content-exclusion policy supplied to `session.options.update`, with rules, last-updated
+ data, and scope.
+ """
last_updated_at: Any
rules: list[OptionsUpdateAdditionalContentExclusionPolicyRule]
scope: AdditionalContentExclusionPolicyScope
@@ -18229,8 +19149,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsConfigureAdditionalContentExclusionPolicy:
- """Schema for the `PermissionsConfigureAdditionalContentExclusionPolicy` type."""
-
+ """Content-exclusion policy supplied to `session.permissions.configure`, with rules,
+ last-updated data, and scope.
+ """
last_updated_at: Any
rules: list[PermissionsConfigureAdditionalContentExclusionPolicyRule]
scope: AdditionalContentExclusionPolicyScope
@@ -18727,8 +19648,9 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionOpenOptionsAdditionalContentExclusionPolicy:
- """Schema for the `SessionOpenOptionsAdditionalContentExclusionPolicy` type."""
-
+ """Content-exclusion policy supplied to `sessions.open` options, with rules, last-updated
+ data, and scope.
+ """
last_updated_at: Any
rules: list[SessionOpenOptionsAdditionalContentExclusionPolicyRule]
scope: AdditionalContentExclusionPolicyScope
@@ -18751,6 +19673,53 @@ def to_dict(self) -> dict:
result["scope"] = to_enum(AdditionalContentExclusionPolicyScope, self.scope)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SessionSettingsSnapshot:
+ """Redacted, serializable view of session runtime settings for SDK boundary consumers.
+ Secrets and raw feature flags are intentionally excluded.
+ """
+ job: SessionSettingsJobSnapshot
+ model: SessionSettingsModelSnapshot
+ online_evaluation: SessionSettingsOnlineEvaluationSnapshot
+ repo: SessionSettingsRepoSnapshot
+ validation: SessionSettingsValidationSnapshot
+ client_name: str | None = None
+ start_time_ms: float | None = None
+ timeout_ms: float | None = None
+ version: str | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SessionSettingsSnapshot':
+ assert isinstance(obj, dict)
+ job = SessionSettingsJobSnapshot.from_dict(obj.get("job"))
+ model = SessionSettingsModelSnapshot.from_dict(obj.get("model"))
+ online_evaluation = SessionSettingsOnlineEvaluationSnapshot.from_dict(obj.get("onlineEvaluation"))
+ repo = SessionSettingsRepoSnapshot.from_dict(obj.get("repo"))
+ validation = SessionSettingsValidationSnapshot.from_dict(obj.get("validation"))
+ client_name = from_union([from_str, from_none], obj.get("clientName"))
+ start_time_ms = from_union([from_float, from_none], obj.get("startTimeMs"))
+ timeout_ms = from_union([from_float, from_none], obj.get("timeoutMs"))
+ version = from_union([from_str, from_none], obj.get("version"))
+ return SessionSettingsSnapshot(job, model, online_evaluation, repo, validation, client_name, start_time_ms, timeout_ms, version)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["job"] = to_class(SessionSettingsJobSnapshot, self.job)
+ result["model"] = to_class(SessionSettingsModelSnapshot, self.model)
+ result["onlineEvaluation"] = to_class(SessionSettingsOnlineEvaluationSnapshot, self.online_evaluation)
+ result["repo"] = to_class(SessionSettingsRepoSnapshot, self.repo)
+ result["validation"] = to_class(SessionSettingsValidationSnapshot, self.validation)
+ if self.client_name is not None:
+ result["clientName"] = from_union([from_str, from_none], self.client_name)
+ if self.start_time_ms is not None:
+ result["startTimeMs"] = from_union([to_float, from_none], self.start_time_ms)
+ if self.timeout_ms is not None:
+ result["timeoutMs"] = from_union([to_float, from_none], self.timeout_ms)
+ if self.version is not None:
+ result["version"] = from_union([from_str, from_none], self.version)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class AgentGetCurrentResult:
@@ -18847,6 +19816,25 @@ def to_dict(self) -> dict:
result["agents"] = from_list(lambda x: to_class(AgentInfo, x), self.agents)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class SkillsGetInvokedResult:
+ """Skills invoked during this session, ordered by invocation time (most recent last)."""
+
+ skills: list[SkillsInvokedSkill]
+ """Skills invoked during this session, ordered by invocation time (most recent last)"""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'SkillsGetInvokedResult':
+ assert isinstance(obj, dict)
+ skills = from_list(SkillsInvokedSkill.from_dict, obj.get("skills"))
+ return SkillsGetInvokedResult(skills)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["skills"] = from_list(lambda x: to_class(SkillsInvokedSkill, x), self.skills)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SkillDiscoveryPathList:
@@ -18868,47 +19856,24 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class TaskProgress:
- """Schema for the `TaskAgentProgress` type.
+class TasksGetProgressResult:
+ """Progress information for the task, or null when no task with that ID is tracked."""
- Schema for the `TaskShellProgress` type.
+ progress: TaskProgress | None = None
+ """Progress information for the task, discriminated by type. Returns null when no task with
+ this ID is currently tracked.
"""
- type: TaskInfoType
- """Progress kind"""
-
- latest_intent: str | None = None
- """The most recent intent reported by the agent"""
-
- recent_activity: list[TaskProgressLine] | None = None
- """Recent tool execution events converted to display lines"""
-
- pid: int | None = None
- """Process ID when available"""
-
- recent_output: str | None = None
- """Recent stdout/stderr lines from the running shell command"""
@staticmethod
- def from_dict(obj: Any) -> 'TaskProgress':
+ def from_dict(obj: Any) -> 'TasksGetProgressResult':
assert isinstance(obj, dict)
- type = TaskInfoType(obj.get("type"))
- latest_intent = from_union([from_str, from_none], obj.get("latestIntent"))
- recent_activity = from_union([lambda x: from_list(TaskProgressLine.from_dict, x), from_none], obj.get("recentActivity"))
- pid = from_union([from_int, from_none], obj.get("pid"))
- recent_output = from_union([from_str, from_none], obj.get("recentOutput"))
- return TaskProgress(type, latest_intent, recent_activity, pid, recent_output)
+ progress = from_union([TaskProgress.from_dict, from_none], obj.get("progress"))
+ return TasksGetProgressResult(progress)
def to_dict(self) -> dict:
result: dict = {}
- result["type"] = to_enum(TaskInfoType, self.type)
- if self.latest_intent is not None:
- result["latestIntent"] = from_union([from_str, from_none], self.latest_intent)
- if self.recent_activity is not None:
- result["recentActivity"] = from_union([lambda x: from_list(lambda x: to_class(TaskProgressLine, x), x), from_none], self.recent_activity)
- if self.pid is not None:
- result["pid"] = from_union([from_int, from_none], self.pid)
- if self.recent_output is not None:
- result["recentOutput"] = from_union([from_str, from_none], self.recent_output)
+ if self.progress is not None:
+ result["progress"] = from_union([lambda x: to_class(TaskProgress, x), from_none], self.progress)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -19199,7 +20164,9 @@ class UIHandlePendingExitPlanModeRequest:
"""The unique request ID from the exit_plan_mode.requested event"""
response: UIExitPlanModeResponse
- """Schema for the `UIExitPlanModeResponse` type."""
+ """User response for a pending exit-plan-mode request, with approval state, selected action,
+ auto-approve flag, and feedback.
+ """
@staticmethod
def from_dict(obj: Any) -> 'UIHandlePendingExitPlanModeRequest':
@@ -19457,466 +20424,74 @@ def from_dict(obj: Any) -> 'CanvasProviderInvokeActionRequest':
session_id = from_str(obj.get("sessionId"))
host = from_union([CanvasHostContext.from_dict, from_none], obj.get("host"))
input = obj.get("input")
- session = from_union([CanvasSessionContext.from_dict, from_none], obj.get("session"))
- return CanvasProviderInvokeActionRequest(action_name, canvas_id, extension_id, instance_id, session_id, host, input, session)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["actionName"] = from_str(self.action_name)
- result["canvasId"] = from_str(self.canvas_id)
- result["extensionId"] = from_str(self.extension_id)
- result["instanceId"] = from_str(self.instance_id)
- result["sessionId"] = from_str(self.session_id)
- if self.host is not None:
- result["host"] = from_union([lambda x: to_class(CanvasHostContext, x), from_none], self.host)
- if self.input is not None:
- result["input"] = self.input
- if self.session is not None:
- result["session"] = from_union([lambda x: to_class(CanvasSessionContext, x), from_none], self.session)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class CanvasProviderOpenRequest:
- """Canvas open parameters sent to the provider."""
-
- canvas_id: str
- """Provider-local canvas identifier"""
-
- extension_id: str
- """Owning provider identifier"""
-
- instance_id: str
- """Stable caller-supplied canvas instance identifier"""
-
- session_id: str
- """Target session identifier"""
-
- host: CanvasHostContext | None = None
- """Host context supplied by the runtime."""
-
- input: Any = None
- """Canvas open input"""
-
- session: CanvasSessionContext | None = None
- """Session context supplied by the runtime."""
-
- @staticmethod
- def from_dict(obj: Any) -> 'CanvasProviderOpenRequest':
- assert isinstance(obj, dict)
- canvas_id = from_str(obj.get("canvasId"))
- extension_id = from_str(obj.get("extensionId"))
- instance_id = from_str(obj.get("instanceId"))
- session_id = from_str(obj.get("sessionId"))
- host = from_union([CanvasHostContext.from_dict, from_none], obj.get("host"))
- input = obj.get("input")
- session = from_union([CanvasSessionContext.from_dict, from_none], obj.get("session"))
- return CanvasProviderOpenRequest(canvas_id, extension_id, instance_id, session_id, host, input, session)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["canvasId"] = from_str(self.canvas_id)
- result["extensionId"] = from_str(self.extension_id)
- result["instanceId"] = from_str(self.instance_id)
- result["sessionId"] = from_str(self.session_id)
- if self.host is not None:
- result["host"] = from_union([lambda x: to_class(CanvasHostContext, x), from_none], self.host)
- if self.input is not None:
- result["input"] = self.input
- if self.session is not None:
- result["session"] = from_union([lambda x: to_class(CanvasSessionContext, x), from_none], self.session)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class APIKeyAuthInfo:
- """Schema for the `ApiKeyAuthInfo` type."""
-
- api_key: str
- """The API key. Treat as a secret."""
-
- host: str
- """Authentication host."""
-
- type: ClassVar[str] = "api-key"
- """API-key authentication for non-GitHub LLM providers (e.g. when running BYOM-style)."""
-
- copilot_user: CopilotUserResponse | None = None
- """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
- GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
- verbatim and does not re-fetch when set.
- """
-
- @staticmethod
- def from_dict(obj: Any) -> 'APIKeyAuthInfo':
- assert isinstance(obj, dict)
- api_key = from_str(obj.get("apiKey"))
- host = from_str(obj.get("host"))
- copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
- return APIKeyAuthInfo(api_key, host, copilot_user)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["apiKey"] = from_str(self.api_key)
- result["host"] = from_str(self.host)
- result["type"] = self.type
- if self.copilot_user is not None:
- result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class CopilotAPITokenAuthInfo:
- """Schema for the `CopilotApiTokenAuthInfo` type."""
-
- host: Host
- """Authentication host (always the public GitHub host)."""
-
- type: ClassVar[str] = "copilot-api-token"
- """Direct Copilot API authentication via the `GITHUB_COPILOT_API_TOKEN` + `COPILOT_API_URL`
- environment-variable pair. The token itself is read from the environment by the runtime,
- not carried in this struct.
- """
- copilot_user: CopilotUserResponse | None = None
- """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
- GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
- verbatim and does not re-fetch when set.
- """
-
- @staticmethod
- def from_dict(obj: Any) -> 'CopilotAPITokenAuthInfo':
- assert isinstance(obj, dict)
- host = Host(obj.get("host"))
- copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
- return CopilotAPITokenAuthInfo(host, copilot_user)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["host"] = to_enum(Host, self.host)
- result["type"] = self.type
- if self.copilot_user is not None:
- result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class EnvAuthInfo:
- """Schema for the `EnvAuthInfo` type."""
-
- env_var: str
- """Name of the environment variable the token was sourced from."""
-
- host: str
- """Authentication host (e.g. https://github.com or a GHES host)."""
-
- token: str
- """The token value itself. Treat as a secret."""
-
- type: ClassVar[str] = "env"
- """Personal access token (PAT) or server-to-server token sourced from an environment
- variable.
- """
- copilot_user: CopilotUserResponse | None = None
- """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
- GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
- verbatim and does not re-fetch when set.
- """
- login: str | None = None
- """User login associated with the token. Undefined for server-to-server tokens (those
- starting with `ghs_`).
- """
-
- @staticmethod
- def from_dict(obj: Any) -> 'EnvAuthInfo':
- assert isinstance(obj, dict)
- env_var = from_str(obj.get("envVar"))
- host = from_str(obj.get("host"))
- token = from_str(obj.get("token"))
- copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
- login = from_union([from_str, from_none], obj.get("login"))
- return EnvAuthInfo(env_var, host, token, copilot_user, login)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["envVar"] = from_str(self.env_var)
- result["host"] = from_str(self.host)
- result["token"] = from_str(self.token)
- result["type"] = self.type
- if self.copilot_user is not None:
- result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
- if self.login is not None:
- result["login"] = from_union([from_str, from_none], self.login)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class GhCLIAuthInfo:
- """Schema for the `GhCliAuthInfo` type."""
-
- host: str
- """Authentication host."""
-
- login: str
- """User login as reported by `gh auth status`."""
-
- token: str
- """The token returned by `gh auth token`. Treat as a secret."""
-
- type: ClassVar[str] = "gh-cli"
- """Authentication via the `gh` CLI's saved credentials."""
-
- copilot_user: CopilotUserResponse | None = None
- """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
- GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
- verbatim and does not re-fetch when set.
- """
-
- @staticmethod
- def from_dict(obj: Any) -> 'GhCLIAuthInfo':
- assert isinstance(obj, dict)
- host = from_str(obj.get("host"))
- login = from_str(obj.get("login"))
- token = from_str(obj.get("token"))
- copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
- return GhCLIAuthInfo(host, login, token, copilot_user)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["host"] = from_str(self.host)
- result["login"] = from_str(self.login)
- result["token"] = from_str(self.token)
- result["type"] = self.type
- if self.copilot_user is not None:
- result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class HMACAuthInfo:
- """Schema for the `HMACAuthInfo` type."""
-
- hmac: str
- """HMAC secret used to sign requests."""
-
- host: Host
- """Authentication host. HMAC auth always targets the public GitHub host."""
-
- type: ClassVar[str] = "hmac"
- """HMAC-based authentication used by GitHub-internal services."""
-
- copilot_user: CopilotUserResponse | None = None
- """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
- GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
- verbatim and does not re-fetch when set.
- """
-
- @staticmethod
- def from_dict(obj: Any) -> 'HMACAuthInfo':
- assert isinstance(obj, dict)
- hmac = from_str(obj.get("hmac"))
- host = Host(obj.get("host"))
- copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
- return HMACAuthInfo(hmac, host, copilot_user)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["hmac"] = from_str(self.hmac)
- result["host"] = to_enum(Host, self.host)
- result["type"] = self.type
- if self.copilot_user is not None:
- result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class TokenAuthInfo:
- """Schema for the `TokenAuthInfo` type."""
-
- host: str
- """Authentication host."""
-
- token: str
- """The token value itself. Treat as a secret."""
-
- type: ClassVar[str] = "token"
- """SDK-side token authentication; the host configured the token directly via the SDK."""
-
- copilot_user: CopilotUserResponse | None = None
- """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
- GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
- verbatim and does not re-fetch when set.
- """
-
- @staticmethod
- def from_dict(obj: Any) -> 'TokenAuthInfo':
- assert isinstance(obj, dict)
- host = from_str(obj.get("host"))
- token = from_str(obj.get("token"))
- copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
- return TokenAuthInfo(host, token, copilot_user)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["host"] = from_str(self.host)
- result["token"] = from_str(self.token)
- result["type"] = self.type
- if self.copilot_user is not None:
- result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class UserAuthInfo:
- """Schema for the `UserAuthInfo` type."""
-
- host: str
- """Authentication host."""
-
- login: str
- """OAuth user login."""
-
- type: ClassVar[str] = "user"
- """OAuth user authentication. The token itself is held in the runtime's secret token store
- (keyed by host+login) and is NOT carried in this struct.
- """
- copilot_user: CopilotUserResponse | None = None
- """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
- GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
- verbatim and does not re-fetch when set.
- """
-
- @staticmethod
- def from_dict(obj: Any) -> 'UserAuthInfo':
- assert isinstance(obj, dict)
- host = from_str(obj.get("host"))
- login = from_str(obj.get("login"))
- copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
- return UserAuthInfo(host, login, copilot_user)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["host"] = from_str(self.host)
- result["login"] = from_str(self.login)
- result["type"] = self.type
- if self.copilot_user is not None:
- result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
- return result
-
-@dataclass
-class PermissionDecisionApproveForIonApproval:
- """Session-scoped approval to remember (tool prompts only; omitted for path/url prompts)
-
- Schema for the `PermissionDecisionApproveForSessionApprovalCommands` type.
-
- Schema for the `PermissionDecisionApproveForSessionApprovalRead` type.
-
- Schema for the `PermissionDecisionApproveForSessionApprovalWrite` type.
-
- Schema for the `PermissionDecisionApproveForSessionApprovalMcp` type.
-
- Schema for the `PermissionDecisionApproveForSessionApprovalMcpSampling` type.
-
- Schema for the `PermissionDecisionApproveForSessionApprovalMemory` type.
-
- Schema for the `PermissionDecisionApproveForSessionApprovalCustomTool` type.
-
- Schema for the `PermissionDecisionApproveForSessionApprovalExtensionManagement` type.
-
- Schema for the `PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess`
- type.
-
- Approval to persist for this location
-
- Schema for the `PermissionDecisionApproveForLocationApprovalCommands` type.
-
- Schema for the `PermissionDecisionApproveForLocationApprovalRead` type.
-
- Schema for the `PermissionDecisionApproveForLocationApprovalWrite` type.
-
- Schema for the `PermissionDecisionApproveForLocationApprovalMcp` type.
-
- Schema for the `PermissionDecisionApproveForLocationApprovalMcpSampling` type.
-
- Schema for the `PermissionDecisionApproveForLocationApprovalMemory` type.
-
- Schema for the `PermissionDecisionApproveForLocationApprovalCustomTool` type.
-
- Schema for the `PermissionDecisionApproveForLocationApprovalExtensionManagement` type.
-
- Schema for the `PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess`
- type.
-
- The approval to add as a session-scoped rule
-
- The approval to persist for this location
- """
- command_identifiers: list[str] | None = None
- """Command identifiers covered by this approval."""
-
- kind: ApprovalKind | None = None
- """Approval scoped to specific command identifiers.
-
- Approval covering read-only filesystem operations.
-
- Approval covering filesystem write operations.
+ session = from_union([CanvasSessionContext.from_dict, from_none], obj.get("session"))
+ return CanvasProviderInvokeActionRequest(action_name, canvas_id, extension_id, instance_id, session_id, host, input, session)
- Approval covering an MCP tool.
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["actionName"] = from_str(self.action_name)
+ result["canvasId"] = from_str(self.canvas_id)
+ result["extensionId"] = from_str(self.extension_id)
+ result["instanceId"] = from_str(self.instance_id)
+ result["sessionId"] = from_str(self.session_id)
+ if self.host is not None:
+ result["host"] = from_union([lambda x: to_class(CanvasHostContext, x), from_none], self.host)
+ if self.input is not None:
+ result["input"] = self.input
+ if self.session is not None:
+ result["session"] = from_union([lambda x: to_class(CanvasSessionContext, x), from_none], self.session)
+ return result
- Approval covering MCP sampling requests for a server.
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class CanvasProviderOpenRequest:
+ """Canvas open parameters sent to the provider."""
- Approval covering writes to long-term memory.
+ canvas_id: str
+ """Provider-local canvas identifier"""
- Approval covering a custom tool.
+ extension_id: str
+ """Owning provider identifier"""
- Approval covering extension lifecycle operations such as enable, disable, or reload.
+ instance_id: str
+ """Stable caller-supplied canvas instance identifier"""
- Approval covering an extension's request to access a permission-gated capability.
- """
- server_name: str | None = None
- """MCP server name."""
+ session_id: str
+ """Target session identifier"""
- tool_name: str | None = None
- """MCP tool name, or null to cover every tool on the server.
+ host: CanvasHostContext | None = None
+ """Host context supplied by the runtime."""
- Custom tool name.
- """
- operation: str | None = None
- """Optional operation identifier; when omitted, the approval covers all extension management
- operations.
- """
- extension_name: str | None = None
- """Extension name."""
+ input: Any = None
+ """Canvas open input"""
- external_ref_marker_external_ref_user_tool_session_approval: str | None = None
+ session: CanvasSessionContext | None = None
+ """Session context supplied by the runtime."""
@staticmethod
- def from_dict(obj: Any) -> 'PermissionDecisionApproveForIonApproval':
+ def from_dict(obj: Any) -> 'CanvasProviderOpenRequest':
assert isinstance(obj, dict)
- command_identifiers = from_union([lambda x: from_list(from_str, x), from_none], obj.get("commandIdentifiers"))
- kind = from_union([ApprovalKind, from_none], obj.get("kind"))
- server_name = from_union([from_str, from_none], obj.get("serverName"))
- tool_name = from_union([from_none, from_str], obj.get("toolName"))
- operation = from_union([from_str, from_none], obj.get("operation"))
- extension_name = from_union([from_str, from_none], obj.get("extensionName"))
- external_ref_marker_external_ref_user_tool_session_approval = from_union([from_str, from_none], obj.get("__externalRefMarker___ExternalRef_UserToolSessionApproval"))
- return PermissionDecisionApproveForIonApproval(command_identifiers, kind, server_name, tool_name, operation, extension_name, external_ref_marker_external_ref_user_tool_session_approval)
+ canvas_id = from_str(obj.get("canvasId"))
+ extension_id = from_str(obj.get("extensionId"))
+ instance_id = from_str(obj.get("instanceId"))
+ session_id = from_str(obj.get("sessionId"))
+ host = from_union([CanvasHostContext.from_dict, from_none], obj.get("host"))
+ input = obj.get("input")
+ session = from_union([CanvasSessionContext.from_dict, from_none], obj.get("session"))
+ return CanvasProviderOpenRequest(canvas_id, extension_id, instance_id, session_id, host, input, session)
def to_dict(self) -> dict:
result: dict = {}
- if self.command_identifiers is not None:
- result["commandIdentifiers"] = from_union([lambda x: from_list(from_str, x), from_none], self.command_identifiers)
- if self.kind is not None:
- result["kind"] = from_union([lambda x: to_enum(ApprovalKind, x), from_none], self.kind)
- if self.server_name is not None:
- result["serverName"] = from_union([from_str, from_none], self.server_name)
- if self.tool_name is not None:
- result["toolName"] = from_union([from_none, from_str], self.tool_name)
- if self.operation is not None:
- result["operation"] = from_union([from_str, from_none], self.operation)
- if self.extension_name is not None:
- result["extensionName"] = from_union([from_str, from_none], self.extension_name)
- if self.external_ref_marker_external_ref_user_tool_session_approval is not None:
- result["__externalRefMarker___ExternalRef_UserToolSessionApproval"] = from_union([from_str, from_none], self.external_ref_marker_external_ref_user_tool_session_approval)
+ result["canvasId"] = from_str(self.canvas_id)
+ result["extensionId"] = from_str(self.extension_id)
+ result["instanceId"] = from_str(self.instance_id)
+ result["sessionId"] = from_str(self.session_id)
+ if self.host is not None:
+ result["host"] = from_union([lambda x: to_class(CanvasHostContext, x), from_none], self.host)
+ if self.input is not None:
+ result["input"] = self.input
+ if self.session is not None:
+ result["session"] = from_union([lambda x: to_class(CanvasSessionContext, x), from_none], self.session)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -19953,106 +20528,23 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
-class InstalledPlugin:
- """Schema for the `InstalledPlugin` type."""
-
- enabled: bool
- """Whether the plugin is currently enabled"""
-
- installed_at: str
- """Installation timestamp"""
-
- marketplace: str
- """Marketplace the plugin came from (empty string for direct repo installs)"""
-
- name: str
- """Plugin name"""
-
- cache_path: str | None = None
- """Path where the plugin is cached locally"""
-
- source: InstalledPluginSource | str | None = None
- """Source for direct repo installs (when marketplace is empty)"""
-
- version: str | None = None
- """Version installed (if available)"""
-
- @staticmethod
- def from_dict(obj: Any) -> 'InstalledPlugin':
- assert isinstance(obj, dict)
- enabled = from_bool(obj.get("enabled"))
- installed_at = from_str(obj.get("installed_at"))
- marketplace = from_str(obj.get("marketplace"))
- name = from_str(obj.get("name"))
- cache_path = from_union([from_str, from_none], obj.get("cache_path"))
- source = from_union([InstalledPluginSource.from_dict, from_str, from_none], obj.get("source"))
- version = from_union([from_str, from_none], obj.get("version"))
- return InstalledPlugin(enabled, installed_at, marketplace, name, cache_path, source, version)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["enabled"] = from_bool(self.enabled)
- result["installed_at"] = from_str(self.installed_at)
- result["marketplace"] = from_str(self.marketplace)
- result["name"] = from_str(self.name)
- if self.cache_path is not None:
- result["cache_path"] = from_union([from_str, from_none], self.cache_path)
- if self.source is not None:
- result["source"] = from_union([lambda x: to_class(InstalledPluginSource, x), from_str, from_none], self.source)
- if self.version is not None:
- result["version"] = from_union([from_str, from_none], self.version)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class SessionInstalledPlugin:
- """Schema for the `SessionInstalledPlugin` type."""
-
- enabled: bool
- """Whether the plugin is currently enabled"""
-
- installed_at: str
- """Installation timestamp (ISO-8601)"""
-
- marketplace: str
- """Marketplace the plugin came from (empty string for direct repo installs)"""
-
- name: str
- """Plugin name"""
-
- cache_path: str | None = None
- """Path where the plugin is cached locally"""
-
- source: SessionInstalledPluginSource | str | None = None
- """Source descriptor for direct repo installs (when marketplace is empty)"""
+class SessionsSetAdditionalPluginsRequest:
+ """Manager-wide additional plugins to register; replaces any previously-configured set."""
- version: str | None = None
- """Installed version, if known"""
+ plugins: list[InstalledPlugin]
+ """Manager-wide additional plugins to register. Replaces any previously-configured set. Pass
+ an empty array to clear.
+ """
@staticmethod
- def from_dict(obj: Any) -> 'SessionInstalledPlugin':
+ def from_dict(obj: Any) -> 'SessionsSetAdditionalPluginsRequest':
assert isinstance(obj, dict)
- enabled = from_bool(obj.get("enabled"))
- installed_at = from_str(obj.get("installed_at"))
- marketplace = from_str(obj.get("marketplace"))
- name = from_str(obj.get("name"))
- cache_path = from_union([from_str, from_none], obj.get("cache_path"))
- source = from_union([SessionInstalledPluginSource.from_dict, from_str, from_none], obj.get("source"))
- version = from_union([from_str, from_none], obj.get("version"))
- return SessionInstalledPlugin(enabled, installed_at, marketplace, name, cache_path, source, version)
+ plugins = from_list(InstalledPlugin.from_dict, obj.get("plugins"))
+ return SessionsSetAdditionalPluginsRequest(plugins)
def to_dict(self) -> dict:
result: dict = {}
- result["enabled"] = from_bool(self.enabled)
- result["installed_at"] = from_str(self.installed_at)
- result["marketplace"] = from_str(self.marketplace)
- result["name"] = from_str(self.name)
- if self.cache_path is not None:
- result["cache_path"] = from_union([from_str, from_none], self.cache_path)
- if self.source is not None:
- result["source"] = from_union([lambda x: to_class(SessionInstalledPluginSource, x), from_str, from_none], self.source)
- if self.version is not None:
- result["version"] = from_union([from_str, from_none], self.version)
+ result["plugins"] = from_list(lambda x: to_class(InstalledPlugin, x), self.plugins)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -20265,6 +20757,59 @@ def to_dict(self) -> dict:
result["workspacePath"] = from_union([from_none, from_str], self.workspace_path)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class WorkspacesListCheckpointsResult:
+ """Workspace checkpoints in chronological order; empty when the workspace is not enabled."""
+
+ checkpoints: list[WorkspacesCheckpoints]
+ """Workspace checkpoints in chronological order. Empty when workspace is not enabled."""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'WorkspacesListCheckpointsResult':
+ assert isinstance(obj, dict)
+ checkpoints = from_list(WorkspacesCheckpoints.from_dict, obj.get("checkpoints"))
+ return WorkspacesListCheckpointsResult(checkpoints)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["checkpoints"] = from_list(lambda x: to_class(WorkspacesCheckpoints, x), self.checkpoints)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class DebugCollectLogsRequest:
+ """Options for collecting a redacted session debug bundle."""
+
+ destination: DebugCollectLogsDestination
+ """Where the redacted bundle should be written. Use `archive` to produce a .tgz, or
+ `directory` to stage redacted files for caller-managed upload/post-processing.
+ """
+ additional_entries: list[DebugCollectLogsEntry] | None = None
+ """Caller-provided server-local files or directories to include in addition to the runtime's
+ built-in session diagnostics. This lets host applications add their own diagnostics
+ without changing the API shape.
+ """
+ include: DebugCollectLogsInclude | None = None
+ """Which built-in session diagnostics to include. Omitted fields default to true."""
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'DebugCollectLogsRequest':
+ assert isinstance(obj, dict)
+ destination = DebugCollectLogsDestination.from_dict(obj.get("destination"))
+ additional_entries = from_union([lambda x: from_list(DebugCollectLogsEntry.from_dict, x), from_none], obj.get("additionalEntries"))
+ include = from_union([DebugCollectLogsInclude.from_dict, from_none], obj.get("include"))
+ return DebugCollectLogsRequest(destination, additional_entries, include)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["destination"] = to_class(DebugCollectLogsDestination, self.destination)
+ if self.additional_entries is not None:
+ result["additionalEntries"] = from_union([lambda x: from_list(lambda x: to_class(DebugCollectLogsEntry, x), x), from_none], self.additional_entries)
+ if self.include is not None:
+ result["include"] = from_union([lambda x: to_class(DebugCollectLogsInclude, x), from_none], self.include)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class InstructionDiscoveryPathList:
@@ -20454,42 +20999,20 @@ class SandboxConfig:
"""User-managed sandbox policy fragment merged into the auto-discovered base policy."""
@staticmethod
- def from_dict(obj: Any) -> 'SandboxConfig':
- assert isinstance(obj, dict)
- enabled = from_bool(obj.get("enabled"))
- add_current_working_directory = from_union([from_bool, from_none], obj.get("addCurrentWorkingDirectory"))
- user_policy = from_union([SandboxConfigUserPolicy.from_dict, from_none], obj.get("userPolicy"))
- return SandboxConfig(enabled, add_current_working_directory, user_policy)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["enabled"] = from_bool(self.enabled)
- if self.add_current_working_directory is not None:
- result["addCurrentWorkingDirectory"] = from_union([from_bool, from_none], self.add_current_working_directory)
- if self.user_policy is not None:
- result["userPolicy"] = from_union([lambda x: to_class(SandboxConfigUserPolicy, x), from_none], self.user_policy)
- return result
-
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class TasksGetProgressResult:
- """Progress information for the task, or null when no task with that ID is tracked."""
-
- progress: TaskProgress | None = None
- """Progress information for the task, discriminated by type. Returns null when no task with
- this ID is currently tracked.
- """
-
- @staticmethod
- def from_dict(obj: Any) -> 'TasksGetProgressResult':
+ def from_dict(obj: Any) -> 'SandboxConfig':
assert isinstance(obj, dict)
- progress = from_union([TaskProgress.from_dict, from_none], obj.get("progress"))
- return TasksGetProgressResult(progress)
+ enabled = from_bool(obj.get("enabled"))
+ add_current_working_directory = from_union([from_bool, from_none], obj.get("addCurrentWorkingDirectory"))
+ user_policy = from_union([SandboxConfigUserPolicy.from_dict, from_none], obj.get("userPolicy"))
+ return SandboxConfig(enabled, add_current_working_directory, user_policy)
def to_dict(self) -> dict:
result: dict = {}
- if self.progress is not None:
- result["progress"] = from_union([lambda x: to_class(TaskProgress, x), from_none], self.progress)
+ result["enabled"] = from_bool(self.enabled)
+ if self.add_current_working_directory is not None:
+ result["addCurrentWorkingDirectory"] = from_union([from_bool, from_none], self.add_current_working_directory)
+ if self.user_policy is not None:
+ result["userPolicy"] = from_union([lambda x: to_class(SandboxConfigUserPolicy, x), from_none], self.user_policy)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -20522,27 +21045,6 @@ def to_dict(self) -> dict:
result["required"] = from_union([lambda x: from_list(from_str, x), from_none], self.required)
return result
-# Experimental: this type is part of an experimental API and may change or be removed.
-@dataclass
-class SessionsSetAdditionalPluginsRequest:
- """Manager-wide additional plugins to register; replaces any previously-configured set."""
-
- plugins: list[InstalledPlugin]
- """Manager-wide additional plugins to register. Replaces any previously-configured set. Pass
- an empty array to clear.
- """
-
- @staticmethod
- def from_dict(obj: Any) -> 'SessionsSetAdditionalPluginsRequest':
- assert isinstance(obj, dict)
- plugins = from_list(InstalledPlugin.from_dict, obj.get("plugins"))
- return SessionsSetAdditionalPluginsRequest(plugins)
-
- def to_dict(self) -> dict:
- result: dict = {}
- result["plugins"] = from_list(lambda x: to_class(InstalledPlugin, x), self.plugins)
- return result
-
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class ProviderAddRequest:
@@ -20743,6 +21245,9 @@ class SessionOpenOptions:
sandbox_config: SandboxConfig | None = None
"""Resolved sandbox configuration."""
+ self_fetch_managed_settings: bool | None = None
+ """Opt-in: self-fetch enterprise managed settings at session bootstrap."""
+
session_capabilities: list[SessionCapability] | None = None
"""Capabilities enabled for this session."""
@@ -20824,6 +21329,7 @@ def from_dict(obj: Any) -> 'SessionOpenOptions':
remote_steerable = from_union([from_bool, from_none], obj.get("remoteSteerable"))
running_in_interactive_mode = from_union([from_bool, from_none], obj.get("runningInInteractiveMode"))
sandbox_config = from_union([SandboxConfig.from_dict, from_none], obj.get("sandboxConfig"))
+ self_fetch_managed_settings = from_union([from_bool, from_none], obj.get("selfFetchManagedSettings"))
session_capabilities = from_union([lambda x: from_list(SessionCapability, x), from_none], obj.get("sessionCapabilities"))
session_id = from_union([from_str, from_none], obj.get("sessionId"))
session_limits = from_union([SessionLimitsConfig.from_dict, from_none], obj.get("sessionLimits"))
@@ -20834,7 +21340,7 @@ def from_dict(obj: Any) -> 'SessionOpenOptions':
trajectory_file = from_union([from_str, from_none], obj.get("trajectoryFile"))
working_directory = from_union([from_str, from_none], obj.get("workingDirectory"))
working_directory_context = from_union([SessionContext.from_dict, from_none], obj.get("workingDirectoryContext"))
- return SessionOpenOptions(additional_content_exclusion_policies, agent_context, allow_all_mcp_server_instructions, ask_user_disabled, auth_info, available_tools, capi, client_kind, client_name, coauthor_enabled, config_dir, continue_on_auto_mode, copilot_url, custom_agents_local_only, detached_from_spawning_parent_engagement_id, detached_from_spawning_parent_session_id, disabled_instruction_sources, disabled_skills, enable_citations, enable_on_demand_instruction_discovery, enable_script_safety, enable_streaming, env_value_mode, events_log_directory, excluded_builtin_agents, excluded_tools, exp_assignments, feature_flags, installed_plugins, integration_id, is_experimental_mode, log_interactive_shells, lsp_client_name, max_inline_binary_bytes, memory, model, model_capabilities_overrides, models, name, provider, providers, reasoning_effort, reasoning_summary, remote_defaulted_on, remote_exporting, remote_steerable, running_in_interactive_mode, sandbox_config, session_capabilities, session_id, session_limits, shell_init_profile, shell_process_flags, skill_directories, skip_custom_instructions, trajectory_file, working_directory, working_directory_context)
+ return SessionOpenOptions(additional_content_exclusion_policies, agent_context, allow_all_mcp_server_instructions, ask_user_disabled, auth_info, available_tools, capi, client_kind, client_name, coauthor_enabled, config_dir, continue_on_auto_mode, copilot_url, custom_agents_local_only, detached_from_spawning_parent_engagement_id, detached_from_spawning_parent_session_id, disabled_instruction_sources, disabled_skills, enable_citations, enable_on_demand_instruction_discovery, enable_script_safety, enable_streaming, env_value_mode, events_log_directory, excluded_builtin_agents, excluded_tools, exp_assignments, feature_flags, installed_plugins, integration_id, is_experimental_mode, log_interactive_shells, lsp_client_name, max_inline_binary_bytes, memory, model, model_capabilities_overrides, models, name, provider, providers, reasoning_effort, reasoning_summary, remote_defaulted_on, remote_exporting, remote_steerable, running_in_interactive_mode, sandbox_config, self_fetch_managed_settings, session_capabilities, session_id, session_limits, shell_init_profile, shell_process_flags, skill_directories, skip_custom_instructions, trajectory_file, working_directory, working_directory_context)
def to_dict(self) -> dict:
result: dict = {}
@@ -20934,6 +21440,8 @@ def to_dict(self) -> dict:
result["runningInInteractiveMode"] = from_union([from_bool, from_none], self.running_in_interactive_mode)
if self.sandbox_config is not None:
result["sandboxConfig"] = from_union([lambda x: to_class(SandboxConfig, x), from_none], self.sandbox_config)
+ if self.self_fetch_managed_settings is not None:
+ result["selfFetchManagedSettings"] = from_union([from_bool, from_none], self.self_fetch_managed_settings)
if self.session_capabilities is not None:
result["sessionCapabilities"] = from_union([lambda x: from_list(lambda x: to_enum(SessionCapability, x), x), from_none], self.session_capabilities)
if self.session_id is not None:
@@ -21477,6 +21985,184 @@ def to_dict(self) -> dict:
result["suppressResumeWorkspaceMetadataWriteback"] = from_union([from_bool, from_none], self.suppress_resume_workspace_metadata_writeback)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class CopilotUserResponse:
+ """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
+ GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
+ verbatim and does not re-fetch when set.
+ """
+ access_type_sku: str | None = None
+ """Copilot access SKU identifier (e.g. `free_limited_copilot`,
+ `copilot_for_business_seat_quota`) used to gate model and feature access.
+ """
+ analytics_tracking_id: str | None = None
+ """Opaque analytics tracking identifier for the user, forwarded from the Copilot API."""
+
+ assigned_date: Any = None
+ """Date the Copilot seat was assigned to the user, if applicable."""
+
+ can_signup_for_limited: bool | None = None
+ """Whether the user is eligible to sign up for the free/limited Copilot tier."""
+
+ can_upgrade_plan: bool | None = None
+ """Whether the user is able to upgrade their Copilot plan."""
+
+ chat_enabled: bool | None = None
+ """Whether Copilot chat is enabled for the user."""
+
+ cli_remote_control_enabled: bool | None = None
+ """Whether CLI remote control is enabled for the user."""
+
+ cloud_session_storage_enabled: bool | None = None
+ """Whether cloud session storage is enabled for the user."""
+
+ codex_agent_enabled: bool | None = None
+ """Whether the Codex agent is enabled for the user."""
+
+ copilot_plan: str | None = None
+ """Copilot plan name for the user (e.g. `individual`, `business`, `enterprise`)."""
+
+ copilotignore_enabled: bool | None = None
+ """Whether `.copilotignore` content-exclusion support is enabled for the user."""
+
+ endpoints: CopilotUserResponseEndpoints | None = None
+ """Endpoint URLs from the raw Copilot `/copilot_internal/v2/token` user-response passthrough."""
+
+ is_mcp_enabled: Any = None
+ """Whether MCP (Model Context Protocol) support is enabled for the user."""
+
+ is_staff: bool | None = None
+ """Whether the user is a GitHub/Microsoft staff member."""
+
+ limited_user_quotas: dict[str, float] | None = None
+ """Per-category quota allotments for free/limited-tier users, keyed by quota category."""
+
+ limited_user_reset_date: str | None = None
+ """Date the free/limited-tier user's quotas next reset, as a raw string from the Copilot API."""
+
+ login: str | None = None
+ """GitHub login of the authenticated user."""
+
+ monthly_quotas: dict[str, float] | None = None
+ """Per-category monthly quota allotments, keyed by quota category."""
+
+ organization_list: Any = None
+ """Organizations the user belongs to, each with an optional login and display name."""
+
+ organization_login_list: list[str] | None = None
+ """Logins of the organizations the user belongs to."""
+
+ quota_reset_date: str | None = None
+ """Date the user's usage quota next resets, as a raw string from the Copilot API; see
+ `quota_reset_date_utc` for the UTC-normalized value.
+ """
+ quota_reset_date_utc: str | None = None
+ """UTC-normalized form of `quota_reset_date` (the date the user's usage quota next resets)."""
+
+ quota_snapshots: dict[str, CopilotUserResponseQuotaSnapshots | None] | None = None
+ """Quota snapshot map from the raw Copilot user-response passthrough, with chat,
+ completions, premium-interactions, and other entries.
+ """
+ restricted_telemetry: bool | None = None
+ """Whether the user's telemetry is subject to restricted-data handling."""
+
+ te: bool | None = None
+ """Raw passthrough of the Copilot API `te` flag for the user (an opaque server-side
+ eligibility signal surfaced in telemetry); not otherwise interpreted by the runtime.
+ """
+ token_based_billing: bool | None = None
+ """Whether the account is on usage-based (token/AI-credit) billing rather than a fixed
+ premium-request quota.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'CopilotUserResponse':
+ assert isinstance(obj, dict)
+ access_type_sku = from_union([from_str, from_none], obj.get("access_type_sku"))
+ analytics_tracking_id = from_union([from_str, from_none], obj.get("analytics_tracking_id"))
+ assigned_date = obj.get("assigned_date")
+ can_signup_for_limited = from_union([from_bool, from_none], obj.get("can_signup_for_limited"))
+ can_upgrade_plan = from_union([from_bool, from_none], obj.get("can_upgrade_plan"))
+ chat_enabled = from_union([from_bool, from_none], obj.get("chat_enabled"))
+ cli_remote_control_enabled = from_union([from_bool, from_none], obj.get("cli_remote_control_enabled"))
+ cloud_session_storage_enabled = from_union([from_bool, from_none], obj.get("cloud_session_storage_enabled"))
+ codex_agent_enabled = from_union([from_bool, from_none], obj.get("codex_agent_enabled"))
+ copilot_plan = from_union([from_str, from_none], obj.get("copilot_plan"))
+ copilotignore_enabled = from_union([from_bool, from_none], obj.get("copilotignore_enabled"))
+ endpoints = from_union([CopilotUserResponseEndpoints.from_dict, from_none], obj.get("endpoints"))
+ is_mcp_enabled = obj.get("is_mcp_enabled")
+ is_staff = from_union([from_bool, from_none], obj.get("is_staff"))
+ limited_user_quotas = from_union([lambda x: from_dict(from_float, x), from_none], obj.get("limited_user_quotas"))
+ limited_user_reset_date = from_union([from_str, from_none], obj.get("limited_user_reset_date"))
+ login = from_union([from_str, from_none], obj.get("login"))
+ monthly_quotas = from_union([lambda x: from_dict(from_float, x), from_none], obj.get("monthly_quotas"))
+ organization_list = obj.get("organization_list")
+ organization_login_list = from_union([lambda x: from_list(from_str, x), from_none], obj.get("organization_login_list"))
+ quota_reset_date = from_union([from_str, from_none], obj.get("quota_reset_date"))
+ quota_reset_date_utc = from_union([from_str, from_none], obj.get("quota_reset_date_utc"))
+ quota_snapshots = from_union([lambda x: from_dict(lambda x: from_union([CopilotUserResponseQuotaSnapshots.from_dict, from_none], x), x), from_none], obj.get("quota_snapshots"))
+ restricted_telemetry = from_union([from_bool, from_none], obj.get("restricted_telemetry"))
+ te = from_union([from_bool, from_none], obj.get("te"))
+ token_based_billing = from_union([from_bool, from_none], obj.get("token_based_billing"))
+ return CopilotUserResponse(access_type_sku, analytics_tracking_id, assigned_date, can_signup_for_limited, can_upgrade_plan, chat_enabled, cli_remote_control_enabled, cloud_session_storage_enabled, codex_agent_enabled, copilot_plan, copilotignore_enabled, endpoints, is_mcp_enabled, is_staff, limited_user_quotas, limited_user_reset_date, login, monthly_quotas, organization_list, organization_login_list, quota_reset_date, quota_reset_date_utc, quota_snapshots, restricted_telemetry, te, token_based_billing)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.access_type_sku is not None:
+ result["access_type_sku"] = from_union([from_str, from_none], self.access_type_sku)
+ if self.analytics_tracking_id is not None:
+ result["analytics_tracking_id"] = from_union([from_str, from_none], self.analytics_tracking_id)
+ if self.assigned_date is not None:
+ result["assigned_date"] = self.assigned_date
+ if self.can_signup_for_limited is not None:
+ result["can_signup_for_limited"] = from_union([from_bool, from_none], self.can_signup_for_limited)
+ if self.can_upgrade_plan is not None:
+ result["can_upgrade_plan"] = from_union([from_bool, from_none], self.can_upgrade_plan)
+ if self.chat_enabled is not None:
+ result["chat_enabled"] = from_union([from_bool, from_none], self.chat_enabled)
+ if self.cli_remote_control_enabled is not None:
+ result["cli_remote_control_enabled"] = from_union([from_bool, from_none], self.cli_remote_control_enabled)
+ if self.cloud_session_storage_enabled is not None:
+ result["cloud_session_storage_enabled"] = from_union([from_bool, from_none], self.cloud_session_storage_enabled)
+ if self.codex_agent_enabled is not None:
+ result["codex_agent_enabled"] = from_union([from_bool, from_none], self.codex_agent_enabled)
+ if self.copilot_plan is not None:
+ result["copilot_plan"] = from_union([from_str, from_none], self.copilot_plan)
+ if self.copilotignore_enabled is not None:
+ result["copilotignore_enabled"] = from_union([from_bool, from_none], self.copilotignore_enabled)
+ if self.endpoints is not None:
+ result["endpoints"] = from_union([lambda x: to_class(CopilotUserResponseEndpoints, x), from_none], self.endpoints)
+ if self.is_mcp_enabled is not None:
+ result["is_mcp_enabled"] = self.is_mcp_enabled
+ if self.is_staff is not None:
+ result["is_staff"] = from_union([from_bool, from_none], self.is_staff)
+ if self.limited_user_quotas is not None:
+ result["limited_user_quotas"] = from_union([lambda x: from_dict(to_float, x), from_none], self.limited_user_quotas)
+ if self.limited_user_reset_date is not None:
+ result["limited_user_reset_date"] = from_union([from_str, from_none], self.limited_user_reset_date)
+ if self.login is not None:
+ result["login"] = from_union([from_str, from_none], self.login)
+ if self.monthly_quotas is not None:
+ result["monthly_quotas"] = from_union([lambda x: from_dict(to_float, x), from_none], self.monthly_quotas)
+ if self.organization_list is not None:
+ result["organization_list"] = self.organization_list
+ if self.organization_login_list is not None:
+ result["organization_login_list"] = from_union([lambda x: from_list(from_str, x), from_none], self.organization_login_list)
+ if self.quota_reset_date is not None:
+ result["quota_reset_date"] = from_union([from_str, from_none], self.quota_reset_date)
+ if self.quota_reset_date_utc is not None:
+ result["quota_reset_date_utc"] = from_union([from_str, from_none], self.quota_reset_date_utc)
+ if self.quota_snapshots is not None:
+ result["quota_snapshots"] = from_union([lambda x: from_dict(lambda x: from_union([lambda x: to_class(CopilotUserResponseQuotaSnapshots, x), from_none], x), x), from_none], self.quota_snapshots)
+ if self.restricted_telemetry is not None:
+ result["restricted_telemetry"] = from_union([from_bool, from_none], self.restricted_telemetry)
+ if self.te is not None:
+ result["te"] = from_union([from_bool, from_none], self.te)
+ if self.token_based_billing is not None:
+ result["token_based_billing"] = from_union([from_bool, from_none], self.token_based_billing)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class AgentRegistryLiveTargetEntry:
@@ -21687,14 +22373,87 @@ def from_dict(obj: Any) -> 'AgentRegistrySpawnSpawned':
def to_dict(self) -> dict:
result: dict = {}
- result["entry"] = to_class(AgentRegistryLiveTargetEntry, self.entry)
- result["kind"] = self.kind
- if self.initial_prompt_error is not None:
- result["initialPromptError"] = from_union([from_str, from_none], self.initial_prompt_error)
- if self.initial_prompt_sent is not None:
- result["initialPromptSent"] = from_union([from_bool, from_none], self.initial_prompt_sent)
- if self.log_capture is not None:
- result["logCapture"] = from_union([lambda x: to_class(AgentRegistryLogCapture, x), from_none], self.log_capture)
+ result["entry"] = to_class(AgentRegistryLiveTargetEntry, self.entry)
+ result["kind"] = self.kind
+ if self.initial_prompt_error is not None:
+ result["initialPromptError"] = from_union([from_str, from_none], self.initial_prompt_error)
+ if self.initial_prompt_sent is not None:
+ result["initialPromptSent"] = from_union([from_bool, from_none], self.initial_prompt_sent)
+ if self.log_capture is not None:
+ result["logCapture"] = from_union([lambda x: to_class(AgentRegistryLogCapture, x), from_none], self.log_capture)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class APIKeyAuthInfo:
+ """Authentication-info variant for API-key authentication to a non-GitHub LLM provider,
+ carrying the secret `apiKey` and host.
+ """
+ api_key: str
+ """The API key. Treat as a secret."""
+
+ host: str
+ """Authentication host."""
+
+ type: ClassVar[str] = "api-key"
+ """API-key authentication for non-GitHub LLM providers (e.g. when running BYOM-style)."""
+
+ copilot_user: CopilotUserResponse | None = None
+ """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
+ GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
+ verbatim and does not re-fetch when set.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'APIKeyAuthInfo':
+ assert isinstance(obj, dict)
+ api_key = from_str(obj.get("apiKey"))
+ host = from_str(obj.get("host"))
+ copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
+ return APIKeyAuthInfo(api_key, host, copilot_user)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["apiKey"] = from_str(self.api_key)
+ result["host"] = from_str(self.host)
+ result["type"] = self.type
+ if self.copilot_user is not None:
+ result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class CopilotAPITokenAuthInfo:
+ """Authentication-info variant for direct Copilot API token auth sourced from environment
+ variables, with public GitHub host.
+ """
+ host: Host
+ """Authentication host (always the public GitHub host)."""
+
+ type: ClassVar[str] = "copilot-api-token"
+ """Direct Copilot API authentication via the `GITHUB_COPILOT_API_TOKEN` + `COPILOT_API_URL`
+ environment-variable pair. The token itself is read from the environment by the runtime,
+ not carried in this struct.
+ """
+ copilot_user: CopilotUserResponse | None = None
+ """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
+ GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
+ verbatim and does not re-fetch when set.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'CopilotAPITokenAuthInfo':
+ assert isinstance(obj, dict)
+ host = Host(obj.get("host"))
+ copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
+ return CopilotAPITokenAuthInfo(host, copilot_user)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["host"] = to_enum(Host, self.host)
+ result["type"] = self.type
+ if self.copilot_user is not None:
+ result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -21751,6 +22510,100 @@ def to_dict(self) -> dict:
result["namespacedName"] = from_union([from_str, from_none], self.namespaced_name)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class EnvAuthInfo:
+ """Authentication-info variant for a token sourced from an environment variable, with host,
+ optional login, token, and env var name.
+ """
+ env_var: str
+ """Name of the environment variable the token was sourced from."""
+
+ host: str
+ """Authentication host (e.g. https://github.com or a GHES host)."""
+
+ token: str
+ """The token value itself. Treat as a secret."""
+
+ type: ClassVar[str] = "env"
+ """Personal access token (PAT) or server-to-server token sourced from an environment
+ variable.
+ """
+ copilot_user: CopilotUserResponse | None = None
+ """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
+ GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
+ verbatim and does not re-fetch when set.
+ """
+ login: str | None = None
+ """User login associated with the token. Undefined for server-to-server tokens (those
+ starting with `ghs_`).
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'EnvAuthInfo':
+ assert isinstance(obj, dict)
+ env_var = from_str(obj.get("envVar"))
+ host = from_str(obj.get("host"))
+ token = from_str(obj.get("token"))
+ copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
+ login = from_union([from_str, from_none], obj.get("login"))
+ return EnvAuthInfo(env_var, host, token, copilot_user, login)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["envVar"] = from_str(self.env_var)
+ result["host"] = from_str(self.host)
+ result["token"] = from_str(self.token)
+ result["type"] = self.type
+ if self.copilot_user is not None:
+ result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
+ if self.login is not None:
+ result["login"] = from_union([from_str, from_none], self.login)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class GhCLIAuthInfo:
+ """Authentication-info variant for GitHub CLI credentials, carrying host, login, and the `gh
+ auth token` value.
+ """
+ host: str
+ """Authentication host."""
+
+ login: str
+ """User login as reported by `gh auth status`."""
+
+ token: str
+ """The token returned by `gh auth token`. Treat as a secret."""
+
+ type: ClassVar[str] = "gh-cli"
+ """Authentication via the `gh` CLI's saved credentials."""
+
+ copilot_user: CopilotUserResponse | None = None
+ """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
+ GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
+ verbatim and does not re-fetch when set.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'GhCLIAuthInfo':
+ assert isinstance(obj, dict)
+ host = from_str(obj.get("host"))
+ login = from_str(obj.get("login"))
+ token = from_str(obj.get("token"))
+ copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
+ return GhCLIAuthInfo(host, login, token, copilot_user)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["host"] = from_str(self.host)
+ result["login"] = from_str(self.login)
+ result["token"] = from_str(self.token)
+ result["type"] = self.type
+ if self.copilot_user is not None:
+ result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class GitHubTelemetryEvent:
@@ -21831,8 +22684,8 @@ def to_dict(self) -> dict:
@dataclass
class GitHubTelemetryNotification:
"""Payload for a `gitHubTelemetry.event` notification: a single GitHub telemetry event the
- runtime forwards to a host connection that opted into telemetry forwarding for the
- session.
+ runtime forwards to a host connection that opted into telemetry forwarding during the
+ `server.connect` handshake.
"""
event: GitHubTelemetryEvent
"""The telemetry event, in the runtime's native GitHub-shaped telemetry format."""
@@ -21841,22 +22694,64 @@ class GitHubTelemetryNotification:
"""Whether this is a restricted telemetry event (cli.restricted_telemetry). Hosts must route
restricted events to first-party Microsoft stores only.
"""
- session_id: str
- """Session the telemetry event belongs to."""
+ session_id: str | None = None
+ """Session the telemetry event belongs to, when it is session-scoped. Omitted for
+ sessionless events (for example, `server.sendTelemetry` calls with no session id), which
+ are still forwarded to opted-in connections.
+ """
@staticmethod
def from_dict(obj: Any) -> 'GitHubTelemetryNotification':
assert isinstance(obj, dict)
event = GitHubTelemetryEvent.from_dict(obj.get("event"))
restricted = from_bool(obj.get("restricted"))
- session_id = from_str(obj.get("sessionId"))
+ session_id = from_union([from_str, from_none], obj.get("sessionId"))
return GitHubTelemetryNotification(event, restricted, session_id)
def to_dict(self) -> dict:
result: dict = {}
result["event"] = to_class(GitHubTelemetryEvent, self.event)
result["restricted"] = from_bool(self.restricted)
- result["sessionId"] = from_str(self.session_id)
+ if self.session_id is not None:
+ result["sessionId"] = from_union([from_str, from_none], self.session_id)
+ return result
+
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class HMACAuthInfo:
+ """Authentication-info variant for GitHub-internal HMAC auth, carrying the public GitHub
+ host and HMAC secret.
+ """
+ hmac: str
+ """HMAC secret used to sign requests."""
+
+ host: Host
+ """Authentication host. HMAC auth always targets the public GitHub host."""
+
+ type: ClassVar[str] = "hmac"
+ """HMAC-based authentication used by GitHub-internal services."""
+
+ copilot_user: CopilotUserResponse | None = None
+ """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
+ GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
+ verbatim and does not re-fetch when set.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'HMACAuthInfo':
+ assert isinstance(obj, dict)
+ hmac = from_str(obj.get("hmac"))
+ host = Host(obj.get("host"))
+ copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
+ return HMACAuthInfo(hmac, host, copilot_user)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["hmac"] = from_str(self.hmac)
+ result["host"] = to_enum(Host, self.host)
+ result["type"] = self.type
+ if self.copilot_user is not None:
+ result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
return result
# Experimental: this type is part of an experimental API and may change or be removed.
@@ -22056,8 +22951,9 @@ class ModelPickerCategory(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class Model:
- """Schema for the `Model` type."""
-
+ """Copilot model metadata, including identifier, display name, capabilities, policy,
+ billing, reasoning efforts, and picker categories.
+ """
capabilities: ModelCapabilities
"""Model capabilities and limits"""
@@ -22197,24 +23093,40 @@ class PermissionsSetAAllSource(Enum):
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class PermissionsSetAllowAllRequest:
- """Whether to enable full allow-all permissions for the session."""
-
- enabled: bool
- """Whether to enable full allow-all permissions"""
+ """Allow-all mode to apply for the session."""
+ enabled: bool | None = None
+ """Legacy full allow-all toggle. Prefer `mode`; when `mode` is omitted, `enabled: true` is
+ treated as `mode: "on"` and any other value is treated as `mode: "off"`.
+ """
+ mode: PermissionsAllowAllMode | None = None
+ """Allow-all mode to apply. `on` enables full allow-all; `auto` enables advisory LLM
+ auto-approval; `off` disables both.
+ """
+ model: str | None = None
+ """Optional model id for the `auto` mode auto-approval LLM judging. Only meaningful when
+ `mode` is `auto`; ignored otherwise. When omitted, the session's active model is used.
+ """
source: PermissionsSetAAllSource | None = None
"""Optional source for allow-all telemetry. Defaults to `rpc` when omitted for SDK callers."""
@staticmethod
def from_dict(obj: Any) -> 'PermissionsSetAllowAllRequest':
assert isinstance(obj, dict)
- enabled = from_bool(obj.get("enabled"))
+ enabled = from_union([from_bool, from_none], obj.get("enabled"))
+ mode = from_union([PermissionsAllowAllMode, from_none], obj.get("mode"))
+ model = from_union([from_str, from_none], obj.get("model"))
source = from_union([PermissionsSetAAllSource, from_none], obj.get("source"))
- return PermissionsSetAllowAllRequest(enabled, source)
+ return PermissionsSetAllowAllRequest(enabled, mode, model, source)
def to_dict(self) -> dict:
result: dict = {}
- result["enabled"] = from_bool(self.enabled)
+ if self.enabled is not None:
+ result["enabled"] = from_union([from_bool, from_none], self.enabled)
+ if self.mode is not None:
+ result["mode"] = from_union([lambda x: to_enum(PermissionsAllowAllMode, x), from_none], self.mode)
+ if self.model is not None:
+ result["model"] = from_union([from_str, from_none], self.model)
if self.source is not None:
result["source"] = from_union([lambda x: to_enum(PermissionsSetAAllSource, x), from_none], self.source)
return result
@@ -22457,6 +23369,44 @@ def to_dict(self) -> dict:
result["maxDepth"] = from_union([from_int, from_none], self.max_depth)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class TokenAuthInfo:
+ """Authentication-info variant for SDK-configured token authentication, carrying host and
+ the secret token value.
+ """
+ host: str
+ """Authentication host."""
+
+ token: str
+ """The token value itself. Treat as a secret."""
+
+ type: ClassVar[str] = "token"
+ """SDK-side token authentication; the host configured the token directly via the SDK."""
+
+ copilot_user: CopilotUserResponse | None = None
+ """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
+ GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
+ verbatim and does not re-fetch when set.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'TokenAuthInfo':
+ assert isinstance(obj, dict)
+ host = from_str(obj.get("host"))
+ token = from_str(obj.get("token"))
+ copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
+ return TokenAuthInfo(host, token, copilot_user)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["host"] = from_str(self.host)
+ result["token"] = from_str(self.token)
+ result["type"] = self.type
+ if self.copilot_user is not None:
+ result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
+ return result
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class ToolsGetCurrentMetadataResult:
@@ -22534,6 +23484,45 @@ def to_dict(self) -> dict:
result["subagents"] = from_union([lambda x: to_class(SubagentSettings, x), from_none], self.subagents)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class UserAuthInfo:
+ """Authentication-info variant for OAuth user auth, with host and login; the token remains
+ in the runtime secret store.
+ """
+ host: str
+ """Authentication host."""
+
+ login: str
+ """OAuth user login."""
+
+ type: ClassVar[str] = "user"
+ """OAuth user authentication. The token itself is held in the runtime's secret token store
+ (keyed by host+login) and is NOT carried in this struct.
+ """
+ copilot_user: CopilotUserResponse | None = None
+ """Snapshot of the authenticated user's Copilot subscription info, if known. Mirrors the
+ GitHub API `/copilot_internal/v2/token` user response shape — the runtime trusts this
+ verbatim and does not re-fetch when set.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'UserAuthInfo':
+ assert isinstance(obj, dict)
+ host = from_str(obj.get("host"))
+ login = from_str(obj.get("login"))
+ copilot_user = from_union([CopilotUserResponse.from_dict, from_none], obj.get("copilotUser"))
+ return UserAuthInfo(host, login, copilot_user)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["host"] = from_str(self.host)
+ result["login"] = from_str(self.login)
+ result["type"] = self.type
+ if self.copilot_user is not None:
+ result["copilotUser"] = from_union([lambda x: to_class(CopilotUserResponse, x), from_none], self.copilot_user)
+ return result
+
@dataclass
class RPC:
abort_request: AbortRequest
@@ -22627,6 +23616,17 @@ class RPC:
copilot_user_response_quota_snapshots_premium_interactions: CopilotUserResponseQuotaSnapshotsPremiumInteractions
current_model: CurrentModel
current_tool_metadata: CurrentToolMetadata
+ debug_collect_logs_collected_entry: DebugCollectLogsCollectedEntry
+ debug_collect_logs_destination: DebugCollectLogsDestination
+ debug_collect_logs_entry: DebugCollectLogsEntry
+ debug_collect_logs_entry_kind: DebugCollectLogsEntryKind
+ debug_collect_logs_include: DebugCollectLogsInclude
+ debug_collect_logs_redaction: DebugCollectLogsRedaction
+ debug_collect_logs_request: DebugCollectLogsRequest
+ debug_collect_logs_result: DebugCollectLogsResult
+ debug_collect_logs_result_kind: DebugCollectLogsResultKind
+ debug_collect_logs_skipped_entry: DebugCollectLogsSkippedEntry
+ debug_collect_logs_source: DebugCollectLogsSource
discovered_canvas: DiscoveredCanvas
discovered_mcp_server: DiscoveredMCPServer
discovered_mcp_server_type: DiscoveredMCPServerType
@@ -22692,7 +23692,7 @@ class RPC:
installed_plugin_source_local: InstalledPluginSourceLocal
installed_plugin_source_url: InstalledPluginSourceURL
instruction_discovery_path: InstructionDiscoveryPath
- instruction_discovery_path_kind: InstructionDiscoveryPathKind
+ instruction_discovery_path_kind: DebugCollectLogsEntryKind
instruction_discovery_path_list: InstructionDiscoveryPathList
instruction_discovery_path_location: InstructionLocation
instructions_discover_request: InstructionsDiscoverRequest
@@ -22919,6 +23919,7 @@ class RPC:
permission_prompt_shown_notification: PermissionPromptShownNotification
permission_request_result: PermissionRequestResult
permission_rules_set: PermissionRulesSet
+ permissions_allow_all_mode: PermissionsAllowAllMode
permissions_configure_additional_content_exclusion_policy: PermissionsConfigureAdditionalContentExclusionPolicy
permissions_configure_additional_content_exclusion_policy_rule: PermissionsConfigureAdditionalContentExclusionPolicyRule
permissions_configure_additional_content_exclusion_policy_rule_source: PermissionsConfigureAdditionalContentExclusionPolicyRuleSource
@@ -23093,7 +24094,7 @@ class RPC:
session_fs_readdir_request: SessionFSReaddirRequest
session_fs_readdir_result: SessionFSReaddirResult
session_fs_readdir_with_types_entry: SessionFSReaddirWithTypesEntry
- session_fs_readdir_with_types_entry_type: InstructionDiscoveryPathKind
+ session_fs_readdir_with_types_entry_type: DebugCollectLogsEntryKind
session_fs_readdir_with_types_request: SessionFSReaddirWithTypesRequest
session_fs_readdir_with_types_result: SessionFSReaddirWithTypesResult
session_fs_read_file_request: SessionFSReadFileRequest
@@ -23144,6 +24145,16 @@ class RPC:
sessions_enrich_metadata_request: SessionsEnrichMetadataRequest
session_set_credentials_params: SessionSetCredentialsParams
session_set_credentials_result: SessionSetCredentialsResult
+ session_settings_built_in_tool_availability_snapshot: SessionSettingsBuiltInToolAvailabilitySnapshot
+ session_settings_evaluate_predicate_request: SessionSettingsEvaluatePredicateRequest
+ session_settings_evaluate_predicate_result: SessionSettingsEvaluatePredicateResult
+ session_settings_job_snapshot: SessionSettingsJobSnapshot
+ session_settings_model_snapshot: SessionSettingsModelSnapshot
+ session_settings_online_evaluation_snapshot: SessionSettingsOnlineEvaluationSnapshot
+ session_settings_predicate_name: SessionSettingsPredicateName
+ session_settings_repo_snapshot: SessionSettingsRepoSnapshot
+ session_settings_snapshot: SessionSettingsSnapshot
+ session_settings_validation_snapshot: SessionSettingsValidationSnapshot
sessions_find_by_prefix_request: SessionsFindByPrefixRequest
sessions_find_by_prefix_result: SessionsFindByPrefixResult
sessions_find_by_task_id_request: SessionsFindByTaskIDRequest
@@ -23437,6 +24448,17 @@ def from_dict(obj: Any) -> 'RPC':
copilot_user_response_quota_snapshots_premium_interactions = CopilotUserResponseQuotaSnapshotsPremiumInteractions.from_dict(obj.get("CopilotUserResponseQuotaSnapshotsPremiumInteractions"))
current_model = CurrentModel.from_dict(obj.get("CurrentModel"))
current_tool_metadata = CurrentToolMetadata.from_dict(obj.get("CurrentToolMetadata"))
+ debug_collect_logs_collected_entry = DebugCollectLogsCollectedEntry.from_dict(obj.get("DebugCollectLogsCollectedEntry"))
+ debug_collect_logs_destination = DebugCollectLogsDestination.from_dict(obj.get("DebugCollectLogsDestination"))
+ debug_collect_logs_entry = DebugCollectLogsEntry.from_dict(obj.get("DebugCollectLogsEntry"))
+ debug_collect_logs_entry_kind = DebugCollectLogsEntryKind(obj.get("DebugCollectLogsEntryKind"))
+ debug_collect_logs_include = DebugCollectLogsInclude.from_dict(obj.get("DebugCollectLogsInclude"))
+ debug_collect_logs_redaction = DebugCollectLogsRedaction(obj.get("DebugCollectLogsRedaction"))
+ debug_collect_logs_request = DebugCollectLogsRequest.from_dict(obj.get("DebugCollectLogsRequest"))
+ debug_collect_logs_result = DebugCollectLogsResult.from_dict(obj.get("DebugCollectLogsResult"))
+ debug_collect_logs_result_kind = DebugCollectLogsResultKind(obj.get("DebugCollectLogsResultKind"))
+ debug_collect_logs_skipped_entry = DebugCollectLogsSkippedEntry.from_dict(obj.get("DebugCollectLogsSkippedEntry"))
+ debug_collect_logs_source = DebugCollectLogsSource(obj.get("DebugCollectLogsSource"))
discovered_canvas = DiscoveredCanvas.from_dict(obj.get("DiscoveredCanvas"))
discovered_mcp_server = DiscoveredMCPServer.from_dict(obj.get("DiscoveredMcpServer"))
discovered_mcp_server_type = DiscoveredMCPServerType(obj.get("DiscoveredMcpServerType"))
@@ -23502,7 +24524,7 @@ def from_dict(obj: Any) -> 'RPC':
installed_plugin_source_local = InstalledPluginSourceLocal.from_dict(obj.get("InstalledPluginSourceLocal"))
installed_plugin_source_url = InstalledPluginSourceURL.from_dict(obj.get("InstalledPluginSourceUrl"))
instruction_discovery_path = InstructionDiscoveryPath.from_dict(obj.get("InstructionDiscoveryPath"))
- instruction_discovery_path_kind = InstructionDiscoveryPathKind(obj.get("InstructionDiscoveryPathKind"))
+ instruction_discovery_path_kind = DebugCollectLogsEntryKind(obj.get("InstructionDiscoveryPathKind"))
instruction_discovery_path_list = InstructionDiscoveryPathList.from_dict(obj.get("InstructionDiscoveryPathList"))
instruction_discovery_path_location = InstructionLocation(obj.get("InstructionDiscoveryPathLocation"))
instructions_discover_request = InstructionsDiscoverRequest.from_dict(obj.get("InstructionsDiscoverRequest"))
@@ -23729,6 +24751,7 @@ def from_dict(obj: Any) -> 'RPC':
permission_prompt_shown_notification = PermissionPromptShownNotification.from_dict(obj.get("PermissionPromptShownNotification"))
permission_request_result = PermissionRequestResult.from_dict(obj.get("PermissionRequestResult"))
permission_rules_set = PermissionRulesSet.from_dict(obj.get("PermissionRulesSet"))
+ permissions_allow_all_mode = PermissionsAllowAllMode(obj.get("PermissionsAllowAllMode"))
permissions_configure_additional_content_exclusion_policy = PermissionsConfigureAdditionalContentExclusionPolicy.from_dict(obj.get("PermissionsConfigureAdditionalContentExclusionPolicy"))
permissions_configure_additional_content_exclusion_policy_rule = PermissionsConfigureAdditionalContentExclusionPolicyRule.from_dict(obj.get("PermissionsConfigureAdditionalContentExclusionPolicyRule"))
permissions_configure_additional_content_exclusion_policy_rule_source = PermissionsConfigureAdditionalContentExclusionPolicyRuleSource.from_dict(obj.get("PermissionsConfigureAdditionalContentExclusionPolicyRuleSource"))
@@ -23903,7 +24926,7 @@ def from_dict(obj: Any) -> 'RPC':
session_fs_readdir_request = SessionFSReaddirRequest.from_dict(obj.get("SessionFsReaddirRequest"))
session_fs_readdir_result = SessionFSReaddirResult.from_dict(obj.get("SessionFsReaddirResult"))
session_fs_readdir_with_types_entry = SessionFSReaddirWithTypesEntry.from_dict(obj.get("SessionFsReaddirWithTypesEntry"))
- session_fs_readdir_with_types_entry_type = InstructionDiscoveryPathKind(obj.get("SessionFsReaddirWithTypesEntryType"))
+ session_fs_readdir_with_types_entry_type = DebugCollectLogsEntryKind(obj.get("SessionFsReaddirWithTypesEntryType"))
session_fs_readdir_with_types_request = SessionFSReaddirWithTypesRequest.from_dict(obj.get("SessionFsReaddirWithTypesRequest"))
session_fs_readdir_with_types_result = SessionFSReaddirWithTypesResult.from_dict(obj.get("SessionFsReaddirWithTypesResult"))
session_fs_read_file_request = SessionFSReadFileRequest.from_dict(obj.get("SessionFsReadFileRequest"))
@@ -23954,6 +24977,16 @@ def from_dict(obj: Any) -> 'RPC':
sessions_enrich_metadata_request = SessionsEnrichMetadataRequest.from_dict(obj.get("SessionsEnrichMetadataRequest"))
session_set_credentials_params = SessionSetCredentialsParams.from_dict(obj.get("SessionSetCredentialsParams"))
session_set_credentials_result = SessionSetCredentialsResult.from_dict(obj.get("SessionSetCredentialsResult"))
+ session_settings_built_in_tool_availability_snapshot = SessionSettingsBuiltInToolAvailabilitySnapshot.from_dict(obj.get("SessionSettingsBuiltInToolAvailabilitySnapshot"))
+ session_settings_evaluate_predicate_request = SessionSettingsEvaluatePredicateRequest.from_dict(obj.get("SessionSettingsEvaluatePredicateRequest"))
+ session_settings_evaluate_predicate_result = SessionSettingsEvaluatePredicateResult.from_dict(obj.get("SessionSettingsEvaluatePredicateResult"))
+ session_settings_job_snapshot = SessionSettingsJobSnapshot.from_dict(obj.get("SessionSettingsJobSnapshot"))
+ session_settings_model_snapshot = SessionSettingsModelSnapshot.from_dict(obj.get("SessionSettingsModelSnapshot"))
+ session_settings_online_evaluation_snapshot = SessionSettingsOnlineEvaluationSnapshot.from_dict(obj.get("SessionSettingsOnlineEvaluationSnapshot"))
+ session_settings_predicate_name = SessionSettingsPredicateName(obj.get("SessionSettingsPredicateName"))
+ session_settings_repo_snapshot = SessionSettingsRepoSnapshot.from_dict(obj.get("SessionSettingsRepoSnapshot"))
+ session_settings_snapshot = SessionSettingsSnapshot.from_dict(obj.get("SessionSettingsSnapshot"))
+ session_settings_validation_snapshot = SessionSettingsValidationSnapshot.from_dict(obj.get("SessionSettingsValidationSnapshot"))
sessions_find_by_prefix_request = SessionsFindByPrefixRequest.from_dict(obj.get("SessionsFindByPrefixRequest"))
sessions_find_by_prefix_result = SessionsFindByPrefixResult.from_dict(obj.get("SessionsFindByPrefixResult"))
sessions_find_by_task_id_request = SessionsFindByTaskIDRequest.from_dict(obj.get("SessionsFindByTaskIDRequest"))
@@ -24152,7 +25185,7 @@ def from_dict(obj: Any) -> 'RPC':
subagent_settings = from_union([SubagentSettings.from_dict, from_none], obj.get("SubagentSettings"))
task_progress = from_union([TaskProgress.from_dict, from_none], obj.get("TaskProgress"))
workspace_summary = from_union([WorkspaceSummary.from_dict, from_none], obj.get("WorkspaceSummary"))
- return RPC(abort_request, abort_result, account_all_users, account_get_all_users_result, account_get_current_auth_result, account_get_quota_request, account_get_quota_result, account_login_request, account_login_result, account_logout_request, account_logout_result, account_quota_snapshot, adaptive_thinking_support, agent_discovery_path, agent_discovery_path_list, agent_discovery_path_scope, agent_get_current_result, agent_info, agent_info_source, agent_list, agent_registry_live_target_entry, agent_registry_live_target_entry_attention_kind, agent_registry_live_target_entry_kind, agent_registry_live_target_entry_last_terminal_event, agent_registry_live_target_entry_status, agent_registry_log_capture, agent_registry_log_capture_open_error_reason, agent_registry_spawn_error, agent_registry_spawn_permission_mode, agent_registry_spawn_registry_timeout, agent_registry_spawn_request, agent_registry_spawn_result, agent_registry_spawn_spawned, agent_registry_spawn_validation_error, agent_registry_spawn_validation_error_field, agent_registry_spawn_validation_error_reason, agent_reload_result, agents_discover_request, agent_select_request, agent_select_result, agents_get_discovery_paths_request, allow_all_permission_set_result, allow_all_permission_state, api_key_auth_info, auth_info, auth_info_type, cancel_user_requested_shell_command_result, canvas_action, canvas_action_invoke_request, canvas_action_invoke_result, canvas_close_request, canvas_host_context, canvas_host_context_capabilities, canvas_json_schema, canvas_list, canvas_list_open_result, canvas_open_request, canvas_provider_close_request, canvas_provider_invoke_action_request, canvas_provider_open_request, canvas_provider_open_result, canvas_session_context, capi_session_options, command_list, commands_handle_pending_command_request, commands_handle_pending_command_result, commands_invoke_request, commands_list_request, commands_respond_to_queued_command_request, commands_respond_to_queued_command_result, completions_get_trigger_characters_result, completions_request_request, completions_request_result, configure_session_extensions_params, connected_remote_session_metadata, connected_remote_session_metadata_kind, connected_remote_session_metadata_repository, connect_remote_session_params, connect_request, connect_result, content_filter_mode, context_heaviest_message, copilot_api_token_auth_info, copilot_user_response, copilot_user_response_endpoints, copilot_user_response_quota_snapshots, copilot_user_response_quota_snapshots_chat, copilot_user_response_quota_snapshots_completions, copilot_user_response_quota_snapshots_premium_interactions, current_model, current_tool_metadata, discovered_canvas, discovered_mcp_server, discovered_mcp_server_type, enqueue_command_params, enqueue_command_result, env_auth_info, event_log_read_request, event_log_release_interest_result, event_log_tail_result, event_log_types, events_agent_scope, events_cursor_status, events_read_result, execute_command_params, execute_command_result, extension, extension_context_push_input, extension_list, extensions_disable_request, extensions_enable_request, extension_source, extension_status, external_tool_result, external_tool_text_result_for_llm, external_tool_text_result_for_llm_binary_results_for_llm, external_tool_text_result_for_llm_binary_results_for_llm_type, external_tool_text_result_for_llm_content, external_tool_text_result_for_llm_content_audio, external_tool_text_result_for_llm_content_image, external_tool_text_result_for_llm_content_resource, external_tool_text_result_for_llm_content_resource_details, external_tool_text_result_for_llm_content_resource_link, external_tool_text_result_for_llm_content_resource_link_icon, external_tool_text_result_for_llm_content_resource_link_icon_theme, external_tool_text_result_for_llm_content_shell_exit, external_tool_text_result_for_llm_content_terminal, external_tool_text_result_for_llm_content_text, filter_mapping, fleet_start_request, fleet_start_result, folder_trust_add_params, folder_trust_check_params, folder_trust_check_result, gh_cli_auth_info, git_hub_telemetry_client_info, git_hub_telemetry_event, git_hub_telemetry_notification, handle_pending_tool_call_request, handle_pending_tool_call_result, history_abort_manual_compaction_result, history_cancel_background_compaction_result, history_compact_context_window, history_compact_request, history_compact_result, history_summarize_for_handoff_result, history_truncate_request, history_truncate_result, hmac_auth_info, installed_plugin, installed_plugin_info, installed_plugin_source, installed_plugin_source_git_hub, installed_plugin_source_local, installed_plugin_source_url, instruction_discovery_path, instruction_discovery_path_kind, instruction_discovery_path_list, instruction_discovery_path_location, instructions_discover_request, instructions_get_discovery_paths_request, instructions_get_sources_result, instruction_source, instruction_source_location, instruction_source_type, llm_inference_headers, llm_inference_http_request_chunk_request, llm_inference_http_request_chunk_result, llm_inference_http_request_start_request, llm_inference_http_request_start_result, llm_inference_http_request_start_transport, llm_inference_http_response_chunk_error, llm_inference_http_response_chunk_request, llm_inference_http_response_chunk_result, llm_inference_http_response_start_request, llm_inference_http_response_start_result, llm_inference_set_provider_result, local_session_metadata_value, log_request, log_result, lsp_initialize_request, marketplace_add_result, marketplace_browse_result, marketplace_info, marketplace_list_result, marketplace_plugin_info, marketplace_refresh_entry, marketplace_refresh_result, marketplace_remove_result, mcp_allowed_server, mcp_apps_call_tool_request, mcp_apps_diagnose_capability, mcp_apps_diagnose_request, mcp_apps_diagnose_result, mcp_apps_diagnose_server, mcp_apps_host_context, mcp_apps_host_context_details, mcp_apps_host_context_details_available_display_mode, mcp_apps_host_context_details_display_mode, mcp_apps_host_context_details_platform, mcp_apps_host_context_details_theme, mcp_apps_list_tools_request, mcp_apps_list_tools_result, mcp_apps_read_resource_request, mcp_apps_read_resource_result, mcp_apps_resource_content, mcp_apps_set_host_context_details, mcp_apps_set_host_context_details_available_display_mode, mcp_apps_set_host_context_details_display_mode, mcp_apps_set_host_context_details_platform, mcp_apps_set_host_context_details_theme, mcp_apps_set_host_context_request, mcp_cancel_sampling_execution_params, mcp_cancel_sampling_execution_result, mcp_config_add_request, mcp_config_disable_request, mcp_config_enable_request, mcp_config_list, mcp_config_remove_request, mcp_config_update_request, mcp_configure_git_hub_request, mcp_configure_git_hub_result, mcp_disable_request, mcp_discover_request, mcp_discover_result, mcp_enable_request, mcp_execute_sampling_params, mcp_execute_sampling_request, mcp_execute_sampling_result, mcp_filtered_server, mcp_headers_handle_pending_headers_refresh_request, mcp_headers_handle_pending_headers_refresh_request_request, mcp_headers_handle_pending_headers_refresh_request_result, mcp_host_state, mcp_is_server_running_request, mcp_is_server_running_result, mcp_list_tools_request, mcp_list_tools_result, mcp_oauth_handle_pending_request, mcp_oauth_handle_pending_result, mcp_oauth_login_grant_type, mcp_oauth_login_request, mcp_oauth_login_result, mcp_oauth_pending_request_response, mcp_oauth_respond_request, mcp_oauth_respond_result, mcp_register_external_client_request, mcp_reload_with_config_request, mcp_remove_git_hub_result, mcp_restart_server_request, mcp_sampling_execution_action, mcp_sampling_execution_result, mcp_server, mcp_server_auth_config, mcp_server_auth_config_redirect_port, mcp_server_config, mcp_server_config_defer_tools, mcp_server_config_http, mcp_server_config_http_oauth_grant_type, mcp_server_config_http_type, mcp_server_config_stdio, mcp_server_failure_info, mcp_server_list, mcp_server_needs_auth_info, mcp_set_env_value_mode_details, mcp_set_env_value_mode_params, mcp_set_env_value_mode_result, mcp_start_server_request, mcp_start_servers_result, mcp_stop_server_request, mcp_tools, mcp_unregister_external_client_request, memory_configuration, metadata_context_attribution_result, metadata_context_heaviest_messages_request, metadata_context_heaviest_messages_result, metadata_context_info_request, metadata_context_info_result, metadata_is_processing_result, metadata_recompute_context_tokens_request, metadata_recompute_context_tokens_result, metadata_record_context_change_request, metadata_record_context_change_result, metadata_set_working_directory_request, metadata_set_working_directory_result, metadata_snapshot_current_mode, metadata_snapshot_remote_metadata, metadata_snapshot_remote_metadata_repository, metadata_snapshot_remote_metadata_task_type, model, model_billing, model_billing_token_prices, model_billing_token_prices_long_context, model_capabilities, model_capabilities_limits, model_capabilities_limits_vision, model_capabilities_override, model_capabilities_override_limits, model_capabilities_override_limits_vision, model_capabilities_override_supports, model_capabilities_supports, model_list, model_list_request, model_picker_category, model_picker_price_category, model_policy, model_policy_state, model_set_reasoning_effort_request, model_set_reasoning_effort_result, models_list_request, model_switch_to_request, model_switch_to_result, mode_set_request, named_provider_config, name_get_result, name_set_auto_request, name_set_auto_result, name_set_request, open_canvas_instance, options_update_additional_content_exclusion_policy, options_update_additional_content_exclusion_policy_rule, options_update_additional_content_exclusion_policy_rule_source, options_update_additional_content_exclusion_policy_scope, options_update_context_tier, options_update_env_value_mode, options_update_reasoning_summary, options_update_tool_filter_precedence, pending_permission_request, pending_permission_request_list, permission_decision, permission_decision_approved, permission_decision_approved_for_location, permission_decision_approved_for_session, permission_decision_approve_for_location, permission_decision_approve_for_location_approval, permission_decision_approve_for_location_approval_commands, permission_decision_approve_for_location_approval_custom_tool, permission_decision_approve_for_location_approval_extension_management, permission_decision_approve_for_location_approval_extension_permission_access, permission_decision_approve_for_location_approval_mcp, permission_decision_approve_for_location_approval_mcp_sampling, permission_decision_approve_for_location_approval_memory, permission_decision_approve_for_location_approval_read, permission_decision_approve_for_location_approval_write, permission_decision_approve_for_session, permission_decision_approve_for_session_approval, permission_decision_approve_for_session_approval_commands, permission_decision_approve_for_session_approval_custom_tool, permission_decision_approve_for_session_approval_extension_management, permission_decision_approve_for_session_approval_extension_permission_access, permission_decision_approve_for_session_approval_mcp, permission_decision_approve_for_session_approval_mcp_sampling, permission_decision_approve_for_session_approval_memory, permission_decision_approve_for_session_approval_read, permission_decision_approve_for_session_approval_write, permission_decision_approve_once, permission_decision_approve_permanently, permission_decision_cancelled, permission_decision_denied_by_content_exclusion_policy, permission_decision_denied_by_permission_request_hook, permission_decision_denied_by_rules, permission_decision_denied_interactively_by_user, permission_decision_denied_no_approval_rule_and_could_not_request_from_user, permission_decision_reject, permission_decision_request, permission_decision_user_not_available, permission_location_add_tool_approval_params, permission_location_apply_params, permission_location_apply_result, permission_location_resolve_params, permission_location_resolve_result, permission_location_type, permission_paths_add_params, permission_paths_allowed_check_params, permission_paths_allowed_check_result, permission_paths_config, permission_paths_list, permission_paths_update_primary_params, permission_paths_workspace_check_params, permission_paths_workspace_check_result, permission_prompt_shown_notification, permission_request_result, permission_rules_set, permissions_configure_additional_content_exclusion_policy, permissions_configure_additional_content_exclusion_policy_rule, permissions_configure_additional_content_exclusion_policy_rule_source, permissions_configure_additional_content_exclusion_policy_scope, permissions_configure_params, permissions_configure_result, permissions_folder_trust_add_trusted_result, permissions_get_allow_all_request, permissions_locations_add_tool_approval_details, permissions_locations_add_tool_approval_details_commands, permissions_locations_add_tool_approval_details_custom_tool, permissions_locations_add_tool_approval_details_extension_management, permissions_locations_add_tool_approval_details_extension_permission_access, permissions_locations_add_tool_approval_details_mcp, permissions_locations_add_tool_approval_details_mcp_sampling, permissions_locations_add_tool_approval_details_memory, permissions_locations_add_tool_approval_details_read, permissions_locations_add_tool_approval_details_write, permissions_locations_add_tool_approval_result, permissions_modify_rules_params, permissions_modify_rules_result, permissions_modify_rules_scope, permissions_notify_prompt_shown_result, permissions_paths_add_result, permissions_paths_list_request, permissions_paths_update_primary_result, permissions_pending_requests_request, permissions_reset_session_approvals_request, permissions_reset_session_approvals_result, permissions_set_allow_all_request, permissions_set_allow_all_source, permissions_set_approve_all_request, permissions_set_approve_all_result, permissions_set_approve_all_source, permissions_set_required_request, permissions_set_required_result, permissions_urls_set_unrestricted_mode_result, permission_urls_config, permission_urls_set_unrestricted_mode_params, ping_request, ping_result, plan_read_result, plan_read_sql_todos_result, plan_read_sql_todos_with_dependencies_result, plan_sql_todo_dependency, plan_sql_todos_row, plan_update_request, plugin, plugin_install_result, plugin_list, plugin_list_result, plugins_disable_request, plugins_enable_request, plugins_install_request, plugins_marketplaces_add_request, plugins_marketplaces_browse_request, plugins_marketplaces_refresh_request, plugins_marketplaces_remove_request, plugins_reload_request, plugins_uninstall_request, plugins_update_request, plugin_update_all_entry, plugin_update_all_result, plugin_update_result, provider_add_request, provider_add_result, provider_config, provider_config_azure, provider_config_transport, provider_config_type, provider_config_wire_api, provider_endpoint, provider_endpoint_transport, provider_endpoint_type, provider_endpoint_wire_api, provider_get_endpoint_request, provider_model_config, provider_session_token, provider_token_acquire_request, provider_token_acquire_result, push_attachment, push_attachment_blob, push_attachment_directory, push_attachment_file, push_attachment_file_line_range, push_attachment_git_hub_actions_job, push_attachment_git_hub_commit, push_attachment_git_hub_file, push_attachment_git_hub_file_diff, push_attachment_git_hub_file_diff_side, push_attachment_git_hub_reference, push_attachment_git_hub_reference_type, push_attachment_git_hub_release, push_attachment_git_hub_repository, push_attachment_git_hub_snippet, push_attachment_git_hub_tree_comparison, push_attachment_git_hub_tree_comparison_side, push_attachment_git_hub_url, push_attachment_selection, push_attachment_selection_details, push_attachment_selection_details_end, push_attachment_selection_details_start, push_git_hub_repo_ref, queued_command_handled, queued_command_not_handled, queued_command_result, queue_pending_items, queue_pending_items_kind, queue_pending_items_result, queue_remove_most_recent_result, register_event_interest_params, register_event_interest_result, register_extension_tools_params, register_extension_tools_result, release_event_interest_params, remote_control_config, remote_control_config_existing_mc_session, remote_control_status, remote_control_status_active, remote_control_status_connecting, remote_control_status_error, remote_control_status_off, remote_control_status_result, remote_control_stop_result, remote_control_transfer_result, remote_enable_request, remote_enable_result, remote_notify_steerable_changed_request, remote_notify_steerable_changed_result, remote_session_connection_result, remote_session_metadata_repository, remote_session_metadata_task_type, remote_session_metadata_value, remote_session_mode, remote_session_repository, sandbox_config, sandbox_config_user_policy, sandbox_config_user_policy_experimental, sandbox_config_user_policy_experimental_seatbelt, sandbox_config_user_policy_filesystem, sandbox_config_user_policy_network, sandbox_config_user_policy_seatbelt, schedule_entry, schedule_list, schedule_stop_request, schedule_stop_result, secrets_add_filter_values_request, secrets_add_filter_values_result, send_agent_mode, send_attachments_to_message_params, send_mode, send_request, send_result, server_agent_list, server_instruction_source_list, server_skill, server_skill_list, session_activity, session_auth_status, session_bulk_delete_result, session_capability, session_completion_item, session_context, session_context_host_type, session_enrich_metadata_result, session_fs_append_file_request, session_fs_error, session_fs_error_code, session_fs_exists_request, session_fs_exists_result, session_fs_mkdir_request, session_fs_readdir_request, session_fs_readdir_result, session_fs_readdir_with_types_entry, session_fs_readdir_with_types_entry_type, session_fs_readdir_with_types_request, session_fs_readdir_with_types_result, session_fs_read_file_request, session_fs_read_file_result, session_fs_rename_request, session_fs_rm_request, session_fs_set_provider_capabilities, session_fs_set_provider_conventions, session_fs_set_provider_request, session_fs_set_provider_result, session_fs_sqlite_exists_request, session_fs_sqlite_exists_result, session_fs_sqlite_query_request, session_fs_sqlite_query_result, session_fs_sqlite_query_type, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_installed_plugin, session_installed_plugin_source, session_installed_plugin_source_git_hub, session_installed_plugin_source_local, session_installed_plugin_source_url, session_list, session_list_entry, session_list_filter, session_load_deferred_repo_hooks_result, session_log_level, session_mcp_apps_call_tool_result, session_metadata_snapshot, session_mode, session_model_list, session_open_options, session_open_options_additional_content_exclusion_policy, session_open_options_additional_content_exclusion_policy_rule, session_open_options_additional_content_exclusion_policy_rule_source, session_open_options_additional_content_exclusion_policy_scope, session_open_options_env_value_mode, session_open_options_reasoning_summary, session_open_params, session_open_result, session_prune_result, sessions_bulk_delete_request, sessions_check_in_use_request, sessions_check_in_use_result, sessions_close_request, sessions_close_result, sessions_enrich_metadata_request, session_set_credentials_params, session_set_credentials_result, sessions_find_by_prefix_request, sessions_find_by_prefix_result, sessions_find_by_task_id_request, sessions_find_by_task_id_result, sessions_fork_request, sessions_fork_result, sessions_get_board_entry_count_request, sessions_get_board_entry_count_result, sessions_get_event_file_path_request, sessions_get_event_file_path_result, sessions_get_last_for_context_request, sessions_get_last_for_context_result, sessions_get_persisted_remote_steerable_request, sessions_get_persisted_remote_steerable_result, session_sizes, sessions_list_request, sessions_load_deferred_repo_hooks_request, sessions_open_attach, sessions_open_cloud, sessions_open_create, sessions_open_handoff, sessions_open_handoff_task_type, sessions_open_progress, sessions_open_progress_status, sessions_open_progress_step, sessions_open_remote, sessions_open_resume, sessions_open_resume_last, sessions_open_status, session_source, sessions_prune_old_request, sessions_register_extension_tools_on_session_options, sessions_release_lock_request, sessions_release_lock_result, sessions_reload_plugin_hooks_request, sessions_reload_plugin_hooks_result, sessions_save_request, sessions_save_result, sessions_set_additional_plugins_request, sessions_set_additional_plugins_result, sessions_set_remote_control_steering_request, sessions_start_remote_control_request, sessions_stop_remote_control_request, sessions_transfer_remote_control_request, session_telemetry_engagement, session_update_options_params, session_update_options_result, session_visibility_status, session_working_directory_context, session_working_directory_context_host_type, shell_cancel_user_requested_request, shell_exec_request, shell_exec_result, shell_execute_user_requested_request, shell_kill_request, shell_kill_result, shell_kill_signal, shutdown_request, skill, skill_discovery_path, skill_discovery_path_list, skill_discovery_scope, skill_list, skills_config_set_disabled_skills_request, skills_disable_request, skills_discover_request, skills_enable_request, skills_get_discovery_paths_request, skills_get_invoked_result, skills_invoked_skill, skills_load_diagnostics, slash_command_agent_prompt_result, slash_command_completed_result, slash_command_info, slash_command_input, slash_command_input_choice, slash_command_input_completion, slash_command_invocation_result, slash_command_kind, slash_command_select_subcommand_option, slash_command_select_subcommand_result, slash_command_text_result, subagent_settings_entry, subagent_settings_entry_context_tier, task_agent_info, task_agent_progress, task_execution_mode, task_info, task_list, task_progress_line, tasks_cancel_request, tasks_cancel_result, tasks_get_current_promotable_result, tasks_get_progress_request, tasks_get_progress_result, task_shell_info, task_shell_info_attachment_mode, task_shell_progress, tasks_promote_current_to_background_result, tasks_promote_to_background_request, tasks_promote_to_background_result, tasks_refresh_result, tasks_remove_request, tasks_remove_result, tasks_send_message_request, tasks_send_message_result, tasks_start_agent_request, tasks_start_agent_result, task_status, tasks_wait_for_pending_result, telemetry_set_feature_overrides_request, token_auth_info, tool, tool_list, tools_get_current_metadata_result, tools_initialize_and_validate_result, tools_list_request, tools_update_subagent_settings_result, ui_auto_mode_switch_response, ui_elicitation_array_any_of_field, ui_elicitation_array_any_of_field_items, ui_elicitation_array_any_of_field_items_any_of, ui_elicitation_array_enum_field, ui_elicitation_array_enum_field_items, ui_elicitation_field_value, ui_elicitation_request, ui_elicitation_response, ui_elicitation_response_action, ui_elicitation_response_content, ui_elicitation_result, ui_elicitation_schema, ui_elicitation_schema_property, ui_elicitation_schema_property_boolean, ui_elicitation_schema_property_number, ui_elicitation_schema_property_number_type, ui_elicitation_schema_property_string, ui_elicitation_schema_property_string_format, ui_elicitation_string_enum_field, ui_elicitation_string_one_of_field, ui_elicitation_string_one_of_field_one_of, ui_ephemeral_query_request, ui_ephemeral_query_result, ui_exit_plan_mode_action, ui_exit_plan_mode_response, ui_handle_pending_auto_mode_switch_request, ui_handle_pending_elicitation_request, ui_handle_pending_exit_plan_mode_request, ui_handle_pending_result, ui_handle_pending_sampling_request, ui_handle_pending_sampling_response, ui_handle_pending_session_limits_exhausted_request, ui_handle_pending_user_input_request, ui_register_direct_auto_mode_switch_handler_result, ui_session_limits_exhausted_response, ui_session_limits_exhausted_response_action, ui_unregister_direct_auto_mode_switch_handler_request, ui_unregister_direct_auto_mode_switch_handler_result, ui_user_input_response, update_subagent_settings_request, usage_get_metrics_result, usage_metrics_code_changes, usage_metrics_model_metric, usage_metrics_model_metric_requests, usage_metrics_model_metric_token_detail, usage_metrics_model_metric_usage, usage_metrics_token_detail, user_auth_info, user_requested_shell_command_result, user_setting_metadata, user_settings_get_result, user_settings_set_request, user_settings_set_result, visibility_get_result, visibility_set_request, visibility_set_result, workspace_diff_file_change, workspace_diff_file_change_type, workspace_diff_mode, workspace_diff_result, workspaces_checkpoints, workspaces_create_file_request, workspaces_diff_request, workspaces_get_workspace_result, workspaces_list_checkpoints_result, workspaces_list_files_result, workspaces_read_checkpoint_request, workspaces_read_checkpoint_result, workspaces_read_file_request, workspaces_read_file_result, workspaces_save_large_paste_request, workspaces_save_large_paste_result, workspace_summary_host_type, workspaces_workspace_details_host_type, session_context_attribution, session_context_info, subagent_settings, task_progress, workspace_summary)
+ return RPC(abort_request, abort_result, account_all_users, account_get_all_users_result, account_get_current_auth_result, account_get_quota_request, account_get_quota_result, account_login_request, account_login_result, account_logout_request, account_logout_result, account_quota_snapshot, adaptive_thinking_support, agent_discovery_path, agent_discovery_path_list, agent_discovery_path_scope, agent_get_current_result, agent_info, agent_info_source, agent_list, agent_registry_live_target_entry, agent_registry_live_target_entry_attention_kind, agent_registry_live_target_entry_kind, agent_registry_live_target_entry_last_terminal_event, agent_registry_live_target_entry_status, agent_registry_log_capture, agent_registry_log_capture_open_error_reason, agent_registry_spawn_error, agent_registry_spawn_permission_mode, agent_registry_spawn_registry_timeout, agent_registry_spawn_request, agent_registry_spawn_result, agent_registry_spawn_spawned, agent_registry_spawn_validation_error, agent_registry_spawn_validation_error_field, agent_registry_spawn_validation_error_reason, agent_reload_result, agents_discover_request, agent_select_request, agent_select_result, agents_get_discovery_paths_request, allow_all_permission_set_result, allow_all_permission_state, api_key_auth_info, auth_info, auth_info_type, cancel_user_requested_shell_command_result, canvas_action, canvas_action_invoke_request, canvas_action_invoke_result, canvas_close_request, canvas_host_context, canvas_host_context_capabilities, canvas_json_schema, canvas_list, canvas_list_open_result, canvas_open_request, canvas_provider_close_request, canvas_provider_invoke_action_request, canvas_provider_open_request, canvas_provider_open_result, canvas_session_context, capi_session_options, command_list, commands_handle_pending_command_request, commands_handle_pending_command_result, commands_invoke_request, commands_list_request, commands_respond_to_queued_command_request, commands_respond_to_queued_command_result, completions_get_trigger_characters_result, completions_request_request, completions_request_result, configure_session_extensions_params, connected_remote_session_metadata, connected_remote_session_metadata_kind, connected_remote_session_metadata_repository, connect_remote_session_params, connect_request, connect_result, content_filter_mode, context_heaviest_message, copilot_api_token_auth_info, copilot_user_response, copilot_user_response_endpoints, copilot_user_response_quota_snapshots, copilot_user_response_quota_snapshots_chat, copilot_user_response_quota_snapshots_completions, copilot_user_response_quota_snapshots_premium_interactions, current_model, current_tool_metadata, debug_collect_logs_collected_entry, debug_collect_logs_destination, debug_collect_logs_entry, debug_collect_logs_entry_kind, debug_collect_logs_include, debug_collect_logs_redaction, debug_collect_logs_request, debug_collect_logs_result, debug_collect_logs_result_kind, debug_collect_logs_skipped_entry, debug_collect_logs_source, discovered_canvas, discovered_mcp_server, discovered_mcp_server_type, enqueue_command_params, enqueue_command_result, env_auth_info, event_log_read_request, event_log_release_interest_result, event_log_tail_result, event_log_types, events_agent_scope, events_cursor_status, events_read_result, execute_command_params, execute_command_result, extension, extension_context_push_input, extension_list, extensions_disable_request, extensions_enable_request, extension_source, extension_status, external_tool_result, external_tool_text_result_for_llm, external_tool_text_result_for_llm_binary_results_for_llm, external_tool_text_result_for_llm_binary_results_for_llm_type, external_tool_text_result_for_llm_content, external_tool_text_result_for_llm_content_audio, external_tool_text_result_for_llm_content_image, external_tool_text_result_for_llm_content_resource, external_tool_text_result_for_llm_content_resource_details, external_tool_text_result_for_llm_content_resource_link, external_tool_text_result_for_llm_content_resource_link_icon, external_tool_text_result_for_llm_content_resource_link_icon_theme, external_tool_text_result_for_llm_content_shell_exit, external_tool_text_result_for_llm_content_terminal, external_tool_text_result_for_llm_content_text, filter_mapping, fleet_start_request, fleet_start_result, folder_trust_add_params, folder_trust_check_params, folder_trust_check_result, gh_cli_auth_info, git_hub_telemetry_client_info, git_hub_telemetry_event, git_hub_telemetry_notification, handle_pending_tool_call_request, handle_pending_tool_call_result, history_abort_manual_compaction_result, history_cancel_background_compaction_result, history_compact_context_window, history_compact_request, history_compact_result, history_summarize_for_handoff_result, history_truncate_request, history_truncate_result, hmac_auth_info, installed_plugin, installed_plugin_info, installed_plugin_source, installed_plugin_source_git_hub, installed_plugin_source_local, installed_plugin_source_url, instruction_discovery_path, instruction_discovery_path_kind, instruction_discovery_path_list, instruction_discovery_path_location, instructions_discover_request, instructions_get_discovery_paths_request, instructions_get_sources_result, instruction_source, instruction_source_location, instruction_source_type, llm_inference_headers, llm_inference_http_request_chunk_request, llm_inference_http_request_chunk_result, llm_inference_http_request_start_request, llm_inference_http_request_start_result, llm_inference_http_request_start_transport, llm_inference_http_response_chunk_error, llm_inference_http_response_chunk_request, llm_inference_http_response_chunk_result, llm_inference_http_response_start_request, llm_inference_http_response_start_result, llm_inference_set_provider_result, local_session_metadata_value, log_request, log_result, lsp_initialize_request, marketplace_add_result, marketplace_browse_result, marketplace_info, marketplace_list_result, marketplace_plugin_info, marketplace_refresh_entry, marketplace_refresh_result, marketplace_remove_result, mcp_allowed_server, mcp_apps_call_tool_request, mcp_apps_diagnose_capability, mcp_apps_diagnose_request, mcp_apps_diagnose_result, mcp_apps_diagnose_server, mcp_apps_host_context, mcp_apps_host_context_details, mcp_apps_host_context_details_available_display_mode, mcp_apps_host_context_details_display_mode, mcp_apps_host_context_details_platform, mcp_apps_host_context_details_theme, mcp_apps_list_tools_request, mcp_apps_list_tools_result, mcp_apps_read_resource_request, mcp_apps_read_resource_result, mcp_apps_resource_content, mcp_apps_set_host_context_details, mcp_apps_set_host_context_details_available_display_mode, mcp_apps_set_host_context_details_display_mode, mcp_apps_set_host_context_details_platform, mcp_apps_set_host_context_details_theme, mcp_apps_set_host_context_request, mcp_cancel_sampling_execution_params, mcp_cancel_sampling_execution_result, mcp_config_add_request, mcp_config_disable_request, mcp_config_enable_request, mcp_config_list, mcp_config_remove_request, mcp_config_update_request, mcp_configure_git_hub_request, mcp_configure_git_hub_result, mcp_disable_request, mcp_discover_request, mcp_discover_result, mcp_enable_request, mcp_execute_sampling_params, mcp_execute_sampling_request, mcp_execute_sampling_result, mcp_filtered_server, mcp_headers_handle_pending_headers_refresh_request, mcp_headers_handle_pending_headers_refresh_request_request, mcp_headers_handle_pending_headers_refresh_request_result, mcp_host_state, mcp_is_server_running_request, mcp_is_server_running_result, mcp_list_tools_request, mcp_list_tools_result, mcp_oauth_handle_pending_request, mcp_oauth_handle_pending_result, mcp_oauth_login_grant_type, mcp_oauth_login_request, mcp_oauth_login_result, mcp_oauth_pending_request_response, mcp_oauth_respond_request, mcp_oauth_respond_result, mcp_register_external_client_request, mcp_reload_with_config_request, mcp_remove_git_hub_result, mcp_restart_server_request, mcp_sampling_execution_action, mcp_sampling_execution_result, mcp_server, mcp_server_auth_config, mcp_server_auth_config_redirect_port, mcp_server_config, mcp_server_config_defer_tools, mcp_server_config_http, mcp_server_config_http_oauth_grant_type, mcp_server_config_http_type, mcp_server_config_stdio, mcp_server_failure_info, mcp_server_list, mcp_server_needs_auth_info, mcp_set_env_value_mode_details, mcp_set_env_value_mode_params, mcp_set_env_value_mode_result, mcp_start_server_request, mcp_start_servers_result, mcp_stop_server_request, mcp_tools, mcp_unregister_external_client_request, memory_configuration, metadata_context_attribution_result, metadata_context_heaviest_messages_request, metadata_context_heaviest_messages_result, metadata_context_info_request, metadata_context_info_result, metadata_is_processing_result, metadata_recompute_context_tokens_request, metadata_recompute_context_tokens_result, metadata_record_context_change_request, metadata_record_context_change_result, metadata_set_working_directory_request, metadata_set_working_directory_result, metadata_snapshot_current_mode, metadata_snapshot_remote_metadata, metadata_snapshot_remote_metadata_repository, metadata_snapshot_remote_metadata_task_type, model, model_billing, model_billing_token_prices, model_billing_token_prices_long_context, model_capabilities, model_capabilities_limits, model_capabilities_limits_vision, model_capabilities_override, model_capabilities_override_limits, model_capabilities_override_limits_vision, model_capabilities_override_supports, model_capabilities_supports, model_list, model_list_request, model_picker_category, model_picker_price_category, model_policy, model_policy_state, model_set_reasoning_effort_request, model_set_reasoning_effort_result, models_list_request, model_switch_to_request, model_switch_to_result, mode_set_request, named_provider_config, name_get_result, name_set_auto_request, name_set_auto_result, name_set_request, open_canvas_instance, options_update_additional_content_exclusion_policy, options_update_additional_content_exclusion_policy_rule, options_update_additional_content_exclusion_policy_rule_source, options_update_additional_content_exclusion_policy_scope, options_update_context_tier, options_update_env_value_mode, options_update_reasoning_summary, options_update_tool_filter_precedence, pending_permission_request, pending_permission_request_list, permission_decision, permission_decision_approved, permission_decision_approved_for_location, permission_decision_approved_for_session, permission_decision_approve_for_location, permission_decision_approve_for_location_approval, permission_decision_approve_for_location_approval_commands, permission_decision_approve_for_location_approval_custom_tool, permission_decision_approve_for_location_approval_extension_management, permission_decision_approve_for_location_approval_extension_permission_access, permission_decision_approve_for_location_approval_mcp, permission_decision_approve_for_location_approval_mcp_sampling, permission_decision_approve_for_location_approval_memory, permission_decision_approve_for_location_approval_read, permission_decision_approve_for_location_approval_write, permission_decision_approve_for_session, permission_decision_approve_for_session_approval, permission_decision_approve_for_session_approval_commands, permission_decision_approve_for_session_approval_custom_tool, permission_decision_approve_for_session_approval_extension_management, permission_decision_approve_for_session_approval_extension_permission_access, permission_decision_approve_for_session_approval_mcp, permission_decision_approve_for_session_approval_mcp_sampling, permission_decision_approve_for_session_approval_memory, permission_decision_approve_for_session_approval_read, permission_decision_approve_for_session_approval_write, permission_decision_approve_once, permission_decision_approve_permanently, permission_decision_cancelled, permission_decision_denied_by_content_exclusion_policy, permission_decision_denied_by_permission_request_hook, permission_decision_denied_by_rules, permission_decision_denied_interactively_by_user, permission_decision_denied_no_approval_rule_and_could_not_request_from_user, permission_decision_reject, permission_decision_request, permission_decision_user_not_available, permission_location_add_tool_approval_params, permission_location_apply_params, permission_location_apply_result, permission_location_resolve_params, permission_location_resolve_result, permission_location_type, permission_paths_add_params, permission_paths_allowed_check_params, permission_paths_allowed_check_result, permission_paths_config, permission_paths_list, permission_paths_update_primary_params, permission_paths_workspace_check_params, permission_paths_workspace_check_result, permission_prompt_shown_notification, permission_request_result, permission_rules_set, permissions_allow_all_mode, permissions_configure_additional_content_exclusion_policy, permissions_configure_additional_content_exclusion_policy_rule, permissions_configure_additional_content_exclusion_policy_rule_source, permissions_configure_additional_content_exclusion_policy_scope, permissions_configure_params, permissions_configure_result, permissions_folder_trust_add_trusted_result, permissions_get_allow_all_request, permissions_locations_add_tool_approval_details, permissions_locations_add_tool_approval_details_commands, permissions_locations_add_tool_approval_details_custom_tool, permissions_locations_add_tool_approval_details_extension_management, permissions_locations_add_tool_approval_details_extension_permission_access, permissions_locations_add_tool_approval_details_mcp, permissions_locations_add_tool_approval_details_mcp_sampling, permissions_locations_add_tool_approval_details_memory, permissions_locations_add_tool_approval_details_read, permissions_locations_add_tool_approval_details_write, permissions_locations_add_tool_approval_result, permissions_modify_rules_params, permissions_modify_rules_result, permissions_modify_rules_scope, permissions_notify_prompt_shown_result, permissions_paths_add_result, permissions_paths_list_request, permissions_paths_update_primary_result, permissions_pending_requests_request, permissions_reset_session_approvals_request, permissions_reset_session_approvals_result, permissions_set_allow_all_request, permissions_set_allow_all_source, permissions_set_approve_all_request, permissions_set_approve_all_result, permissions_set_approve_all_source, permissions_set_required_request, permissions_set_required_result, permissions_urls_set_unrestricted_mode_result, permission_urls_config, permission_urls_set_unrestricted_mode_params, ping_request, ping_result, plan_read_result, plan_read_sql_todos_result, plan_read_sql_todos_with_dependencies_result, plan_sql_todo_dependency, plan_sql_todos_row, plan_update_request, plugin, plugin_install_result, plugin_list, plugin_list_result, plugins_disable_request, plugins_enable_request, plugins_install_request, plugins_marketplaces_add_request, plugins_marketplaces_browse_request, plugins_marketplaces_refresh_request, plugins_marketplaces_remove_request, plugins_reload_request, plugins_uninstall_request, plugins_update_request, plugin_update_all_entry, plugin_update_all_result, plugin_update_result, provider_add_request, provider_add_result, provider_config, provider_config_azure, provider_config_transport, provider_config_type, provider_config_wire_api, provider_endpoint, provider_endpoint_transport, provider_endpoint_type, provider_endpoint_wire_api, provider_get_endpoint_request, provider_model_config, provider_session_token, provider_token_acquire_request, provider_token_acquire_result, push_attachment, push_attachment_blob, push_attachment_directory, push_attachment_file, push_attachment_file_line_range, push_attachment_git_hub_actions_job, push_attachment_git_hub_commit, push_attachment_git_hub_file, push_attachment_git_hub_file_diff, push_attachment_git_hub_file_diff_side, push_attachment_git_hub_reference, push_attachment_git_hub_reference_type, push_attachment_git_hub_release, push_attachment_git_hub_repository, push_attachment_git_hub_snippet, push_attachment_git_hub_tree_comparison, push_attachment_git_hub_tree_comparison_side, push_attachment_git_hub_url, push_attachment_selection, push_attachment_selection_details, push_attachment_selection_details_end, push_attachment_selection_details_start, push_git_hub_repo_ref, queued_command_handled, queued_command_not_handled, queued_command_result, queue_pending_items, queue_pending_items_kind, queue_pending_items_result, queue_remove_most_recent_result, register_event_interest_params, register_event_interest_result, register_extension_tools_params, register_extension_tools_result, release_event_interest_params, remote_control_config, remote_control_config_existing_mc_session, remote_control_status, remote_control_status_active, remote_control_status_connecting, remote_control_status_error, remote_control_status_off, remote_control_status_result, remote_control_stop_result, remote_control_transfer_result, remote_enable_request, remote_enable_result, remote_notify_steerable_changed_request, remote_notify_steerable_changed_result, remote_session_connection_result, remote_session_metadata_repository, remote_session_metadata_task_type, remote_session_metadata_value, remote_session_mode, remote_session_repository, sandbox_config, sandbox_config_user_policy, sandbox_config_user_policy_experimental, sandbox_config_user_policy_experimental_seatbelt, sandbox_config_user_policy_filesystem, sandbox_config_user_policy_network, sandbox_config_user_policy_seatbelt, schedule_entry, schedule_list, schedule_stop_request, schedule_stop_result, secrets_add_filter_values_request, secrets_add_filter_values_result, send_agent_mode, send_attachments_to_message_params, send_mode, send_request, send_result, server_agent_list, server_instruction_source_list, server_skill, server_skill_list, session_activity, session_auth_status, session_bulk_delete_result, session_capability, session_completion_item, session_context, session_context_host_type, session_enrich_metadata_result, session_fs_append_file_request, session_fs_error, session_fs_error_code, session_fs_exists_request, session_fs_exists_result, session_fs_mkdir_request, session_fs_readdir_request, session_fs_readdir_result, session_fs_readdir_with_types_entry, session_fs_readdir_with_types_entry_type, session_fs_readdir_with_types_request, session_fs_readdir_with_types_result, session_fs_read_file_request, session_fs_read_file_result, session_fs_rename_request, session_fs_rm_request, session_fs_set_provider_capabilities, session_fs_set_provider_conventions, session_fs_set_provider_request, session_fs_set_provider_result, session_fs_sqlite_exists_request, session_fs_sqlite_exists_result, session_fs_sqlite_query_request, session_fs_sqlite_query_result, session_fs_sqlite_query_type, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_installed_plugin, session_installed_plugin_source, session_installed_plugin_source_git_hub, session_installed_plugin_source_local, session_installed_plugin_source_url, session_list, session_list_entry, session_list_filter, session_load_deferred_repo_hooks_result, session_log_level, session_mcp_apps_call_tool_result, session_metadata_snapshot, session_mode, session_model_list, session_open_options, session_open_options_additional_content_exclusion_policy, session_open_options_additional_content_exclusion_policy_rule, session_open_options_additional_content_exclusion_policy_rule_source, session_open_options_additional_content_exclusion_policy_scope, session_open_options_env_value_mode, session_open_options_reasoning_summary, session_open_params, session_open_result, session_prune_result, sessions_bulk_delete_request, sessions_check_in_use_request, sessions_check_in_use_result, sessions_close_request, sessions_close_result, sessions_enrich_metadata_request, session_set_credentials_params, session_set_credentials_result, session_settings_built_in_tool_availability_snapshot, session_settings_evaluate_predicate_request, session_settings_evaluate_predicate_result, session_settings_job_snapshot, session_settings_model_snapshot, session_settings_online_evaluation_snapshot, session_settings_predicate_name, session_settings_repo_snapshot, session_settings_snapshot, session_settings_validation_snapshot, sessions_find_by_prefix_request, sessions_find_by_prefix_result, sessions_find_by_task_id_request, sessions_find_by_task_id_result, sessions_fork_request, sessions_fork_result, sessions_get_board_entry_count_request, sessions_get_board_entry_count_result, sessions_get_event_file_path_request, sessions_get_event_file_path_result, sessions_get_last_for_context_request, sessions_get_last_for_context_result, sessions_get_persisted_remote_steerable_request, sessions_get_persisted_remote_steerable_result, session_sizes, sessions_list_request, sessions_load_deferred_repo_hooks_request, sessions_open_attach, sessions_open_cloud, sessions_open_create, sessions_open_handoff, sessions_open_handoff_task_type, sessions_open_progress, sessions_open_progress_status, sessions_open_progress_step, sessions_open_remote, sessions_open_resume, sessions_open_resume_last, sessions_open_status, session_source, sessions_prune_old_request, sessions_register_extension_tools_on_session_options, sessions_release_lock_request, sessions_release_lock_result, sessions_reload_plugin_hooks_request, sessions_reload_plugin_hooks_result, sessions_save_request, sessions_save_result, sessions_set_additional_plugins_request, sessions_set_additional_plugins_result, sessions_set_remote_control_steering_request, sessions_start_remote_control_request, sessions_stop_remote_control_request, sessions_transfer_remote_control_request, session_telemetry_engagement, session_update_options_params, session_update_options_result, session_visibility_status, session_working_directory_context, session_working_directory_context_host_type, shell_cancel_user_requested_request, shell_exec_request, shell_exec_result, shell_execute_user_requested_request, shell_kill_request, shell_kill_result, shell_kill_signal, shutdown_request, skill, skill_discovery_path, skill_discovery_path_list, skill_discovery_scope, skill_list, skills_config_set_disabled_skills_request, skills_disable_request, skills_discover_request, skills_enable_request, skills_get_discovery_paths_request, skills_get_invoked_result, skills_invoked_skill, skills_load_diagnostics, slash_command_agent_prompt_result, slash_command_completed_result, slash_command_info, slash_command_input, slash_command_input_choice, slash_command_input_completion, slash_command_invocation_result, slash_command_kind, slash_command_select_subcommand_option, slash_command_select_subcommand_result, slash_command_text_result, subagent_settings_entry, subagent_settings_entry_context_tier, task_agent_info, task_agent_progress, task_execution_mode, task_info, task_list, task_progress_line, tasks_cancel_request, tasks_cancel_result, tasks_get_current_promotable_result, tasks_get_progress_request, tasks_get_progress_result, task_shell_info, task_shell_info_attachment_mode, task_shell_progress, tasks_promote_current_to_background_result, tasks_promote_to_background_request, tasks_promote_to_background_result, tasks_refresh_result, tasks_remove_request, tasks_remove_result, tasks_send_message_request, tasks_send_message_result, tasks_start_agent_request, tasks_start_agent_result, task_status, tasks_wait_for_pending_result, telemetry_set_feature_overrides_request, token_auth_info, tool, tool_list, tools_get_current_metadata_result, tools_initialize_and_validate_result, tools_list_request, tools_update_subagent_settings_result, ui_auto_mode_switch_response, ui_elicitation_array_any_of_field, ui_elicitation_array_any_of_field_items, ui_elicitation_array_any_of_field_items_any_of, ui_elicitation_array_enum_field, ui_elicitation_array_enum_field_items, ui_elicitation_field_value, ui_elicitation_request, ui_elicitation_response, ui_elicitation_response_action, ui_elicitation_response_content, ui_elicitation_result, ui_elicitation_schema, ui_elicitation_schema_property, ui_elicitation_schema_property_boolean, ui_elicitation_schema_property_number, ui_elicitation_schema_property_number_type, ui_elicitation_schema_property_string, ui_elicitation_schema_property_string_format, ui_elicitation_string_enum_field, ui_elicitation_string_one_of_field, ui_elicitation_string_one_of_field_one_of, ui_ephemeral_query_request, ui_ephemeral_query_result, ui_exit_plan_mode_action, ui_exit_plan_mode_response, ui_handle_pending_auto_mode_switch_request, ui_handle_pending_elicitation_request, ui_handle_pending_exit_plan_mode_request, ui_handle_pending_result, ui_handle_pending_sampling_request, ui_handle_pending_sampling_response, ui_handle_pending_session_limits_exhausted_request, ui_handle_pending_user_input_request, ui_register_direct_auto_mode_switch_handler_result, ui_session_limits_exhausted_response, ui_session_limits_exhausted_response_action, ui_unregister_direct_auto_mode_switch_handler_request, ui_unregister_direct_auto_mode_switch_handler_result, ui_user_input_response, update_subagent_settings_request, usage_get_metrics_result, usage_metrics_code_changes, usage_metrics_model_metric, usage_metrics_model_metric_requests, usage_metrics_model_metric_token_detail, usage_metrics_model_metric_usage, usage_metrics_token_detail, user_auth_info, user_requested_shell_command_result, user_setting_metadata, user_settings_get_result, user_settings_set_request, user_settings_set_result, visibility_get_result, visibility_set_request, visibility_set_result, workspace_diff_file_change, workspace_diff_file_change_type, workspace_diff_mode, workspace_diff_result, workspaces_checkpoints, workspaces_create_file_request, workspaces_diff_request, workspaces_get_workspace_result, workspaces_list_checkpoints_result, workspaces_list_files_result, workspaces_read_checkpoint_request, workspaces_read_checkpoint_result, workspaces_read_file_request, workspaces_read_file_result, workspaces_save_large_paste_request, workspaces_save_large_paste_result, workspace_summary_host_type, workspaces_workspace_details_host_type, session_context_attribution, session_context_info, subagent_settings, task_progress, workspace_summary)
def to_dict(self) -> dict:
result: dict = {}
@@ -24247,6 +25280,17 @@ def to_dict(self) -> dict:
result["CopilotUserResponseQuotaSnapshotsPremiumInteractions"] = to_class(CopilotUserResponseQuotaSnapshotsPremiumInteractions, self.copilot_user_response_quota_snapshots_premium_interactions)
result["CurrentModel"] = to_class(CurrentModel, self.current_model)
result["CurrentToolMetadata"] = to_class(CurrentToolMetadata, self.current_tool_metadata)
+ result["DebugCollectLogsCollectedEntry"] = to_class(DebugCollectLogsCollectedEntry, self.debug_collect_logs_collected_entry)
+ result["DebugCollectLogsDestination"] = to_class(DebugCollectLogsDestination, self.debug_collect_logs_destination)
+ result["DebugCollectLogsEntry"] = to_class(DebugCollectLogsEntry, self.debug_collect_logs_entry)
+ result["DebugCollectLogsEntryKind"] = to_enum(DebugCollectLogsEntryKind, self.debug_collect_logs_entry_kind)
+ result["DebugCollectLogsInclude"] = to_class(DebugCollectLogsInclude, self.debug_collect_logs_include)
+ result["DebugCollectLogsRedaction"] = to_enum(DebugCollectLogsRedaction, self.debug_collect_logs_redaction)
+ result["DebugCollectLogsRequest"] = to_class(DebugCollectLogsRequest, self.debug_collect_logs_request)
+ result["DebugCollectLogsResult"] = to_class(DebugCollectLogsResult, self.debug_collect_logs_result)
+ result["DebugCollectLogsResultKind"] = to_enum(DebugCollectLogsResultKind, self.debug_collect_logs_result_kind)
+ result["DebugCollectLogsSkippedEntry"] = to_class(DebugCollectLogsSkippedEntry, self.debug_collect_logs_skipped_entry)
+ result["DebugCollectLogsSource"] = to_enum(DebugCollectLogsSource, self.debug_collect_logs_source)
result["DiscoveredCanvas"] = to_class(DiscoveredCanvas, self.discovered_canvas)
result["DiscoveredMcpServer"] = to_class(DiscoveredMCPServer, self.discovered_mcp_server)
result["DiscoveredMcpServerType"] = to_enum(DiscoveredMCPServerType, self.discovered_mcp_server_type)
@@ -24312,7 +25356,7 @@ def to_dict(self) -> dict:
result["InstalledPluginSourceLocal"] = to_class(InstalledPluginSourceLocal, self.installed_plugin_source_local)
result["InstalledPluginSourceUrl"] = to_class(InstalledPluginSourceURL, self.installed_plugin_source_url)
result["InstructionDiscoveryPath"] = to_class(InstructionDiscoveryPath, self.instruction_discovery_path)
- result["InstructionDiscoveryPathKind"] = to_enum(InstructionDiscoveryPathKind, self.instruction_discovery_path_kind)
+ result["InstructionDiscoveryPathKind"] = to_enum(DebugCollectLogsEntryKind, self.instruction_discovery_path_kind)
result["InstructionDiscoveryPathList"] = to_class(InstructionDiscoveryPathList, self.instruction_discovery_path_list)
result["InstructionDiscoveryPathLocation"] = to_enum(InstructionLocation, self.instruction_discovery_path_location)
result["InstructionsDiscoverRequest"] = to_class(InstructionsDiscoverRequest, self.instructions_discover_request)
@@ -24539,6 +25583,7 @@ def to_dict(self) -> dict:
result["PermissionPromptShownNotification"] = to_class(PermissionPromptShownNotification, self.permission_prompt_shown_notification)
result["PermissionRequestResult"] = to_class(PermissionRequestResult, self.permission_request_result)
result["PermissionRulesSet"] = to_class(PermissionRulesSet, self.permission_rules_set)
+ result["PermissionsAllowAllMode"] = to_enum(PermissionsAllowAllMode, self.permissions_allow_all_mode)
result["PermissionsConfigureAdditionalContentExclusionPolicy"] = to_class(PermissionsConfigureAdditionalContentExclusionPolicy, self.permissions_configure_additional_content_exclusion_policy)
result["PermissionsConfigureAdditionalContentExclusionPolicyRule"] = to_class(PermissionsConfigureAdditionalContentExclusionPolicyRule, self.permissions_configure_additional_content_exclusion_policy_rule)
result["PermissionsConfigureAdditionalContentExclusionPolicyRuleSource"] = to_class(PermissionsConfigureAdditionalContentExclusionPolicyRuleSource, self.permissions_configure_additional_content_exclusion_policy_rule_source)
@@ -24713,7 +25758,7 @@ def to_dict(self) -> dict:
result["SessionFsReaddirRequest"] = to_class(SessionFSReaddirRequest, self.session_fs_readdir_request)
result["SessionFsReaddirResult"] = to_class(SessionFSReaddirResult, self.session_fs_readdir_result)
result["SessionFsReaddirWithTypesEntry"] = to_class(SessionFSReaddirWithTypesEntry, self.session_fs_readdir_with_types_entry)
- result["SessionFsReaddirWithTypesEntryType"] = to_enum(InstructionDiscoveryPathKind, self.session_fs_readdir_with_types_entry_type)
+ result["SessionFsReaddirWithTypesEntryType"] = to_enum(DebugCollectLogsEntryKind, self.session_fs_readdir_with_types_entry_type)
result["SessionFsReaddirWithTypesRequest"] = to_class(SessionFSReaddirWithTypesRequest, self.session_fs_readdir_with_types_request)
result["SessionFsReaddirWithTypesResult"] = to_class(SessionFSReaddirWithTypesResult, self.session_fs_readdir_with_types_result)
result["SessionFsReadFileRequest"] = to_class(SessionFSReadFileRequest, self.session_fs_read_file_request)
@@ -24764,6 +25809,16 @@ def to_dict(self) -> dict:
result["SessionsEnrichMetadataRequest"] = to_class(SessionsEnrichMetadataRequest, self.sessions_enrich_metadata_request)
result["SessionSetCredentialsParams"] = to_class(SessionSetCredentialsParams, self.session_set_credentials_params)
result["SessionSetCredentialsResult"] = to_class(SessionSetCredentialsResult, self.session_set_credentials_result)
+ result["SessionSettingsBuiltInToolAvailabilitySnapshot"] = to_class(SessionSettingsBuiltInToolAvailabilitySnapshot, self.session_settings_built_in_tool_availability_snapshot)
+ result["SessionSettingsEvaluatePredicateRequest"] = to_class(SessionSettingsEvaluatePredicateRequest, self.session_settings_evaluate_predicate_request)
+ result["SessionSettingsEvaluatePredicateResult"] = to_class(SessionSettingsEvaluatePredicateResult, self.session_settings_evaluate_predicate_result)
+ result["SessionSettingsJobSnapshot"] = to_class(SessionSettingsJobSnapshot, self.session_settings_job_snapshot)
+ result["SessionSettingsModelSnapshot"] = to_class(SessionSettingsModelSnapshot, self.session_settings_model_snapshot)
+ result["SessionSettingsOnlineEvaluationSnapshot"] = to_class(SessionSettingsOnlineEvaluationSnapshot, self.session_settings_online_evaluation_snapshot)
+ result["SessionSettingsPredicateName"] = to_enum(SessionSettingsPredicateName, self.session_settings_predicate_name)
+ result["SessionSettingsRepoSnapshot"] = to_class(SessionSettingsRepoSnapshot, self.session_settings_repo_snapshot)
+ result["SessionSettingsSnapshot"] = to_class(SessionSettingsSnapshot, self.session_settings_snapshot)
+ result["SessionSettingsValidationSnapshot"] = to_class(SessionSettingsValidationSnapshot, self.session_settings_validation_snapshot)
result["SessionsFindByPrefixRequest"] = to_class(SessionsFindByPrefixRequest, self.sessions_find_by_prefix_request)
result["SessionsFindByPrefixResult"] = to_class(SessionsFindByPrefixResult, self.sessions_find_by_prefix_result)
result["SessionsFindByTaskIDRequest"] = to_class(SessionsFindByTaskIDRequest, self.sessions_find_by_task_id_request)
@@ -25093,7 +26148,7 @@ def _load_PermissionsLocationsAddToolApprovalDetails(obj: Any) -> "PermissionsLo
case "extension-permission-access": return PermissionsLocationsAddToolApprovalDetailsExtensionPermissionAccess.from_dict(obj)
case _: raise ValueError(f"Unknown PermissionsLocationsAddToolApprovalDetails kind: {kind!r}")
-# Schema for the `PushAttachment` type.
+# Attachment union accepted by push input, covering files, directories, GitHub objects, blobs, snippets, and extension context.
PushAttachment = PushAttachmentFile | PushAttachmentDirectory | PushAttachmentSelection | PushAttachmentGitHubReference | PushAttachmentGitHubCommit | PushAttachmentGitHubRelease | PushAttachmentGitHubActionsJob | PushAttachmentGitHubRepository | PushAttachmentGitHubFileDiff | PushAttachmentGitHubTreeComparison | PushAttachmentGitHubURL | PushAttachmentGitHubFile | PushAttachmentGitHubSnippet | PushAttachmentBlob | ExtensionContextPushInput
def _load_PushAttachment(obj: Any) -> "PushAttachment":
@@ -25181,7 +26236,7 @@ def _load_SlashCommandInvocationResult(obj: Any) -> "SlashCommandInvocationResul
case "select-subcommand": return SlashCommandSelectSubcommandResult.from_dict(obj)
case _: raise ValueError(f"Unknown SlashCommandInvocationResult kind: {kind!r}")
-# Schema for the `TaskInfo` type.
+# Tracked task union returned by task APIs, containing either an agent task or a shell task.
TaskInfo = TaskAgentInfo | TaskShellInfo
def _load_TaskInfo(obj: Any) -> "TaskInfo":
@@ -25199,6 +26254,7 @@ def _load_TaskInfo(obj: Any) -> "TaskInfo":
ExternalToolResult = ExternalToolTextResultForLlm
ExternalToolTextResultForLlmContentResourceLinkIconTheme = Theme
FilterMapping = dict
+InstructionDiscoveryPathKind = DebugCollectLogsEntryKind
InstructionDiscoveryPathLocation = InstructionLocation
InstructionSourceLocation = InstructionLocation
LlmInferenceHeaders = dict
@@ -25229,7 +26285,7 @@ def _load_TaskInfo(obj: Any) -> "TaskInfo":
ProviderEndpointWireApi = ProviderWireAPI
RemoteSessionMetadataTaskType = TaskType
SessionContextHostType = HostType
-SessionFsReaddirWithTypesEntryType = InstructionDiscoveryPathKind
+SessionFsReaddirWithTypesEntryType = DebugCollectLogsEntryKind
SessionMcpAppsCallToolResult = dict
SessionOpenOptionsAdditionalContentExclusionPolicyScope = AdditionalContentExclusionPolicyScope
SessionOpenOptionsEnvValueMode = MCPSetEnvValueModeDetails
@@ -25773,7 +26829,7 @@ def __init__(self, client: "JsonRpcClient"):
self.sessions = _InternalServerSessionsApi(client)
async def _connect(self, params: _ConnectRequest, *, timeout: float | None = None) -> _ConnectResult:
- "Performs the SDK server connection handshake and validates the optional connection token. Marked internal because this is JSON-RPC transport plumbing invoked automatically by an SDK client's own `connect()` wrapper, not a user-facing method. Stays internal as long as the SDK client owns the handshake; would only become public if the SDK ever exposed the raw schema surface to consumers without a connection wrapper.\n\nArgs:\n params: Optional connection token presented by the SDK client during the handshake.\n\nReturns:\n Handshake result reporting the server's protocol version and package version on success.\n\n.. warning:: This API is experimental and may change or be removed in future versions.\n\n:meta private:\n\nInternal SDK API; not part of the public surface."
+ "Performs the SDK server connection handshake and validates the optional connection token. Marked internal because this is JSON-RPC transport plumbing invoked automatically by an SDK client's own `connect()` wrapper, not a user-facing method. Stays internal as long as the SDK client owns the handshake; would only become public if the SDK ever exposed the raw schema surface to consumers without a connection wrapper.\n\nArgs:\n params: Parameters for the `server.connect` handshake: an optional connection token and optional connection-level opt-ins (e.g. GitHub telemetry forwarding).\n\nReturns:\n Handshake result reporting the server's protocol version and package version on success.\n\n.. warning:: This API is experimental and may change or be removed in future versions.\n\n:meta private:\n\nInternal SDK API; not part of the public surface."
params_dict = {k: v for k, v in params.to_dict().items() if v is not None}
return _ConnectResult.from_dict(await self._client.request("connect", params_dict, **_timeout_kwargs(timeout)))
@@ -25795,6 +26851,19 @@ async def set_credentials(self, params: SessionSetCredentialsParams, *, timeout:
return SessionSetCredentialsResult.from_dict(await self._client.request("session.gitHubAuth.setCredentials", params_dict, **_timeout_kwargs(timeout)))
+# Experimental: this API group is experimental and may change or be removed.
+class DebugApi:
+ def __init__(self, client: "JsonRpcClient", session_id: str):
+ self._client = client
+ self._session_id = session_id
+
+ async def collect_logs(self, params: DebugCollectLogsRequest, *, timeout: float | None = None) -> DebugCollectLogsResult:
+ "Collects a redacted session debug log bundle into a local archive or staging directory. The runtime includes session-owned logs by default and accepts caller-provided diagnostic entries so host applications can add their own files without changing this API shape.\n\nArgs:\n params: Options for collecting a redacted session debug bundle.\n\nReturns:\n Result of collecting a redacted debug bundle."
+ params_dict: dict[str, Any] = {k: v for k, v in params.to_dict().items() if v is not None}
+ params_dict["sessionId"] = self._session_id
+ return DebugCollectLogsResult.from_dict(await self._client.request("session.debug.collectLogs", params_dict, **_timeout_kwargs(timeout)))
+
+
# Experimental: this API group is experimental and may change or be removed.
class CanvasActionApi:
def __init__(self, client: "JsonRpcClient", session_id: str):
@@ -26666,13 +27735,13 @@ async def set_approve_all(self, params: PermissionsSetApproveAllRequest, *, time
return PermissionsSetApproveAllResult.from_dict(await self._client.request("session.permissions.setApproveAll", params_dict, **_timeout_kwargs(timeout)))
async def set_allow_all(self, params: PermissionsSetAllowAllRequest, *, timeout: float | None = None) -> AllowAllPermissionSetResult:
- "Enables or disables full allow-all permissions (tools, paths, and URLs) for the session. Used by attach-mode clients (e.g. LocalRpcSession's `/allow-all` forwarder) to flip the target session's permission state. Unlike `setApproveAll`, this swaps in the unrestricted path and URL managers and emits `session.permissions_changed` on transition. The result returns the authoritative post-mutation state so callers can update their local mirrors without racing the `session.permissions_changed` notification on the same wire.\n\nArgs:\n params: Whether to enable full allow-all permissions for the session.\n\nReturns:\n Indicates whether the operation succeeded and reports the post-mutation state."
+ "Sets the allow-all permission mode for the session. Used by attach-mode clients (e.g. LocalRpcSession's `/allow-all` forwarder) to flip the target session's permission state. The `on` mode swaps in unrestricted path and URL managers and emits `session.permissions_changed` on transition; the `auto` mode keeps normal prompt paths active while attaching LLM safety recommendations. The result returns the authoritative post-mutation state so callers can update their local mirrors without racing the `session.permissions_changed` notification on the same wire.\n\nArgs:\n params: Allow-all mode to apply for the session.\n\nReturns:\n Indicates whether the operation succeeded and reports the post-mutation state."
params_dict: dict[str, Any] = {k: v for k, v in params.to_dict().items() if v is not None}
params_dict["sessionId"] = self._session_id
return AllowAllPermissionSetResult.from_dict(await self._client.request("session.permissions.setAllowAll", params_dict, **_timeout_kwargs(timeout)))
async def get_allow_all(self, *, timeout: float | None = None) -> AllowAllPermissionState:
- "Returns whether full allow-all permissions are currently active for the session.\n\nReturns:\n Current full allow-all permission state."
+ "Returns the current allow-all permission mode for the session.\n\nReturns:\n Current allow-all permission mode."
return AllowAllPermissionState.from_dict(await self._client.request("session.permissions.getAllowAll", {"sessionId": self._session_id}, **_timeout_kwargs(timeout)))
async def modify_rules(self, params: PermissionsModifyRulesParams, *, timeout: float | None = None) -> PermissionsModifyRulesResult:
@@ -26935,6 +28004,7 @@ def __init__(self, client: "JsonRpcClient", session_id: str):
self._client = client
self._session_id = session_id
self.git_hub_auth = GitHubAuthApi(client, session_id)
+ self.debug = DebugApi(client, session_id)
self.canvas = CanvasApi(client, session_id)
self.model = ModelApi(client, session_id)
self.mode = ModeApi(client, session_id)
@@ -27054,12 +28124,30 @@ async def _unregister_external_client(self, params: MCPUnregisterExternalClientR
await self._client.request("session.mcp.unregisterExternalClient", params_dict, **_timeout_kwargs(timeout))
+# Experimental: this API group is experimental and may change or be removed.
+class _InternalSettingsApi:
+ def __init__(self, client: "JsonRpcClient", session_id: str):
+ self._client = client
+ self._session_id = session_id
+
+ async def _snapshot(self, *, timeout: float | None = None) -> SessionSettingsSnapshot:
+ "Returns a redacted snapshot of session runtime settings, with secrets and raw feature flags excluded. Internal: the runtime settings shape is a runtime-internal surface and is deliberately kept out of the public SDK, because consumers should not depend on the runtime's internal settings layout. It remains callable in-process and is expected to be reworked as the runtime internals are consolidated.\n\nReturns:\n Redacted, serializable view of session runtime settings for SDK boundary consumers. Secrets and raw feature flags are intentionally excluded.\n\n:meta private:\n\nInternal SDK API; not part of the public surface."
+ return SessionSettingsSnapshot.from_dict(await self._client.request("session.settings.snapshot", {"sessionId": self._session_id}, **_timeout_kwargs(timeout)))
+
+ async def _evaluate_predicate(self, params: SessionSettingsEvaluatePredicateRequest, *, timeout: float | None = None) -> SessionSettingsEvaluatePredicateResult:
+ "Evaluates a named Rust-owned settings predicate without exposing raw feature flags. Internal: the raw feature-flag names and composition are runtime-internal, so this predicate-evaluation helper is kept out of the public SDK surface and is callable in-process only.\n\nArgs:\n params: Named Rust-owned settings predicate to evaluate for this session.\n\nReturns:\n Result of evaluating a Rust-owned settings predicate.\n\n:meta private:\n\nInternal SDK API; not part of the public surface."
+ params_dict: dict[str, Any] = {k: v for k, v in params.to_dict().items() if v is not None}
+ params_dict["sessionId"] = self._session_id
+ return SessionSettingsEvaluatePredicateResult.from_dict(await self._client.request("session.settings.evaluatePredicate", params_dict, **_timeout_kwargs(timeout)))
+
+
class _InternalSessionRpc:
"""Internal SDK session-scoped RPC methods. Not part of the public API."""
def __init__(self, client: "JsonRpcClient", session_id: str):
self._client = client
self._session_id = session_id
self.mcp = _InternalMcpApi(client, session_id)
+ self.settings = _InternalSettingsApi(client, session_id)
# Experimental: this API group is experimental and may change or be removed.
@@ -27255,7 +28343,7 @@ async def http_request_chunk(self, params: LlmInferenceHTTPRequestChunkRequest)
# Experimental: this API group is experimental and may change or be removed.
class GitHubTelemetryHandler(Protocol):
async def event(self, params: GitHubTelemetryNotification) -> None:
- "Forwards a single GitHub telemetry event to a host connection that opted into telemetry forwarding for the session.\n\nArgs:\n params: Payload for a `gitHubTelemetry.event` notification: a single GitHub telemetry event the runtime forwards to a host connection that opted into telemetry forwarding for the session."
+ "Forwards a single GitHub telemetry event to a host connection that opted into telemetry forwarding during the `server.connect` handshake. Opted-in connections receive every event the runtime emits after the handshake — across all sessions, plus sessionless events (for example, `server.sendTelemetry` calls with no session id).\n\nArgs:\n params: Payload for a `gitHubTelemetry.event` notification: a single GitHub telemetry event the runtime forwards to a host connection that opted into telemetry forwarding during the `server.connect` handshake."
pass
@dataclass
@@ -27402,6 +28490,18 @@ async def handle_git_hub_telemetry_event(params: dict) -> None:
"CopilotUserResponseQuotaSnapshotsPremiumInteractions",
"CurrentModel",
"CurrentToolMetadata",
+ "DebugApi",
+ "DebugCollectLogsCollectedEntry",
+ "DebugCollectLogsDestination",
+ "DebugCollectLogsEntry",
+ "DebugCollectLogsEntryKind",
+ "DebugCollectLogsInclude",
+ "DebugCollectLogsRedaction",
+ "DebugCollectLogsRequest",
+ "DebugCollectLogsResult",
+ "DebugCollectLogsResultKind",
+ "DebugCollectLogsSkippedEntry",
+ "DebugCollectLogsSource",
"DiscoveredCanvas",
"DiscoveredMCPServer",
"DiscoveredMCPServerType",
@@ -27761,6 +28861,7 @@ async def handle_git_hub_telemetry_event(params: dict) -> None:
"PermissionRulesSet",
"PermissionUrlsConfig",
"PermissionUrlsSetUnrestrictedModeParams",
+ "PermissionsAllowAllMode",
"PermissionsApi",
"PermissionsConfigureAdditionalContentExclusionPolicy",
"PermissionsConfigureAdditionalContentExclusionPolicyRule",
@@ -28039,6 +29140,16 @@ async def handle_git_hub_telemetry_event(params: dict) -> None:
"SessionRpc",
"SessionSetCredentialsParams",
"SessionSetCredentialsResult",
+ "SessionSettingsBuiltInToolAvailabilitySnapshot",
+ "SessionSettingsEvaluatePredicateRequest",
+ "SessionSettingsEvaluatePredicateResult",
+ "SessionSettingsJobSnapshot",
+ "SessionSettingsModelSnapshot",
+ "SessionSettingsOnlineEvaluationSnapshot",
+ "SessionSettingsPredicateName",
+ "SessionSettingsRepoSnapshot",
+ "SessionSettingsSnapshot",
+ "SessionSettingsValidationSnapshot",
"SessionSizes",
"SessionSource",
"SessionTelemetryEngagement",
diff --git a/python/copilot/generated/session_events.py b/python/copilot/generated/session_events.py
index 8dca9a511..59351d30f 100644
--- a/python/copilot/generated/session_events.py
+++ b/python/copilot/generated/session_events.py
@@ -423,7 +423,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class CanvasRegistryChangedCanvas:
- "Schema for the `CanvasRegistryChangedCanvas` type."
+ "A single canvas declaration in `session.canvas.registry_changed`, including provider IDs, display metadata, input schema, and actions."
canvas_id: str
description: str
display_name: str
@@ -470,7 +470,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class CanvasRegistryChangedCanvasAction:
- "Schema for the `CanvasRegistryChangedCanvasAction` type."
+ "A single action within a canvas declaration, with its name, optional description, and optional input schema."
name: str
description: str | None = None
input_schema: Any = None
@@ -782,10 +782,35 @@ def to_dict(self) -> dict:
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class PermissionAutoApproval:
+ "Auto-approval judge information attached to a permission request. Present (non-null) only when the session's allow-all mode is \"auto\"; its absence means auto mode was off and the judge did not evaluate the request. The `recommendation` conveys the judge's disposition for this request."
+ recommendation: AutoApprovalRecommendation
+ reason: str | None = None
+
+ @staticmethod
+ def from_dict(obj: Any) -> "PermissionAutoApproval":
+ assert isinstance(obj, dict)
+ recommendation = parse_enum(AutoApprovalRecommendation, obj.get("recommendation"))
+ reason = from_union([from_none, from_str], obj.get("reason"))
+ return PermissionAutoApproval(
+ recommendation=recommendation,
+ reason=reason,
+ )
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["recommendation"] = to_enum(AutoApprovalRecommendation, self.recommendation)
+ if self.reason is not None:
+ result["reason"] = from_union([from_none, from_str], self.reason)
+ return result
+
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionCanvasClosedData:
- "Schema for the `CanvasClosedData` type."
+ "Payload of `session.canvas.closed` with the closed canvas instance ID, provider ID, and canvas ID."
canvas_id: str
extension_id: str
instance_id: str
@@ -813,7 +838,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionCanvasOpenedData:
- "Schema for the `CanvasOpenedData` type."
+ "Payload of `session.canvas.opened` with canvas instance and provider IDs plus optional title, status, URL, and input."
canvas_id: str
extension_id: str
instance_id: str
@@ -904,7 +929,7 @@ def to_dict(self) -> dict:
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class SessionCanvasRegistryChangedData:
- "Schema for the `CanvasRegistryChangedData` type."
+ "Payload of `session.canvas.registry_changed` listing the canvas declarations currently available."
canvases: list[CanvasRegistryChangedCanvas]
@staticmethod
@@ -1315,18 +1340,23 @@ def to_dict(self) -> dict:
class AssistantTurnEndData:
"Turn completion metadata including the turn identifier"
turn_id: str
+ model: str | None = None
@staticmethod
def from_dict(obj: Any) -> "AssistantTurnEndData":
assert isinstance(obj, dict)
turn_id = from_str(obj.get("turnId"))
+ model = from_union([from_none, from_str], obj.get("model"))
return AssistantTurnEndData(
turn_id=turn_id,
+ model=model,
)
def to_dict(self) -> dict:
result: dict = {}
result["turnId"] = from_str(self.turn_id)
+ if self.model is not None:
+ result["model"] = from_union([from_none, from_str], self.model)
return result
@@ -1335,15 +1365,18 @@ class AssistantTurnStartData:
"Turn initialization metadata including identifier and interaction tracking"
turn_id: str
interaction_id: str | None = None
+ model: str | None = None
@staticmethod
def from_dict(obj: Any) -> "AssistantTurnStartData":
assert isinstance(obj, dict)
turn_id = from_str(obj.get("turnId"))
interaction_id = from_union([from_none, from_str], obj.get("interactionId"))
+ model = from_union([from_none, from_str], obj.get("model"))
return AssistantTurnStartData(
turn_id=turn_id,
interaction_id=interaction_id,
+ model=model,
)
def to_dict(self) -> dict:
@@ -1351,6 +1384,8 @@ def to_dict(self) -> dict:
result["turnId"] = from_str(self.turn_id)
if self.interaction_id is not None:
result["interactionId"] = from_union([from_none, from_str], self.interaction_id)
+ if self.model is not None:
+ result["model"] = from_union([from_none, from_str], self.model)
return result
@@ -1534,7 +1569,7 @@ def to_dict(self) -> dict:
@dataclass
class _AssistantUsageQuotaSnapshot:
- "Schema for the `_AssistantUsageQuotaSnapshot` type."
+ "Internal per-quota snapshot for assistant usage, including entitlement, consumed requests, overage, reset date, and remaining quota."
# Internal: this field is an internal SDK API and is not part of the public surface.
_entitlement_requests: int
# Internal: this field is an internal SDK API and is not part of the public surface.
@@ -2464,7 +2499,7 @@ def to_dict(self) -> dict:
@dataclass
class CommandsChangedCommand:
- "Schema for the `CommandsChangedCommand` type."
+ "A single slash command available in the session, as listed by the `commands.changed` event."
name: str
description: str | None = None
@@ -2614,7 +2649,7 @@ def to_dict(self) -> dict:
@dataclass
class CustomAgentsUpdatedAgent:
- "Schema for the `CustomAgentsUpdatedAgent` type."
+ "A single loaded custom agent in `session.custom_agents_updated`, with identity, source, tools, invocability, and model override."
description: str
display_name: str
id: str
@@ -2767,7 +2802,7 @@ def to_dict(self) -> dict:
@dataclass
class EmbeddedBlobResourceContents:
- "Schema for the `EmbeddedBlobResourceContents` type."
+ "Embedded binary resource contents identified by a URI, with an optional MIME type and a base64-encoded blob."
blob: str
uri: str
mime_type: str | None = None
@@ -2795,7 +2830,7 @@ def to_dict(self) -> dict:
@dataclass
class EmbeddedTextResourceContents:
- "Schema for the `EmbeddedTextResourceContents` type."
+ "Embedded text resource contents identified by a URI, with an optional MIME type and a text payload."
text: str
uri: str
mime_type: str | None = None
@@ -2897,7 +2932,7 @@ def to_dict(self) -> dict:
@dataclass
class ExtensionsLoadedExtension:
- "Schema for the `ExtensionsLoadedExtension` type."
+ "A single extension discovered by `session.extensions_loaded`, including qualified ID, source, and current status."
id: str
name: str
source: ExtensionsLoadedExtensionSource
@@ -3262,7 +3297,7 @@ def to_dict(self) -> dict:
@dataclass
class McpAppToolCallCompleteToolMetaUI:
- "Schema for the `McpAppToolCallCompleteToolMetaUI` type."
+ "MCP App tool `_meta.ui` resource URI and SEP-1865 visibility captured with an `mcp_app.tool_call_complete` result."
resource_uri: str | None = None
visibility: list[str] | None = None
@@ -3474,7 +3509,7 @@ def to_dict(self) -> dict:
@dataclass
class McpServersLoadedServer:
- "Schema for the `McpServersLoadedServer` type."
+ "A single MCP server status summary in `session.mcp_servers_loaded`, including name, status, source, transport, and plugin metadata."
name: str
status: McpServerStatus
error: str | None = None
@@ -3663,7 +3698,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionApproved:
- "Schema for the `PermissionApproved` type."
+ "Permission response variant indicating the request was approved without persisting an approval rule."
kind: ClassVar[str] = "approved"
@staticmethod
@@ -3680,7 +3715,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionApprovedForLocation:
- "Schema for the `PermissionApprovedForLocation` type."
+ "Permission response variant that approves a request and persists the provided approval to a project location key."
approval: UserToolSessionApproval
kind: ClassVar[str] = "approved-for-location"
location_key: str
@@ -3705,7 +3740,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionApprovedForSession:
- "Schema for the `PermissionApprovedForSession` type."
+ "Permission response variant that approves a request and remembers the provided approval for the rest of the session."
approval: UserToolSessionApproval
kind: ClassVar[str] = "approved-for-session"
@@ -3726,7 +3761,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionCancelled:
- "Schema for the `PermissionCancelled` type."
+ "Permission response variant indicating the request was cancelled before use, with an optional reason."
kind: ClassVar[str] = "cancelled"
reason: str | None = None
@@ -3776,7 +3811,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionDeniedByContentExclusionPolicy:
- "Schema for the `PermissionDeniedByContentExclusionPolicy` type."
+ "Permission response variant denying a path under content exclusion policy, with the path and message."
kind: ClassVar[str] = "denied-by-content-exclusion-policy"
message: str
path: str
@@ -3801,7 +3836,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionDeniedByPermissionRequestHook:
- "Schema for the `PermissionDeniedByPermissionRequestHook` type."
+ "Permission response variant denied by a permission-request hook, with optional message and interrupt flag."
kind: ClassVar[str] = "denied-by-permission-request-hook"
interrupt: bool | None = None
message: str | None = None
@@ -3828,7 +3863,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionDeniedByRules:
- "Schema for the `PermissionDeniedByRules` type."
+ "Permission response variant denied because matching approval rules explicitly blocked the request."
kind: ClassVar[str] = "denied-by-rules"
rules: list[PermissionRule]
@@ -3849,7 +3884,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionDeniedInteractivelyByUser:
- "Schema for the `PermissionDeniedInteractivelyByUser` type."
+ "Permission response variant denied in an interactive user prompt, with optional feedback and force-reject flag."
kind: ClassVar[str] = "denied-interactively-by-user"
feedback: str | None = None
force_reject: bool | None = None
@@ -3876,7 +3911,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser:
- "Schema for the `PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser` type."
+ "Permission response variant denied because no approval rule matched and user confirmation was unavailable."
kind: ClassVar[str] = "denied-no-approval-rule-and-could-not-request-from-user"
@staticmethod
@@ -3899,6 +3934,8 @@ class PermissionPromptRequestCommands:
full_command_text: str
intention: str
kind: ClassVar[str] = "commands"
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
tool_call_id: str | None = None
warning: str | None = None
@@ -3909,6 +3946,7 @@ def from_dict(obj: Any) -> "PermissionPromptRequestCommands":
command_identifiers = from_list(from_str, obj.get("commandIdentifiers"))
full_command_text = from_str(obj.get("fullCommandText"))
intention = from_str(obj.get("intention"))
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
warning = from_union([from_none, from_str], obj.get("warning"))
return PermissionPromptRequestCommands(
@@ -3916,6 +3954,7 @@ def from_dict(obj: Any) -> "PermissionPromptRequestCommands":
command_identifiers=command_identifiers,
full_command_text=full_command_text,
intention=intention,
+ auto_approval=auto_approval,
tool_call_id=tool_call_id,
warning=warning,
)
@@ -3927,6 +3966,8 @@ def to_dict(self) -> dict:
result["fullCommandText"] = from_str(self.full_command_text)
result["intention"] = from_str(self.intention)
result["kind"] = self.kind
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.tool_call_id is not None:
result["toolCallId"] = from_union([from_none, from_str], self.tool_call_id)
if self.warning is not None:
@@ -3941,6 +3982,8 @@ class PermissionPromptRequestCustomTool:
tool_description: str
tool_name: str
args: Any = None
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
tool_call_id: str | None = None
@staticmethod
@@ -3949,11 +3992,13 @@ def from_dict(obj: Any) -> "PermissionPromptRequestCustomTool":
tool_description = from_str(obj.get("toolDescription"))
tool_name = from_str(obj.get("toolName"))
args = obj.get("args")
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
return PermissionPromptRequestCustomTool(
tool_description=tool_description,
tool_name=tool_name,
args=args,
+ auto_approval=auto_approval,
tool_call_id=tool_call_id,
)
@@ -3964,6 +4009,8 @@ def to_dict(self) -> dict:
result["toolName"] = from_str(self.tool_name)
if self.args is not None:
result["args"] = self.args
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.tool_call_id is not None:
result["toolCallId"] = from_union([from_none, from_str], self.tool_call_id)
return result
@@ -3974,6 +4021,8 @@ class PermissionPromptRequestExtensionManagement:
"Extension management permission prompt"
kind: ClassVar[str] = "extension-management"
operation: str
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
extension_name: str | None = None
tool_call_id: str | None = None
@@ -3981,10 +4030,12 @@ class PermissionPromptRequestExtensionManagement:
def from_dict(obj: Any) -> "PermissionPromptRequestExtensionManagement":
assert isinstance(obj, dict)
operation = from_str(obj.get("operation"))
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
extension_name = from_union([from_none, from_str], obj.get("extensionName"))
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
return PermissionPromptRequestExtensionManagement(
operation=operation,
+ auto_approval=auto_approval,
extension_name=extension_name,
tool_call_id=tool_call_id,
)
@@ -3993,6 +4044,8 @@ def to_dict(self) -> dict:
result: dict = {}
result["kind"] = self.kind
result["operation"] = from_str(self.operation)
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.extension_name is not None:
result["extensionName"] = from_union([from_none, from_str], self.extension_name)
if self.tool_call_id is not None:
@@ -4006,6 +4059,8 @@ class PermissionPromptRequestExtensionPermissionAccess:
capabilities: list[str]
extension_name: str
kind: ClassVar[str] = "extension-permission-access"
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
tool_call_id: str | None = None
@staticmethod
@@ -4013,10 +4068,12 @@ def from_dict(obj: Any) -> "PermissionPromptRequestExtensionPermissionAccess":
assert isinstance(obj, dict)
capabilities = from_list(from_str, obj.get("capabilities"))
extension_name = from_str(obj.get("extensionName"))
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
return PermissionPromptRequestExtensionPermissionAccess(
capabilities=capabilities,
extension_name=extension_name,
+ auto_approval=auto_approval,
tool_call_id=tool_call_id,
)
@@ -4025,6 +4082,8 @@ def to_dict(self) -> dict:
result["capabilities"] = from_list(from_str, self.capabilities)
result["extensionName"] = from_str(self.extension_name)
result["kind"] = self.kind
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.tool_call_id is not None:
result["toolCallId"] = from_union([from_none, from_str], self.tool_call_id)
return result
@@ -4035,6 +4094,8 @@ class PermissionPromptRequestHook:
"Hook confirmation permission prompt"
kind: ClassVar[str] = "hook"
tool_name: str
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
hook_message: str | None = None
tool_args: Any = None
tool_call_id: str | None = None
@@ -4043,11 +4104,13 @@ class PermissionPromptRequestHook:
def from_dict(obj: Any) -> "PermissionPromptRequestHook":
assert isinstance(obj, dict)
tool_name = from_str(obj.get("toolName"))
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
hook_message = from_union([from_none, from_str], obj.get("hookMessage"))
tool_args = obj.get("toolArgs")
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
return PermissionPromptRequestHook(
tool_name=tool_name,
+ auto_approval=auto_approval,
hook_message=hook_message,
tool_args=tool_args,
tool_call_id=tool_call_id,
@@ -4057,6 +4120,8 @@ def to_dict(self) -> dict:
result: dict = {}
result["kind"] = self.kind
result["toolName"] = from_str(self.tool_name)
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.hook_message is not None:
result["hookMessage"] = from_union([from_none, from_str], self.hook_message)
if self.tool_args is not None:
@@ -4074,6 +4139,8 @@ class PermissionPromptRequestMcp:
tool_name: str
tool_title: str
args: Any = None
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
tool_call_id: str | None = None
@staticmethod
@@ -4083,12 +4150,14 @@ def from_dict(obj: Any) -> "PermissionPromptRequestMcp":
tool_name = from_str(obj.get("toolName"))
tool_title = from_str(obj.get("toolTitle"))
args = obj.get("args")
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
return PermissionPromptRequestMcp(
server_name=server_name,
tool_name=tool_name,
tool_title=tool_title,
args=args,
+ auto_approval=auto_approval,
tool_call_id=tool_call_id,
)
@@ -4100,6 +4169,8 @@ def to_dict(self) -> dict:
result["toolTitle"] = from_str(self.tool_title)
if self.args is not None:
result["args"] = self.args
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.tool_call_id is not None:
result["toolCallId"] = from_union([from_none, from_str], self.tool_call_id)
return result
@@ -4111,6 +4182,8 @@ class PermissionPromptRequestMemory:
fact: str
kind: ClassVar[str] = "memory"
action: PermissionRequestMemoryAction | None = None
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
citations: str | None = None
direction: PermissionRequestMemoryDirection | None = None
reason: str | None = None
@@ -4122,6 +4195,7 @@ def from_dict(obj: Any) -> "PermissionPromptRequestMemory":
assert isinstance(obj, dict)
fact = from_str(obj.get("fact"))
action = from_union([from_none, lambda x: parse_enum(PermissionRequestMemoryAction, x)], obj.get("action"))
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
citations = from_union([from_none, from_str], obj.get("citations"))
direction = from_union([from_none, lambda x: parse_enum(PermissionRequestMemoryDirection, x)], obj.get("direction"))
reason = from_union([from_none, from_str], obj.get("reason"))
@@ -4130,6 +4204,7 @@ def from_dict(obj: Any) -> "PermissionPromptRequestMemory":
return PermissionPromptRequestMemory(
fact=fact,
action=action,
+ auto_approval=auto_approval,
citations=citations,
direction=direction,
reason=reason,
@@ -4143,6 +4218,8 @@ def to_dict(self) -> dict:
result["kind"] = self.kind
if self.action is not None:
result["action"] = from_union([from_none, lambda x: to_enum(PermissionRequestMemoryAction, x)], self.action)
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.citations is not None:
result["citations"] = from_union([from_none, from_str], self.citations)
if self.direction is not None:
@@ -4162,6 +4239,8 @@ class PermissionPromptRequestPath:
access_kind: PermissionPromptRequestPathAccessKind
kind: ClassVar[str] = "path"
paths: list[str]
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
tool_call_id: str | None = None
@staticmethod
@@ -4169,10 +4248,12 @@ def from_dict(obj: Any) -> "PermissionPromptRequestPath":
assert isinstance(obj, dict)
access_kind = parse_enum(PermissionPromptRequestPathAccessKind, obj.get("accessKind"))
paths = from_list(from_str, obj.get("paths"))
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
return PermissionPromptRequestPath(
access_kind=access_kind,
paths=paths,
+ auto_approval=auto_approval,
tool_call_id=tool_call_id,
)
@@ -4181,6 +4262,8 @@ def to_dict(self) -> dict:
result["accessKind"] = to_enum(PermissionPromptRequestPathAccessKind, self.access_kind)
result["kind"] = self.kind
result["paths"] = from_list(from_str, self.paths)
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.tool_call_id is not None:
result["toolCallId"] = from_union([from_none, from_str], self.tool_call_id)
return result
@@ -4192,6 +4275,8 @@ class PermissionPromptRequestRead:
intention: str
kind: ClassVar[str] = "read"
path: str
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
tool_call_id: str | None = None
@staticmethod
@@ -4199,10 +4284,12 @@ def from_dict(obj: Any) -> "PermissionPromptRequestRead":
assert isinstance(obj, dict)
intention = from_str(obj.get("intention"))
path = from_str(obj.get("path"))
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
return PermissionPromptRequestRead(
intention=intention,
path=path,
+ auto_approval=auto_approval,
tool_call_id=tool_call_id,
)
@@ -4211,6 +4298,8 @@ def to_dict(self) -> dict:
result["intention"] = from_str(self.intention)
result["kind"] = self.kind
result["path"] = from_str(self.path)
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.tool_call_id is not None:
result["toolCallId"] = from_union([from_none, from_str], self.tool_call_id)
return result
@@ -4222,6 +4311,8 @@ class PermissionPromptRequestUrl:
intention: str
kind: ClassVar[str] = "url"
url: str
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
tool_call_id: str | None = None
@staticmethod
@@ -4229,10 +4320,12 @@ def from_dict(obj: Any) -> "PermissionPromptRequestUrl":
assert isinstance(obj, dict)
intention = from_str(obj.get("intention"))
url = from_str(obj.get("url"))
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
return PermissionPromptRequestUrl(
intention=intention,
url=url,
+ auto_approval=auto_approval,
tool_call_id=tool_call_id,
)
@@ -4241,6 +4334,8 @@ def to_dict(self) -> dict:
result["intention"] = from_str(self.intention)
result["kind"] = self.kind
result["url"] = from_str(self.url)
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.tool_call_id is not None:
result["toolCallId"] = from_union([from_none, from_str], self.tool_call_id)
return result
@@ -4254,6 +4349,8 @@ class PermissionPromptRequestWrite:
file_name: str
intention: str
kind: ClassVar[str] = "write"
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ auto_approval: PermissionAutoApproval | None = None
new_file_contents: str | None = None
tool_call_id: str | None = None
@@ -4264,6 +4361,7 @@ def from_dict(obj: Any) -> "PermissionPromptRequestWrite":
diff = from_str(obj.get("diff"))
file_name = from_str(obj.get("fileName"))
intention = from_str(obj.get("intention"))
+ auto_approval = from_union([from_none, PermissionAutoApproval.from_dict], obj.get("autoApproval"))
new_file_contents = from_union([from_none, from_str], obj.get("newFileContents"))
tool_call_id = from_union([from_none, from_str], obj.get("toolCallId"))
return PermissionPromptRequestWrite(
@@ -4271,6 +4369,7 @@ def from_dict(obj: Any) -> "PermissionPromptRequestWrite":
diff=diff,
file_name=file_name,
intention=intention,
+ auto_approval=auto_approval,
new_file_contents=new_file_contents,
tool_call_id=tool_call_id,
)
@@ -4282,6 +4381,8 @@ def to_dict(self) -> dict:
result["fileName"] = from_str(self.file_name)
result["intention"] = from_str(self.intention)
result["kind"] = self.kind
+ if self.auto_approval is not None:
+ result["autoApproval"] = from_union([from_none, lambda x: to_class(PermissionAutoApproval, x)], self.auto_approval)
if self.new_file_contents is not None:
result["newFileContents"] = from_union([from_none, from_str], self.new_file_contents)
if self.tool_call_id is not None:
@@ -4622,7 +4723,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionRequestShellCommand:
- "Schema for the `PermissionRequestShellCommand` type."
+ "A parsed command identifier in a shell permission request, including whether it is read-only."
identifier: str
read_only: bool
@@ -4645,7 +4746,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionRequestShellPossibleUrl:
- "Schema for the `PermissionRequestShellPossibleUrl` type."
+ "A URL that may be accessed by a command in a shell permission request."
url: str
@staticmethod
@@ -4770,7 +4871,7 @@ def to_dict(self) -> dict:
@dataclass
class PermissionRule:
- "Schema for the `PermissionRule` type."
+ "A permission approval or denial rule matched against a tool request, identified by a rule kind with an optional argument value."
argument: str | None
kind: str
@@ -4905,7 +5006,7 @@ def to_dict(self) -> dict:
@dataclass
class SessionBackgroundTasksChangedData:
- "Schema for the `BackgroundTasksChangedData` type."
+ "Empty payload for `session.background_tasks_changed`, indicating background task state changed."
@staticmethod
def from_dict(obj: Any) -> "SessionBackgroundTasksChangedData":
assert isinstance(obj, dict)
@@ -5068,6 +5169,7 @@ def to_dict(self) -> dict:
class SessionCompactionStartData:
"Context window breakdown at the start of LLM-powered conversation compaction"
conversation_tokens: int | None = None
+ model: str | None = None
system_tokens: int | None = None
tool_definitions_tokens: int | None = None
@@ -5075,10 +5177,12 @@ class SessionCompactionStartData:
def from_dict(obj: Any) -> "SessionCompactionStartData":
assert isinstance(obj, dict)
conversation_tokens = from_union([from_none, from_int], obj.get("conversationTokens"))
+ model = from_union([from_none, from_str], obj.get("model"))
system_tokens = from_union([from_none, from_int], obj.get("systemTokens"))
tool_definitions_tokens = from_union([from_none, from_int], obj.get("toolDefinitionsTokens"))
return SessionCompactionStartData(
conversation_tokens=conversation_tokens,
+ model=model,
system_tokens=system_tokens,
tool_definitions_tokens=tool_definitions_tokens,
)
@@ -5087,6 +5191,8 @@ def to_dict(self) -> dict:
result: dict = {}
if self.conversation_tokens is not None:
result["conversationTokens"] = from_union([from_none, to_int], self.conversation_tokens)
+ if self.model is not None:
+ result["model"] = from_union([from_none, from_str], self.model)
if self.system_tokens is not None:
result["systemTokens"] = from_union([from_none, to_int], self.system_tokens)
if self.tool_definitions_tokens is not None:
@@ -5150,7 +5256,7 @@ def to_dict(self) -> dict:
@dataclass
class SessionCustomAgentsUpdatedData:
- "Schema for the `CustomAgentsUpdatedData` type."
+ "Payload of `session.custom_agents_updated` with loaded custom agents plus non-fatal warnings and fatal errors."
agents: list[CustomAgentsUpdatedAgent]
errors: list[str]
warnings: list[str]
@@ -5272,7 +5378,7 @@ def to_dict(self) -> dict:
@dataclass
class SessionExtensionsAttachmentsPushedData:
- "Schema for the `ExtensionsAttachmentsPushedData` type."
+ "Payload of `session.extensions.attachments_pushed` with extension-contributed attachments for the next send."
attachments: list[Attachment]
@staticmethod
@@ -5291,7 +5397,7 @@ def to_dict(self) -> dict:
@dataclass
class SessionExtensionsLoadedData:
- "Schema for the `ExtensionsLoadedData` type."
+ "Payload of `session.extensions_loaded` listing discovered extensions and their statuses."
extensions: list[ExtensionsLoadedExtension]
@staticmethod
@@ -5510,7 +5616,7 @@ def to_dict(self) -> dict:
@dataclass
class SessionMcpServerStatusChangedData:
- "Schema for the `McpServerStatusChangedData` type."
+ "Payload of `session.mcp_server_status_changed` for one MCP server's status and optional failure error."
server_name: str
status: McpServerStatus
error: str | None = None
@@ -5538,7 +5644,7 @@ def to_dict(self) -> dict:
@dataclass
class SessionMcpServersLoadedData:
- "Schema for the `McpServersLoadedData` type."
+ "Payload of `session.mcp_servers_loaded` listing MCP server status summaries."
servers: list[McpServersLoadedServer]
@staticmethod
@@ -5634,24 +5740,36 @@ def to_dict(self) -> dict:
@dataclass
class SessionPermissionsChangedData:
- "Permissions change details carrying the aggregate allow-all boolean transition."
+ "Permissions change details carrying the aggregate allow-all transition."
allow_all_permissions: bool
previous_allow_all_permissions: bool
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ allow_all_permission_mode: PermissionAllowAllMode | None = None
+ # Experimental: this field is part of an experimental API and may change or be removed.
+ previous_allow_all_permission_mode: PermissionAllowAllMode | None = None
@staticmethod
def from_dict(obj: Any) -> "SessionPermissionsChangedData":
assert isinstance(obj, dict)
allow_all_permissions = from_bool(obj.get("allowAllPermissions"))
previous_allow_all_permissions = from_bool(obj.get("previousAllowAllPermissions"))
+ allow_all_permission_mode = from_union([from_none, lambda x: parse_enum(PermissionAllowAllMode, x)], obj.get("allowAllPermissionMode"))
+ previous_allow_all_permission_mode = from_union([from_none, lambda x: parse_enum(PermissionAllowAllMode, x)], obj.get("previousAllowAllPermissionMode"))
return SessionPermissionsChangedData(
allow_all_permissions=allow_all_permissions,
previous_allow_all_permissions=previous_allow_all_permissions,
+ allow_all_permission_mode=allow_all_permission_mode,
+ previous_allow_all_permission_mode=previous_allow_all_permission_mode,
)
def to_dict(self) -> dict:
result: dict = {}
result["allowAllPermissions"] = from_bool(self.allow_all_permissions)
result["previousAllowAllPermissions"] = from_bool(self.previous_allow_all_permissions)
+ if self.allow_all_permission_mode is not None:
+ result["allowAllPermissionMode"] = from_union([from_none, lambda x: to_enum(PermissionAllowAllMode, x)], self.allow_all_permission_mode)
+ if self.previous_allow_all_permission_mode is not None:
+ result["previousAllowAllPermissionMode"] = from_union([from_none, lambda x: to_enum(PermissionAllowAllMode, x)], self.previous_allow_all_permission_mode)
return result
@@ -5979,7 +6097,7 @@ def to_dict(self) -> dict:
@dataclass
class SessionSkillsLoadedData:
- "Schema for the `SkillsLoadedData` type."
+ "Payload of `session.skills_loaded` listing resolved skill metadata."
skills: list[SkillsLoadedSkill]
@staticmethod
@@ -6157,7 +6275,7 @@ def to_dict(self) -> dict:
@dataclass
class SessionToolsUpdatedData:
- "Schema for the `ToolsUpdatedData` type."
+ "Payload of `session.tools_updated` identifying the model whose resolved tools were updated."
model: str
@staticmethod
@@ -6373,7 +6491,7 @@ def to_dict(self) -> dict:
@dataclass
class ShutdownModelMetric:
- "Schema for the `ShutdownModelMetric` type."
+ "Per-model shutdown metrics with request counts, token usage, nano-AI units, and token details."
requests: ShutdownModelMetricRequests
usage: ShutdownModelMetricUsage
token_details: dict[str, ShutdownModelMetricTokenDetail] | None = None
@@ -6434,7 +6552,7 @@ def to_dict(self) -> dict:
@dataclass
class ShutdownModelMetricTokenDetail:
- "Schema for the `ShutdownModelMetricTokenDetail` type."
+ "A token-type entry in a shutdown model metric, storing the accumulated token count."
token_count: int
@staticmethod
@@ -6489,7 +6607,7 @@ def to_dict(self) -> dict:
@dataclass
class ShutdownTokenDetail:
- "Schema for the `ShutdownTokenDetail` type."
+ "A session-wide shutdown token-type entry storing the accumulated token count."
token_count: int
@staticmethod
@@ -6514,6 +6632,7 @@ class SkillInvokedData:
path: str
allowed_tools: list[str] | None = None
description: str | None = None
+ model: str | None = None
plugin_name: str | None = None
plugin_version: str | None = None
source: str | None = None
@@ -6527,6 +6646,7 @@ def from_dict(obj: Any) -> "SkillInvokedData":
path = from_str(obj.get("path"))
allowed_tools = from_union([from_none, lambda x: from_list(from_str, x)], obj.get("allowedTools"))
description = from_union([from_none, from_str], obj.get("description"))
+ model = from_union([from_none, from_str], obj.get("model"))
plugin_name = from_union([from_none, from_str], obj.get("pluginName"))
plugin_version = from_union([from_none, from_str], obj.get("pluginVersion"))
source = from_union([from_none, from_str], obj.get("source"))
@@ -6537,6 +6657,7 @@ def from_dict(obj: Any) -> "SkillInvokedData":
path=path,
allowed_tools=allowed_tools,
description=description,
+ model=model,
plugin_name=plugin_name,
plugin_version=plugin_version,
source=source,
@@ -6552,6 +6673,8 @@ def to_dict(self) -> dict:
result["allowedTools"] = from_union([from_none, lambda x: from_list(from_str, x)], self.allowed_tools)
if self.description is not None:
result["description"] = from_union([from_none, from_str], self.description)
+ if self.model is not None:
+ result["model"] = from_union([from_none, from_str], self.model)
if self.plugin_name is not None:
result["pluginName"] = from_union([from_none, from_str], self.plugin_name)
if self.plugin_version is not None:
@@ -6565,7 +6688,7 @@ def to_dict(self) -> dict:
@dataclass
class SkillsLoadedSkill:
- "Schema for the `SkillsLoadedSkill` type."
+ "A single resolved skill in `session.skills_loaded`, including source, invocability, enabled state, path, and argument hint."
description: str
enabled: bool
name: str
@@ -6841,7 +6964,7 @@ def to_dict(self) -> dict:
@dataclass
class SystemNotificationAgentCompleted:
- "Schema for the `SystemNotificationAgentCompleted` type."
+ "System notification metadata for a background agent that completed or failed, including agent ID, type, status, description, and prompt."
agent_id: str
agent_type: str
status: SystemNotificationAgentCompletedStatus
@@ -6880,7 +7003,7 @@ def to_dict(self) -> dict:
@dataclass
class SystemNotificationAgentIdle:
- "Schema for the `SystemNotificationAgentIdle` type."
+ "System notification metadata for a background agent that became idle, including agent ID, type, and description."
agent_id: str
agent_type: str
type: ClassVar[str] = "agent_idle"
@@ -6933,7 +7056,7 @@ def to_dict(self) -> dict:
@dataclass
class SystemNotificationInstructionDiscovered:
- "Schema for the `SystemNotificationInstructionDiscovered` type."
+ "System notification metadata for an instruction file discovered during tool access, including source, trigger file, and tool."
source_path: str
trigger_file: str
trigger_tool: str
@@ -6967,7 +7090,7 @@ def to_dict(self) -> dict:
@dataclass
class SystemNotificationNewInboxMessage:
- "Schema for the `SystemNotificationNewInboxMessage` type."
+ "System notification metadata for a new inbox message, including entry ID, sender details, and summary."
entry_id: str
sender_name: str
sender_type: str
@@ -7000,7 +7123,7 @@ def to_dict(self) -> dict:
@dataclass
class SystemNotificationShellCompleted:
- "Schema for the `SystemNotificationShellCompleted` type."
+ "System notification metadata for a shell session that completed, including shell ID, optional exit code, and description."
shell_id: str
type: ClassVar[str] = "shell_completed"
description: str | None = None
@@ -7031,7 +7154,7 @@ def to_dict(self) -> dict:
@dataclass
class SystemNotificationShellDetachedCompleted:
- "Schema for the `SystemNotificationShellDetachedCompleted` type."
+ "System notification metadata for a detached shell session that completed, including shell ID and description."
shell_id: str
type: ClassVar[str] = "shell_detached_completed"
description: str | None = None
@@ -7471,7 +7594,7 @@ def to_dict(self) -> dict:
@dataclass
class ToolExecutionCompleteToolDescriptionMetaUI:
- "Schema for the `ToolExecutionCompleteToolDescriptionMetaUI` type."
+ "MCP Apps tool `_meta.ui` resource URI and visibility captured on `tool.execution_complete`."
resource_uri: str | None = None
visibility: list[ToolExecutionCompleteToolDescriptionMetaUIVisibility] | None = None
@@ -7554,7 +7677,7 @@ def to_dict(self) -> dict:
@dataclass
class ToolExecutionCompleteUIResourceMetaUI:
- "Schema for the `ToolExecutionCompleteUIResourceMetaUI` type."
+ "MCP Apps UI resource metadata for a completed tool result, including CSP, permissions, domain, and border preference."
csp: ToolExecutionCompleteUIResourceMetaUICsp | None = None
domain: str | None = None
permissions: ToolExecutionCompleteUIResourceMetaUIPermissions | None = None
@@ -7589,7 +7712,7 @@ def to_dict(self) -> dict:
@dataclass
class ToolExecutionCompleteUIResourceMetaUICsp:
- "Schema for the `ToolExecutionCompleteUIResourceMetaUICsp` type."
+ "CSP domain allowlists for an MCP Apps UI resource, including connect, resource, frame, and base URI domains."
base_uri_domains: list[str] | None = None
connect_domains: list[str] | None = None
frame_domains: list[str] | None = None
@@ -7624,7 +7747,7 @@ def to_dict(self) -> dict:
@dataclass
class ToolExecutionCompleteUIResourceMetaUIPermissions:
- "Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissions` type."
+ "Browser permission metadata for an MCP Apps UI resource, including camera, microphone, geolocation, and clipboard-write."
camera: ToolExecutionCompleteUIResourceMetaUIPermissionsCamera | None = None
clipboard_write: ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite | None = None
geolocation: ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation | None = None
@@ -7659,7 +7782,7 @@ def to_dict(self) -> dict:
@dataclass
class ToolExecutionCompleteUIResourceMetaUIPermissionsCamera:
- "Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissionsCamera` type."
+ "Marker object for camera permission on an MCP Apps UI resource."
@staticmethod
def from_dict(obj: Any) -> "ToolExecutionCompleteUIResourceMetaUIPermissionsCamera":
assert isinstance(obj, dict)
@@ -7671,7 +7794,7 @@ def to_dict(self) -> dict:
@dataclass
class ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite:
- "Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite` type."
+ "Marker object for clipboard-write permission on an MCP Apps UI resource."
@staticmethod
def from_dict(obj: Any) -> "ToolExecutionCompleteUIResourceMetaUIPermissionsClipboardWrite":
assert isinstance(obj, dict)
@@ -7683,7 +7806,7 @@ def to_dict(self) -> dict:
@dataclass
class ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation:
- "Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation` type."
+ "Marker object for geolocation permission on an MCP Apps UI resource."
@staticmethod
def from_dict(obj: Any) -> "ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation":
assert isinstance(obj, dict)
@@ -7695,7 +7818,7 @@ def to_dict(self) -> dict:
@dataclass
class ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone:
- "Schema for the `ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone` type."
+ "Marker object for microphone permission on an MCP Apps UI resource."
@staticmethod
def from_dict(obj: Any) -> "ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone":
assert isinstance(obj, dict)
@@ -7894,7 +8017,7 @@ def to_dict(self) -> dict:
@dataclass
class ToolExecutionStartToolDescriptionMetaUI:
- "Schema for the `ToolExecutionStartToolDescriptionMetaUI` type."
+ "MCP Apps tool `_meta.ui` resource URI and visibility captured on `tool.execution_start`."
resource_uri: str | None = None
visibility: list[ToolExecutionStartToolDescriptionMetaUIVisibility] | None = None
@@ -8014,7 +8137,7 @@ def to_dict(self) -> dict:
@dataclass
class UserMessageData:
- "Schema for the `UserMessageData` type."
+ "Payload of `user.message` with displayed and model-transformed content, attachments, source/delivery metadata, mode, and telemetry IDs."
content: str
agent_mode: UserMessageAgentMode | None = None
attachments: list[Attachment] | None = None
@@ -8083,7 +8206,7 @@ def to_dict(self) -> dict:
@dataclass
class UserToolSessionApprovalCommands:
- "Schema for the `UserToolSessionApprovalCommands` type."
+ "Session-scoped tool-approval rule for specific shell command identifiers."
command_identifiers: list[str]
kind: ClassVar[str] = "commands"
@@ -8104,7 +8227,7 @@ def to_dict(self) -> dict:
@dataclass
class UserToolSessionApprovalCustomTool:
- "Schema for the `UserToolSessionApprovalCustomTool` type."
+ "Session-scoped tool-approval rule for a custom tool, keyed by tool name."
kind: ClassVar[str] = "custom-tool"
tool_name: str
@@ -8125,7 +8248,7 @@ def to_dict(self) -> dict:
@dataclass
class UserToolSessionApprovalExtensionManagement:
- "Schema for the `UserToolSessionApprovalExtensionManagement` type."
+ "Session-scoped tool-approval rule for extension-management operations, optionally narrowed by operation."
kind: ClassVar[str] = "extension-management"
operation: str | None = None
@@ -8147,7 +8270,7 @@ def to_dict(self) -> dict:
@dataclass
class UserToolSessionApprovalExtensionPermissionAccess:
- "Schema for the `UserToolSessionApprovalExtensionPermissionAccess` type."
+ "Session-scoped tool-approval rule for an extension's permission-gated capability access, keyed by extension name."
extension_name: str
kind: ClassVar[str] = "extension-permission-access"
@@ -8168,7 +8291,7 @@ def to_dict(self) -> dict:
@dataclass
class UserToolSessionApprovalMcp:
- "Schema for the `UserToolSessionApprovalMcp` type."
+ "Session-scoped tool-approval rule for an MCP server tool, or all tools on the server when `toolName` is null."
kind: ClassVar[str] = "mcp"
server_name: str
tool_name: str | None
@@ -8193,7 +8316,7 @@ def to_dict(self) -> dict:
@dataclass
class UserToolSessionApprovalMemory:
- "Schema for the `UserToolSessionApprovalMemory` type."
+ "Session-scoped tool-approval rule for writes to long-term memory."
kind: ClassVar[str] = "memory"
@staticmethod
@@ -8210,7 +8333,7 @@ def to_dict(self) -> dict:
@dataclass
class UserToolSessionApprovalRead:
- "Schema for the `UserToolSessionApprovalRead` type."
+ "Session-scoped tool-approval rule for read-only filesystem operations."
kind: ClassVar[str] = "read"
@staticmethod
@@ -8227,7 +8350,7 @@ def to_dict(self) -> dict:
@dataclass
class UserToolSessionApprovalWrite:
- "Schema for the `UserToolSessionApprovalWrite` type."
+ "Session-scoped tool-approval rule for filesystem write operations."
kind: ClassVar[str] = "write"
@staticmethod
@@ -8461,6 +8584,19 @@ def _load_UserToolSessionApproval(obj: Any) -> "UserToolSessionApproval":
PermissionResult = PermissionApproved | PermissionApprovedForSession | PermissionApprovedForLocation | PermissionCancelled | PermissionDeniedByRules | PermissionDeniedNoApprovalRuleAndCouldNotRequestFromUser | PermissionDeniedInteractivelyByUser | PermissionDeniedByContentExclusionPolicy | PermissionDeniedByPermissionRequestHook
+# Experimental: this enum is part of an experimental API and may change or be removed.
+class AutoApprovalRecommendation(Enum):
+ "Outcome of the auto-approval safety judge for a permission request. Present only when auto mode is enabled; its absence means the judge did not evaluate the request (auto mode was off)."
+ # The judge evaluated the request and recommends automatically approving it.
+ APPROVE = "approve"
+ # The judge evaluated the request and does not recommend auto-approving it; explicit approval is required. Whether that means prompting, denying, or something else is the consumer's decision.
+ REQUIRE_APPROVAL = "requireApproval"
+ # Auto mode is enabled, but this request category is never auto-approvable (for example, sandbox-bypass requests), so the judge was not consulted.
+ EXCLUDED = "excluded"
+ # The judge was consulted but did not return a usable recommendation, so the request requires explicit approval.
+ ERROR = "error"
+
+
# Experimental: this enum is part of an experimental API and may change or be removed.
class CitationProvider(Enum):
"The system that produced a citation."
@@ -8472,6 +8608,17 @@ class CitationProvider(Enum):
CLIENT = "client"
+# Experimental: this enum is part of an experimental API and may change or be removed.
+class PermissionAllowAllMode(Enum):
+ "Allow-all mode for the session."
+ # Permission requests follow the normal approval flow.
+ OFF = "off"
+ # Tool, path, and URL permission requests are automatically approved.
+ ON = "on"
+ # Permission requests follow the normal approval flow with an LLM advisory recommendation attached; clients may choose to auto-approve requests the judge evaluated as acceptable.
+ AUTO = "auto"
+
+
class AbortReason(Enum):
"Finite reason code describing why the current turn was aborted"
# The local user requested the abort, for example by pressing Ctrl+C in the CLI.
@@ -9138,6 +9285,7 @@ def session_event_to_dict(x: SessionEvent) -> Any:
"AttachmentSelectionDetails",
"AttachmentSelectionDetailsEnd",
"AttachmentSelectionDetailsStart",
+ "AutoApprovalRecommendation",
"AutoModeSwitchCompletedData",
"AutoModeSwitchRequestedData",
"AutoModeSwitchResponse",
@@ -9218,9 +9366,11 @@ def session_event_to_dict(x: SessionEvent) -> Any:
"OmittedBinaryResult",
"OmittedBinaryType",
"PendingMessagesModifiedData",
+ "PermissionAllowAllMode",
"PermissionApproved",
"PermissionApprovedForLocation",
"PermissionApprovedForSession",
+ "PermissionAutoApproval",
"PermissionCancelled",
"PermissionCompletedData",
"PermissionDeniedByContentExclusionPolicy",
diff --git a/rust/src/generated/api_types.rs b/rust/src/generated/api_types.rs
index 621f0e610..d88832041 100644
--- a/rust/src/generated/api_types.rs
+++ b/rust/src/generated/api_types.rs
@@ -179,6 +179,8 @@ pub mod rpc_methods {
pub const SESSION_GITHUBAUTH_GETSTATUS: &str = "session.gitHubAuth.getStatus";
/// `session.gitHubAuth.setCredentials`
pub const SESSION_GITHUBAUTH_SETCREDENTIALS: &str = "session.gitHubAuth.setCredentials";
+ /// `session.debug.collectLogs`
+ pub const SESSION_DEBUG_COLLECTLOGS: &str = "session.debug.collectLogs";
/// `session.canvas.list`
pub const SESSION_CANVAS_LIST: &str = "session.canvas.list";
/// `session.canvas.listOpen`
@@ -490,6 +492,10 @@ pub mod rpc_methods {
/// `session.metadata.recomputeContextTokens`
pub const SESSION_METADATA_RECOMPUTECONTEXTTOKENS: &str =
"session.metadata.recomputeContextTokens";
+ /// `session.settings.snapshot`
+ pub const SESSION_SETTINGS_SNAPSHOT: &str = "session.settings.snapshot";
+ /// `session.settings.evaluatePredicate`
+ pub const SESSION_SETTINGS_EVALUATEPREDICATE: &str = "session.settings.evaluatePredicate";
/// `session.shell.exec`
pub const SESSION_SHELL_EXEC: &str = "session.shell.exec";
/// `session.shell.kill`
@@ -607,7 +613,7 @@ pub struct AbortResult {
pub success: bool,
}
-/// Schema for the `AccountAllUsers` type.
+/// Authenticated account entry returned by `account.getAllUsers`, with auth info and an optional associated token.
///
///
///
@@ -660,7 +666,7 @@ pub struct AccountGetQuotaRequest {
pub git_hub_token: Option
,
}
-/// Schema for the `AccountQuotaSnapshot` type.
+/// Quota usage snapshot for a Copilot quota type, including entitlement, used requests, overage, reset date, and remaining percentage.
///
///
///
@@ -769,7 +775,7 @@ pub struct AccountLogoutResult {
pub has_more_users: bool,
}
-/// Schema for the `AgentDiscoveryPath` type.
+/// Canonical directory where custom agents can be discovered or created, with scope, preference, and optional project path.
///
///
///
@@ -806,7 +812,7 @@ pub struct AgentDiscoveryPathList {
pub paths: Vec
,
}
-/// Schema for the `AgentInfo` type.
+/// Custom agent metadata, including identifiers, display details, source, tools, model, MCP servers, skills, and file path.
///
///
///
@@ -1181,13 +1187,16 @@ pub struct AgentsGetDiscoveryPathsRequest {
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AllowAllPermissionSetResult {
- /// Authoritative allow-all state after the mutation
+ /// Authoritative full allow-all state after the mutation
pub enabled: bool,
+ /// Authoritative allow-all mode after the mutation
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub mode: Option
,
/// Whether the operation succeeded
pub success: bool,
}
-/// Current full allow-all permission state.
+/// Current allow-all permission mode.
///
///
///
@@ -1200,9 +1209,12 @@ pub struct AllowAllPermissionSetResult {
pub struct AllowAllPermissionState {
/// Whether full allow-all permissions are currently active
pub enabled: bool,
+ /// Current allow-all mode
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub mode: Option
,
}
-/// Schema for the `CopilotUserResponseEndpoints` type.
+/// Endpoint URLs from the raw Copilot `/copilot_internal/v2/token` user-response passthrough.
///
///
///
@@ -1223,7 +1235,7 @@ pub struct CopilotUserResponseEndpoints {
pub telemetry: Option
,
}
-/// Schema for the `CopilotUserResponseQuotaSnapshotsChat` type.
+/// Chat quota snapshot from the raw Copilot user-response passthrough, with entitlement, overage, remaining quota, reset, and billing fields.
///
///
///
@@ -1234,36 +1246,48 @@ pub struct CopilotUserResponseEndpoints {
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CopilotUserResponseQuotaSnapshotsChat {
+ /// Number of requests/units included in the entitlement for this period; `-1` denotes an unlimited entitlement.
#[serde(skip_serializing_if = "Option::is_none")]
pub entitlement: Option
,
+ /// Whether the user currently has quota available; when `false` and not unlimited, further requests are blocked until the quota resets.
#[serde(rename = "has_quota", skip_serializing_if = "Option::is_none")]
pub has_quota: Option,
+ /// Count of additional pay-per-request usage consumed this period beyond the entitlement.
#[serde(rename = "overage_count", skip_serializing_if = "Option::is_none")]
pub overage_count: Option,
+ /// Whether usage may continue at pay-per-request rates once the entitlement is exhausted.
#[serde(rename = "overage_permitted", skip_serializing_if = "Option::is_none")]
pub overage_permitted: Option,
+ /// Percentage of the entitlement remaining at the snapshot timestamp.
#[serde(rename = "percent_remaining", skip_serializing_if = "Option::is_none")]
pub percent_remaining: Option,
+ /// Identifier of the quota bucket this snapshot describes.
#[serde(rename = "quota_id", skip_serializing_if = "Option::is_none")]
pub quota_id: Option,
+ /// Amount of quota remaining at the snapshot timestamp.
#[serde(rename = "quota_remaining", skip_serializing_if = "Option::is_none")]
pub quota_remaining: Option,
+ /// Unix epoch time, in seconds, when this quota next resets.
#[serde(rename = "quota_reset_at", skip_serializing_if = "Option::is_none")]
pub quota_reset_at: Option,
+ /// Remaining entitlement/quota amount at the snapshot timestamp.
#[serde(skip_serializing_if = "Option::is_none")]
pub remaining: Option,
+ /// UTC timestamp when this snapshot was captured.
#[serde(rename = "timestamp_utc", skip_serializing_if = "Option::is_none")]
pub timestamp_utc: Option,
+ /// Whether this category uses usage-based (token/AI-credit) billing rather than a fixed premium-request count.
#[serde(
rename = "token_based_billing",
skip_serializing_if = "Option::is_none"
)]
pub token_based_billing: Option,
+ /// Whether the entitlement for this category is unlimited.
#[serde(skip_serializing_if = "Option::is_none")]
pub unlimited: Option,
}
-/// Schema for the `CopilotUserResponseQuotaSnapshotsCompletions` type.
+/// Completions quota snapshot from the raw Copilot user-response passthrough, with entitlement, overage, remaining quota, reset, and billing fields.
///
///
///
@@ -1274,36 +1298,48 @@ pub struct CopilotUserResponseQuotaSnapshotsChat {
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CopilotUserResponseQuotaSnapshotsCompletions {
+ /// Number of requests/units included in the entitlement for this period; `-1` denotes an unlimited entitlement.
#[serde(skip_serializing_if = "Option::is_none")]
pub entitlement: Option
,
+ /// Whether the user currently has quota available; when `false` and not unlimited, further requests are blocked until the quota resets.
#[serde(rename = "has_quota", skip_serializing_if = "Option::is_none")]
pub has_quota: Option,
+ /// Count of additional pay-per-request usage consumed this period beyond the entitlement.
#[serde(rename = "overage_count", skip_serializing_if = "Option::is_none")]
pub overage_count: Option,
+ /// Whether usage may continue at pay-per-request rates once the entitlement is exhausted.
#[serde(rename = "overage_permitted", skip_serializing_if = "Option::is_none")]
pub overage_permitted: Option,
+ /// Percentage of the entitlement remaining at the snapshot timestamp.
#[serde(rename = "percent_remaining", skip_serializing_if = "Option::is_none")]
pub percent_remaining: Option,
+ /// Identifier of the quota bucket this snapshot describes.
#[serde(rename = "quota_id", skip_serializing_if = "Option::is_none")]
pub quota_id: Option,
+ /// Amount of quota remaining at the snapshot timestamp.
#[serde(rename = "quota_remaining", skip_serializing_if = "Option::is_none")]
pub quota_remaining: Option,
+ /// Unix epoch time, in seconds, when this quota next resets.
#[serde(rename = "quota_reset_at", skip_serializing_if = "Option::is_none")]
pub quota_reset_at: Option,
+ /// Remaining entitlement/quota amount at the snapshot timestamp.
#[serde(skip_serializing_if = "Option::is_none")]
pub remaining: Option,
+ /// UTC timestamp when this snapshot was captured.
#[serde(rename = "timestamp_utc", skip_serializing_if = "Option::is_none")]
pub timestamp_utc: Option,
+ /// Whether this category uses usage-based (token/AI-credit) billing rather than a fixed premium-request count.
#[serde(
rename = "token_based_billing",
skip_serializing_if = "Option::is_none"
)]
pub token_based_billing: Option,
+ /// Whether the entitlement for this category is unlimited.
#[serde(skip_serializing_if = "Option::is_none")]
pub unlimited: Option,
}
-/// Schema for the `CopilotUserResponseQuotaSnapshotsPremiumInteractions` type.
+/// Premium-interactions quota snapshot from the raw Copilot user-response passthrough, with entitlement, overage, remaining quota, reset, and billing fields.
///
///
///
@@ -1314,36 +1350,48 @@ pub struct CopilotUserResponseQuotaSnapshotsCompletions {
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CopilotUserResponseQuotaSnapshotsPremiumInteractions {
+ /// Number of requests/units included in the entitlement for this period; `-1` denotes an unlimited entitlement.
#[serde(skip_serializing_if = "Option::is_none")]
pub entitlement: Option
,
+ /// Whether the user currently has quota available; when `false` and not unlimited, further requests are blocked until the quota resets.
#[serde(rename = "has_quota", skip_serializing_if = "Option::is_none")]
pub has_quota: Option,
+ /// Count of additional pay-per-request usage consumed this period beyond the entitlement.
#[serde(rename = "overage_count", skip_serializing_if = "Option::is_none")]
pub overage_count: Option,
+ /// Whether usage may continue at pay-per-request rates once the entitlement is exhausted.
#[serde(rename = "overage_permitted", skip_serializing_if = "Option::is_none")]
pub overage_permitted: Option,
+ /// Percentage of the entitlement remaining at the snapshot timestamp.
#[serde(rename = "percent_remaining", skip_serializing_if = "Option::is_none")]
pub percent_remaining: Option,
+ /// Identifier of the quota bucket this snapshot describes.
#[serde(rename = "quota_id", skip_serializing_if = "Option::is_none")]
pub quota_id: Option,
+ /// Amount of quota remaining at the snapshot timestamp.
#[serde(rename = "quota_remaining", skip_serializing_if = "Option::is_none")]
pub quota_remaining: Option,
+ /// Unix epoch time, in seconds, when this quota next resets.
#[serde(rename = "quota_reset_at", skip_serializing_if = "Option::is_none")]
pub quota_reset_at: Option,
+ /// Remaining entitlement/quota amount at the snapshot timestamp.
#[serde(skip_serializing_if = "Option::is_none")]
pub remaining: Option,
+ /// UTC timestamp when this snapshot was captured.
#[serde(rename = "timestamp_utc", skip_serializing_if = "Option::is_none")]
pub timestamp_utc: Option,
+ /// Whether this category uses usage-based (token/AI-credit) billing rather than a fixed premium-request count.
#[serde(
rename = "token_based_billing",
skip_serializing_if = "Option::is_none"
)]
pub token_based_billing: Option,
+ /// Whether the entitlement for this category is unlimited.
#[serde(skip_serializing_if = "Option::is_none")]
pub unlimited: Option,
}
-/// Schema for the `CopilotUserResponseQuotaSnapshots` type.
+/// Quota snapshot map from the raw Copilot user-response passthrough, with chat, completions, premium-interactions, and other entries.
///
///
///
@@ -1354,13 +1402,13 @@ pub struct CopilotUserResponseQuotaSnapshotsPremiumInteractions {
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CopilotUserResponseQuotaSnapshots {
- /// Schema for the `CopilotUserResponseQuotaSnapshotsChat` type.
+ /// Chat quota snapshot from the raw Copilot user-response passthrough, with entitlement, overage, remaining quota, reset, and billing fields.
#[serde(skip_serializing_if = "Option::is_none")]
pub chat: Option
,
- /// Schema for the `CopilotUserResponseQuotaSnapshotsCompletions` type.
+ /// Completions quota snapshot from the raw Copilot user-response passthrough, with entitlement, overage, remaining quota, reset, and billing fields.
#[serde(skip_serializing_if = "Option::is_none")]
pub completions: Option,
- /// Schema for the `CopilotUserResponseQuotaSnapshotsPremiumInteractions` type.
+ /// Premium-interactions quota snapshot from the raw Copilot user-response passthrough, with entitlement, overage, remaining quota, reset, and billing fields.
#[serde(
rename = "premium_interactions",
skip_serializing_if = "Option::is_none"
@@ -1379,91 +1427,115 @@ pub struct CopilotUserResponseQuotaSnapshots {
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CopilotUserResponse {
+ /// Copilot access SKU identifier (e.g. `free_limited_copilot`, `copilot_for_business_seat_quota`) used to gate model and feature access.
#[serde(rename = "access_type_sku", skip_serializing_if = "Option::is_none")]
pub access_type_sku: Option,
+ /// Opaque analytics tracking identifier for the user, forwarded from the Copilot API.
#[serde(
rename = "analytics_tracking_id",
skip_serializing_if = "Option::is_none"
)]
pub analytics_tracking_id: Option,
+ /// Date the Copilot seat was assigned to the user, if applicable.
#[serde(rename = "assigned_date", skip_serializing_if = "Option::is_none")]
pub assigned_date: Option,
+ /// Whether the user is eligible to sign up for the free/limited Copilot tier.
#[serde(
rename = "can_signup_for_limited",
skip_serializing_if = "Option::is_none"
)]
pub can_signup_for_limited: Option,
+ /// Whether the user is able to upgrade their Copilot plan.
#[serde(rename = "can_upgrade_plan", skip_serializing_if = "Option::is_none")]
pub can_upgrade_plan: Option,
+ /// Whether Copilot chat is enabled for the user.
#[serde(rename = "chat_enabled", skip_serializing_if = "Option::is_none")]
pub chat_enabled: Option,
+ /// Whether CLI remote control is enabled for the user.
#[serde(
rename = "cli_remote_control_enabled",
skip_serializing_if = "Option::is_none"
)]
pub cli_remote_control_enabled: Option,
+ /// Whether cloud session storage is enabled for the user.
#[serde(
rename = "cloud_session_storage_enabled",
skip_serializing_if = "Option::is_none"
)]
pub cloud_session_storage_enabled: Option,
+ /// Whether the Codex agent is enabled for the user.
#[serde(
rename = "codex_agent_enabled",
skip_serializing_if = "Option::is_none"
)]
pub codex_agent_enabled: Option,
+ /// Copilot plan name for the user (e.g. `individual`, `business`, `enterprise`).
#[serde(rename = "copilot_plan", skip_serializing_if = "Option::is_none")]
pub copilot_plan: Option,
+ /// Whether `.copilotignore` content-exclusion support is enabled for the user.
#[serde(
rename = "copilotignore_enabled",
skip_serializing_if = "Option::is_none"
)]
pub copilotignore_enabled: Option,
- /// Schema for the `CopilotUserResponseEndpoints` type.
+ /// Endpoint URLs from the raw Copilot `/copilot_internal/v2/token` user-response passthrough.
#[serde(skip_serializing_if = "Option::is_none")]
pub endpoints: Option,
+ /// Whether MCP (Model Context Protocol) support is enabled for the user.
#[serde(rename = "is_mcp_enabled", skip_serializing_if = "Option::is_none")]
pub is_mcp_enabled: Option,
+ /// Whether the user is a GitHub/Microsoft staff member.
#[serde(rename = "is_staff", skip_serializing_if = "Option::is_none")]
pub is_staff: Option,
+ /// Per-category quota allotments for free/limited-tier users, keyed by quota category.
#[serde(
rename = "limited_user_quotas",
skip_serializing_if = "Option::is_none"
)]
pub limited_user_quotas: Option>,
+ /// Date the free/limited-tier user's quotas next reset, as a raw string from the Copilot API.
#[serde(
rename = "limited_user_reset_date",
skip_serializing_if = "Option::is_none"
)]
pub limited_user_reset_date: Option,
+ /// GitHub login of the authenticated user.
#[serde(skip_serializing_if = "Option::is_none")]
pub login: Option,
+ /// Per-category monthly quota allotments, keyed by quota category.
#[serde(rename = "monthly_quotas", skip_serializing_if = "Option::is_none")]
pub monthly_quotas: Option>,
+ /// Organizations the user belongs to, each with an optional login and display name.
#[serde(rename = "organization_list", skip_serializing_if = "Option::is_none")]
pub organization_list: Option,
+ /// Logins of the organizations the user belongs to.
#[serde(
rename = "organization_login_list",
skip_serializing_if = "Option::is_none"
)]
pub organization_login_list: Option>,
+ /// Date the user's usage quota next resets, as a raw string from the Copilot API; see `quota_reset_date_utc` for the UTC-normalized value.
#[serde(rename = "quota_reset_date", skip_serializing_if = "Option::is_none")]
pub quota_reset_date: Option,
+ /// UTC-normalized form of `quota_reset_date` (the date the user's usage quota next resets).
#[serde(
rename = "quota_reset_date_utc",
skip_serializing_if = "Option::is_none"
)]
pub quota_reset_date_utc: Option,
- /// Schema for the `CopilotUserResponseQuotaSnapshots` type.
+ /// Quota snapshot map from the raw Copilot user-response passthrough, with chat, completions, premium-interactions, and other entries.
#[serde(rename = "quota_snapshots", skip_serializing_if = "Option::is_none")]
pub quota_snapshots: Option,
+ /// Whether the user's telemetry is subject to restricted-data handling.
#[serde(
rename = "restricted_telemetry",
skip_serializing_if = "Option::is_none"
)]
pub restricted_telemetry: Option,
+ /// Raw passthrough of the Copilot API `te` flag for the user (an opaque server-side eligibility signal surfaced in telemetry); not otherwise interpreted by the runtime.
#[serde(skip_serializing_if = "Option::is_none")]
pub te: Option,
+ /// Whether the account is on usage-based (token/AI-credit) billing rather than a fixed premium-request quota.
#[serde(
rename = "token_based_billing",
skip_serializing_if = "Option::is_none"
@@ -1471,7 +1543,7 @@ pub struct CopilotUserResponse {
pub token_based_billing: Option,
}
-/// Schema for the `ApiKeyAuthInfo` type.
+/// Authentication-info variant for API-key authentication to a non-GitHub LLM provider, carrying the secret `apiKey` and host.
///
///
///
@@ -2417,7 +2489,7 @@ pub struct SlashCommandInput {
pub required: Option
,
}
-/// Schema for the `SlashCommandInfo` type.
+/// Slash-command metadata with name, aliases, description, kind, input hint, execution allowance, and schedulability.
///
///
///
@@ -2738,7 +2810,7 @@ pub struct ConnectRemoteSessionParams {
pub session_id: SessionId,
}
-/// Optional connection token presented by the SDK client during the handshake.
+/// Parameters for the `server.connect` handshake: an optional connection token and optional connection-level opt-ins (e.g. GitHub telemetry forwarding).
///
///
///
@@ -2749,6 +2821,9 @@ pub struct ConnectRemoteSessionParams {
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct ConnectRequest {
+ /// Opt this connection in to GitHub telemetry forwarding for its lifetime. When set, the runtime forwards every internal telemetry event it emits — across all sessions, plus sessionless events — to this connection over the `gitHubTelemetry.event` notification, in addition to the runtime's normal GitHub/CTS emission (dual-write). Intended for first-party hosts that re-emit the events into their own telemetry stores. Both unrestricted and restricted events are forwarded, each tagged with a `restricted` discriminator; a backstop drops restricted events when restricted telemetry is disabled.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub enable_git_hub_telemetry_forwarding: Option
,
/// Connection token; required when the server was started with COPILOT_CONNECTION_TOKEN
#[serde(skip_serializing_if = "Option::is_none")]
pub token: Option,
@@ -2794,7 +2869,7 @@ pub struct ContextHeaviestMessage {
pub tokens: i64,
}
-/// Schema for the `CopilotApiTokenAuthInfo` type.
+/// Authentication-info variant for direct Copilot API token auth sourced from environment variables, with public GitHub host.
///
///
///
@@ -2868,7 +2943,167 @@ pub struct CurrentToolMetadata {
pub namespaced_name: Option
,
}
-/// Schema for the `DiscoveredMcpServer` type.
+/// A file included in the redacted debug bundle.
+///
+///
+///
+/// **Experimental.** This type is part of an experimental wire-protocol surface
+/// and may change or be removed in future SDK or CLI releases.
+///
+///
+#[derive(Debug, Clone, Default, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct DebugCollectLogsCollectedEntry {
+ /// Relative path of the file in the staged bundle/archive.
+ pub bundle_path: String,
+ /// Redacted output size in bytes.
+ pub size_bytes: i64,
+ /// Source category for this entry.
+ pub source: DebugCollectLogsSource,
+}
+
+#[derive(Debug, Clone, Default, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct DebugCollectLogsDestinationArchive {
+ pub kind: DebugCollectLogsDestinationArchiveKind,
+ /// When true, create the archive atomically without overwriting an existing file by appending ` (N)` before the extension as needed. Defaults to false.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub no_overwrite: Option,
+ /// Absolute or server-relative path for the .tgz archive to create.
+ pub output_path: String,
+}
+
+#[derive(Debug, Clone, Default, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct DebugCollectLogsDestinationDirectory {
+ pub kind: DebugCollectLogsDestinationDirectoryKind,
+ /// Directory where redacted files should be staged. The directory is created if needed.
+ pub output_directory: String,
+}
+
+/// A caller-provided server-local file or directory to include in the debug bundle.
+///
+///
+///
+/// **Experimental.** This type is part of an experimental wire-protocol surface
+/// and may change or be removed in future SDK or CLI releases.
+///
+///
+#[derive(Debug, Clone, Default, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct DebugCollectLogsEntry {
+ /// Relative path to use inside the staged bundle/archive.
+ pub bundle_path: String,
+ /// Kind of source path to include.
+ pub kind: DebugCollectLogsEntryKind,
+ /// Server-local source path to read.
+ pub path: String,
+ /// How text content from this entry should be redacted. Defaults to plain-text.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub redaction: Option,
+ /// When true, collection fails if this entry cannot be read. Defaults to false, which records the entry in `skippedEntries`.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub required: Option,
+}
+
+/// Built-in session diagnostics to include in the bundle. Omitted fields default to true.
+///
+///
+///
+/// **Experimental.** This type is part of an experimental wire-protocol surface
+/// and may change or be removed in future SDK or CLI releases.
+///
+///
+#[derive(Debug, Clone, Default, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct DebugCollectLogsInclude {
+ /// Server-local path to the current process log. When set, it is included as `process.log` and its directory is searched for prior logs from the same session.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub current_process_log_path: Option,
+ /// Include the session event log (`events.jsonl`). Defaults to true.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub events: Option,
+ /// Server-local path to the session's events.jsonl file. Internal callers normally omit this and let the runtime derive it from the session.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub events_path: Option,
+ /// Maximum number of previous process logs to include. Defaults to 5.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub previous_process_log_limit: Option,
+ /// Server-local process log directory to search when `currentProcessLogPath` is unavailable, useful for collecting logs for inactive sessions.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub process_log_directory: Option,
+ /// Include process logs for the session. Defaults to true.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub process_logs: Option,
+ /// Include interactive shell logs written under the session's `shell-logs` directory. Defaults to true.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub shell_logs: Option,
+}
+
+/// Options for collecting a redacted session debug bundle.
+///
+///
+///
+/// **Experimental.** This type is part of an experimental wire-protocol surface
+/// and may change or be removed in future SDK or CLI releases.
+///
+///
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct DebugCollectLogsRequest {
+ /// Caller-provided server-local files or directories to include in addition to the runtime's built-in session diagnostics. This lets host applications add their own diagnostics without changing the API shape.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub additional_entries: Option>,
+ /// Where the redacted bundle should be written. Use `archive` to produce a .tgz, or `directory` to stage redacted files for caller-managed upload/post-processing.
+ pub destination: DebugCollectLogsDestination,
+ /// Which built-in session diagnostics to include. Omitted fields default to true.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub include: Option,
+}
+
+/// An optional debug bundle entry that could not be included.
+///
+///
+///
+/// **Experimental.** This type is part of an experimental wire-protocol surface
+/// and may change or be removed in future SDK or CLI releases.
+///
+///
+#[derive(Debug, Clone, Default, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct DebugCollectLogsSkippedEntry {
+ /// Relative path requested for this bundle entry.
+ pub bundle_path: String,
+ /// Server-local source path that could not be read.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub path: Option,
+ /// Reason the entry was skipped.
+ pub reason: String,
+}
+
+/// Result of collecting a redacted debug bundle.
+///
+///
+///
+/// **Experimental.** This type is part of an experimental wire-protocol surface
+/// and may change or be removed in future SDK or CLI releases.
+///
+///
+#[derive(Debug, Clone, Default, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct DebugCollectLogsResult {
+ /// Files included in the redacted bundle.
+ pub entries: Vec,
+ /// Destination kind that was written.
+ pub kind: DebugCollectLogsResultKind,
+ /// Actual archive path or staging directory path written. This may differ from the requested path when no-overwrite suffixing or fallback-to-temp-directory was needed.
+ pub path: String,
+ /// Optional files or directories that could not be included.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub skipped_entries: Option>,
+}
+
+/// MCP server discovered by `mcp.discover`, with config source, optional plugin source, transport type, and enabled state.
///
///
///
@@ -2926,7 +3161,7 @@ pub struct EnqueueCommandResult {
pub queued: bool,
}
-/// Schema for the `EnvAuthInfo` type.
+/// Authentication-info variant for a token sourced from an environment variable, with host, optional login, token, and env var name.
///
///
///
@@ -3065,7 +3300,7 @@ pub struct ExecuteCommandResult {
pub error: Option
,
}
-/// Schema for the `Extension` type.
+/// Discovered extension metadata, including source-qualified ID, name, discovery source, status, and optional process ID.
///
///
///
@@ -3471,7 +3706,7 @@ pub struct FolderTrustCheckResult {
pub trusted: bool,
}
-/// Schema for the `GhCliAuthInfo` type.
+/// Authentication-info variant for GitHub CLI credentials, carrying host, login, and the `gh auth token` value.
///
///
///
@@ -3584,7 +3819,7 @@ pub struct GitHubTelemetryEvent {
pub session_id: Option
,
}
-/// Payload for a `gitHubTelemetry.event` notification: a single GitHub telemetry event the runtime forwards to a host connection that opted into telemetry forwarding for the session.
+/// Payload for a `gitHubTelemetry.event` notification: a single GitHub telemetry event the runtime forwards to a host connection that opted into telemetry forwarding during the `server.connect` handshake.
///
///
///
@@ -3599,8 +3834,9 @@ pub struct GitHubTelemetryNotification {
pub event: GitHubTelemetryEvent,
/// Whether this is a restricted telemetry event (cli.restricted_telemetry). Hosts must route restricted events to first-party Microsoft stores only.
pub restricted: bool,
- /// Session the telemetry event belongs to.
- pub session_id: SessionId,
+ /// Session the telemetry event belongs to, when it is session-scoped. Omitted for sessionless events (for example, `server.sendTelemetry` calls with no session id), which are still forwarded to opted-in connections.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub session_id: Option
,
}
/// Pending external tool call request ID, with the tool result or an error describing why it failed.
@@ -3783,7 +4019,7 @@ pub struct HistoryTruncateResult {
pub events_removed: i64,
}
-/// Schema for the `HMACAuthInfo` type.
+/// Authentication-info variant for GitHub-internal HMAC auth, carrying the public GitHub host and HMAC secret.
///
///
///
@@ -3805,7 +4041,7 @@ pub struct HMACAuthInfo {
pub r#type: HMACAuthInfoType,
}
-/// Schema for the `InstalledPlugin` type.
+/// Installed plugin record from global state, with marketplace, version, install time, enabled state, cache path, and source.
///
///
///
@@ -3861,7 +4097,7 @@ pub struct InstalledPluginInfo {
pub version: Option
,
}
-/// Schema for the `InstalledPluginSourceGitHub` type.
+/// Source descriptor for a direct GitHub plugin install, with `owner/repo`, optional ref, and optional subpath.
///
///
///
@@ -3881,7 +4117,7 @@ pub struct InstalledPluginSourceGitHub {
pub source: InstalledPluginSourceGitHubSource,
}
-/// Schema for the `InstalledPluginSourceLocal` type.
+/// Source descriptor for a direct local plugin install, with a local filesystem path.
///
///
///
@@ -3897,7 +4133,7 @@ pub struct InstalledPluginSourceLocal {
pub source: InstalledPluginSourceLocalSource,
}
-/// Schema for the `InstalledPluginSourceUrl` type.
+/// Source descriptor for a direct URL plugin install, with URL, optional ref, and optional subpath.
///
///
///
@@ -3917,7 +4153,7 @@ pub struct InstalledPluginSourceUrl {
pub url: String,
}
-/// Schema for the `InstructionDiscoveryPath` type.
+/// Canonical file or directory where custom instructions can be discovered or created, with location, kind, preference, and project path.
///
///
///
@@ -3994,7 +4230,7 @@ pub struct InstructionsGetDiscoveryPathsRequest {
pub project_paths: Option
>,
}
-/// Schema for the `InstructionSource` type.
+/// Loaded instruction source for a session, including path, content, category, location, applicability, and optional description.
///
///
///
@@ -4077,9 +4313,18 @@ pub struct LlmInferenceHttpRequestChunkResult {}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LlmInferenceHttpRequestStartRequest {
+ /// Stable per-agent-instance id attributing this request to a specific agent trajectory. Present when the request originates from an agent turn; absent for requests issued outside any agent context (e.g. some SDK callers). A request with an `agentId` but no `parentAgentId` is a root-agent request; one carrying both is a subagent request. Sourced from the runtime's per-request agent context and surfaced on the envelope independently of transport, so it is available for both first-party (CAPI) and BYOK/custom-provider requests; on the CAPI transport the runtime derives the upstream `X-Agent-Task-Id` header from this same context. Consumers routing each provider call to a training trajectory should key on this rather than on lifecycle events, since it is available on the request path before sampling.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub agent_id: Option
,
pub headers: HashMap>,
+ /// Coarse classification of the interaction that produced this request. Open string for forward-compatibility; known values include `conversation-agent`, `conversation-subagent`, `conversation-sampling`, `conversation-background`, `conversation-compaction`, and `conversation-user`. Absent when the runtime did not classify the request. Comes from the runtime's per-request agent context independently of transport; on the CAPI transport the runtime derives the upstream `X-Interaction-Type` header from this same context.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub interaction_type: Option,
/// HTTP method, e.g. GET, POST.
pub method: String,
+ /// Id of the parent agent that spawned the agent issuing this request. Present only for subagent requests; absent for root-agent requests and non-agent requests. Combined with `agentId`, this lets consumers attribute a call to a child trajectory versus the root. Like `agentId`, it comes from the runtime's per-request agent context independently of transport; on the CAPI transport the runtime derives the upstream `X-Parent-Agent-Id` header from this same context.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub parent_agent_id: Option,
/// Opaque runtime-minted id, unique per in-flight request. The SDK uses this to correlate httpRequestChunk frames and to address its httpResponseStart / httpResponseChunk replies back to the runtime.
pub request_id: RequestId,
/// Id of the runtime session that triggered this request, when one is in scope. Absent for requests issued outside any session (e.g. startup model-catalog or capability resolution). This is a payload field — not a dispatch key — because the client-global API is registered process-wide rather than per session.
@@ -4234,7 +4479,7 @@ pub struct SessionContext {
pub repository: Option,
}
-/// Schema for the `LocalSessionMetadataValue` type.
+/// Persisted local session metadata, including identifiers, timestamps, summary/name, client, context, detached state, and task ID.
///
///
///
@@ -4423,7 +4668,7 @@ pub struct MarketplaceListResult {
pub marketplaces: Vec
,
}
-/// Schema for the `MarketplaceRefreshEntry` type.
+/// Per-marketplace refresh result, including marketplace name, success flag, and optional failure error.
///
///
///
@@ -4476,7 +4721,7 @@ pub struct MarketplaceRemoveResult {
pub removed: bool,
}
-/// Schema for the `McpAllowedServer` type.
+/// MCP server allowed by policy, with server name and optional PII-free explanatory note.
///
///
///
@@ -4686,7 +4931,7 @@ pub struct McpAppsReadResourceRequest {
pub uri: String,
}
-/// Schema for the `McpAppsResourceContent` type.
+/// MCP Apps resource content with URI, optional MIME type, text or base64 blob, and resource metadata.
///
///
///
@@ -5026,7 +5271,7 @@ pub struct McpExecuteSamplingParams {
pub server_name: String,
}
-/// Schema for the `McpFilteredServer` type.
+/// MCP server filtered by policy, with name, reason, optional redacted reason, and enterprise login.
///
///
///
@@ -5199,7 +5444,7 @@ pub struct McpListToolsRequest {
pub server_name: String,
}
-/// Schema for the `McpTools` type.
+/// MCP tool metadata with tool name and optional description.
///
///
///
@@ -5461,7 +5706,7 @@ pub struct McpSamplingExecutionResult {
pub result: Option
,
}
-/// Schema for the `McpServer` type.
+/// MCP server status entry, including config source/plugin source and any connection error.
///
///
///
@@ -6277,7 +6522,7 @@ pub struct ModelPolicy {
pub terms: Option
,
}
-/// Schema for the `Model` type.
+/// Copilot model metadata, including identifier, display name, capabilities, policy, billing, reasoning efforts, and picker categories.
///
///
///
@@ -6663,7 +6908,7 @@ pub struct NameSetRequest {
pub name: String,
}
-/// Schema for the `OptionsUpdateAdditionalContentExclusionPolicyRuleSource` type.
+/// Source descriptor for a `session.options.update` content-exclusion rule, with source name and type.
///
///
///
@@ -6678,7 +6923,7 @@ pub struct OptionsUpdateAdditionalContentExclusionPolicyRuleSource {
pub r#type: String,
}
-/// Schema for the `OptionsUpdateAdditionalContentExclusionPolicyRule` type.
+/// Single content-exclusion rule supplied to `session.options.update`, with paths, match conditions, and source.
///
///
///
@@ -6694,11 +6939,11 @@ pub struct OptionsUpdateAdditionalContentExclusionPolicyRule {
#[serde(skip_serializing_if = "Option::is_none")]
pub if_none_match: Option
>,
pub paths: Vec,
- /// Schema for the `OptionsUpdateAdditionalContentExclusionPolicyRuleSource` type.
+ /// Source descriptor for a `session.options.update` content-exclusion rule, with source name and type.
pub source: OptionsUpdateAdditionalContentExclusionPolicyRuleSource,
}
-/// Schema for the `OptionsUpdateAdditionalContentExclusionPolicy` type.
+/// Content-exclusion policy supplied to `session.options.update`, with rules, last-updated data, and scope.
///
///
///
@@ -6716,7 +6961,7 @@ pub struct OptionsUpdateAdditionalContentExclusionPolicy {
pub scope: OptionsUpdateAdditionalContentExclusionPolicyScope,
}
-/// Schema for the `PendingPermissionRequest` type.
+/// Pending permission prompt reconstructed from event history, with request ID and user-facing prompt details.
///
///
///
@@ -6748,7 +6993,7 @@ pub struct PendingPermissionRequestList {
pub items: Vec
,
}
-/// Schema for the `PermissionDecisionApproveOnce` type.
+/// Permission-decision request variant to approve only the current permission request.
///
///
///
@@ -6763,7 +7008,7 @@ pub struct PermissionDecisionApproveOnce {
pub kind: PermissionDecisionApproveOnceKind,
}
-/// Schema for the `PermissionDecisionApproveForSessionApprovalCommands` type.
+/// Session-scoped approval details for specific command identifiers.
///
///
///
@@ -6780,7 +7025,7 @@ pub struct PermissionDecisionApproveForSessionApprovalCommands {
pub kind: PermissionDecisionApproveForSessionApprovalCommandsKind,
}
-/// Schema for the `PermissionDecisionApproveForSessionApprovalRead` type.
+/// Session-scoped approval details for read-only filesystem operations.
///
///
///
@@ -6795,7 +7040,7 @@ pub struct PermissionDecisionApproveForSessionApprovalRead {
pub kind: PermissionDecisionApproveForSessionApprovalReadKind,
}
-/// Schema for the `PermissionDecisionApproveForSessionApprovalWrite` type.
+/// Session-scoped approval details for filesystem write operations.
///
///
///
@@ -6810,7 +7055,7 @@ pub struct PermissionDecisionApproveForSessionApprovalWrite {
pub kind: PermissionDecisionApproveForSessionApprovalWriteKind,
}
-/// Schema for the `PermissionDecisionApproveForSessionApprovalMcp` type.
+/// Session-scoped approval details for an MCP server tool, or all tools on the server when `toolName` is null.
///
///
///
@@ -6829,7 +7074,7 @@ pub struct PermissionDecisionApproveForSessionApprovalMcp {
pub tool_name: Option
,
}
-/// Schema for the `PermissionDecisionApproveForSessionApprovalMcpSampling` type.
+/// Session-scoped approval details for MCP sampling requests from a server.
///
///
///
@@ -6846,7 +7091,7 @@ pub struct PermissionDecisionApproveForSessionApprovalMcpSampling {
pub server_name: String,
}
-/// Schema for the `PermissionDecisionApproveForSessionApprovalMemory` type.
+/// Session-scoped approval details for writes to long-term memory.
///
///
///
@@ -6861,7 +7106,7 @@ pub struct PermissionDecisionApproveForSessionApprovalMemory {
pub kind: PermissionDecisionApproveForSessionApprovalMemoryKind,
}
-/// Schema for the `PermissionDecisionApproveForSessionApprovalCustomTool` type.
+/// Session-scoped approval details for a custom tool, keyed by tool name.
///
///
///
@@ -6878,7 +7123,7 @@ pub struct PermissionDecisionApproveForSessionApprovalCustomTool {
pub tool_name: String,
}
-/// Schema for the `PermissionDecisionApproveForSessionApprovalExtensionManagement` type.
+/// Session-scoped approval details for extension-management operations, optionally narrowed by operation.
///
///
///
@@ -6896,7 +7141,7 @@ pub struct PermissionDecisionApproveForSessionApprovalExtensionManagement {
pub operation: Option
,
}
-/// Schema for the `PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess` type.
+/// Session-scoped approval details for an extension's permission-gated capability access, keyed by extension name.
///
///
///
@@ -6913,7 +7158,7 @@ pub struct PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess
pub kind: PermissionDecisionApproveForSessionApprovalExtensionPermissionAccessKind,
}
-/// Schema for the `PermissionDecisionApproveForSession` type.
+/// Permission-decision request variant to approve for the rest of the session, with optional tool approval or URL domain.
///
///
///
@@ -6934,7 +7179,7 @@ pub struct PermissionDecisionApproveForSession {
pub kind: PermissionDecisionApproveForSessionKind,
}
-/// Schema for the `PermissionDecisionApproveForLocationApprovalCommands` type.
+/// Location-scoped approval details for specific command identifiers.
///
///
///
@@ -6951,7 +7196,7 @@ pub struct PermissionDecisionApproveForLocationApprovalCommands {
pub kind: PermissionDecisionApproveForLocationApprovalCommandsKind,
}
-/// Schema for the `PermissionDecisionApproveForLocationApprovalRead` type.
+/// Location-scoped approval details for read-only filesystem operations.
///
///