diff --git a/dotnet/src/Generated/Rpc.cs b/dotnet/src/Generated/Rpc.cs index d11aef4be6..87b3f521b3 100644 --- a/dotnet/src/Generated/Rpc.cs +++ b/dotnet/src/Generated/Rpc.cs @@ -356,7 +356,7 @@ public sealed class ModelCapabilitiesLimits [Experimental(Diagnostics.Experimental)] public sealed class ModelCapabilitiesSupports { - /// Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + /// Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing but 'adaptive' (e.g. fable, mythos). [JsonPropertyName("adaptive_thinking")] public AdaptiveThinkingSupport? AdaptiveThinking { get; set; } @@ -5926,6 +5926,10 @@ internal sealed class SessionCancelAllBackgroundAgentsRequest [Experimental(Diagnostics.Experimental)] internal sealed class ShutdownRequest { + /// Dispatch deferred sessionEnd hooks in the background with their full per-hook timeoutSec instead of awaiting them under the short shared shutdown budget. Set this when the host process keeps running after the session closes (for example the CLI's /clear), so a slow hook neither blocks the close nor is aborted. Hooks still detached when the process later exits are terminated with it. Defaults to false. + [JsonPropertyName("detachSessionEndHooks")] + public bool? DetachSessionEndHooks { get; set; } + /// Optional human-readable reason. Typically the message of the error that triggered shutdown when type is 'error'. [JsonPropertyName("reason")] public string? Reason { get; set; } @@ -8111,7 +8115,7 @@ public sealed class ModelCapabilitiesOverrideLimits [Experimental(Diagnostics.Experimental)] public sealed class ModelCapabilitiesOverrideSupports { - /// Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + /// Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing but 'adaptive' (e.g. fable, mythos). [JsonPropertyName("adaptive_thinking")] public AdaptiveThinkingSupport? AdaptiveThinking { get; set; } @@ -8860,7 +8864,7 @@ internal sealed class WorkspacesEnsureRequest [Experimental(Diagnostics.Experimental)] public sealed class WorkspacesListFilesResult { - /// Relative file paths in the workspace files directory. + /// Slash-separated relative file paths in the workspace files directory. [JsonPropertyName("files")] public IList Files { get => field ??= []; set; } } @@ -8887,7 +8891,7 @@ public sealed class WorkspacesReadFileResult [Experimental(Diagnostics.Experimental)] internal sealed class WorkspacesReadFileRequest { - /// Relative path within the workspace files directory. + /// Slash-separated relative path within the workspace files directory. [JsonPropertyName("path")] public string Path { get; set; } = string.Empty; @@ -8904,13 +8908,106 @@ internal sealed class WorkspacesCreateFileRequest [JsonPropertyName("content")] public string Content { get; set; } = string.Empty; - /// Relative path within the workspace files directory. + /// Slash-separated relative path within the workspace files directory. + [JsonPropertyName("path")] + public string Path { get; set; } = string.Empty; + + /// Target session identifier. + [JsonPropertyName("sessionId")] + public string SessionId { get; set; } = string.Empty; +} + +/// Filesystem metadata for a path in the session workspace files directory. +[Experimental(Diagnostics.Experimental)] +public sealed class WorkspacesStatFileResult +{ + /// Creation time in Unix epoch milliseconds. + [JsonPropertyName("birthtimeMs")] + public double BirthtimeMs { get; set; } + + /// Whether the path identifies a directory. + [JsonPropertyName("isDirectory")] + public bool IsDirectory { get; set; } + + /// Whether the path identifies a regular file. + [JsonPropertyName("isFile")] + public bool IsFile { get; set; } + + /// Last modification time in Unix epoch milliseconds. + [JsonPropertyName("mtimeMs")] + public double MtimeMs { get; set; } + + /// Size in bytes. + [JsonPropertyName("size")] + public double Size { get; set; } +} + +/// Relative path of the workspace file or directory to inspect. +[Experimental(Diagnostics.Experimental)] +internal sealed class WorkspacesStatFileRequest +{ + /// Slash-separated relative path within the workspace files directory. + [JsonPropertyName("path")] + public string Path { get; set; } = string.Empty; + + /// Target session identifier. + [JsonPropertyName("sessionId")] + public string SessionId { get; set; } = string.Empty; +} + +/// Directory to create within the session workspace files directory. +[Experimental(Diagnostics.Experimental)] +internal sealed class WorkspacesCreateDirectoryRequest +{ + /// Slash-separated relative path within the workspace files directory. + [JsonPropertyName("path")] + public string Path { get; set; } = string.Empty; + + /// Whether to create missing parent directories. Defaults to false. + [JsonPropertyName("recursive")] + public bool? Recursive { get; set; } + + /// Target session identifier. + [JsonPropertyName("sessionId")] + public string SessionId { get; set; } = string.Empty; +} + +/// File or directory to remove from the session workspace files directory. +[Experimental(Diagnostics.Experimental)] +internal sealed class WorkspacesRemovePathRequest +{ + /// Whether a missing path should be treated as success. Defaults to false. + [JsonPropertyName("force")] + public bool? Force { get; set; } + + /// Slash-separated relative path within the workspace files directory. [JsonPropertyName("path")] public string Path { get; set; } = string.Empty; + /// Whether to remove directory contents recursively. Defaults to false. + [JsonPropertyName("recursive")] + public bool? Recursive { get; set; } + + /// Target session identifier. + [JsonPropertyName("sessionId")] + public string SessionId { get; set; } = string.Empty; +} + +/// Source and destination paths for a rename within the session workspace files directory. +[Experimental(Diagnostics.Experimental)] +internal sealed class WorkspacesRenamePathRequest +{ + /// Slash-separated destination path relative to the workspace files directory. + [JsonPropertyName("destination")] + public string Destination { get; set; } = string.Empty; + /// Target session identifier. [JsonPropertyName("sessionId")] public string SessionId { get; set; } = string.Empty; + + /// Slash-separated source path relative to the workspace files directory. + [JsonPropertyName("source")] + public string Source { get; set; } = string.Empty; } /// Workspace checkpoint metadata with assigned number, human-readable title, and checkpoint filename. @@ -20905,9 +21002,12 @@ public AdaptiveThinkingSupport(string value) /// The model accepts adaptive thinking but also accepts thinking.type='enabled'. public static AdaptiveThinkingSupport Optional { get; } = new("optional"); - /// The model only accepts adaptive thinking and rejects thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + /// The model defaults to adaptive thinking and rejects thinking.type='enabled' with HTTP 400, but still accepts thinking.type='disabled' (e.g. opus-4.7/4.8/5, sonnet-5). public static AdaptiveThinkingSupport Required { get; } = new("required"); + /// The model accepts only thinking.type='adaptive'; 'enabled', 'disabled', and an omitted thinking block all fail with HTTP 400 (e.g. fable, mythos). + public static AdaptiveThinkingSupport AdaptiveOnly { get; } = new("adaptive_only"); + /// Returns a value indicating whether two instances are equivalent. public static bool operator ==(AdaptiveThinkingSupport left, AdaptiveThinkingSupport right) => left.Equals(right); @@ -30928,6 +31028,9 @@ public PermissionModeSource(string value) /// The mode was set at startup by the `defaultPermissionMode` user setting. public static PermissionModeSource UserSetting { get; } = new("user_setting"); + /// The mode was set at startup by authenticated organization targeting. + public static PermissionModeSource OrganizationTargeting { get; } = new("organization_targeting"); + /// The mode was set through an RPC caller. public static PermissionModeSource Rpc { get; } = new("rpc"); @@ -34686,13 +34789,14 @@ public async Task CancelAllBackgroundAgentsAsync(CancellationToken cancell /// Shuts down the session and persists its final state. Awaits any deferred sessionEnd hooks before resolving so user-supplied hook scripts complete before the runtime tears down. /// Why the session is being shut down. Defaults to "routine" when omitted. /// Optional human-readable reason. Typically the message of the error that triggered shutdown when type is 'error'. + /// Dispatch deferred sessionEnd hooks in the background with their full per-hook timeoutSec instead of awaiting them under the short shared shutdown budget. Set this when the host process keeps running after the session closes (for example the CLI's /clear), so a slow hook neither blocks the close nor is aborted. Hooks still detached when the process later exits are terminated with it. Defaults to false. /// The to monitor for cancellation requests. The default is . [Experimental(Diagnostics.Experimental)] - public async Task ShutdownAsync(ShutdownType? type = null, string? reason = null, CancellationToken cancellationToken = default) + public async Task ShutdownAsync(ShutdownType? type = null, string? reason = null, bool? detachSessionEndHooks = null, CancellationToken cancellationToken = default) { _session.ThrowIfDisposed(); - var request = new ShutdownRequest { SessionId = _session.SessionId, Type = type, Reason = reason }; + var request = new ShutdownRequest { SessionId = _session.SessionId, Type = type, Reason = reason, DetachSessionEndHooks = detachSessionEndHooks }; await CopilotClient.InvokeRpcAsync(_session.Rpc, "session.shutdown", [request], cancellationToken); } @@ -35662,7 +35766,7 @@ public async Task ListFilesAsync(CancellationToken ca } /// Reads a file from the session workspace files directory. - /// Relative path within the workspace files directory. + /// Slash-separated relative path within the workspace files directory. /// The to monitor for cancellation requests. The default is . /// Contents of the requested workspace file as a UTF-8 string. public async Task ReadFileAsync(string path, CancellationToken cancellationToken = default) @@ -35675,7 +35779,7 @@ public async Task ReadFileAsync(string path, Cancellat } /// Creates or overwrites a file in the session workspace files directory. - /// Relative path within the workspace files directory. + /// Slash-separated relative path within the workspace files directory. /// File content to write as a UTF-8 string. /// The to monitor for cancellation requests. The default is . public async Task CreateFileAsync(string path, string content, CancellationToken cancellationToken = default) @@ -35688,6 +35792,60 @@ public async Task CreateFileAsync(string path, string content, CancellationToken await CopilotClient.InvokeRpcAsync(_session.Rpc, "session.workspaces.createFile", [request], cancellationToken); } + /// Returns metadata for a file or directory in the session workspace files directory. + /// Slash-separated relative path within the workspace files directory. + /// The to monitor for cancellation requests. The default is . + /// Filesystem metadata for a path in the session workspace files directory. + public async Task StatFileAsync(string path, CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(path); + _session.ThrowIfDisposed(); + + var request = new WorkspacesStatFileRequest { SessionId = _session.SessionId, Path = path }; + return await CopilotClient.InvokeRpcAsync(_session.Rpc, "session.workspaces.statFile", [request], cancellationToken); + } + + /// Creates a directory in the session workspace files directory. + /// Slash-separated relative path within the workspace files directory. + /// Whether to create missing parent directories. Defaults to false. + /// The to monitor for cancellation requests. The default is . + public async Task CreateDirectoryAsync(string path, bool? recursive = null, CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(path); + _session.ThrowIfDisposed(); + + var request = new WorkspacesCreateDirectoryRequest { SessionId = _session.SessionId, Path = path, Recursive = recursive }; + await CopilotClient.InvokeRpcAsync(_session.Rpc, "session.workspaces.createDirectory", [request], cancellationToken); + } + + /// Removes a file or directory from the session workspace files directory. + /// Slash-separated relative path within the workspace files directory. + /// Whether to remove directory contents recursively. Defaults to false. + /// Whether a missing path should be treated as success. Defaults to false. + /// The to monitor for cancellation requests. The default is . + public async Task RemovePathAsync(string path, bool? recursive = null, bool? force = null, CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(path); + _session.ThrowIfDisposed(); + + var request = new WorkspacesRemovePathRequest { SessionId = _session.SessionId, Path = path, Recursive = recursive, Force = force }; + await CopilotClient.InvokeRpcAsync(_session.Rpc, "session.workspaces.removePath", [request], cancellationToken); + } + + /// Renames a file or directory within the session workspace files directory. + /// Slash-separated source path relative to the workspace files directory. + /// Slash-separated destination path relative to the workspace files directory. + /// The to monitor for cancellation requests. The default is . + public async Task RenamePathAsync(string source, string destination, CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(source); + ArgumentNullException.ThrowIfNull(destination); + _session.ThrowIfDisposed(); + + var request = new WorkspacesRenamePathRequest { SessionId = _session.SessionId, Source = source, Destination = destination }; + await CopilotClient.InvokeRpcAsync(_session.Rpc, "session.workspaces.renamePath", [request], cancellationToken); + } + /// Lists workspace checkpoints in chronological order. /// The to monitor for cancellation requests. The default is . /// Workspace checkpoints in chronological order; empty when the workspace is not enabled. @@ -39544,6 +39702,7 @@ public static void RegisterClientGlobalApiHandlers(JsonRpc rpc, ClientGlobalApiH [JsonSerializable(typeof(GitHub.Copilot.ToolExecutionCompleteError), TypeInfoPropertyName = "SessionEventsToolExecutionCompleteError")] [JsonSerializable(typeof(GitHub.Copilot.ToolExecutionCompleteEvent), TypeInfoPropertyName = "SessionEventsToolExecutionCompleteEvent")] [JsonSerializable(typeof(GitHub.Copilot.ToolExecutionCompleteResult), TypeInfoPropertyName = "SessionEventsToolExecutionCompleteResult")] +[JsonSerializable(typeof(GitHub.Copilot.ToolExecutionCompleteShellExecution), TypeInfoPropertyName = "SessionEventsToolExecutionCompleteShellExecution")] [JsonSerializable(typeof(GitHub.Copilot.ToolExecutionCompleteToolDescription), TypeInfoPropertyName = "SessionEventsToolExecutionCompleteToolDescription")] [JsonSerializable(typeof(GitHub.Copilot.ToolExecutionCompleteToolDescriptionMeta), TypeInfoPropertyName = "SessionEventsToolExecutionCompleteToolDescriptionMeta")] [JsonSerializable(typeof(GitHub.Copilot.ToolExecutionCompleteToolDescriptionMetaUI), TypeInfoPropertyName = "SessionEventsToolExecutionCompleteToolDescriptionMetaUI")] @@ -40509,6 +40668,7 @@ public static void RegisterClientGlobalApiHandlers(JsonRpc rpc, ClientGlobalApiH [JsonSerializable(typeof(WorkspacesAddSummaryResultWorkspace))] [JsonSerializable(typeof(WorkspacesAutopilotObjectiveExistsResult))] [JsonSerializable(typeof(WorkspacesCheckpoints))] +[JsonSerializable(typeof(WorkspacesCreateDirectoryRequest))] [JsonSerializable(typeof(WorkspacesCreateFileRequest))] [JsonSerializable(typeof(WorkspacesDeleteAutopilotObjectiveResult))] [JsonSerializable(typeof(WorkspacesDiffRequest))] @@ -40522,9 +40682,13 @@ public static void RegisterClientGlobalApiHandlers(JsonRpc rpc, ClientGlobalApiH [JsonSerializable(typeof(WorkspacesReadCheckpointResult))] [JsonSerializable(typeof(WorkspacesReadFileRequest))] [JsonSerializable(typeof(WorkspacesReadFileResult))] +[JsonSerializable(typeof(WorkspacesRemovePathRequest))] +[JsonSerializable(typeof(WorkspacesRenamePathRequest))] [JsonSerializable(typeof(WorkspacesSaveLargePasteRequest))] [JsonSerializable(typeof(WorkspacesSaveLargePasteResult))] [JsonSerializable(typeof(WorkspacesSaveLargePasteResultSaved))] +[JsonSerializable(typeof(WorkspacesStatFileRequest))] +[JsonSerializable(typeof(WorkspacesStatFileResult))] [JsonSerializable(typeof(WorkspacesTruncateSummariesRequest))] [JsonSerializable(typeof(WorkspacesUpdateMetadataRequest))] [JsonSerializable(typeof(WorkspacesWriteAutopilotObjectiveRequest))] diff --git a/dotnet/src/Generated/SessionEvents.cs b/dotnet/src/Generated/SessionEvents.cs index 26a4ec9493..27be572b84 100644 --- a/dotnet/src/Generated/SessionEvents.cs +++ b/dotnet/src/Generated/SessionEvents.cs @@ -4799,6 +4799,12 @@ public sealed partial class ToolExecutionCompleteData [JsonPropertyName("sandboxed")] public bool? Sandboxed { get; set; } + /// Experimental shell completion facts captured before the persisted result contents are stripped. + [Experimental(Diagnostics.Experimental)] + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("shellExecution")] + public ToolExecutionCompleteShellExecution? ShellExecution { get; set; } + /// Whether the tool execution completed successfully. [JsonPropertyName("success")] public required bool Success { get; set; } @@ -8851,6 +8857,16 @@ public sealed partial class ToolExecutionCompleteResult public ToolExecutionCompleteUIResource? UiResource { get; set; } } +/// Experimental shell completion facts retained independently of the full tool result. +/// Nested data type for ToolExecutionCompleteShellExecution. +[Experimental(Diagnostics.Experimental)] +public sealed partial class ToolExecutionCompleteShellExecution +{ + /// Process exit code reported by the shell driver. + [JsonPropertyName("exitCode")] + public required long ExitCode { get; set; } +} + /// MCP Apps tool `_meta.ui` resource URI and visibility captured on `tool.execution_complete`. /// Nested data type for ToolExecutionCompleteToolDescriptionMetaUI. public sealed partial class ToolExecutionCompleteToolDescriptionMetaUI @@ -17615,6 +17631,7 @@ public override void Write(Utf8JsonWriter writer, ExtensionsLoadedExtensionStatu [JsonSerializable(typeof(ToolExecutionCompleteError))] [JsonSerializable(typeof(ToolExecutionCompleteEvent))] [JsonSerializable(typeof(ToolExecutionCompleteResult))] +[JsonSerializable(typeof(ToolExecutionCompleteShellExecution))] [JsonSerializable(typeof(ToolExecutionCompleteToolDescription))] [JsonSerializable(typeof(ToolExecutionCompleteToolDescriptionMeta))] [JsonSerializable(typeof(ToolExecutionCompleteToolDescriptionMetaUI))] diff --git a/go/rpc/zrpc.go b/go/rpc/zrpc.go index f9eb4dc124..e974c9ed62 100644 --- a/go/rpc/zrpc.go +++ b/go/rpc/zrpc.go @@ -7664,8 +7664,10 @@ type ModelCapabilitiesOverrideLimitsVision struct { // Experimental: ModelCapabilitiesOverrideSupports is part of an experimental API and may // change or be removed. type ModelCapabilitiesOverrideSupports struct { - // Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. - // 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + // Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / + // adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still + // accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing + // but 'adaptive' (e.g. fable, mythos). AdaptiveThinking *AdaptiveThinkingSupport `json:"adaptive_thinking,omitempty"` // Whether this model supports reasoning effort configuration ReasoningEffort *bool `json:"reasoningEffort,omitempty"` @@ -7677,8 +7679,10 @@ type ModelCapabilitiesOverrideSupports struct { // Experimental: ModelCapabilitiesSupports is part of an experimental API and may change or // be removed. type ModelCapabilitiesSupports struct { - // Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. - // 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + // Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / + // adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still + // accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing + // but 'adaptive' (e.g. fable, mythos). AdaptiveThinking *AdaptiveThinkingSupport `json:"adaptive_thinking,omitempty"` // Whether this model supports reasoning effort configuration ReasoningEffort *bool `json:"reasoningEffort,omitempty"` @@ -14196,11 +14200,26 @@ type SessionWorkingDirectoryContext struct { RepositoryHost *string `json:"repositoryHost,omitempty"` } +// Experimental: SessionWorkspacesCreateDirectoryResult is part of an experimental API and +// may change or be removed. +type SessionWorkspacesCreateDirectoryResult struct { +} + // Experimental: SessionWorkspacesCreateFileResult is part of an experimental API and may // change or be removed. type SessionWorkspacesCreateFileResult struct { } +// Experimental: SessionWorkspacesRemovePathResult is part of an experimental API and may +// change or be removed. +type SessionWorkspacesRemovePathResult struct { +} + +// Experimental: SessionWorkspacesRenamePathResult is part of an experimental API and may +// change or be removed. +type SessionWorkspacesRenamePathResult struct { +} + // Authentication credentials accepted by session.gitHubAuth.setCredentials. Session-owned // token-provider identities cannot be installed through this method. // Experimental: SettableAuthInfo is part of an experimental API and may change or be @@ -14411,6 +14430,12 @@ type ShellOptions struct { // Parameters for shutting down the session // Experimental: ShutdownRequest is part of an experimental API and may change or be removed. type ShutdownRequest struct { + // Dispatch deferred sessionEnd hooks in the background with their full per-hook timeoutSec + // instead of awaiting them under the short shared shutdown budget. Set this when the host + // process keeps running after the session closes (for example the CLI's /clear), so a slow + // hook neither blocks the close nor is aborted. Hooks still detached when the process later + // exits are terminated with it. Defaults to false. + DetachSessionEndHooks *bool `json:"detachSessionEndHooks,omitempty"` // Optional human-readable reason. Typically the message of the error that triggered // shutdown when type is 'error'. Reason *string `json:"reason,omitempty"` @@ -16704,13 +16729,23 @@ type WorkspacesCheckpoints struct { Title string `json:"title"` } +// Directory to create within the session workspace files directory. +// Experimental: WorkspacesCreateDirectoryRequest is part of an experimental API and may +// change or be removed. +type WorkspacesCreateDirectoryRequest struct { + // Slash-separated relative path within the workspace files directory + Path string `json:"path"` + // Whether to create missing parent directories. Defaults to false. + Recursive *bool `json:"recursive,omitempty"` +} + // Relative path and UTF-8 content for the workspace file to create or overwrite. // Experimental: WorkspacesCreateFileRequest is part of an experimental API and may change // or be removed. type WorkspacesCreateFileRequest struct { // File content to write as a UTF-8 string Content string `json:"content"` - // Relative path within the workspace files directory + // Slash-separated relative path within the workspace files directory Path string `json:"path"` } @@ -16801,7 +16836,7 @@ type WorkspacesListCheckpointsResult struct { // Experimental: WorkspacesListFilesResult is part of an experimental API and may change or // be removed. type WorkspacesListFilesResult struct { - // Relative file paths in the workspace files directory + // Slash-separated relative file paths in the workspace files directory Files []string `json:"files"` } @@ -16833,7 +16868,7 @@ type WorkspacesReadCheckpointResult struct { // Experimental: WorkspacesReadFileRequest is part of an experimental API and may change or // be removed. type WorkspacesReadFileRequest struct { - // Relative path within the workspace files directory + // Slash-separated relative path within the workspace files directory Path string `json:"path"` } @@ -16845,6 +16880,28 @@ type WorkspacesReadFileResult struct { Content string `json:"content"` } +// File or directory to remove from the session workspace files directory. +// Experimental: WorkspacesRemovePathRequest is part of an experimental API and may change +// or be removed. +type WorkspacesRemovePathRequest struct { + // Whether a missing path should be treated as success. Defaults to false. + Force *bool `json:"force,omitempty"` + // Slash-separated relative path within the workspace files directory + Path string `json:"path"` + // Whether to remove directory contents recursively. Defaults to false. + Recursive *bool `json:"recursive,omitempty"` +} + +// Source and destination paths for a rename within the session workspace files directory. +// Experimental: WorkspacesRenamePathRequest is part of an experimental API and may change +// or be removed. +type WorkspacesRenamePathRequest struct { + // Slash-separated destination path relative to the workspace files directory + Destination string `json:"destination"` + // Slash-separated source path relative to the workspace files directory + Source string `json:"source"` +} + // Pasted content to save as a UTF-8 file in the session workspace. // Experimental: WorkspacesSaveLargePasteRequest is part of an experimental API and may // change or be removed. @@ -16871,6 +16928,30 @@ type WorkspacesSaveLargePasteResultSaved struct { SizeBytes int64 `json:"sizeBytes"` } +// Relative path of the workspace file or directory to inspect. +// Experimental: WorkspacesStatFileRequest is part of an experimental API and may change or +// be removed. +type WorkspacesStatFileRequest struct { + // Slash-separated relative path within the workspace files directory + Path string `json:"path"` +} + +// Filesystem metadata for a path in the session workspace files directory. +// Experimental: WorkspacesStatFileResult is part of an experimental API and may change or +// be removed. +type WorkspacesStatFileResult struct { + // Creation time in Unix epoch milliseconds + BirthtimeMs float64 `json:"birthtimeMs"` + // Whether the path identifies a directory + IsDirectory bool `json:"isDirectory"` + // Whether the path identifies a regular file + IsFile bool `json:"isFile"` + // Last modification time in Unix epoch milliseconds + MtimeMs float64 `json:"mtimeMs"` + // Size in bytes + Size float64 `json:"size"` +} + // Rollback point for local workspace summaries. // Experimental: WorkspacesTruncateSummariesRequest is part of an experimental API and may // change or be removed. @@ -16953,10 +17034,13 @@ const ( type AdaptiveThinkingSupport string const ( + // The model accepts only thinking.type='adaptive'; 'enabled', 'disabled', and an omitted + // thinking block all fail with HTTP 400 (e.g. fable, mythos) + AdaptiveThinkingSupportAdaptiveOnly AdaptiveThinkingSupport = "adaptive_only" // The model accepts adaptive thinking but also accepts thinking.type='enabled' AdaptiveThinkingSupportOptional AdaptiveThinkingSupport = "optional" - // The model only accepts adaptive thinking and rejects thinking.type='enabled' with HTTP - // 400 (e.g. opus-4.7/4.8) + // The model defaults to adaptive thinking and rejects thinking.type='enabled' with HTTP + // 400, but still accepts thinking.type='disabled' (e.g. opus-4.7/4.8/5, sonnet-5) AdaptiveThinkingSupportRequired AdaptiveThinkingSupport = "required" // The model does not accept thinking.type='adaptive' AdaptiveThinkingSupportUnsupported AdaptiveThinkingSupport = "unsupported" @@ -19345,6 +19429,8 @@ const ( PermissionModeSourceAutopilotConfirmation PermissionModeSource = "autopilot_confirmation" // The mode was set from a CLI command-line flag. PermissionModeSourceCLIFlag PermissionModeSource = "cli_flag" + // The mode was set at startup by authenticated organization targeting. + PermissionModeSourceOrganizationTargeting PermissionModeSource = "organization_targeting" // The mode was set through an RPC caller. PermissionModeSourceRPC PermissionModeSource = "rpc" // The mode was set by a slash command. @@ -28427,6 +28513,30 @@ func (a *WorkspacesAPI) AutopilotObjectiveExists(ctx context.Context) (*Workspac return &result, nil } +// CreateDirectory creates a directory in the session workspace files directory. +// +// RPC method: session.workspaces.createDirectory. +// +// Parameters: Directory to create within the session workspace files directory. +func (a *WorkspacesAPI) CreateDirectory(ctx context.Context, params *WorkspacesCreateDirectoryRequest) (*SessionWorkspacesCreateDirectoryResult, error) { + req := map[string]any{"sessionId": a.sessionID} + if params != nil { + req["path"] = params.Path + if params.Recursive != nil { + req["recursive"] = *params.Recursive + } + } + raw, err := a.client.Request(ctx, "session.workspaces.createDirectory", req) + if err != nil { + return nil, err + } + var result SessionWorkspacesCreateDirectoryResult + if err := json.Unmarshal(raw, &result); err != nil { + return nil, err + } + return &result, nil +} + // CreateFile creates or overwrites a file in the session workspace files directory. // // RPC method: session.workspaces.createFile. @@ -28644,6 +28754,56 @@ func (a *WorkspacesAPI) ReadFile(ctx context.Context, params *WorkspacesReadFile return &result, nil } +// RemovePath removes a file or directory from the session workspace files directory. +// +// RPC method: session.workspaces.removePath. +// +// Parameters: File or directory to remove from the session workspace files directory. +func (a *WorkspacesAPI) RemovePath(ctx context.Context, params *WorkspacesRemovePathRequest) (*SessionWorkspacesRemovePathResult, error) { + req := map[string]any{"sessionId": a.sessionID} + if params != nil { + if params.Force != nil { + req["force"] = *params.Force + } + req["path"] = params.Path + if params.Recursive != nil { + req["recursive"] = *params.Recursive + } + } + raw, err := a.client.Request(ctx, "session.workspaces.removePath", req) + if err != nil { + return nil, err + } + var result SessionWorkspacesRemovePathResult + if err := json.Unmarshal(raw, &result); err != nil { + return nil, err + } + return &result, nil +} + +// RenamePath renames a file or directory within the session workspace files directory. +// +// RPC method: session.workspaces.renamePath. +// +// Parameters: Source and destination paths for a rename within the session workspace files +// directory. +func (a *WorkspacesAPI) RenamePath(ctx context.Context, params *WorkspacesRenamePathRequest) (*SessionWorkspacesRenamePathResult, error) { + req := map[string]any{"sessionId": a.sessionID} + if params != nil { + req["destination"] = params.Destination + req["source"] = params.Source + } + raw, err := a.client.Request(ctx, "session.workspaces.renamePath", req) + if err != nil { + return nil, err + } + var result SessionWorkspacesRenamePathResult + if err := json.Unmarshal(raw, &result); err != nil { + return nil, err + } + return &result, nil +} + // SaveLargePaste saves pasted content as a UTF-8 file in the session workspace. // // RPC method: session.workspaces.saveLargePaste. @@ -28667,6 +28827,30 @@ func (a *WorkspacesAPI) SaveLargePaste(ctx context.Context, params *WorkspacesSa return &result, nil } +// StatFile returns metadata for a file or directory in the session workspace files +// directory. +// +// RPC method: session.workspaces.statFile. +// +// Parameters: Relative path of the workspace file or directory to inspect. +// +// Returns: Filesystem metadata for a path in the session workspace files directory. +func (a *WorkspacesAPI) StatFile(ctx context.Context, params *WorkspacesStatFileRequest) (*WorkspacesStatFileResult, error) { + req := map[string]any{"sessionId": a.sessionID} + if params != nil { + req["path"] = params.Path + } + raw, err := a.client.Request(ctx, "session.workspaces.statFile", req) + if err != nil { + return nil, err + } + var result WorkspacesStatFileResult + if err := json.Unmarshal(raw, &result); err != nil { + return nil, err + } + return &result, nil +} + // TruncateSummaries truncates local workspace compaction summaries after a rollback. // // RPC method: session.workspaces.truncateSummaries. @@ -29040,6 +29224,9 @@ func (a *SessionRPC) SendMessages(ctx context.Context, params *SendMessagesReque func (a *SessionRPC) Shutdown(ctx context.Context, params *ShutdownRequest) (*SessionShutdownResult, error) { req := map[string]any{"sessionId": a.common.sessionID} if params != nil { + if params.DetachSessionEndHooks != nil { + req["detachSessionEndHooks"] = *params.DetachSessionEndHooks + } if params.Reason != nil { req["reason"] = *params.Reason } diff --git a/go/rpc/zsession_events.go b/go/rpc/zsession_events.go index 28868dc290..49d70bd70b 100644 --- a/go/rpc/zsession_events.go +++ b/go/rpc/zsession_events.go @@ -2911,6 +2911,9 @@ type ToolExecutionCompleteData struct { Rte *bool `json:"rte,omitempty"` // Whether this tool execution ran inside a sandbox container Sandboxed *bool `json:"sandboxed,omitempty"` + // Experimental shell completion facts captured before the persisted result contents are stripped. + // Experimental: ShellExecution is part of an experimental API and may change or be removed. + ShellExecution *ToolExecutionCompleteShellExecution `json:"shellExecution,omitempty"` // Whether the tool execution completed successfully Success bool `json:"success"` // Unique identifier for the completed tool call @@ -5142,6 +5145,13 @@ type ToolExecutionCompleteResult struct { UIResource *ToolExecutionCompleteUIResource `json:"uiResource,omitempty"` } +// Experimental shell completion facts retained independently of the full tool result. +// Experimental: ToolExecutionCompleteShellExecution is part of an experimental API and may change or be removed. +type ToolExecutionCompleteShellExecution struct { + // Process exit code reported by the shell driver. + ExitCode int64 `json:"exitCode"` +} + // Tool definition metadata, present for MCP tools with MCP Apps support type ToolExecutionCompleteToolDescription struct { // Tool description diff --git a/go/zsession_events.go b/go/zsession_events.go index c93d70e209..858f1d46af 100644 --- a/go/zsession_events.go +++ b/go/zsession_events.go @@ -399,6 +399,7 @@ type ( ToolExecutionCompleteData = rpc.ToolExecutionCompleteData ToolExecutionCompleteError = rpc.ToolExecutionCompleteError ToolExecutionCompleteResult = rpc.ToolExecutionCompleteResult + ToolExecutionCompleteShellExecution = rpc.ToolExecutionCompleteShellExecution ToolExecutionCompleteToolDescription = rpc.ToolExecutionCompleteToolDescription ToolExecutionCompleteToolDescriptionMeta = rpc.ToolExecutionCompleteToolDescriptionMeta ToolExecutionCompleteToolDescriptionMetaUI = rpc.ToolExecutionCompleteToolDescriptionMetaUI diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteEvent.java b/java/sdk/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteEvent.java index 4cb949c80b..2b299df85b 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteEvent.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteEvent.java @@ -61,6 +61,8 @@ public record ToolExecutionCompleteEventData( @JsonProperty("toolDescription") ToolExecutionCompleteToolDescription toolDescription, /** Whether this tool execution ran inside a sandbox container */ @JsonProperty("sandboxed") Boolean sandboxed, + /** Experimental shell completion facts captured before the persisted result contents are stripped. */ + @JsonProperty("shellExecution") ToolExecutionCompleteShellExecution shellExecution, /** Tool call ID of the parent tool invocation when this event originates from a sub-agent */ @JsonProperty("parentToolCallId") String parentToolCallId, /** Experimental HydraFusion attribution for this tool completion. */ diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteShellExecution.java b/java/sdk/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteShellExecution.java new file mode 100644 index 0000000000..e08ac623f9 --- /dev/null +++ b/java/sdk/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteShellExecution.java @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + *--------------------------------------------------------------------------------------------*/ + +// AUTO-GENERATED FILE - DO NOT EDIT +// Generated from: session-events.schema.json + +package com.github.copilot.generated; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import javax.annotation.processing.Generated; + +/** + * Experimental shell completion facts retained independently of the full tool result. + * + * @since 1.0.0 + */ +@javax.annotation.processing.Generated("copilot-sdk-codegen") +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public record ToolExecutionCompleteShellExecution( + /** Process exit code reported by the shell driver. */ + @JsonProperty("exitCode") Long exitCode +) { +} diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/AdaptiveThinkingSupport.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/AdaptiveThinkingSupport.java index 6ec806fb1a..89793d99d1 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/AdaptiveThinkingSupport.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/AdaptiveThinkingSupport.java @@ -21,7 +21,9 @@ public enum AdaptiveThinkingSupport { /** The {@code optional} variant. */ OPTIONAL("optional"), /** The {@code required} variant. */ - REQUIRED("required"); + REQUIRED("required"), + /** The {@code adaptive_only} variant. */ + ADAPTIVE_ONLY("adaptive_only"); private final String value; AdaptiveThinkingSupport(String value) { this.value = value; } diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/ModelCapabilitiesOverrideSupports.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/ModelCapabilitiesOverrideSupports.java index d210460d73..4672c03865 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/ModelCapabilitiesOverrideSupports.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/ModelCapabilitiesOverrideSupports.java @@ -25,7 +25,7 @@ public record ModelCapabilitiesOverrideSupports( @JsonProperty("vision") Boolean vision, /** Whether this model supports reasoning effort configuration */ @JsonProperty("reasoningEffort") Boolean reasoningEffort, - /** Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). */ + /** Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing but 'adaptive' (e.g. fable, mythos). */ @JsonProperty("adaptive_thinking") AdaptiveThinkingSupport adaptiveThinking ) { } diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/ModelCapabilitiesSupports.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/ModelCapabilitiesSupports.java index b66ba8aa7d..58296a9a05 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/ModelCapabilitiesSupports.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/ModelCapabilitiesSupports.java @@ -25,7 +25,7 @@ public record ModelCapabilitiesSupports( @JsonProperty("vision") Boolean vision, /** Whether this model supports reasoning effort configuration */ @JsonProperty("reasoningEffort") Boolean reasoningEffort, - /** Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). */ + /** Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing but 'adaptive' (e.g. fable, mythos). */ @JsonProperty("adaptive_thinking") AdaptiveThinkingSupport adaptiveThinking ) { } diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/PermissionModeSource.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/PermissionModeSource.java index 534760c746..107ac3f6d9 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/PermissionModeSource.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/PermissionModeSource.java @@ -24,6 +24,8 @@ public enum PermissionModeSource { AUTOPILOT_CONFIRMATION("autopilot_confirmation"), /** The {@code user_setting} variant. */ USER_SETTING("user_setting"), + /** The {@code organization_targeting} variant. */ + ORGANIZATION_TARGETING("organization_targeting"), /** The {@code rpc} variant. */ RPC("rpc"); diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionShutdownParams.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionShutdownParams.java index bf5303750e..693d77458d 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionShutdownParams.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionShutdownParams.java @@ -29,6 +29,8 @@ public record SessionShutdownParams( /** Why the session is being shut down. Defaults to "routine" when omitted. */ @JsonProperty("type") ShutdownType type, /** Optional human-readable reason. Typically the message of the error that triggered shutdown when type is 'error'. */ - @JsonProperty("reason") String reason + @JsonProperty("reason") String reason, + /** Dispatch deferred sessionEnd hooks in the background with their full per-hook timeoutSec instead of awaiting them under the short shared shutdown budget. Set this when the host process keeps running after the session closes (for example the CLI's /clear), so a slow hook neither blocks the close nor is aborted. Hooks still detached when the process later exits are terminated with it. Defaults to false. */ + @JsonProperty("detachSessionEndHooks") Boolean detachSessionEndHooks ) { } diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesApi.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesApi.java index aaacb046f0..71a3d1ea1b 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesApi.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesApi.java @@ -116,6 +116,70 @@ public CompletableFuture createFile(SessionWorkspacesCreateFileParams para return caller.invoke("session.workspaces.createFile", _p, Void.class); } + /** + * Relative path of the workspace file or directory to inspect. + *

+ * 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 statFile(SessionWorkspacesStatFileParams params) { + com.fasterxml.jackson.databind.node.ObjectNode _p = MAPPER.valueToTree(params); + _p.put("sessionId", this.sessionId); + return caller.invoke("session.workspaces.statFile", _p, SessionWorkspacesStatFileResult.class); + } + + /** + * Directory to create within the session workspace files directory. + *

+ * 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 createDirectory(SessionWorkspacesCreateDirectoryParams params) { + com.fasterxml.jackson.databind.node.ObjectNode _p = MAPPER.valueToTree(params); + _p.put("sessionId", this.sessionId); + return caller.invoke("session.workspaces.createDirectory", _p, Void.class); + } + + /** + * File or directory to remove from the session workspace files directory. + *

+ * 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 removePath(SessionWorkspacesRemovePathParams params) { + com.fasterxml.jackson.databind.node.ObjectNode _p = MAPPER.valueToTree(params); + _p.put("sessionId", this.sessionId); + return caller.invoke("session.workspaces.removePath", _p, Void.class); + } + + /** + * Source and destination paths for a rename within the session workspace files directory. + *

+ * 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 renamePath(SessionWorkspacesRenamePathParams params) { + com.fasterxml.jackson.databind.node.ObjectNode _p = MAPPER.valueToTree(params); + _p.put("sessionId", this.sessionId); + return caller.invoke("session.workspaces.renamePath", _p, Void.class); + } + /** * Identifies the target session. * diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesCreateDirectoryParams.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesCreateDirectoryParams.java new file mode 100644 index 0000000000..d8867ab6c9 --- /dev/null +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesCreateDirectoryParams.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; + +/** + * Directory to create within the session workspace files directory. + * + * @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 SessionWorkspacesCreateDirectoryParams( + /** Target session identifier */ + @JsonProperty("sessionId") String sessionId, + /** Slash-separated relative path within the workspace files directory */ + @JsonProperty("path") String path, + /** Whether to create missing parent directories. Defaults to false. */ + @JsonProperty("recursive") Boolean recursive +) { +} diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesCreateFileParams.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesCreateFileParams.java index c0c42c502d..fae2b5939c 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesCreateFileParams.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesCreateFileParams.java @@ -26,7 +26,7 @@ public record SessionWorkspacesCreateFileParams( /** Target session identifier */ @JsonProperty("sessionId") String sessionId, - /** Relative path within the workspace files directory */ + /** Slash-separated relative path within the workspace files directory */ @JsonProperty("path") String path, /** File content to write as a UTF-8 string */ @JsonProperty("content") String content diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesListFilesResult.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesListFilesResult.java index 90fd2691de..7ec15c6171 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesListFilesResult.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesListFilesResult.java @@ -25,7 +25,7 @@ @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) public record SessionWorkspacesListFilesResult( - /** Relative file paths in the workspace files directory */ + /** Slash-separated relative file paths in the workspace files directory */ @JsonProperty("files") List files ) { } diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesReadFileParams.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesReadFileParams.java index b9f21c516c..8ef31ae25b 100644 --- a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesReadFileParams.java +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesReadFileParams.java @@ -26,7 +26,7 @@ public record SessionWorkspacesReadFileParams( /** Target session identifier */ @JsonProperty("sessionId") String sessionId, - /** Relative path within the workspace files directory */ + /** Slash-separated relative path within the workspace files directory */ @JsonProperty("path") String path ) { } diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesRemovePathParams.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesRemovePathParams.java new file mode 100644 index 0000000000..540406d96e --- /dev/null +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesRemovePathParams.java @@ -0,0 +1,36 @@ +/*--------------------------------------------------------------------------------------------- + * 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; + +/** + * File or directory to remove from the session workspace files directory. + * + * @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 SessionWorkspacesRemovePathParams( + /** Target session identifier */ + @JsonProperty("sessionId") String sessionId, + /** Slash-separated relative path within the workspace files directory */ + @JsonProperty("path") String path, + /** Whether to remove directory contents recursively. Defaults to false. */ + @JsonProperty("recursive") Boolean recursive, + /** Whether a missing path should be treated as success. Defaults to false. */ + @JsonProperty("force") Boolean force +) { +} diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesRenamePathParams.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesRenamePathParams.java new file mode 100644 index 0000000000..63ac2e0a76 --- /dev/null +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesRenamePathParams.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; + +/** + * Source and destination paths for a rename within the session workspace files directory. + * + * @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 SessionWorkspacesRenamePathParams( + /** Target session identifier */ + @JsonProperty("sessionId") String sessionId, + /** Slash-separated source path relative to the workspace files directory */ + @JsonProperty("source") String source, + /** Slash-separated destination path relative to the workspace files directory */ + @JsonProperty("destination") String destination +) { +} diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesStatFileParams.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesStatFileParams.java new file mode 100644 index 0000000000..dc790bc612 --- /dev/null +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesStatFileParams.java @@ -0,0 +1,32 @@ +/*--------------------------------------------------------------------------------------------- + * 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; + +/** + * Relative path of the workspace file or directory to inspect. + * + * @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 SessionWorkspacesStatFileParams( + /** Target session identifier */ + @JsonProperty("sessionId") String sessionId, + /** Slash-separated relative path within the workspace files directory */ + @JsonProperty("path") String path +) { +} diff --git a/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesStatFileResult.java b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesStatFileResult.java new file mode 100644 index 0000000000..1673a1bce8 --- /dev/null +++ b/java/sdk/src/generated/java/com/github/copilot/generated/rpc/SessionWorkspacesStatFileResult.java @@ -0,0 +1,38 @@ +/*--------------------------------------------------------------------------------------------- + * 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; + +/** + * Filesystem metadata for a path in the session workspace files directory. + * + * @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 SessionWorkspacesStatFileResult( + /** Whether the path identifies a regular file */ + @JsonProperty("isFile") Boolean isFile, + /** Whether the path identifies a directory */ + @JsonProperty("isDirectory") Boolean isDirectory, + /** Size in bytes */ + @JsonProperty("size") Double size, + /** Last modification time in Unix epoch milliseconds */ + @JsonProperty("mtimeMs") Double mtimeMs, + /** Creation time in Unix epoch milliseconds */ + @JsonProperty("birthtimeMs") Double birthtimeMs +) { +} diff --git a/nodejs/package.json b/nodejs/package.json index d1565035d8..152726d206 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -5,7 +5,7 @@ "url": "https://github.com/github/copilot-sdk.git" }, "version": "0.0.0-dev", - "copilotCliVersion": "1.0.84-6", + "copilotCliVersion": "1.0.84-8", "description": "TypeScript SDK for programmatic control of GitHub Copilot CLI via JSON-RPC", "main": "./dist/cjs/index.js", "types": "./dist/index.d.ts", diff --git a/nodejs/src/cliVersion.ts b/nodejs/src/cliVersion.ts index 4e7d99b1ea..accc03512f 100644 --- a/nodejs/src/cliVersion.ts +++ b/nodejs/src/cliVersion.ts @@ -1,3 +1,3 @@ -export const COPILOT_CLI_VERSION = "1.0.84-6"; +export const COPILOT_CLI_VERSION = "1.0.84-8"; export const COPILOT_CLI_USE_NPM_PACKAGE = false; diff --git a/nodejs/src/generated/rpc.ts b/nodejs/src/generated/rpc.ts index 43277362af..b0bbbb56e4 100644 --- a/nodejs/src/generated/rpc.ts +++ b/nodejs/src/generated/rpc.ts @@ -55,8 +55,10 @@ export type AdaptiveThinkingSupport = | "unsupported" /** The model accepts adaptive thinking but also accepts thinking.type='enabled' */ | "optional" - /** The model only accepts adaptive thinking and rejects thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8) */ - | "required"; + /** The model defaults to adaptive thinking and rejects thinking.type='enabled' with HTTP 400, but still accepts thinking.type='disabled' (e.g. opus-4.7/4.8/5, sonnet-5) */ + | "required" + /** The model accepts only thinking.type='adaptive'; 'enabled', 'disabled', and an omitted thinking block all fail with HTTP 400 (e.g. fable, mythos) */ + | "adaptive_only"; /** * Which tier this directory belongs to * @@ -2865,6 +2867,8 @@ export type PermissionModeSource = | "autopilot_confirmation" /** The mode was set at startup by the `defaultPermissionMode` user setting. */ | "user_setting" + /** The mode was set at startup by authenticated organization targeting. */ + | "organization_targeting" /** The mode was set through an RPC caller. */ | "rpc"; /** @@ -21335,6 +21339,10 @@ export interface ShutdownRequest { * Optional human-readable reason. Typically the message of the error that triggered shutdown when type is 'error'. */ reason?: string; + /** + * Dispatch deferred sessionEnd hooks in the background with their full per-hook timeoutSec instead of awaiting them under the short shared shutdown budget. Set this when the host process keeps running after the session closes (for example the CLI's /clear), so a slow hook neither blocks the close nor is aborted. Hooks still detached when the process later exits are terminated with it. Defaults to false. + */ + detachSessionEndHooks?: boolean; } /** * Skill metadata available to a session, with name, description, source, enabled/invocable state, path, plugin, and argument hint. @@ -24053,6 +24061,23 @@ export interface WorkspacesCheckpoints { */ filename: string; } +/** + * Directory to create within the session workspace files directory. + * + * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema + * via the `definition` "WorkspacesCreateDirectoryRequest". + */ +/** @experimental */ +export interface WorkspacesCreateDirectoryRequest { + /** + * Slash-separated relative path within the workspace files directory + */ + path: string; + /** + * Whether to create missing parent directories. Defaults to false. + */ + recursive?: boolean; +} /** * Relative path and UTF-8 content for the workspace file to create or overwrite. * @@ -24062,7 +24087,7 @@ export interface WorkspacesCheckpoints { /** @experimental */ export interface WorkspacesCreateFileRequest { /** - * Relative path within the workspace files directory + * Slash-separated relative path within the workspace files directory */ path: string; /** @@ -24215,7 +24240,7 @@ export interface WorkspacesListCheckpointsResult { /** @experimental */ export interface WorkspacesListFilesResult { /** - * Relative file paths in the workspace files directory + * Slash-separated relative file paths in the workspace files directory */ files: string[]; } @@ -24267,7 +24292,7 @@ export interface WorkspacesReadCheckpointResult { /** @experimental */ export interface WorkspacesReadFileRequest { /** - * Relative path within the workspace files directory + * Slash-separated relative path within the workspace files directory */ path: string; } @@ -24284,6 +24309,44 @@ export interface WorkspacesReadFileResult { */ content: string; } +/** + * File or directory to remove from the session workspace files directory. + * + * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema + * via the `definition` "WorkspacesRemovePathRequest". + */ +/** @experimental */ +export interface WorkspacesRemovePathRequest { + /** + * Slash-separated relative path within the workspace files directory + */ + path: string; + /** + * Whether to remove directory contents recursively. Defaults to false. + */ + recursive?: boolean; + /** + * Whether a missing path should be treated as success. Defaults to false. + */ + force?: boolean; +} +/** + * Source and destination paths for a rename within the session workspace files directory. + * + * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema + * via the `definition` "WorkspacesRenamePathRequest". + */ +/** @experimental */ +export interface WorkspacesRenamePathRequest { + /** + * Slash-separated source path relative to the workspace files directory + */ + source: string; + /** + * Slash-separated destination path relative to the workspace files directory + */ + destination: string; +} /** * Pasted content to save as a UTF-8 file in the session workspace. * @@ -24323,6 +24386,48 @@ export interface WorkspacesSaveLargePasteResult { sizeBytes: number; } | null; } +/** + * Relative path of the workspace file or directory to inspect. + * + * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema + * via the `definition` "WorkspacesStatFileRequest". + */ +/** @experimental */ +export interface WorkspacesStatFileRequest { + /** + * Slash-separated relative path within the workspace files directory + */ + path: string; +} +/** + * Filesystem metadata for a path in the session workspace files directory. + * + * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema + * via the `definition` "WorkspacesStatFileResult". + */ +/** @experimental */ +export interface WorkspacesStatFileResult { + /** + * Whether the path identifies a regular file + */ + isFile: boolean; + /** + * Whether the path identifies a directory + */ + isDirectory: boolean; + /** + * Size in bytes + */ + size: number; + /** + * Last modification time in Unix epoch milliseconds + */ + mtimeMs: number; + /** + * Creation time in Unix epoch milliseconds + */ + birthtimeMs: number; +} /** * Rollback point for local workspace summaries. * @@ -25825,6 +25930,36 @@ export function createSessionRpc(connection: MessageConnection, sessionId: strin */ createFile: async (params: WorkspacesCreateFileRequest): Promise => connection.sendRequest("session.workspaces.createFile", { sessionId, ...params }), + /** + * Returns metadata for a file or directory in the session workspace files directory. + * + * @param params Relative path of the workspace file or directory to inspect. + * + * @returns Filesystem metadata for a path in the session workspace files directory. + */ + statFile: async (params: WorkspacesStatFileRequest): Promise => + connection.sendRequest("session.workspaces.statFile", { sessionId, ...params }), + /** + * Creates a directory in the session workspace files directory. + * + * @param params Directory to create within the session workspace files directory. + */ + createDirectory: async (params: WorkspacesCreateDirectoryRequest): Promise => + connection.sendRequest("session.workspaces.createDirectory", { sessionId, ...params }), + /** + * Removes a file or directory from the session workspace files directory. + * + * @param params File or directory to remove from the session workspace files directory. + */ + removePath: async (params: WorkspacesRemovePathRequest): Promise => + connection.sendRequest("session.workspaces.removePath", { sessionId, ...params }), + /** + * Renames a file or directory within the session workspace files directory. + * + * @param params Source and destination paths for a rename within the session workspace files directory. + */ + renamePath: async (params: WorkspacesRenamePathRequest): Promise => + connection.sendRequest("session.workspaces.renamePath", { sessionId, ...params }), /** * Lists workspace checkpoints in chronological order. * diff --git a/nodejs/src/generated/session-events.ts b/nodejs/src/generated/session-events.ts index d6d094e69d..08bf03b5d7 100644 --- a/nodejs/src/generated/session-events.ts +++ b/nodejs/src/generated/session-events.ts @@ -6494,6 +6494,12 @@ export interface ToolExecutionCompleteData { * Whether this tool execution ran inside a sandbox container */ sandboxed?: boolean; + /** + * Experimental shell completion facts captured before the persisted result contents are stripped. + * + * @experimental + */ + shellExecution?: ToolExecutionCompleteShellExecution; /** * Whether the tool execution completed successfully */ @@ -6963,6 +6969,16 @@ export interface ToolExecutionCompleteUIResourceMetaUIPermissionsGeolocation {} * Marker object for microphone permission on an MCP Apps UI resource. */ export interface ToolExecutionCompleteUIResourceMetaUIPermissionsMicrophone {} +/** + * Experimental shell completion facts retained independently of the full tool result. + */ +/** @experimental */ +export interface ToolExecutionCompleteShellExecution { + /** + * Process exit code reported by the shell driver. + */ + exitCode: number; +} /** * Tool definition metadata, present for MCP tools with MCP Apps support */ diff --git a/python/copilot/generated/rpc.py b/python/copilot/generated/rpc.py index c9d7c99f43..bcf53a1495 100644 --- a/python/copilot/generated/rpc.py +++ b/python/copilot/generated/rpc.py @@ -520,9 +520,12 @@ def to_dict(self) -> dict: class AdaptiveThinkingSupport(Enum): """Resolved Anthropic adaptive-thinking capability for a model. - Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. - 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / + adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still + accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing + but 'adaptive' (e.g. fable, mythos). """ + ADAPTIVE_ONLY = "adaptive_only" OPTIONAL = "optional" REQUIRED = "required" UNSUPPORTED = "unsupported" @@ -13142,6 +13145,13 @@ def to_dict(self) -> dict: class ShutdownRequest: """Parameters for shutting down the session""" + detach_session_end_hooks: bool | None = None + """Dispatch deferred sessionEnd hooks in the background with their full per-hook timeoutSec + instead of awaiting them under the short shared shutdown budget. Set this when the host + process keeps running after the session closes (for example the CLI's /clear), so a slow + hook neither blocks the close nor is aborted. Hooks still detached when the process later + exits are terminated with it. Defaults to false. + """ reason: str | None = None """Optional human-readable reason. Typically the message of the error that triggered shutdown when type is 'error'. @@ -13152,12 +13162,15 @@ class ShutdownRequest: @staticmethod def from_dict(obj: Any) -> 'ShutdownRequest': assert isinstance(obj, dict) + detach_session_end_hooks = from_union([from_bool, from_none], obj.get("detachSessionEndHooks")) reason = from_union([from_str, from_none], obj.get("reason")) type = from_union([ShutdownType, from_none], obj.get("type")) - return ShutdownRequest(reason, type) + return ShutdownRequest(detach_session_end_hooks, reason, type) def to_dict(self) -> dict: result: dict = {} + if self.detach_session_end_hooks is not None: + result["detachSessionEndHooks"] = from_union([from_bool, from_none], self.detach_session_end_hooks) if self.reason is not None: result["reason"] = from_union([from_str, from_none], self.reason) if self.type is not None: @@ -15009,6 +15022,31 @@ def to_dict(self) -> dict: result["exists"] = from_bool(self.exists) return result +# Experimental: this type is part of an experimental API and may change or be removed. +@dataclass +class WorkspacesCreateDirectoryRequest: + """Directory to create within the session workspace files directory.""" + + path: str + """Slash-separated relative path within the workspace files directory""" + + recursive: bool | None = None + """Whether to create missing parent directories. Defaults to false.""" + + @staticmethod + def from_dict(obj: Any) -> 'WorkspacesCreateDirectoryRequest': + assert isinstance(obj, dict) + path = from_str(obj.get("path")) + recursive = from_union([from_bool, from_none], obj.get("recursive")) + return WorkspacesCreateDirectoryRequest(path, recursive) + + def to_dict(self) -> dict: + result: dict = {} + result["path"] = from_str(self.path) + if self.recursive is not None: + result["recursive"] = from_union([from_bool, from_none], self.recursive) + return result + # Experimental: this type is part of an experimental API and may change or be removed. @dataclass class WorkspacesCreateFileRequest: @@ -15018,7 +15056,7 @@ class WorkspacesCreateFileRequest: """File content to write as a UTF-8 string""" path: str - """Relative path within the workspace files directory""" + """Slash-separated relative path within the workspace files directory""" @staticmethod def from_dict(obj: Any) -> 'WorkspacesCreateFileRequest': @@ -15078,7 +15116,7 @@ class WorkspacesListFilesResult: """Relative paths of files stored in the session workspace files directory.""" files: list[str] - """Relative file paths in the workspace files directory""" + """Slash-separated relative file paths in the workspace files directory""" @staticmethod def from_dict(obj: Any) -> 'WorkspacesListFilesResult': @@ -15154,7 +15192,7 @@ class WorkspacesReadFileRequest: """Relative path of the workspace file to read.""" path: str - """Relative path within the workspace files directory""" + """Slash-separated relative path within the workspace files directory""" @staticmethod def from_dict(obj: Any) -> 'WorkspacesReadFileRequest': @@ -15186,6 +15224,61 @@ def to_dict(self) -> dict: result["content"] = from_str(self.content) return result +# Experimental: this type is part of an experimental API and may change or be removed. +@dataclass +class WorkspacesRemovePathRequest: + """File or directory to remove from the session workspace files directory.""" + + path: str + """Slash-separated relative path within the workspace files directory""" + + force: bool | None = None + """Whether a missing path should be treated as success. Defaults to false.""" + + recursive: bool | None = None + """Whether to remove directory contents recursively. Defaults to false.""" + + @staticmethod + def from_dict(obj: Any) -> 'WorkspacesRemovePathRequest': + assert isinstance(obj, dict) + path = from_str(obj.get("path")) + force = from_union([from_bool, from_none], obj.get("force")) + recursive = from_union([from_bool, from_none], obj.get("recursive")) + return WorkspacesRemovePathRequest(path, force, recursive) + + def to_dict(self) -> dict: + result: dict = {} + result["path"] = from_str(self.path) + if self.force is not None: + result["force"] = from_union([from_bool, from_none], self.force) + if self.recursive is not None: + result["recursive"] = from_union([from_bool, from_none], self.recursive) + return result + +# Experimental: this type is part of an experimental API and may change or be removed. +@dataclass +class WorkspacesRenamePathRequest: + """Source and destination paths for a rename within the session workspace files directory.""" + + destination: str + """Slash-separated destination path relative to the workspace files directory""" + + source: str + """Slash-separated source path relative to the workspace files directory""" + + @staticmethod + def from_dict(obj: Any) -> 'WorkspacesRenamePathRequest': + assert isinstance(obj, dict) + destination = from_str(obj.get("destination")) + source = from_str(obj.get("source")) + return WorkspacesRenamePathRequest(destination, source) + + def to_dict(self) -> dict: + result: dict = {} + result["destination"] = from_str(self.destination) + result["source"] = from_str(self.source) + return result + # Experimental: this type is part of an experimental API and may change or be removed. @dataclass class WorkspacesSaveLargePasteRequest: @@ -15231,6 +15324,64 @@ def to_dict(self) -> dict: result["sizeBytes"] = from_int(self.size_bytes) return result +# Experimental: this type is part of an experimental API and may change or be removed. +@dataclass +class WorkspacesStatFileRequest: + """Relative path of the workspace file or directory to inspect.""" + + path: str + """Slash-separated relative path within the workspace files directory""" + + @staticmethod + def from_dict(obj: Any) -> 'WorkspacesStatFileRequest': + assert isinstance(obj, dict) + path = from_str(obj.get("path")) + return WorkspacesStatFileRequest(path) + + def to_dict(self) -> dict: + result: dict = {} + result["path"] = from_str(self.path) + return result + +# Experimental: this type is part of an experimental API and may change or be removed. +@dataclass +class WorkspacesStatFileResult: + """Filesystem metadata for a path in the session workspace files directory.""" + + birthtime_ms: float + """Creation time in Unix epoch milliseconds""" + + is_directory: bool + """Whether the path identifies a directory""" + + is_file: bool + """Whether the path identifies a regular file""" + + mtime_ms: float + """Last modification time in Unix epoch milliseconds""" + + size: float + """Size in bytes""" + + @staticmethod + def from_dict(obj: Any) -> 'WorkspacesStatFileResult': + assert isinstance(obj, dict) + birthtime_ms = from_float(obj.get("birthtimeMs")) + is_directory = from_bool(obj.get("isDirectory")) + is_file = from_bool(obj.get("isFile")) + mtime_ms = from_float(obj.get("mtimeMs")) + size = from_float(obj.get("size")) + return WorkspacesStatFileResult(birthtime_ms, is_directory, is_file, mtime_ms, size) + + def to_dict(self) -> dict: + result: dict = {} + result["birthtimeMs"] = to_float(self.birthtime_ms) + result["isDirectory"] = from_bool(self.is_directory) + result["isFile"] = from_bool(self.is_file) + result["mtimeMs"] = to_float(self.mtime_ms) + result["size"] = to_float(self.size) + return result + # Experimental: this type is part of an experimental API and may change or be removed. @dataclass class WorkspacesTruncateSummariesRequest: @@ -15364,8 +15515,10 @@ class ModelCapabilitiesSupports: """Feature flags indicating what the model supports""" adaptive_thinking: AdaptiveThinkingSupport | None = None - """Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. - 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + """Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / + adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still + accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing + but 'adaptive' (e.g. fable, mythos). """ reasoning_effort: bool | None = None """Whether this model supports reasoning effort configuration""" @@ -15397,8 +15550,10 @@ class ModelCapabilitiesOverrideSupports: """Feature flags indicating what the model supports""" adaptive_thinking: AdaptiveThinkingSupport | None = None - """Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. - 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + """Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / + adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still + accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing + but 'adaptive' (e.g. fable, mythos). """ reasoning_effort: bool | None = None """Whether this model supports reasoning effort configuration""" @@ -37021,12 +37176,21 @@ def to_dict(self) -> dict: return result # Experimental: this type is part of an experimental API and may change or be removed. -class PermissionSource(Enum): +class PermissionModeSource(Enum): """Optional source for permission-mode telemetry. Defaults to `rpc` when omitted for SDK callers. - - Optional source for allow-all telemetry. Defaults to `rpc` when omitted for SDK callers. """ + AUTOPILOT_CONFIRMATION = "autopilot_confirmation" + CLI_FLAG = "cli_flag" + ORGANIZATION_TARGETING = "organization_targeting" + RPC = "rpc" + SLASH_COMMAND = "slash_command" + USER_SETTING = "user_setting" + +# Experimental: this type is part of an experimental API and may change or be removed. +class PermissionsSetApproveAllSource(Enum): + """Optional source for allow-all telemetry. Defaults to `rpc` when omitted for SDK callers.""" + AUTOPILOT_CONFIRMATION = "autopilot_confirmation" CLI_FLAG = "cli_flag" RPC = "rpc" @@ -37041,21 +37205,21 @@ class PermissionsSetApproveAllRequest: enabled: bool """Whether to auto-approve all tool permission requests""" - source: PermissionSource | None = None + source: PermissionsSetApproveAllSource | None = None """Optional source for allow-all telemetry. Defaults to `rpc` when omitted for SDK callers.""" @staticmethod def from_dict(obj: Any) -> 'PermissionsSetApproveAllRequest': assert isinstance(obj, dict) enabled = from_bool(obj.get("enabled")) - source = from_union([PermissionSource, from_none], obj.get("source")) + source = from_union([PermissionsSetApproveAllSource, from_none], obj.get("source")) return PermissionsSetApproveAllRequest(enabled, source) def to_dict(self) -> dict: result: dict = {} result["enabled"] = from_bool(self.enabled) if self.source is not None: - result["source"] = from_union([lambda x: to_enum(PermissionSource, x), from_none], self.source) + result["source"] = from_union([lambda x: to_enum(PermissionsSetApproveAllSource, x), from_none], self.source) return result # Experimental: this type is part of an experimental API and may change or be removed. @@ -37071,7 +37235,7 @@ class PermissionsSetModeRequest: provider default: `gpt-5.5` for CAPI sessions and the active session model for BYOK sessions. """ - source: PermissionSource | None = None + source: PermissionModeSource | None = None """Optional source for permission-mode telemetry. Defaults to `rpc` when omitted for SDK callers. """ @@ -37081,7 +37245,7 @@ def from_dict(obj: Any) -> 'PermissionsSetModeRequest': assert isinstance(obj, dict) mode = PermissionMode(obj.get("mode")) assisted_approval_model = from_union([from_str, from_none], obj.get("assistedApprovalModel")) - source = from_union([PermissionSource, from_none], obj.get("source")) + source = from_union([PermissionModeSource, from_none], obj.get("source")) return PermissionsSetModeRequest(mode, assisted_approval_model, source) def to_dict(self) -> dict: @@ -37090,7 +37254,7 @@ def to_dict(self) -> dict: if self.assisted_approval_model is not None: result["assistedApprovalModel"] = from_union([from_str, from_none], self.assisted_approval_model) if self.source is not None: - result["source"] = from_union([lambda x: to_enum(PermissionSource, x), from_none], self.source) + result["source"] = from_union([lambda x: to_enum(PermissionModeSource, x), from_none], self.source) return result # Experimental: this type is part of an experimental API and may change or be removed. @@ -38616,7 +38780,7 @@ class RPC: permission_location_resolve_params: PermissionLocationResolveParams permission_location_resolve_result: PermissionLocationResolveResult permission_location_type: PermissionLocationType - permission_mode_source: PermissionSource + permission_mode_source: PermissionModeSource permission_paths_add_params: PermissionPathsAddParams permission_paths_allowed_check_params: PermissionPathsAllowedCheckParams permission_paths_allowed_check_result: PermissionPathsAllowedCheckResult @@ -38663,7 +38827,7 @@ class RPC: permissions_reset_session_approvals_result: PermissionsResetSessionApprovalsResult permissions_set_approve_all_request: PermissionsSetApproveAllRequest permissions_set_approve_all_result: PermissionsSetApproveAllResult - permissions_set_approve_all_source: PermissionSource + permissions_set_approve_all_source: PermissionsSetApproveAllSource permissions_set_mode_request: PermissionsSetModeRequest permissions_set_mode_result: PermissionsSetModeResult permissions_set_required_request: PermissionsSetRequiredRequest @@ -39197,6 +39361,7 @@ class RPC: workspaces_add_summary_result: WorkspacesAddSummaryResult workspaces_autopilot_objective_exists_result: WorkspacesAutopilotObjectiveExistsResult workspaces_checkpoints: WorkspacesCheckpoints + workspaces_create_directory_request: WorkspacesCreateDirectoryRequest workspaces_create_file_request: WorkspacesCreateFileRequest workspaces_delete_autopilot_objective_result: WorkspacesDeleteAutopilotObjectiveResult workspaces_diff_request: WorkspacesDiffRequest @@ -39209,8 +39374,12 @@ class RPC: workspaces_read_checkpoint_result: WorkspacesReadCheckpointResult workspaces_read_file_request: WorkspacesReadFileRequest workspaces_read_file_result: WorkspacesReadFileResult + workspaces_remove_path_request: WorkspacesRemovePathRequest + workspaces_rename_path_request: WorkspacesRenamePathRequest workspaces_save_large_paste_request: WorkspacesSaveLargePasteRequest workspaces_save_large_paste_result: WorkspacesSaveLargePasteResult + workspaces_stat_file_request: WorkspacesStatFileRequest + workspaces_stat_file_result: WorkspacesStatFileResult workspaces_truncate_summaries_request: WorkspacesTruncateSummariesRequest workspace_summary_host_type: HostType workspaces_update_metadata_request: WorkspacesUpdateMetadataRequest @@ -39886,7 +40055,7 @@ def from_dict(obj: Any) -> 'RPC': permission_location_resolve_params = PermissionLocationResolveParams.from_dict(obj.get("PermissionLocationResolveParams")) permission_location_resolve_result = PermissionLocationResolveResult.from_dict(obj.get("PermissionLocationResolveResult")) permission_location_type = PermissionLocationType(obj.get("PermissionLocationType")) - permission_mode_source = PermissionSource(obj.get("PermissionModeSource")) + permission_mode_source = PermissionModeSource(obj.get("PermissionModeSource")) permission_paths_add_params = PermissionPathsAddParams.from_dict(obj.get("PermissionPathsAddParams")) permission_paths_allowed_check_params = PermissionPathsAllowedCheckParams.from_dict(obj.get("PermissionPathsAllowedCheckParams")) permission_paths_allowed_check_result = PermissionPathsAllowedCheckResult.from_dict(obj.get("PermissionPathsAllowedCheckResult")) @@ -39933,7 +40102,7 @@ def from_dict(obj: Any) -> 'RPC': permissions_reset_session_approvals_result = PermissionsResetSessionApprovalsResult.from_dict(obj.get("PermissionsResetSessionApprovalsResult")) permissions_set_approve_all_request = PermissionsSetApproveAllRequest.from_dict(obj.get("PermissionsSetApproveAllRequest")) permissions_set_approve_all_result = PermissionsSetApproveAllResult.from_dict(obj.get("PermissionsSetApproveAllResult")) - permissions_set_approve_all_source = PermissionSource(obj.get("PermissionsSetApproveAllSource")) + permissions_set_approve_all_source = PermissionsSetApproveAllSource(obj.get("PermissionsSetApproveAllSource")) permissions_set_mode_request = PermissionsSetModeRequest.from_dict(obj.get("PermissionsSetModeRequest")) permissions_set_mode_result = PermissionsSetModeResult.from_dict(obj.get("PermissionsSetModeResult")) permissions_set_required_request = PermissionsSetRequiredRequest.from_dict(obj.get("PermissionsSetRequiredRequest")) @@ -40467,6 +40636,7 @@ def from_dict(obj: Any) -> 'RPC': workspaces_add_summary_result = WorkspacesAddSummaryResult.from_dict(obj.get("WorkspacesAddSummaryResult")) workspaces_autopilot_objective_exists_result = WorkspacesAutopilotObjectiveExistsResult.from_dict(obj.get("WorkspacesAutopilotObjectiveExistsResult")) workspaces_checkpoints = WorkspacesCheckpoints.from_dict(obj.get("WorkspacesCheckpoints")) + workspaces_create_directory_request = WorkspacesCreateDirectoryRequest.from_dict(obj.get("WorkspacesCreateDirectoryRequest")) workspaces_create_file_request = WorkspacesCreateFileRequest.from_dict(obj.get("WorkspacesCreateFileRequest")) workspaces_delete_autopilot_objective_result = WorkspacesDeleteAutopilotObjectiveResult.from_dict(obj.get("WorkspacesDeleteAutopilotObjectiveResult")) workspaces_diff_request = WorkspacesDiffRequest.from_dict(obj.get("WorkspacesDiffRequest")) @@ -40479,8 +40649,12 @@ def from_dict(obj: Any) -> 'RPC': workspaces_read_checkpoint_result = WorkspacesReadCheckpointResult.from_dict(obj.get("WorkspacesReadCheckpointResult")) workspaces_read_file_request = WorkspacesReadFileRequest.from_dict(obj.get("WorkspacesReadFileRequest")) workspaces_read_file_result = WorkspacesReadFileResult.from_dict(obj.get("WorkspacesReadFileResult")) + workspaces_remove_path_request = WorkspacesRemovePathRequest.from_dict(obj.get("WorkspacesRemovePathRequest")) + workspaces_rename_path_request = WorkspacesRenamePathRequest.from_dict(obj.get("WorkspacesRenamePathRequest")) workspaces_save_large_paste_request = WorkspacesSaveLargePasteRequest.from_dict(obj.get("WorkspacesSaveLargePasteRequest")) workspaces_save_large_paste_result = WorkspacesSaveLargePasteResult.from_dict(obj.get("WorkspacesSaveLargePasteResult")) + workspaces_stat_file_request = WorkspacesStatFileRequest.from_dict(obj.get("WorkspacesStatFileRequest")) + workspaces_stat_file_result = WorkspacesStatFileResult.from_dict(obj.get("WorkspacesStatFileResult")) workspaces_truncate_summaries_request = WorkspacesTruncateSummariesRequest.from_dict(obj.get("WorkspacesTruncateSummariesRequest")) workspace_summary_host_type = HostType(obj.get("WorkspaceSummaryHostType")) workspaces_update_metadata_request = WorkspacesUpdateMetadataRequest.from_dict(obj.get("WorkspacesUpdateMetadataRequest")) @@ -40493,7 +40667,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_list_request, 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, agent_set_prompt_request, agents_get_discovery_paths_request, api_key_auth_info, auth_identity, auth_info, auth_info_type, auth_validation_error, auth_validation_errors, autopilot_objective_credit_limit, autopilot_objective_get_state_result, autopilot_objective_state, autopilot_objective_status, built_in_model_catalog, built_in_model_catalog_entry, builtin_tool_descriptor, builtin_tool_format, builtin_tool_format_type, builtin_tool_input_schema, builtin_tool_input_schema_type, builtin_tool_safe_for_telemetry, builtin_tool_safe_telemetry_fields, 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_provider_register_request, canvas_provider_unregister_request, canvas_session_context, capi_session_options, card_digest, card_digest_algorithm, card_digest_value, catalog_ai_skill_candidate, catalog_ai_skill_candidate_provenance, catalog_authentication_required_error, catalog_authentication_required_reason, catalog_candidate, catalog_candidate_kind, catalog_candidate_source, catalog_candidate_source_embedded, catalog_candidate_source_url, catalog_capability, catalog_capability_id, catalog_client_contract, catalog_contract_violation_error, catalog_contract_violation_reason, catalog_handle_rejected_error, catalog_handle_rejection_reason, catalog_handle_type, catalog_invalid_request_error, catalog_invalid_request_field, catalog_malformed_card_error, catalog_malformed_card_reason, catalog_mcp_server_candidate, catalog_mcp_server_candidate_provenance, catalog_mcp_server_installability, catalog_media_type, catalog_negotiated_contract, catalog_negotiation_refused_error, catalog_negotiation_refused_reason, catalog_network_failure_error, catalog_network_failure_reason, catalog_not_installable_error, catalog_not_installable_reason, catalog_policy_rejected_error, catalog_search_request, catalog_search_result, catalog_search_succeeded, catalog_trust_eligibility, catalog_trust_provenance, catalog_trust_snapshot, catalog_trust_snapshot_absent, catalog_trust_snapshot_absent_status, catalog_trust_snapshot_current, catalog_trust_snapshot_current_status, catalog_trust_snapshot_downgraded, catalog_trust_snapshot_downgraded_status, catalog_trust_snapshot_malformed, catalog_trust_snapshot_malformed_status, catalog_trust_snapshot_revoked, catalog_trust_snapshot_revoked_status, catalog_trust_snapshot_schema_version, catalog_trust_snapshot_stale, catalog_trust_snapshot_stale_status, catalog_trust_snapshot_unsupported, catalog_trust_snapshot_unsupported_status, catalog_trust_source, catalog_trust_tier, catalog_unavailable_error, catalog_unavailable_reason, catalog_unavailable_transport_error, catalog_unavailable_transport_reason, catalog_unsafe_retrieval_error, catalog_unsafe_retrieval_reason, catalog_unsupported_kind_error, client_metadata, client_task_cancel_reason, client_task_cancel_request, client_task_cancel_result, command_list, commands_finalize_invocation_effect_request, commands_finalize_invocation_effect_result, commands_handle_pending_command_request, commands_handle_pending_command_result, commands_invocation_effect_outcome, commands_invocation_origin, 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, connect_client_info, connected_remote_session_metadata, connected_remote_session_metadata_kind, connected_remote_session_metadata_repository, connect_remote_session_params, connect_request, connect_result, content_exclusion_check_paths_request, content_exclusion_check_paths_result, content_exclusion_path_check, 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_extension, discovered_extension_mode, discovered_extension_plugin, discovered_extensions, discovered_extensions_disable_request, discovered_extensions_enable_request, discovered_extension_source, discovered_hook, 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_direction, events_read_result, execute_command_params, execute_command_result, extension, extension_context_push_input, extension_launch_profile, extension_launch_provider_resolve_request, extension_launch_provider_resolve_result, 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, factory_abort_request, factory_ack_result, factory_agent_options, factory_agent_request, factory_agent_result, factory_agent_summary, factory_cancel_request, factory_current_phase, factory_declared_limits, factory_durable_operation, factory_execute_request, factory_execute_result, factory_get_run_progress_request, factory_get_run_request, factory_journal_get_request, factory_journal_get_result, factory_journal_put_request, factory_list_runs_request, factory_list_runs_result, factory_log_line, factory_log_line_kind, factory_log_request, factory_pause_checkpoint_action, factory_pause_checkpoint_request, factory_pause_checkpoint_result, factory_pause_info, factory_pause_request, factory_phase_observation, factory_phase_status, factory_progress_line, factory_progress_page, factory_resume_request, factory_resume_result, factory_run_consumed, factory_run_detail, factory_run_failure, factory_run_failure_kind, factory_run_limits, factory_run_request, factory_run_result, factory_run_status, factory_run_summary, factory_run_terminal, factory_tool_resume_request, factory_tool_run_options, factory_tool_run_request, 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, git_hub_token_acquire_reason, git_hub_token_acquire_request, git_hub_token_acquire_result, handle_pending_tool_call_request, handle_pending_tool_call_result, history_abort_manual_compaction_result, history_cancel_background_compaction_result, history_clear_context_request, history_clear_context_result, history_compact_context_window, history_compact_request, history_compact_result, history_file_restore_skip_reason, history_list_rewind_points_result, history_preview_rewind_request, history_preview_rewind_result, history_rewind_change_type, history_rewind_file_preview, history_rewind_mode, history_rewind_outcome, history_rewind_point, history_rewind_request, history_rewind_result, history_rewind_unavailable_reason, history_skipped_file_restore, history_summarize_for_handoff_result, history_truncate_request, history_truncate_result, hmac_auth_info, hook_invoke_request, hook_invoke_response, hook_origin, hooks_discover_request, hooks_discover_result, hook_type, 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, interrupt_main_turn_request, interrupt_main_turn_result, json_schema_response_format, 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, managed_mcp_server_config, managed_settings_read_result, 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_elicitation_form_mode, mcp_enable_request, mcp_execute_sampling_params, mcp_execute_sampling_request, mcp_execute_sampling_result, mcp_failed_server, 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_install_plan, mcp_is_server_running_request, mcp_is_server_running_result, mcp_list_tools_request, mcp_list_tools_result, mcp_oauth_authentication_state_changed_request, 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_probe_needs_auth_reason, mcp_oauth_probe_request, mcp_oauth_probe_result, mcp_oauth_respond_request, mcp_oauth_respond_result, mcp_plan_configuration_change, mcp_plan_configuration_operation, mcp_plan_enum_value_type, mcp_plan_install_planned, mcp_plan_install_request, mcp_plan_install_result, mcp_plan_install_source, mcp_plan_install_source_candidate, mcp_plan_install_source_candidate_kind, mcp_plan_install_source_card, mcp_plan_install_source_card_kind, mcp_plan_package_install_method, mcp_plan_package_transport, mcp_plan_policy_decision, mcp_plan_policy_result, mcp_plan_policy_source, mcp_plan_provenance, mcp_plan_remote_install_method, mcp_plan_remote_transport, mcp_plan_required_value, mcp_plan_required_value_enum, mcp_plan_required_value_enum_kind, mcp_plan_required_value_scalar, mcp_plan_required_value_scalar_kind, mcp_plan_resource_identity, mcp_plan_scalar_value_type, mcp_plan_scope, mcp_plan_secret_placeholder, mcp_plan_secret_reference, mcp_plan_target, mcp_plan_transport_choice, mcp_plan_transport_choice_package, mcp_plan_transport_choice_remote, mcp_plan_value_category, mcp_register_external_client_request, mcp_reload_config, mcp_reload_with_config_request, mcp_remove_git_hub_result, mcp_resource, mcp_resource_annotations, mcp_resource_content, mcp_resource_icon, mcp_resources_list_request, mcp_resources_list_result, mcp_resources_list_templates_request, mcp_resources_list_templates_result, mcp_resources_read_request, mcp_resources_read_result, mcp_resource_template, mcp_restart_server_request, mcp_safe_for_telemetry, mcp_safe_for_telemetry_fields, mcp_sampling_execution_action, mcp_sampling_execution_result, mcp_serializable_server_config, mcp_server, mcp_server_auth_config, mcp_server_auth_config_redirect_port, mcp_server_card_embedded, mcp_server_card_embedded_kind, mcp_server_card_media_type, mcp_server_card_reference, mcp_server_card_url, mcp_server_card_url_kind, 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_memory, mcp_server_config_memory_type, mcp_server_config_stdio, mcp_server_config_stdio_type, 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_source_file, mcp_source_plugin, mcp_source_ref, mcp_start_server_request, mcp_start_servers_result, mcp_stop_server_request, mcp_task_metadata, mcp_tools, mcp_tool_ui, mcp_tool_ui_visibility, 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, metadata_update_client_metadata_request, model, model_apply_startup_overlay_request, model_billing, model_billing_promo, 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_message, model_picker_category, model_picker_persistence_request, model_picker_price_category, model_picker_settings_context, model_policy, model_policy_state, model_set_allowed_models_request, model_set_allowed_models_result, model_set_reasoning_effort_request, model_set_reasoning_effort_result, models_list_request, model_switch_auto_tier_request, model_switch_auto_tier_result, model_switch_auto_tier_status, model_switch_confirmation, model_switch_to_request, model_switch_to_result, model_warning_text, mode_set_request, mode_set_result, move_mcp_loading_to_background_result, 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_env_access, permission_decision_approve_for_location_approval_extension_management, permission_decision_approve_for_location_approval_extension_permission_access, permission_decision_approve_for_location_approval_factory, 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_env_access, permission_decision_approve_for_session_approval_extension_management, permission_decision_approve_for_session_approval_extension_permission_access, permission_decision_approve_for_session_approval_factory, 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_context, 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_outcome, permission_decision_reject, permission_decision_request, permission_decision_surface, 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_mode_source, 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_response_capability, 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_mode_request, permissions_get_mode_result, 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_env_access, permissions_locations_add_tool_approval_details_extension_management, permissions_locations_add_tool_approval_details_extension_permission_access, permissions_locations_add_tool_approval_details_factory, 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_approve_all_request, permissions_set_approve_all_result, permissions_set_approve_all_source, permissions_set_mode_request, permissions_set_mode_result, 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_install_staging_mode, plugin_list, plugin_list_result, plugins_builtin_set_request, 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, protocol_append_mode, protocol_customize_mode, protocol_external_tool_defer, protocol_external_tool_definition, protocol_marker_section_override, protocol_replace_mode, protocol_section_override, protocol_static_section_action, protocol_static_section_override, protocol_system_message_append_config, protocol_system_message_config, protocol_system_message_customize_config, protocol_system_message_replace_config, 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, queue_begin_deferred_idle_drain_request, queue_begin_deferred_idle_drain_result, queue_consume_system_notifications_request, queued_command_handled, queued_command_not_handled, queued_command_result, queue_defer_session_idle_request, queue_duplicate_at_request, queue_duplicate_at_result, queue_enqueue_resume_pending_result, queue_finish_deferred_idle_drain_request, queue_finish_deferred_idle_drain_result, queue_has_pending_result, queue_insert_at_request, queue_insert_at_result, queue_insert_message, queue_move_item_request, queue_move_item_result, queue_pending_items, queue_pending_items_kind, queue_pending_items_result, queue_remove_at_request, queue_remove_at_result, queue_remove_most_recent_result, queue_send_now_request, queue_send_now_result, queue_set_drain_paused_request, queue_snapshot_result, queue_update_text_request, queue_update_text_result, register_event_interest_params, register_event_interest_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_host_status, remote_session_metadata_repository, remote_session_metadata_task_type, remote_session_metadata_value, remote_session_mode, remote_session_repository, response_format, run_options, sandbox_config, sandbox_config_auth, sandbox_config_source, 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_network_proxy, sandbox_config_user_policy_seatbelt, sandbox_disable_for_session_request, sandbox_disable_for_session_result, sandbox_enforcement_status, sandbox_session_change, schedule_add_at_request, schedule_add_cron_request, schedule_add_request, schedule_add_result, schedule_add_self_paced_request, schedule_entry, schedule_has_self_paced_result, schedule_list, schedule_rearm_self_paced_request, 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_message_item, send_messages_request, send_messages_result, send_mode, send_request, send_result, send_system_notification_request, server_agent_list, server_instruction_source_list, server_skill, server_skill_list, session_activity, session_agent_list_request, session_auth_login_request, session_auth_logout_user_request, session_auth_status, session_auth_switch_request, session_bulk_delete_result, session_cancel_all_background_agents_result, session_capability, session_commands_list_request, session_completion_item, session_context, session_context_host_type, session_enrich_metadata_result, session_factory_pause_at_checkpoint_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_sqlite_transaction_error, session_fs_sqlite_transaction_error_class, session_fs_sqlite_transaction_request, session_fs_sqlite_transaction_result, session_fs_sqlite_transaction_statement, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_git_hub_auth_get_all_auth_available_result, session_git_hub_auth_logout_result, session_git_hub_auth_logout_user_result, session_history_compact_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_limit_prediction_baseline_data, session_limit_prediction_client_type, session_limit_prediction_details, session_limit_prediction_predict_request, session_limit_prediction_request, session_limit_prediction_result, session_limit_prediction_source, session_limit_prediction_tier, session_limit_prediction_tier_option, session_limit_prediction_unavailable_reason, session_list, session_list_entry, session_list_filter, session_load_deferred_repo_hooks_result, session_log_level, session_managed_permissions, session_managed_settings, session_mcp_apps_call_tool_result, session_metadata_snapshot, session_mode, session_model_list, session_model_list_request, session_model_price_category, 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_plugins_reload_request, session_provider_get_endpoint_request, session_prune_result, sessions_bulk_delete_request, sessions_check_in_use_request, sessions_check_in_use_result, sessions_client_metadata_entry, sessions_close_request, sessions_close_result, sessions_delete_request, 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_client_metadata_request, sessions_get_client_metadata_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_metadata_request, sessions_get_metadata_result, sessions_get_persisted_remote_steerable_request, sessions_get_persisted_remote_steerable_result, session_sizes, sessions_list_non_empty_session_ids_request, sessions_list_non_empty_session_ids_result, 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_read_persisted_events_request, 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, settable_auth_info, settable_token_auth_info, shell_cancel_user_requested_request, shell_credentials, shell_exec_request, shell_exec_result, shell_execute_user_requested_request, shell_init_profile, shell_init_script, shell_init_script_shell, shell_kill_request, shell_kill_result, shell_kill_signal, shell_options, shutdown_request, skill, skill_discovery_path, skill_discovery_path_list, skill_discovery_scope, skill_list, skill_provider_descriptor, skill_provider_list_request, skill_provider_list_result, skill_provider_read_request, skill_provider_read_result, skills_config_set_disabled_skills_request, skills_config_set_skill_disabled_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_add_timeline_entry_result, 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_model_picker_dialog, slash_command_select_subcommand_option, slash_command_select_subcommand_result, slash_command_set_model_result, slash_command_set_plan_model_result, slash_command_show_dialog_result, slash_command_text_result, slash_command_timeline_entry, subagent_settings_entry, subagent_settings_entry_context_tier, system_message_block, task_agent_info, task_agent_progress, task_client_active_status, task_client_execution_mode, task_client_info, task_client_owner, task_client_owner_kind, task_client_owner_presence, task_client_progress, task_client_status, task_client_type, task_client_update, task_complete_data, task_completion_decision, task_execution_mode, task_info, task_kind, 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_register_request, tasks_register_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_update_request, tasks_update_result, tasks_wait_for_pending_result, telemetry_set_feature_overrides_request, token_auth_info, token_provider_auth_info, tool, tool_list, tool_result, tool_result_expanded, tool_result_new_message, tool_result_type, tools_execute_request, tools_get_builtin_descriptors_request, tools_get_builtin_descriptors_result, tools_get_current_metadata_result, tools_initialize_and_validate_result, tools_list_request, tools_set_request, tools_set_result, tools_shell_descriptor_config, tools_task_complete_event_data_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_agent_metric, 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_add_summary_request, workspaces_add_summary_result, workspaces_autopilot_objective_exists_result, workspaces_checkpoints, workspaces_create_file_request, workspaces_delete_autopilot_objective_result, workspaces_diff_request, workspaces_ensure_request, workspaces_get_workspace_result, workspaces_list_checkpoints_result, workspaces_list_files_result, workspaces_read_autopilot_objective_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, workspaces_truncate_summaries_request, workspace_summary_host_type, workspaces_update_metadata_request, workspaces_workspace_details_host_type, workspaces_write_autopilot_objective_request, workspaces_write_autopilot_objective_result, session_auth_info_result, 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_list_request, 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, agent_set_prompt_request, agents_get_discovery_paths_request, api_key_auth_info, auth_identity, auth_info, auth_info_type, auth_validation_error, auth_validation_errors, autopilot_objective_credit_limit, autopilot_objective_get_state_result, autopilot_objective_state, autopilot_objective_status, built_in_model_catalog, built_in_model_catalog_entry, builtin_tool_descriptor, builtin_tool_format, builtin_tool_format_type, builtin_tool_input_schema, builtin_tool_input_schema_type, builtin_tool_safe_for_telemetry, builtin_tool_safe_telemetry_fields, 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_provider_register_request, canvas_provider_unregister_request, canvas_session_context, capi_session_options, card_digest, card_digest_algorithm, card_digest_value, catalog_ai_skill_candidate, catalog_ai_skill_candidate_provenance, catalog_authentication_required_error, catalog_authentication_required_reason, catalog_candidate, catalog_candidate_kind, catalog_candidate_source, catalog_candidate_source_embedded, catalog_candidate_source_url, catalog_capability, catalog_capability_id, catalog_client_contract, catalog_contract_violation_error, catalog_contract_violation_reason, catalog_handle_rejected_error, catalog_handle_rejection_reason, catalog_handle_type, catalog_invalid_request_error, catalog_invalid_request_field, catalog_malformed_card_error, catalog_malformed_card_reason, catalog_mcp_server_candidate, catalog_mcp_server_candidate_provenance, catalog_mcp_server_installability, catalog_media_type, catalog_negotiated_contract, catalog_negotiation_refused_error, catalog_negotiation_refused_reason, catalog_network_failure_error, catalog_network_failure_reason, catalog_not_installable_error, catalog_not_installable_reason, catalog_policy_rejected_error, catalog_search_request, catalog_search_result, catalog_search_succeeded, catalog_trust_eligibility, catalog_trust_provenance, catalog_trust_snapshot, catalog_trust_snapshot_absent, catalog_trust_snapshot_absent_status, catalog_trust_snapshot_current, catalog_trust_snapshot_current_status, catalog_trust_snapshot_downgraded, catalog_trust_snapshot_downgraded_status, catalog_trust_snapshot_malformed, catalog_trust_snapshot_malformed_status, catalog_trust_snapshot_revoked, catalog_trust_snapshot_revoked_status, catalog_trust_snapshot_schema_version, catalog_trust_snapshot_stale, catalog_trust_snapshot_stale_status, catalog_trust_snapshot_unsupported, catalog_trust_snapshot_unsupported_status, catalog_trust_source, catalog_trust_tier, catalog_unavailable_error, catalog_unavailable_reason, catalog_unavailable_transport_error, catalog_unavailable_transport_reason, catalog_unsafe_retrieval_error, catalog_unsafe_retrieval_reason, catalog_unsupported_kind_error, client_metadata, client_task_cancel_reason, client_task_cancel_request, client_task_cancel_result, command_list, commands_finalize_invocation_effect_request, commands_finalize_invocation_effect_result, commands_handle_pending_command_request, commands_handle_pending_command_result, commands_invocation_effect_outcome, commands_invocation_origin, 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, connect_client_info, connected_remote_session_metadata, connected_remote_session_metadata_kind, connected_remote_session_metadata_repository, connect_remote_session_params, connect_request, connect_result, content_exclusion_check_paths_request, content_exclusion_check_paths_result, content_exclusion_path_check, 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_extension, discovered_extension_mode, discovered_extension_plugin, discovered_extensions, discovered_extensions_disable_request, discovered_extensions_enable_request, discovered_extension_source, discovered_hook, 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_direction, events_read_result, execute_command_params, execute_command_result, extension, extension_context_push_input, extension_launch_profile, extension_launch_provider_resolve_request, extension_launch_provider_resolve_result, 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, factory_abort_request, factory_ack_result, factory_agent_options, factory_agent_request, factory_agent_result, factory_agent_summary, factory_cancel_request, factory_current_phase, factory_declared_limits, factory_durable_operation, factory_execute_request, factory_execute_result, factory_get_run_progress_request, factory_get_run_request, factory_journal_get_request, factory_journal_get_result, factory_journal_put_request, factory_list_runs_request, factory_list_runs_result, factory_log_line, factory_log_line_kind, factory_log_request, factory_pause_checkpoint_action, factory_pause_checkpoint_request, factory_pause_checkpoint_result, factory_pause_info, factory_pause_request, factory_phase_observation, factory_phase_status, factory_progress_line, factory_progress_page, factory_resume_request, factory_resume_result, factory_run_consumed, factory_run_detail, factory_run_failure, factory_run_failure_kind, factory_run_limits, factory_run_request, factory_run_result, factory_run_status, factory_run_summary, factory_run_terminal, factory_tool_resume_request, factory_tool_run_options, factory_tool_run_request, 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, git_hub_token_acquire_reason, git_hub_token_acquire_request, git_hub_token_acquire_result, handle_pending_tool_call_request, handle_pending_tool_call_result, history_abort_manual_compaction_result, history_cancel_background_compaction_result, history_clear_context_request, history_clear_context_result, history_compact_context_window, history_compact_request, history_compact_result, history_file_restore_skip_reason, history_list_rewind_points_result, history_preview_rewind_request, history_preview_rewind_result, history_rewind_change_type, history_rewind_file_preview, history_rewind_mode, history_rewind_outcome, history_rewind_point, history_rewind_request, history_rewind_result, history_rewind_unavailable_reason, history_skipped_file_restore, history_summarize_for_handoff_result, history_truncate_request, history_truncate_result, hmac_auth_info, hook_invoke_request, hook_invoke_response, hook_origin, hooks_discover_request, hooks_discover_result, hook_type, 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, interrupt_main_turn_request, interrupt_main_turn_result, json_schema_response_format, 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, managed_mcp_server_config, managed_settings_read_result, 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_elicitation_form_mode, mcp_enable_request, mcp_execute_sampling_params, mcp_execute_sampling_request, mcp_execute_sampling_result, mcp_failed_server, 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_install_plan, mcp_is_server_running_request, mcp_is_server_running_result, mcp_list_tools_request, mcp_list_tools_result, mcp_oauth_authentication_state_changed_request, 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_probe_needs_auth_reason, mcp_oauth_probe_request, mcp_oauth_probe_result, mcp_oauth_respond_request, mcp_oauth_respond_result, mcp_plan_configuration_change, mcp_plan_configuration_operation, mcp_plan_enum_value_type, mcp_plan_install_planned, mcp_plan_install_request, mcp_plan_install_result, mcp_plan_install_source, mcp_plan_install_source_candidate, mcp_plan_install_source_candidate_kind, mcp_plan_install_source_card, mcp_plan_install_source_card_kind, mcp_plan_package_install_method, mcp_plan_package_transport, mcp_plan_policy_decision, mcp_plan_policy_result, mcp_plan_policy_source, mcp_plan_provenance, mcp_plan_remote_install_method, mcp_plan_remote_transport, mcp_plan_required_value, mcp_plan_required_value_enum, mcp_plan_required_value_enum_kind, mcp_plan_required_value_scalar, mcp_plan_required_value_scalar_kind, mcp_plan_resource_identity, mcp_plan_scalar_value_type, mcp_plan_scope, mcp_plan_secret_placeholder, mcp_plan_secret_reference, mcp_plan_target, mcp_plan_transport_choice, mcp_plan_transport_choice_package, mcp_plan_transport_choice_remote, mcp_plan_value_category, mcp_register_external_client_request, mcp_reload_config, mcp_reload_with_config_request, mcp_remove_git_hub_result, mcp_resource, mcp_resource_annotations, mcp_resource_content, mcp_resource_icon, mcp_resources_list_request, mcp_resources_list_result, mcp_resources_list_templates_request, mcp_resources_list_templates_result, mcp_resources_read_request, mcp_resources_read_result, mcp_resource_template, mcp_restart_server_request, mcp_safe_for_telemetry, mcp_safe_for_telemetry_fields, mcp_sampling_execution_action, mcp_sampling_execution_result, mcp_serializable_server_config, mcp_server, mcp_server_auth_config, mcp_server_auth_config_redirect_port, mcp_server_card_embedded, mcp_server_card_embedded_kind, mcp_server_card_media_type, mcp_server_card_reference, mcp_server_card_url, mcp_server_card_url_kind, 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_memory, mcp_server_config_memory_type, mcp_server_config_stdio, mcp_server_config_stdio_type, 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_source_file, mcp_source_plugin, mcp_source_ref, mcp_start_server_request, mcp_start_servers_result, mcp_stop_server_request, mcp_task_metadata, mcp_tools, mcp_tool_ui, mcp_tool_ui_visibility, 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, metadata_update_client_metadata_request, model, model_apply_startup_overlay_request, model_billing, model_billing_promo, 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_message, model_picker_category, model_picker_persistence_request, model_picker_price_category, model_picker_settings_context, model_policy, model_policy_state, model_set_allowed_models_request, model_set_allowed_models_result, model_set_reasoning_effort_request, model_set_reasoning_effort_result, models_list_request, model_switch_auto_tier_request, model_switch_auto_tier_result, model_switch_auto_tier_status, model_switch_confirmation, model_switch_to_request, model_switch_to_result, model_warning_text, mode_set_request, mode_set_result, move_mcp_loading_to_background_result, 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_env_access, permission_decision_approve_for_location_approval_extension_management, permission_decision_approve_for_location_approval_extension_permission_access, permission_decision_approve_for_location_approval_factory, 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_env_access, permission_decision_approve_for_session_approval_extension_management, permission_decision_approve_for_session_approval_extension_permission_access, permission_decision_approve_for_session_approval_factory, 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_context, 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_outcome, permission_decision_reject, permission_decision_request, permission_decision_surface, 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_mode_source, 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_response_capability, 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_mode_request, permissions_get_mode_result, 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_env_access, permissions_locations_add_tool_approval_details_extension_management, permissions_locations_add_tool_approval_details_extension_permission_access, permissions_locations_add_tool_approval_details_factory, 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_approve_all_request, permissions_set_approve_all_result, permissions_set_approve_all_source, permissions_set_mode_request, permissions_set_mode_result, 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_install_staging_mode, plugin_list, plugin_list_result, plugins_builtin_set_request, 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, protocol_append_mode, protocol_customize_mode, protocol_external_tool_defer, protocol_external_tool_definition, protocol_marker_section_override, protocol_replace_mode, protocol_section_override, protocol_static_section_action, protocol_static_section_override, protocol_system_message_append_config, protocol_system_message_config, protocol_system_message_customize_config, protocol_system_message_replace_config, 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, queue_begin_deferred_idle_drain_request, queue_begin_deferred_idle_drain_result, queue_consume_system_notifications_request, queued_command_handled, queued_command_not_handled, queued_command_result, queue_defer_session_idle_request, queue_duplicate_at_request, queue_duplicate_at_result, queue_enqueue_resume_pending_result, queue_finish_deferred_idle_drain_request, queue_finish_deferred_idle_drain_result, queue_has_pending_result, queue_insert_at_request, queue_insert_at_result, queue_insert_message, queue_move_item_request, queue_move_item_result, queue_pending_items, queue_pending_items_kind, queue_pending_items_result, queue_remove_at_request, queue_remove_at_result, queue_remove_most_recent_result, queue_send_now_request, queue_send_now_result, queue_set_drain_paused_request, queue_snapshot_result, queue_update_text_request, queue_update_text_result, register_event_interest_params, register_event_interest_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_host_status, remote_session_metadata_repository, remote_session_metadata_task_type, remote_session_metadata_value, remote_session_mode, remote_session_repository, response_format, run_options, sandbox_config, sandbox_config_auth, sandbox_config_source, 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_network_proxy, sandbox_config_user_policy_seatbelt, sandbox_disable_for_session_request, sandbox_disable_for_session_result, sandbox_enforcement_status, sandbox_session_change, schedule_add_at_request, schedule_add_cron_request, schedule_add_request, schedule_add_result, schedule_add_self_paced_request, schedule_entry, schedule_has_self_paced_result, schedule_list, schedule_rearm_self_paced_request, 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_message_item, send_messages_request, send_messages_result, send_mode, send_request, send_result, send_system_notification_request, server_agent_list, server_instruction_source_list, server_skill, server_skill_list, session_activity, session_agent_list_request, session_auth_login_request, session_auth_logout_user_request, session_auth_status, session_auth_switch_request, session_bulk_delete_result, session_cancel_all_background_agents_result, session_capability, session_commands_list_request, session_completion_item, session_context, session_context_host_type, session_enrich_metadata_result, session_factory_pause_at_checkpoint_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_sqlite_transaction_error, session_fs_sqlite_transaction_error_class, session_fs_sqlite_transaction_request, session_fs_sqlite_transaction_result, session_fs_sqlite_transaction_statement, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_git_hub_auth_get_all_auth_available_result, session_git_hub_auth_logout_result, session_git_hub_auth_logout_user_result, session_history_compact_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_limit_prediction_baseline_data, session_limit_prediction_client_type, session_limit_prediction_details, session_limit_prediction_predict_request, session_limit_prediction_request, session_limit_prediction_result, session_limit_prediction_source, session_limit_prediction_tier, session_limit_prediction_tier_option, session_limit_prediction_unavailable_reason, session_list, session_list_entry, session_list_filter, session_load_deferred_repo_hooks_result, session_log_level, session_managed_permissions, session_managed_settings, session_mcp_apps_call_tool_result, session_metadata_snapshot, session_mode, session_model_list, session_model_list_request, session_model_price_category, 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_plugins_reload_request, session_provider_get_endpoint_request, session_prune_result, sessions_bulk_delete_request, sessions_check_in_use_request, sessions_check_in_use_result, sessions_client_metadata_entry, sessions_close_request, sessions_close_result, sessions_delete_request, 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_client_metadata_request, sessions_get_client_metadata_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_metadata_request, sessions_get_metadata_result, sessions_get_persisted_remote_steerable_request, sessions_get_persisted_remote_steerable_result, session_sizes, sessions_list_non_empty_session_ids_request, sessions_list_non_empty_session_ids_result, 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_read_persisted_events_request, 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, settable_auth_info, settable_token_auth_info, shell_cancel_user_requested_request, shell_credentials, shell_exec_request, shell_exec_result, shell_execute_user_requested_request, shell_init_profile, shell_init_script, shell_init_script_shell, shell_kill_request, shell_kill_result, shell_kill_signal, shell_options, shutdown_request, skill, skill_discovery_path, skill_discovery_path_list, skill_discovery_scope, skill_list, skill_provider_descriptor, skill_provider_list_request, skill_provider_list_result, skill_provider_read_request, skill_provider_read_result, skills_config_set_disabled_skills_request, skills_config_set_skill_disabled_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_add_timeline_entry_result, 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_model_picker_dialog, slash_command_select_subcommand_option, slash_command_select_subcommand_result, slash_command_set_model_result, slash_command_set_plan_model_result, slash_command_show_dialog_result, slash_command_text_result, slash_command_timeline_entry, subagent_settings_entry, subagent_settings_entry_context_tier, system_message_block, task_agent_info, task_agent_progress, task_client_active_status, task_client_execution_mode, task_client_info, task_client_owner, task_client_owner_kind, task_client_owner_presence, task_client_progress, task_client_status, task_client_type, task_client_update, task_complete_data, task_completion_decision, task_execution_mode, task_info, task_kind, 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_register_request, tasks_register_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_update_request, tasks_update_result, tasks_wait_for_pending_result, telemetry_set_feature_overrides_request, token_auth_info, token_provider_auth_info, tool, tool_list, tool_result, tool_result_expanded, tool_result_new_message, tool_result_type, tools_execute_request, tools_get_builtin_descriptors_request, tools_get_builtin_descriptors_result, tools_get_current_metadata_result, tools_initialize_and_validate_result, tools_list_request, tools_set_request, tools_set_result, tools_shell_descriptor_config, tools_task_complete_event_data_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_agent_metric, 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_add_summary_request, workspaces_add_summary_result, workspaces_autopilot_objective_exists_result, workspaces_checkpoints, workspaces_create_directory_request, workspaces_create_file_request, workspaces_delete_autopilot_objective_result, workspaces_diff_request, workspaces_ensure_request, workspaces_get_workspace_result, workspaces_list_checkpoints_result, workspaces_list_files_result, workspaces_read_autopilot_objective_result, workspaces_read_checkpoint_request, workspaces_read_checkpoint_result, workspaces_read_file_request, workspaces_read_file_result, workspaces_remove_path_request, workspaces_rename_path_request, workspaces_save_large_paste_request, workspaces_save_large_paste_result, workspaces_stat_file_request, workspaces_stat_file_result, workspaces_truncate_summaries_request, workspace_summary_host_type, workspaces_update_metadata_request, workspaces_workspace_details_host_type, workspaces_write_autopilot_objective_request, workspaces_write_autopilot_objective_result, session_auth_info_result, session_context_attribution, session_context_info, subagent_settings, task_progress, workspace_summary) def to_dict(self) -> dict: result: dict = {} @@ -41156,7 +41330,7 @@ def to_dict(self) -> dict: result["PermissionLocationResolveParams"] = to_class(PermissionLocationResolveParams, self.permission_location_resolve_params) result["PermissionLocationResolveResult"] = to_class(PermissionLocationResolveResult, self.permission_location_resolve_result) result["PermissionLocationType"] = to_enum(PermissionLocationType, self.permission_location_type) - result["PermissionModeSource"] = to_enum(PermissionSource, self.permission_mode_source) + result["PermissionModeSource"] = to_enum(PermissionModeSource, self.permission_mode_source) result["PermissionPathsAddParams"] = to_class(PermissionPathsAddParams, self.permission_paths_add_params) result["PermissionPathsAllowedCheckParams"] = to_class(PermissionPathsAllowedCheckParams, self.permission_paths_allowed_check_params) result["PermissionPathsAllowedCheckResult"] = to_class(PermissionPathsAllowedCheckResult, self.permission_paths_allowed_check_result) @@ -41203,7 +41377,7 @@ def to_dict(self) -> dict: result["PermissionsResetSessionApprovalsResult"] = to_class(PermissionsResetSessionApprovalsResult, self.permissions_reset_session_approvals_result) result["PermissionsSetApproveAllRequest"] = to_class(PermissionsSetApproveAllRequest, self.permissions_set_approve_all_request) result["PermissionsSetApproveAllResult"] = to_class(PermissionsSetApproveAllResult, self.permissions_set_approve_all_result) - result["PermissionsSetApproveAllSource"] = to_enum(PermissionSource, self.permissions_set_approve_all_source) + result["PermissionsSetApproveAllSource"] = to_enum(PermissionsSetApproveAllSource, self.permissions_set_approve_all_source) result["PermissionsSetModeRequest"] = to_class(PermissionsSetModeRequest, self.permissions_set_mode_request) result["PermissionsSetModeResult"] = to_class(PermissionsSetModeResult, self.permissions_set_mode_result) result["PermissionsSetRequiredRequest"] = to_class(PermissionsSetRequiredRequest, self.permissions_set_required_request) @@ -41737,6 +41911,7 @@ def to_dict(self) -> dict: result["WorkspacesAddSummaryResult"] = to_class(WorkspacesAddSummaryResult, self.workspaces_add_summary_result) result["WorkspacesAutopilotObjectiveExistsResult"] = to_class(WorkspacesAutopilotObjectiveExistsResult, self.workspaces_autopilot_objective_exists_result) result["WorkspacesCheckpoints"] = to_class(WorkspacesCheckpoints, self.workspaces_checkpoints) + result["WorkspacesCreateDirectoryRequest"] = to_class(WorkspacesCreateDirectoryRequest, self.workspaces_create_directory_request) result["WorkspacesCreateFileRequest"] = to_class(WorkspacesCreateFileRequest, self.workspaces_create_file_request) result["WorkspacesDeleteAutopilotObjectiveResult"] = to_class(WorkspacesDeleteAutopilotObjectiveResult, self.workspaces_delete_autopilot_objective_result) result["WorkspacesDiffRequest"] = to_class(WorkspacesDiffRequest, self.workspaces_diff_request) @@ -41749,8 +41924,12 @@ def to_dict(self) -> dict: result["WorkspacesReadCheckpointResult"] = to_class(WorkspacesReadCheckpointResult, self.workspaces_read_checkpoint_result) result["WorkspacesReadFileRequest"] = to_class(WorkspacesReadFileRequest, self.workspaces_read_file_request) result["WorkspacesReadFileResult"] = to_class(WorkspacesReadFileResult, self.workspaces_read_file_result) + result["WorkspacesRemovePathRequest"] = to_class(WorkspacesRemovePathRequest, self.workspaces_remove_path_request) + result["WorkspacesRenamePathRequest"] = to_class(WorkspacesRenamePathRequest, self.workspaces_rename_path_request) result["WorkspacesSaveLargePasteRequest"] = to_class(WorkspacesSaveLargePasteRequest, self.workspaces_save_large_paste_request) result["WorkspacesSaveLargePasteResult"] = to_class(WorkspacesSaveLargePasteResult, self.workspaces_save_large_paste_result) + result["WorkspacesStatFileRequest"] = to_class(WorkspacesStatFileRequest, self.workspaces_stat_file_request) + result["WorkspacesStatFileResult"] = to_class(WorkspacesStatFileResult, self.workspaces_stat_file_result) result["WorkspacesTruncateSummariesRequest"] = to_class(WorkspacesTruncateSummariesRequest, self.workspaces_truncate_summaries_request) result["WorkspaceSummaryHostType"] = to_enum(HostType, self.workspace_summary_host_type) result["WorkspacesUpdateMetadataRequest"] = to_class(WorkspacesUpdateMetadataRequest, self.workspaces_update_metadata_request) @@ -42181,9 +42360,7 @@ def _load_TaskInfo(obj: Any) -> "TaskInfo": OptionsUpdateAdditionalContentExclusionPolicyScope = AdditionalContentExclusionPolicyScope OptionsUpdateEnvValueMode = MCPSetEnvValueModeDetails OptionsUpdateReasoningSummary = ReasoningSummary -PermissionModeSource = PermissionSource PermissionsConfigureAdditionalContentExclusionPolicyScope = AdditionalContentExclusionPolicyScope -PermissionsSetApproveAllSource = PermissionSource PluginsReloadRequest = Any ProtocolExternalToolDefer = MCPServerConfigDeferTools ProviderConfigTransport = ProviderTransport @@ -43196,6 +43373,30 @@ async def create_file(self, params: WorkspacesCreateFileRequest, *, timeout: flo params_dict["sessionId"] = self._session_id await self._client.request("session.workspaces.createFile", params_dict, **_timeout_kwargs(timeout)) + async def stat_file(self, params: WorkspacesStatFileRequest, *, timeout: float | None = None) -> WorkspacesStatFileResult: + "Returns metadata for a file or directory in the session workspace files directory.\n\nArgs:\n params: Relative path of the workspace file or directory to inspect.\n\nReturns:\n Filesystem metadata for a path in the session workspace files directory." + 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 WorkspacesStatFileResult.from_dict(await self._client.request("session.workspaces.statFile", params_dict, **_timeout_kwargs(timeout))) + + async def create_directory(self, params: WorkspacesCreateDirectoryRequest, *, timeout: float | None = None) -> None: + "Creates a directory in the session workspace files directory.\n\nArgs:\n params: Directory to create within the session workspace files directory." + 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 + await self._client.request("session.workspaces.createDirectory", params_dict, **_timeout_kwargs(timeout)) + + async def remove_path(self, params: WorkspacesRemovePathRequest, *, timeout: float | None = None) -> None: + "Removes a file or directory from the session workspace files directory.\n\nArgs:\n params: File or directory to remove from the session workspace files directory." + 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 + await self._client.request("session.workspaces.removePath", params_dict, **_timeout_kwargs(timeout)) + + async def rename_path(self, params: WorkspacesRenamePathRequest, *, timeout: float | None = None) -> None: + "Renames a file or directory within the session workspace files directory.\n\nArgs:\n params: Source and destination paths for a rename within the session workspace files directory." + 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 + await self._client.request("session.workspaces.renamePath", params_dict, **_timeout_kwargs(timeout)) + async def list_checkpoints(self, *, timeout: float | None = None) -> WorkspacesListCheckpointsResult: "Lists workspace checkpoints in chronological order.\n\nReturns:\n Workspace checkpoints in chronological order; empty when the workspace is not enabled." return WorkspacesListCheckpointsResult.from_dict(await self._client.request("session.workspaces.listCheckpoints", {"sessionId": self._session_id}, **_timeout_kwargs(timeout))) @@ -45919,7 +46120,6 @@ async def handle_git_hub_token_get_token(params: dict) -> dict | None: "PermissionRequestResult", "PermissionResponseCapability", "PermissionRulesSet", - "PermissionSource", "PermissionUrlsConfig", "PermissionUrlsSetUnrestrictedModeParams", "PermissionsApi", @@ -46601,6 +46801,7 @@ async def handle_git_hub_token_get_token(params: dict) -> dict | None: "WorkspacesApi", "WorkspacesAutopilotObjectiveExistsResult", "WorkspacesCheckpoints", + "WorkspacesCreateDirectoryRequest", "WorkspacesCreateFileRequest", "WorkspacesDeleteAutopilotObjectiveResult", "WorkspacesDiffRequest", @@ -46613,8 +46814,12 @@ async def handle_git_hub_token_get_token(params: dict) -> dict | None: "WorkspacesReadCheckpointResult", "WorkspacesReadFileRequest", "WorkspacesReadFileResult", + "WorkspacesRemovePathRequest", + "WorkspacesRenamePathRequest", "WorkspacesSaveLargePasteRequest", "WorkspacesSaveLargePasteResult", + "WorkspacesStatFileRequest", + "WorkspacesStatFileResult", "WorkspacesTruncateSummariesRequest", "WorkspacesUpdateMetadataRequest", "WorkspacesWorkspaceDetailsHostType", diff --git a/python/copilot/generated/session_events.py b/python/copilot/generated/session_events.py index cecdbe1dd7..f47d7c9420 100644 --- a/python/copilot/generated/session_events.py +++ b/python/copilot/generated/session_events.py @@ -2415,6 +2415,26 @@ def to_dict(self) -> dict: return result +# Experimental: this type is part of an experimental API and may change or be removed. +@dataclass +class ToolExecutionCompleteShellExecution: + "Experimental shell completion facts retained independently of the full tool result." + exit_code: int + + @staticmethod + def from_dict(obj: Any) -> "ToolExecutionCompleteShellExecution": + assert isinstance(obj, dict) + exit_code = from_int(obj.get("exitCode")) + return ToolExecutionCompleteShellExecution( + exit_code=exit_code, + ) + + def to_dict(self) -> dict: + result: dict = {} + result["exitCode"] = to_int(self.exit_code) + return result + + # Experimental: this type is part of an experimental API and may change or be removed. @dataclass class UiEphemeralQueryData: @@ -11008,6 +11028,8 @@ class ToolExecutionCompleteData: result: ToolExecutionCompleteResult | None = None rte: bool | None = None sandboxed: bool | None = None + # Experimental: this field is part of an experimental API and may change or be removed. + shell_execution: ToolExecutionCompleteShellExecution | None = None tool_description: ToolExecutionCompleteToolDescription | None = None tool_telemetry: dict[str, Any] | None = None turn_id: str | None = None @@ -11027,6 +11049,7 @@ def from_dict(obj: Any) -> "ToolExecutionCompleteData": result = from_union([from_none, ToolExecutionCompleteResult.from_dict], obj.get("result")) rte = from_union([from_none, from_bool], obj.get("rte")) sandboxed = from_union([from_none, from_bool], obj.get("sandboxed")) + shell_execution = from_union([from_none, ToolExecutionCompleteShellExecution.from_dict], obj.get("shellExecution")) tool_description = from_union([from_none, ToolExecutionCompleteToolDescription.from_dict], obj.get("toolDescription")) tool_telemetry = from_union([from_none, lambda x: from_dict(lambda x: x, x)], obj.get("toolTelemetry")) turn_id = from_union([from_none, from_str], obj.get("turnId")) @@ -11043,6 +11066,7 @@ def from_dict(obj: Any) -> "ToolExecutionCompleteData": result=result, rte=rte, sandboxed=sandboxed, + shell_execution=shell_execution, tool_description=tool_description, tool_telemetry=tool_telemetry, turn_id=turn_id, @@ -11072,6 +11096,8 @@ def to_dict(self) -> dict: result["rte"] = from_union([from_none, from_bool], self.rte) if self.sandboxed is not None: result["sandboxed"] = from_union([from_none, from_bool], self.sandboxed) + if self.shell_execution is not None: + result["shellExecution"] = from_union([from_none, lambda x: to_class(ToolExecutionCompleteShellExecution, x)], self.shell_execution) if self.tool_description is not None: result["toolDescription"] = from_union([from_none, lambda x: to_class(ToolExecutionCompleteToolDescription, x)], self.tool_description) if self.tool_telemetry is not None: @@ -13932,6 +13958,7 @@ def session_event_to_dict(x: SessionEvent) -> Any: "ToolExecutionCompleteData", "ToolExecutionCompleteError", "ToolExecutionCompleteResult", + "ToolExecutionCompleteShellExecution", "ToolExecutionCompleteToolDescription", "ToolExecutionCompleteToolDescriptionMeta", "ToolExecutionCompleteToolDescriptionMetaUI", diff --git a/rust/src/generated/api_types.rs b/rust/src/generated/api_types.rs index 866d2034df..3e8b45a72b 100644 --- a/rust/src/generated/api_types.rs +++ b/rust/src/generated/api_types.rs @@ -337,6 +337,14 @@ pub mod rpc_methods { pub const SESSION_WORKSPACES_READFILE: &str = "session.workspaces.readFile"; /// `session.workspaces.createFile` pub const SESSION_WORKSPACES_CREATEFILE: &str = "session.workspaces.createFile"; + /// `session.workspaces.statFile` + pub const SESSION_WORKSPACES_STATFILE: &str = "session.workspaces.statFile"; + /// `session.workspaces.createDirectory` + pub const SESSION_WORKSPACES_CREATEDIRECTORY: &str = "session.workspaces.createDirectory"; + /// `session.workspaces.removePath` + pub const SESSION_WORKSPACES_REMOVEPATH: &str = "session.workspaces.removePath"; + /// `session.workspaces.renamePath` + pub const SESSION_WORKSPACES_RENAMEPATH: &str = "session.workspaces.renamePath"; /// `session.workspaces.listCheckpoints` pub const SESSION_WORKSPACES_LISTCHECKPOINTS: &str = "session.workspaces.listCheckpoints"; /// `session.workspaces.readCheckpoint` @@ -10705,7 +10713,7 @@ pub struct ModelCapabilitiesLimits { #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ModelCapabilitiesSupports { - /// Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + /// Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing but 'adaptive' (e.g. fable, mythos). #[serde(rename = "adaptive_thinking", skip_serializing_if = "Option::is_none")] pub adaptive_thinking: Option, /// Whether this model supports reasoning effort configuration @@ -10945,7 +10953,7 @@ pub struct ModelCapabilitiesOverrideLimits { #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ModelCapabilitiesOverrideSupports { - /// Resolved Anthropic adaptive-thinking capability — unsupported / optional / required. 'required' models reject thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8). + /// Resolved Anthropic adaptive-thinking capability — unsupported / optional / required / adaptive_only. 'required' models reject thinking.type='enabled' with HTTP 400 but still accept 'disabled' (e.g. opus-4.7/4.8/5, sonnet-5); 'adaptive_only' models accept nothing but 'adaptive' (e.g. fable, mythos). #[serde(rename = "adaptive_thinking", skip_serializing_if = "Option::is_none")] pub adaptive_thinking: Option, /// Whether this model supports reasoning effort configuration @@ -19457,6 +19465,9 @@ pub struct ShellKillResult { #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ShutdownRequest { + /// Dispatch deferred sessionEnd hooks in the background with their full per-hook timeoutSec instead of awaiting them under the short shared shutdown budget. Set this when the host process keeps running after the session closes (for example the CLI's /clear), so a slow hook neither blocks the close nor is aborted. Hooks still detached when the process later exits are terminated with it. Defaults to false. + #[serde(skip_serializing_if = "Option::is_none")] + pub detach_session_end_hooks: Option, /// Optional human-readable reason. Typically the message of the error that triggered shutdown when type is 'error'. #[serde(skip_serializing_if = "Option::is_none")] pub reason: Option, @@ -22324,6 +22335,24 @@ pub struct WorkspacesCheckpoints { pub title: String, } +/// Directory to create within the session workspace files directory. +/// +///

+/// +/// **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 WorkspacesCreateDirectoryRequest { + /// Slash-separated relative path within the workspace files directory + pub path: String, + /// Whether to create missing parent directories. Defaults to false. + #[serde(skip_serializing_if = "Option::is_none")] + pub recursive: Option, +} + /// Relative path and UTF-8 content for the workspace file to create or overwrite. /// ///
@@ -22337,7 +22366,7 @@ pub struct WorkspacesCheckpoints { pub struct WorkspacesCreateFileRequest { /// File content to write as a UTF-8 string pub content: String, - /// Relative path within the workspace files directory + /// Slash-separated relative path within the workspace files directory pub path: String, } @@ -22492,7 +22521,7 @@ pub struct WorkspacesListCheckpointsResult { #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct WorkspacesListFilesResult { - /// Relative file paths in the workspace files directory + /// Slash-separated relative file paths in the workspace files directory pub files: Vec, } @@ -22552,7 +22581,7 @@ pub struct WorkspacesReadCheckpointResult { #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct WorkspacesReadFileRequest { - /// Relative path within the workspace files directory + /// Slash-separated relative path within the workspace files directory pub path: String, } @@ -22571,6 +22600,44 @@ pub struct WorkspacesReadFileResult { pub content: String, } +/// File or directory to remove from the session workspace files directory. +/// +///
+/// +/// **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 WorkspacesRemovePathRequest { + /// Whether a missing path should be treated as success. Defaults to false. + #[serde(skip_serializing_if = "Option::is_none")] + pub force: Option, + /// Slash-separated relative path within the workspace files directory + pub path: String, + /// Whether to remove directory contents recursively. Defaults to false. + #[serde(skip_serializing_if = "Option::is_none")] + pub recursive: Option, +} + +/// Source and destination paths for a rename within the session workspace files directory. +/// +///
+/// +/// **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 WorkspacesRenamePathRequest { + /// Slash-separated destination path relative to the workspace files directory + pub destination: String, + /// Slash-separated source path relative to the workspace files directory + pub source: String, +} + /// Pasted content to save as a UTF-8 file in the session workspace. /// ///
@@ -22612,6 +22679,44 @@ pub struct WorkspacesSaveLargePasteResult { pub saved: Option, } +/// Relative path of the workspace file or directory to inspect. +/// +///
+/// +/// **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 WorkspacesStatFileRequest { + /// Slash-separated relative path within the workspace files directory + pub path: String, +} + +/// Filesystem metadata for a path in the session workspace files directory. +/// +///
+/// +/// **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 WorkspacesStatFileResult { + /// Creation time in Unix epoch milliseconds + pub birthtime_ms: f64, + /// Whether the path identifies a directory + pub is_directory: bool, + /// Whether the path identifies a regular file + pub is_file: bool, + /// Last modification time in Unix epoch milliseconds + pub mtime_ms: f64, + /// Size in bytes + pub size: f64, +} + /// Rollback point for local workspace summaries. /// ///
@@ -24842,7 +24947,7 @@ pub struct SessionWorkspacesListFilesParams { #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct SessionWorkspacesListFilesResult { - /// Relative file paths in the workspace files directory + /// Slash-separated relative file paths in the workspace files directory pub files: Vec, } @@ -24861,6 +24966,29 @@ pub struct SessionWorkspacesReadFileResult { pub content: String, } +/// Filesystem metadata for a path in the session workspace files directory. +/// +///
+/// +/// **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 SessionWorkspacesStatFileResult { + /// Creation time in Unix epoch milliseconds + pub birthtime_ms: f64, + /// Whether the path identifies a directory + pub is_directory: bool, + /// Whether the path identifies a regular file + pub is_file: bool, + /// Last modification time in Unix epoch milliseconds + pub mtime_ms: f64, + /// Size in bytes + pub size: f64, +} + /// Identifies the target session. /// ///
@@ -28985,9 +29113,12 @@ pub enum AdaptiveThinkingSupport { /// The model accepts adaptive thinking but also accepts thinking.type='enabled' #[serde(rename = "optional")] Optional, - /// The model only accepts adaptive thinking and rejects thinking.type='enabled' with HTTP 400 (e.g. opus-4.7/4.8) + /// The model defaults to adaptive thinking and rejects thinking.type='enabled' with HTTP 400, but still accepts thinking.type='disabled' (e.g. opus-4.7/4.8/5, sonnet-5) #[serde(rename = "required")] Required, + /// The model accepts only thinking.type='adaptive'; 'enabled', 'disabled', and an omitted thinking block all fail with HTTP 400 (e.g. fable, mythos) + #[serde(rename = "adaptive_only")] + AdaptiveOnly, /// Unknown variant for forward compatibility. #[default] #[serde(other)] @@ -33745,6 +33876,9 @@ pub enum PermissionModeSource { /// The mode was set at startup by the `defaultPermissionMode` user setting. #[serde(rename = "user_setting")] UserSetting, + /// The mode was set at startup by authenticated organization targeting. + #[serde(rename = "organization_targeting")] + OrganizationTargeting, /// The mode was set through an RPC caller. #[serde(rename = "rpc")] Rpc, diff --git a/rust/src/generated/rpc.rs b/rust/src/generated/rpc.rs index d07ccf0b4f..bbde719b6a 100644 --- a/rust/src/generated/rpc.rs +++ b/rust/src/generated/rpc.rs @@ -11847,6 +11847,129 @@ impl<'a> SessionRpcWorkspaces<'a> { Ok(()) } + /// Returns metadata for a file or directory in the session workspace files directory. + /// + /// Wire method: `session.workspaces.statFile`. + /// + /// # Parameters + /// + /// * `params` - Relative path of the workspace file or directory to inspect. + /// + /// # Returns + /// + /// Filesystem metadata for a path in the session workspace files directory. + /// + ///
+ /// + /// **Experimental.** This API is part of an experimental wire-protocol surface + /// and may change or be removed in future SDK or CLI releases. Pin both the + /// SDK and CLI versions if your code depends on it. + /// + ///
+ pub async fn stat_file( + &self, + params: WorkspacesStatFileRequest, + ) -> Result { + let mut wire_params = serde_json::to_value(params)?; + wire_params["sessionId"] = serde_json::Value::String(self.session.id().to_string()); + let _value = self + .session + .client() + .call(rpc_methods::SESSION_WORKSPACES_STATFILE, Some(wire_params)) + .await?; + Ok(serde_json::from_value(_value)?) + } + + /// Creates a directory in the session workspace files directory. + /// + /// Wire method: `session.workspaces.createDirectory`. + /// + /// # Parameters + /// + /// * `params` - Directory to create within the session workspace files directory. + /// + ///
+ /// + /// **Experimental.** This API is part of an experimental wire-protocol surface + /// and may change or be removed in future SDK or CLI releases. Pin both the + /// SDK and CLI versions if your code depends on it. + /// + ///
+ pub async fn create_directory( + &self, + params: WorkspacesCreateDirectoryRequest, + ) -> Result<(), Error> { + let mut wire_params = serde_json::to_value(params)?; + wire_params["sessionId"] = serde_json::Value::String(self.session.id().to_string()); + let _value = self + .session + .client() + .call( + rpc_methods::SESSION_WORKSPACES_CREATEDIRECTORY, + Some(wire_params), + ) + .await?; + Ok(()) + } + + /// Removes a file or directory from the session workspace files directory. + /// + /// Wire method: `session.workspaces.removePath`. + /// + /// # Parameters + /// + /// * `params` - File or directory to remove from the session workspace files directory. + /// + ///
+ /// + /// **Experimental.** This API is part of an experimental wire-protocol surface + /// and may change or be removed in future SDK or CLI releases. Pin both the + /// SDK and CLI versions if your code depends on it. + /// + ///
+ pub async fn remove_path(&self, params: WorkspacesRemovePathRequest) -> Result<(), Error> { + let mut wire_params = serde_json::to_value(params)?; + wire_params["sessionId"] = serde_json::Value::String(self.session.id().to_string()); + let _value = self + .session + .client() + .call( + rpc_methods::SESSION_WORKSPACES_REMOVEPATH, + Some(wire_params), + ) + .await?; + Ok(()) + } + + /// Renames a file or directory within the session workspace files directory. + /// + /// Wire method: `session.workspaces.renamePath`. + /// + /// # Parameters + /// + /// * `params` - Source and destination paths for a rename within the session workspace files directory. + /// + ///
+ /// + /// **Experimental.** This API is part of an experimental wire-protocol surface + /// and may change or be removed in future SDK or CLI releases. Pin both the + /// SDK and CLI versions if your code depends on it. + /// + ///
+ pub async fn rename_path(&self, params: WorkspacesRenamePathRequest) -> Result<(), Error> { + let mut wire_params = serde_json::to_value(params)?; + wire_params["sessionId"] = serde_json::Value::String(self.session.id().to_string()); + let _value = self + .session + .client() + .call( + rpc_methods::SESSION_WORKSPACES_RENAMEPATH, + Some(wire_params), + ) + .await?; + Ok(()) + } + /// Lists workspace checkpoints in chronological order. /// /// Wire method: `session.workspaces.listCheckpoints`. diff --git a/rust/src/generated/session_events.rs b/rust/src/generated/session_events.rs index bacecbe528..d9ebdfff47 100644 --- a/rust/src/generated/session_events.rs +++ b/rust/src/generated/session_events.rs @@ -4121,6 +4121,21 @@ pub struct ToolExecutionCompleteResult { pub ui_resource: Option, } +/// Experimental shell completion facts retained independently of the full tool result. +/// +///
+/// +/// **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 ToolExecutionCompleteShellExecution { + /// Process exit code reported by the shell driver. + pub exit_code: i64, +} + /// MCP Apps tool `_meta.ui` resource URI and visibility captured on `tool.execution_complete`. #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] @@ -4206,6 +4221,16 @@ pub struct ToolExecutionCompleteData { /// Whether this tool execution ran inside a sandbox container #[serde(skip_serializing_if = "Option::is_none")] pub sandboxed: Option, + /// Experimental shell completion facts captured before the persisted result contents are stripped. + /// + ///
+ /// + /// **Experimental.** This type is part of an experimental wire-protocol surface + /// and may change or be removed in future SDK or CLI releases. + /// + ///
+ #[serde(skip_serializing_if = "Option::is_none")] + pub shell_execution: Option, /// Whether the tool execution completed successfully pub success: bool, /// Unique identifier for the completed tool call diff --git a/rust/tests/e2e/rpc_session_state.rs b/rust/tests/e2e/rpc_session_state.rs index e6d6a2b546..2d8b2a2475 100644 --- a/rust/tests/e2e/rpc_session_state.rs +++ b/rust/tests/e2e/rpc_session_state.rs @@ -177,6 +177,7 @@ async fn should_shutdown_session_with_routine_type() { .shutdown(ShutdownRequest { reason: Some("routine rust rpc test".to_string()), r#type: Some(ShutdownType::Routine), + ..Default::default() }) .await .expect("shutdown session");