diff --git a/dotnet/src/Generated/Rpc.cs b/dotnet/src/Generated/Rpc.cs index fc95890a1..c3d6a70f3 100644 --- a/dotnet/src/Generated/Rpc.cs +++ b/dotnet/src/Generated/Rpc.cs @@ -77,7 +77,7 @@ public sealed class ModelBilling { /// Billing cost multiplier relative to the base rate. [JsonPropertyName("multiplier")] - public double Multiplier { get; set; } + public double? Multiplier { get; set; } } /// Vision-specific limits. @@ -846,14 +846,6 @@ public sealed class WorkspacesGetWorkspaceResultWorkspace [JsonPropertyName("repository")] public string? Repository { get; set; } - /// Gets or sets the session_sync_level value. - [JsonPropertyName("session_sync_level")] - public WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel? SessionSyncLevel { get; set; } - - /// Gets or sets the summary value. - [JsonPropertyName("summary")] - public string? Summary { get; set; } - /// Gets or sets the summary_count value. [Range((double)0, (double)long.MaxValue)] [JsonPropertyName("summary_count")] @@ -1395,6 +1387,40 @@ internal sealed class TasksRemoveRequest public string SessionId { get; set; } = string.Empty; } +/// RPC data type for TasksSendMessage operations. +[Experimental(Diagnostics.Experimental)] +public sealed class TasksSendMessageResult +{ + /// Error message if delivery failed. + [JsonPropertyName("error")] + public string? Error { get; set; } + + /// Whether the message was successfully delivered or steered. + [JsonPropertyName("sent")] + public bool Sent { get; set; } +} + +/// RPC data type for TasksSendMessage operations. +[Experimental(Diagnostics.Experimental)] +internal sealed class TasksSendMessageRequest +{ + /// Agent ID of the sender, if sent on behalf of another agent. + [JsonPropertyName("fromAgentId")] + public string? FromAgentId { get; set; } + + /// Agent task identifier. + [JsonPropertyName("id")] + public string Id { get; set; } = string.Empty; + + /// Message content to send to the agent. + [JsonPropertyName("message")] + public string Message { get; set; } = string.Empty; + + /// Target session identifier. + [JsonPropertyName("sessionId")] + public string SessionId { get; set; } = string.Empty; +} + /// RPC data type for Skill operations. public sealed class Skill { @@ -1876,6 +1902,8 @@ public partial class PermissionDecisionApproveOnce : PermissionDecision [JsonDerivedType(typeof(PermissionDecisionApproveForSessionApprovalMcpSampling), "mcp-sampling")] [JsonDerivedType(typeof(PermissionDecisionApproveForSessionApprovalMemory), "memory")] [JsonDerivedType(typeof(PermissionDecisionApproveForSessionApprovalCustomTool), "custom-tool")] +[JsonDerivedType(typeof(PermissionDecisionApproveForSessionApprovalExtensionManagement), "extension-management")] +[JsonDerivedType(typeof(PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess), "extension-permission-access")] public partial class PermissionDecisionApproveForSessionApproval { /// The type discriminator. @@ -1960,6 +1988,31 @@ public partial class PermissionDecisionApproveForSessionApprovalCustomTool : Per public required string ToolName { get; set; } } +/// The extension-management variant of . +public partial class PermissionDecisionApproveForSessionApprovalExtensionManagement : PermissionDecisionApproveForSessionApproval +{ + /// + [JsonIgnore] + public override string Kind => "extension-management"; + + /// Gets or sets the operation value. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("operation")] + public string? Operation { get; set; } +} + +/// The extension-permission-access variant of . +public partial class PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess : PermissionDecisionApproveForSessionApproval +{ + /// + [JsonIgnore] + public override string Kind => "extension-permission-access"; + + /// Gets or sets the extensionName value. + [JsonPropertyName("extensionName")] + public required string ExtensionName { get; set; } +} + /// The approve-for-session variant of . public partial class PermissionDecisionApproveForSession : PermissionDecision { @@ -1990,6 +2043,8 @@ public partial class PermissionDecisionApproveForSession : PermissionDecision [JsonDerivedType(typeof(PermissionDecisionApproveForLocationApprovalMcpSampling), "mcp-sampling")] [JsonDerivedType(typeof(PermissionDecisionApproveForLocationApprovalMemory), "memory")] [JsonDerivedType(typeof(PermissionDecisionApproveForLocationApprovalCustomTool), "custom-tool")] +[JsonDerivedType(typeof(PermissionDecisionApproveForLocationApprovalExtensionManagement), "extension-management")] +[JsonDerivedType(typeof(PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess), "extension-permission-access")] public partial class PermissionDecisionApproveForLocationApproval { /// The type discriminator. @@ -2074,6 +2129,31 @@ public partial class PermissionDecisionApproveForLocationApprovalCustomTool : Pe public required string ToolName { get; set; } } +/// The extension-management variant of . +public partial class PermissionDecisionApproveForLocationApprovalExtensionManagement : PermissionDecisionApproveForLocationApproval +{ + /// + [JsonIgnore] + public override string Kind => "extension-management"; + + /// Gets or sets the operation value. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("operation")] + public string? Operation { get; set; } +} + +/// The extension-permission-access variant of . +public partial class PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess : PermissionDecisionApproveForLocationApproval +{ + /// + [JsonIgnore] + public override string Kind => "extension-permission-access"; + + /// Gets or sets the extensionName value. + [JsonPropertyName("extensionName")] + public required string ExtensionName { get; set; } +} + /// The approve-for-location variant of . public partial class PermissionDecisionApproveForLocation : PermissionDecision { @@ -3232,71 +3312,6 @@ public override void Write(Utf8JsonWriter writer, WorkspacesGetWorkspaceResultWo } -/// Defines the allowed values. -[JsonConverter(typeof(Converter))] -[DebuggerDisplay("{Value,nq}")] -public readonly struct WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel : IEquatable -{ - private readonly string? _value; - - /// Initializes a new instance of the struct. - /// The value to associate with this . - [JsonConstructor] - public WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel(string value) - { - ArgumentException.ThrowIfNullOrWhiteSpace(value); - _value = value; - } - - /// Gets the value associated with this . - public string Value => _value ?? string.Empty; - - /// Gets the local value. - public static WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel Local { get; } = new("local"); - - /// Gets the user value. - public static WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel User { get; } = new("user"); - - /// Gets the repo_and_user value. - public static WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel RepoAndUser { get; } = new("repo_and_user"); - - /// Returns a value indicating whether two instances are equivalent. - public static bool operator ==(WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel left, WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel right) => left.Equals(right); - - /// Returns a value indicating whether two instances are not equivalent. - public static bool operator !=(WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel left, WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel right) => !(left == right); - - /// - public override bool Equals(object? obj) => obj is WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel other && Equals(other); - - /// - public bool Equals(WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel other) => string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - - /// - public override int GetHashCode() => StringComparer.OrdinalIgnoreCase.GetHashCode(Value); - - /// - public override string ToString() => Value; - - /// Provides a for serializing instances. - [EditorBrowsable(EditorBrowsableState.Never)] - public sealed class Converter : JsonConverter - { - /// - public override WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - return new(GitHub.Copilot.SDK.GeneratedStringEnumJson.ReadValue(ref reader, typeToConvert)); - } - - /// - public override void Write(Utf8JsonWriter writer, WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel value, JsonSerializerOptions options) - { - GitHub.Copilot.SDK.GeneratedStringEnumJson.WriteValue(writer, value.Value, typeof(WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel)); - } - } -} - - /// Where this source lives — used for UI grouping. [JsonConverter(typeof(Converter))] [DebuggerDisplay("{Value,nq}")] @@ -4976,6 +4991,13 @@ public async Task RemoveAsync(string id, CancellationToken ca var request = new TasksRemoveRequest { SessionId = _sessionId, Id = id }; return await CopilotClient.InvokeRpcAsync(_rpc, "session.tasks.remove", [request], cancellationToken); } + + /// Calls "session.tasks.sendMessage". + public async Task SendMessageAsync(string id, string message, string? fromAgentId = null, CancellationToken cancellationToken = default) + { + var request = new TasksSendMessageRequest { SessionId = _sessionId, Id = id, Message = message, FromAgentId = fromAgentId }; + return await CopilotClient.InvokeRpcAsync(_rpc, "session.tasks.sendMessage", [request], cancellationToken); + } } /// Provides session-scoped Skills APIs. @@ -5617,6 +5639,8 @@ public static void RegisterClientSessionApiHandlers(JsonRpc rpc, FuncWhen set, identifies a parent session whose context this session continues — e.g., a detached headless rem-agent run launched on the parent's interactive shutdown. Telemetry from this session is reported under the parent's session_id. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("detachedFromSpawningParentSessionId")] + public string? DetachedFromSpawningParentSessionId { get; set; } + /// Identifier of the software producing the events (e.g., "copilot-agent"). [JsonPropertyName("producer")] public required string Producer { get; set; } @@ -4166,6 +4171,51 @@ public partial class PermissionRequestHook : PermissionRequest public required string ToolName { get; set; } } +/// Extension management permission request. +/// The extension-management variant of . +public partial class PermissionRequestExtensionManagement : PermissionRequest +{ + /// + [JsonIgnore] + public override string Kind => "extension-management"; + + /// Name of the extension being managed. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("extensionName")] + public string? ExtensionName { get; set; } + + /// The extension management operation (scaffold, reload). + [JsonPropertyName("operation")] + public required string Operation { get; set; } + + /// Tool call ID that triggered this permission request. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("toolCallId")] + public string? ToolCallId { get; set; } +} + +/// Extension permission access request. +/// The extension-permission-access variant of . +public partial class PermissionRequestExtensionPermissionAccess : PermissionRequest +{ + /// + [JsonIgnore] + public override string Kind => "extension-permission-access"; + + /// Capabilities the extension is requesting. + [JsonPropertyName("capabilities")] + public required string[] Capabilities { get; set; } + + /// Name of the extension requesting permission access. + [JsonPropertyName("extensionName")] + public required string ExtensionName { get; set; } + + /// Tool call ID that triggered this permission request. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("toolCallId")] + public string? ToolCallId { get; set; } +} + /// Details of the permission being requested. /// Polymorphic base type discriminated by kind. [JsonPolymorphic( @@ -4179,6 +4229,8 @@ public partial class PermissionRequestHook : PermissionRequest [JsonDerivedType(typeof(PermissionRequestMemory), "memory")] [JsonDerivedType(typeof(PermissionRequestCustomTool), "custom-tool")] [JsonDerivedType(typeof(PermissionRequestHook), "hook")] +[JsonDerivedType(typeof(PermissionRequestExtensionManagement), "extension-management")] +[JsonDerivedType(typeof(PermissionRequestExtensionPermissionAccess), "extension-permission-access")] public partial class PermissionRequest { /// The type discriminator. @@ -4452,6 +4504,51 @@ public partial class PermissionPromptRequestHook : PermissionPromptRequest public required string ToolName { get; set; } } +/// Extension management permission prompt. +/// The extension-management variant of . +public partial class PermissionPromptRequestExtensionManagement : PermissionPromptRequest +{ + /// + [JsonIgnore] + public override string Kind => "extension-management"; + + /// Name of the extension being managed. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("extensionName")] + public string? ExtensionName { get; set; } + + /// The extension management operation (scaffold, reload). + [JsonPropertyName("operation")] + public required string Operation { get; set; } + + /// Tool call ID that triggered this permission request. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("toolCallId")] + public string? ToolCallId { get; set; } +} + +/// Extension permission access prompt. +/// The extension-permission-access variant of . +public partial class PermissionPromptRequestExtensionPermissionAccess : PermissionPromptRequest +{ + /// + [JsonIgnore] + public override string Kind => "extension-permission-access"; + + /// Capabilities the extension is requesting. + [JsonPropertyName("capabilities")] + public required string[] Capabilities { get; set; } + + /// Name of the extension requesting permission access. + [JsonPropertyName("extensionName")] + public required string ExtensionName { get; set; } + + /// Tool call ID that triggered this permission request. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("toolCallId")] + public string? ToolCallId { get; set; } +} + /// Derived user-facing permission prompt details for UI consumers. /// Polymorphic base type discriminated by kind. [JsonPolymorphic( @@ -4466,6 +4563,8 @@ public partial class PermissionPromptRequestHook : PermissionPromptRequest [JsonDerivedType(typeof(PermissionPromptRequestCustomTool), "custom-tool")] [JsonDerivedType(typeof(PermissionPromptRequestPath), "path")] [JsonDerivedType(typeof(PermissionPromptRequestHook), "hook")] +[JsonDerivedType(typeof(PermissionPromptRequestExtensionManagement), "extension-management")] +[JsonDerivedType(typeof(PermissionPromptRequestExtensionPermissionAccess), "extension-permission-access")] public partial class PermissionPromptRequest { /// The type discriminator. @@ -6484,6 +6583,8 @@ public override void Write(Utf8JsonWriter writer, ExtensionsLoadedExtensionStatu [JsonSerializable(typeof(PermissionPromptRequest))] [JsonSerializable(typeof(PermissionPromptRequestCommands))] [JsonSerializable(typeof(PermissionPromptRequestCustomTool))] +[JsonSerializable(typeof(PermissionPromptRequestExtensionManagement))] +[JsonSerializable(typeof(PermissionPromptRequestExtensionPermissionAccess))] [JsonSerializable(typeof(PermissionPromptRequestHook))] [JsonSerializable(typeof(PermissionPromptRequestMcp))] [JsonSerializable(typeof(PermissionPromptRequestMemory))] @@ -6493,6 +6594,8 @@ public override void Write(Utf8JsonWriter writer, ExtensionsLoadedExtensionStatu [JsonSerializable(typeof(PermissionPromptRequestWrite))] [JsonSerializable(typeof(PermissionRequest))] [JsonSerializable(typeof(PermissionRequestCustomTool))] +[JsonSerializable(typeof(PermissionRequestExtensionManagement))] +[JsonSerializable(typeof(PermissionRequestExtensionPermissionAccess))] [JsonSerializable(typeof(PermissionRequestHook))] [JsonSerializable(typeof(PermissionRequestMcp))] [JsonSerializable(typeof(PermissionRequestMemory))] diff --git a/go/generated_session_events.go b/go/generated_session_events.go index 5026f465e..a507fa8ac 100644 --- a/go/generated_session_events.go +++ b/go/generated_session_events.go @@ -1286,6 +1286,8 @@ type SessionStartData struct { Context *WorkingDirectoryContext `json:"context,omitempty"` // Version string of the Copilot application CopilotVersion string `json:"copilotVersion"` + // When set, identifies a parent session whose context this session continues — e.g., a detached headless rem-agent run launched on the parent's interactive shutdown. Telemetry from this session is reported under the parent's session_id. + DetachedFromSpawningParentSessionID *string `json:"detachedFromSpawningParentSessionId,omitempty"` // Identifier of the software producing the events (e.g., "copilot-agent") Producer string `json:"producer"` // Reasoning effort level used for model calls, if applicable (e.g. "low", "medium", "high", "xhigh") @@ -1898,6 +1900,8 @@ type PermissionPromptRequest struct { Args *any `json:"args,omitempty"` // Whether the UI can offer session-wide approval for this command pattern CanOfferSessionApproval *bool `json:"canOfferSessionApproval,omitempty"` + // Capabilities the extension is requesting + Capabilities []string `json:"capabilities,omitempty"` // Source references for the stored fact (store only) Citations *string `json:"citations,omitempty"` // Command identifiers covered by this approval prompt @@ -1906,6 +1910,8 @@ type PermissionPromptRequest struct { Diff *string `json:"diff,omitempty"` // Vote direction (vote only) Direction *PermissionPromptRequestMemoryDirection `json:"direction,omitempty"` + // Name of the extension being managed + ExtensionName *string `json:"extensionName,omitempty"` // The fact being stored or voted on Fact *string `json:"fact,omitempty"` // Path of the file being written to @@ -1918,6 +1924,8 @@ type PermissionPromptRequest struct { Intention *string `json:"intention,omitempty"` // Complete new file contents for newly created files NewFileContents *string `json:"newFileContents,omitempty"` + // The extension management operation (scaffold, reload) + Operation *string `json:"operation,omitempty"` // Path of the file or directory being read Path *string `json:"path,omitempty"` // File paths that require explicit approval @@ -1954,6 +1962,8 @@ type PermissionRequest struct { Args any `json:"args,omitempty"` // Whether the UI can offer session-wide approval for this command pattern CanOfferSessionApproval *bool `json:"canOfferSessionApproval,omitempty"` + // Capabilities the extension is requesting + Capabilities []string `json:"capabilities,omitempty"` // Source references for the stored fact (store only) Citations *string `json:"citations,omitempty"` // Parsed command identifiers found in the command text @@ -1962,6 +1972,8 @@ type PermissionRequest struct { Diff *string `json:"diff,omitempty"` // Vote direction (vote only) Direction *PermissionRequestMemoryDirection `json:"direction,omitempty"` + // Name of the extension being managed + ExtensionName *string `json:"extensionName,omitempty"` // The fact being stored or voted on Fact *string `json:"fact,omitempty"` // Path of the file being written to @@ -1976,6 +1988,8 @@ type PermissionRequest struct { Intention *string `json:"intention,omitempty"` // Complete new file contents for newly created files NewFileContents *string `json:"newFileContents,omitempty"` + // The extension management operation (scaffold, reload) + Operation *string `json:"operation,omitempty"` // Path of the file or directory being read Path *string `json:"path,omitempty"` // File paths that may be read or written by the command @@ -2469,29 +2483,33 @@ const ( type PermissionPromptRequestKind string const ( - PermissionPromptRequestKindCommands PermissionPromptRequestKind = "commands" - PermissionPromptRequestKindWrite PermissionPromptRequestKind = "write" - PermissionPromptRequestKindRead PermissionPromptRequestKind = "read" - PermissionPromptRequestKindMcp PermissionPromptRequestKind = "mcp" - PermissionPromptRequestKindURL PermissionPromptRequestKind = "url" - PermissionPromptRequestKindMemory PermissionPromptRequestKind = "memory" - PermissionPromptRequestKindCustomTool PermissionPromptRequestKind = "custom-tool" - PermissionPromptRequestKindPath PermissionPromptRequestKind = "path" - PermissionPromptRequestKindHook PermissionPromptRequestKind = "hook" + PermissionPromptRequestKindCommands PermissionPromptRequestKind = "commands" + PermissionPromptRequestKindWrite PermissionPromptRequestKind = "write" + PermissionPromptRequestKindRead PermissionPromptRequestKind = "read" + PermissionPromptRequestKindMcp PermissionPromptRequestKind = "mcp" + PermissionPromptRequestKindURL PermissionPromptRequestKind = "url" + PermissionPromptRequestKindMemory PermissionPromptRequestKind = "memory" + PermissionPromptRequestKindCustomTool PermissionPromptRequestKind = "custom-tool" + PermissionPromptRequestKindPath PermissionPromptRequestKind = "path" + PermissionPromptRequestKindHook PermissionPromptRequestKind = "hook" + PermissionPromptRequestKindExtensionManagement PermissionPromptRequestKind = "extension-management" + PermissionPromptRequestKindExtensionPermissionAccess PermissionPromptRequestKind = "extension-permission-access" ) // Kind discriminator for PermissionRequest. type PermissionRequestKind string const ( - PermissionRequestKindShell PermissionRequestKind = "shell" - PermissionRequestKindWrite PermissionRequestKind = "write" - PermissionRequestKindRead PermissionRequestKind = "read" - PermissionRequestKindMcp PermissionRequestKind = "mcp" - PermissionRequestKindURL PermissionRequestKind = "url" - PermissionRequestKindMemory PermissionRequestKind = "memory" - PermissionRequestKindCustomTool PermissionRequestKind = "custom-tool" - PermissionRequestKindHook PermissionRequestKind = "hook" + PermissionRequestKindShell PermissionRequestKind = "shell" + PermissionRequestKindWrite PermissionRequestKind = "write" + PermissionRequestKindRead PermissionRequestKind = "read" + PermissionRequestKindMcp PermissionRequestKind = "mcp" + PermissionRequestKindURL PermissionRequestKind = "url" + PermissionRequestKindMemory PermissionRequestKind = "memory" + PermissionRequestKindCustomTool PermissionRequestKind = "custom-tool" + PermissionRequestKindHook PermissionRequestKind = "hook" + PermissionRequestKindExtensionManagement PermissionRequestKind = "extension-management" + PermissionRequestKindExtensionPermissionAccess PermissionRequestKind = "extension-permission-access" ) // Kind discriminator for PermissionResult. diff --git a/go/rpc/generated_rpc.go b/go/rpc/generated_rpc.go index 34428ada3..73c269f9b 100644 --- a/go/rpc/generated_rpc.go +++ b/go/rpc/generated_rpc.go @@ -13,254 +13,260 @@ import ( ) type RPCTypes struct { - AccountGetQuotaRequest AccountGetQuotaRequest `json:"AccountGetQuotaRequest"` - AccountGetQuotaResult AccountGetQuotaResult `json:"AccountGetQuotaResult"` - AccountQuotaSnapshot AccountQuotaSnapshot `json:"AccountQuotaSnapshot"` - AgentDeselectResult AgentDeselectResult `json:"AgentDeselectResult"` - AgentGetCurrentResult AgentGetCurrentResult `json:"AgentGetCurrentResult"` - AgentInfo AgentInfo `json:"AgentInfo"` - AgentList AgentList `json:"AgentList"` - AgentReloadResult AgentReloadResult `json:"AgentReloadResult"` - AgentSelectRequest AgentSelectRequest `json:"AgentSelectRequest"` - AgentSelectResult AgentSelectResult `json:"AgentSelectResult"` - AuthInfoType AuthInfoType `json:"AuthInfoType"` - CommandsHandlePendingCommandRequest CommandsHandlePendingCommandRequest `json:"CommandsHandlePendingCommandRequest"` - CommandsHandlePendingCommandResult CommandsHandlePendingCommandResult `json:"CommandsHandlePendingCommandResult"` - ConnectRequest ConnectRequest `json:"ConnectRequest"` - ConnectResult ConnectResult `json:"ConnectResult"` - CurrentModel CurrentModel `json:"CurrentModel"` - DiscoveredMCPServer DiscoveredMCPServer `json:"DiscoveredMcpServer"` - DiscoveredMCPServerSource MCPServerSource `json:"DiscoveredMcpServerSource"` - DiscoveredMCPServerType DiscoveredMCPServerType `json:"DiscoveredMcpServerType"` - EmbeddedBlobResourceContents EmbeddedBlobResourceContents `json:"EmbeddedBlobResourceContents"` - EmbeddedTextResourceContents EmbeddedTextResourceContents `json:"EmbeddedTextResourceContents"` - Extension Extension `json:"Extension"` - ExtensionList ExtensionList `json:"ExtensionList"` - ExtensionsDisableRequest ExtensionsDisableRequest `json:"ExtensionsDisableRequest"` - ExtensionsDisableResult ExtensionsDisableResult `json:"ExtensionsDisableResult"` - ExtensionsEnableRequest ExtensionsEnableRequest `json:"ExtensionsEnableRequest"` - ExtensionsEnableResult ExtensionsEnableResult `json:"ExtensionsEnableResult"` - ExtensionSource ExtensionSource `json:"ExtensionSource"` - ExtensionsReloadResult ExtensionsReloadResult `json:"ExtensionsReloadResult"` - ExtensionStatus ExtensionStatus `json:"ExtensionStatus"` - ExternalToolResult *ExternalToolResult `json:"ExternalToolResult"` - ExternalToolTextResultForLlm ExternalToolTextResultForLlm `json:"ExternalToolTextResultForLlm"` - ExternalToolTextResultForLlmContent ExternalToolTextResultForLlmContent `json:"ExternalToolTextResultForLlmContent"` - ExternalToolTextResultForLlmContentAudio ExternalToolTextResultForLlmContentAudio `json:"ExternalToolTextResultForLlmContentAudio"` - ExternalToolTextResultForLlmContentImage ExternalToolTextResultForLlmContentImage `json:"ExternalToolTextResultForLlmContentImage"` - ExternalToolTextResultForLlmContentResource ExternalToolTextResultForLlmContentResource `json:"ExternalToolTextResultForLlmContentResource"` - ExternalToolTextResultForLlmContentResourceDetails ExternalToolTextResultForLlmContentResourceDetails `json:"ExternalToolTextResultForLlmContentResourceDetails"` - ExternalToolTextResultForLlmContentResourceLink ExternalToolTextResultForLlmContentResourceLink `json:"ExternalToolTextResultForLlmContentResourceLink"` - ExternalToolTextResultForLlmContentResourceLinkIcon ExternalToolTextResultForLlmContentResourceLinkIcon `json:"ExternalToolTextResultForLlmContentResourceLinkIcon"` - ExternalToolTextResultForLlmContentResourceLinkIconTheme ExternalToolTextResultForLlmContentResourceLinkIconTheme `json:"ExternalToolTextResultForLlmContentResourceLinkIconTheme"` - ExternalToolTextResultForLlmContentTerminal ExternalToolTextResultForLlmContentTerminal `json:"ExternalToolTextResultForLlmContentTerminal"` - ExternalToolTextResultForLlmContentText ExternalToolTextResultForLlmContentText `json:"ExternalToolTextResultForLlmContentText"` - FilterMapping *FilterMapping `json:"FilterMapping"` - FilterMappingString FilterMappingString `json:"FilterMappingString"` - FilterMappingValue FilterMappingString `json:"FilterMappingValue"` - FleetStartRequest FleetStartRequest `json:"FleetStartRequest"` - FleetStartResult FleetStartResult `json:"FleetStartResult"` - HandlePendingToolCallRequest HandlePendingToolCallRequest `json:"HandlePendingToolCallRequest"` - HandlePendingToolCallResult HandlePendingToolCallResult `json:"HandlePendingToolCallResult"` - HistoryCompactContextWindow HistoryCompactContextWindow `json:"HistoryCompactContextWindow"` - HistoryCompactResult HistoryCompactResult `json:"HistoryCompactResult"` - HistoryTruncateRequest HistoryTruncateRequest `json:"HistoryTruncateRequest"` - HistoryTruncateResult HistoryTruncateResult `json:"HistoryTruncateResult"` - InstructionsGetSourcesResult InstructionsGetSourcesResult `json:"InstructionsGetSourcesResult"` - InstructionsSources InstructionsSources `json:"InstructionsSources"` - InstructionsSourcesLocation InstructionsSourcesLocation `json:"InstructionsSourcesLocation"` - InstructionsSourcesType InstructionsSourcesType `json:"InstructionsSourcesType"` - LogRequest LogRequest `json:"LogRequest"` - LogResult LogResult `json:"LogResult"` - MCPConfigAddRequest MCPConfigAddRequest `json:"McpConfigAddRequest"` - MCPConfigAddResult MCPConfigAddResult `json:"McpConfigAddResult"` - MCPConfigDisableRequest MCPConfigDisableRequest `json:"McpConfigDisableRequest"` - MCPConfigDisableResult MCPConfigDisableResult `json:"McpConfigDisableResult"` - MCPConfigEnableRequest MCPConfigEnableRequest `json:"McpConfigEnableRequest"` - MCPConfigEnableResult MCPConfigEnableResult `json:"McpConfigEnableResult"` - MCPConfigList MCPConfigList `json:"McpConfigList"` - MCPConfigRemoveRequest MCPConfigRemoveRequest `json:"McpConfigRemoveRequest"` - MCPConfigRemoveResult MCPConfigRemoveResult `json:"McpConfigRemoveResult"` - MCPConfigUpdateRequest MCPConfigUpdateRequest `json:"McpConfigUpdateRequest"` - MCPConfigUpdateResult MCPConfigUpdateResult `json:"McpConfigUpdateResult"` - MCPDisableRequest MCPDisableRequest `json:"McpDisableRequest"` - MCPDisableResult MCPDisableResult `json:"McpDisableResult"` - MCPDiscoverRequest MCPDiscoverRequest `json:"McpDiscoverRequest"` - MCPDiscoverResult MCPDiscoverResult `json:"McpDiscoverResult"` - MCPEnableRequest MCPEnableRequest `json:"McpEnableRequest"` - MCPEnableResult MCPEnableResult `json:"McpEnableResult"` - MCPOauthLoginRequest MCPOauthLoginRequest `json:"McpOauthLoginRequest"` - MCPOauthLoginResult MCPOauthLoginResult `json:"McpOauthLoginResult"` - MCPReloadResult MCPReloadResult `json:"McpReloadResult"` - MCPServer MCPServer `json:"McpServer"` - MCPServerConfig MCPServerConfig `json:"McpServerConfig"` - MCPServerConfigHTTP MCPServerConfigHTTP `json:"McpServerConfigHttp"` - MCPServerConfigHTTPOauthGrantType MCPServerConfigHTTPOauthGrantType `json:"McpServerConfigHttpOauthGrantType"` - MCPServerConfigHTTPType MCPServerConfigHTTPType `json:"McpServerConfigHttpType"` - MCPServerConfigLocal MCPServerConfigLocal `json:"McpServerConfigLocal"` - MCPServerConfigLocalType MCPServerConfigLocalType `json:"McpServerConfigLocalType"` - MCPServerList MCPServerList `json:"McpServerList"` - MCPServerSource MCPServerSource `json:"McpServerSource"` - MCPServerStatus MCPServerStatus `json:"McpServerStatus"` - Model ModelElement `json:"Model"` - ModelBilling ModelBilling `json:"ModelBilling"` - ModelCapabilities ModelCapabilities `json:"ModelCapabilities"` - ModelCapabilitiesLimits ModelCapabilitiesLimits `json:"ModelCapabilitiesLimits"` - ModelCapabilitiesLimitsVision ModelCapabilitiesLimitsVision `json:"ModelCapabilitiesLimitsVision"` - ModelCapabilitiesOverride ModelCapabilitiesOverride `json:"ModelCapabilitiesOverride"` - ModelCapabilitiesOverrideLimits ModelCapabilitiesOverrideLimits `json:"ModelCapabilitiesOverrideLimits"` - ModelCapabilitiesOverrideLimitsVision ModelCapabilitiesOverrideLimitsVision `json:"ModelCapabilitiesOverrideLimitsVision"` - ModelCapabilitiesOverrideSupports ModelCapabilitiesOverrideSupports `json:"ModelCapabilitiesOverrideSupports"` - ModelCapabilitiesSupports ModelCapabilitiesSupports `json:"ModelCapabilitiesSupports"` - ModelList ModelList `json:"ModelList"` - ModelPolicy ModelPolicy `json:"ModelPolicy"` - ModelsListRequest ModelsListRequest `json:"ModelsListRequest"` - ModelSwitchToRequest ModelSwitchToRequest `json:"ModelSwitchToRequest"` - ModelSwitchToResult ModelSwitchToResult `json:"ModelSwitchToResult"` - ModeSetRequest ModeSetRequest `json:"ModeSetRequest"` - ModeSetResult ModeSetResult `json:"ModeSetResult"` - NameGetResult NameGetResult `json:"NameGetResult"` - NameSetRequest NameSetRequest `json:"NameSetRequest"` - NameSetResult NameSetResult `json:"NameSetResult"` - PermissionDecision PermissionDecision `json:"PermissionDecision"` - PermissionDecisionApproveForLocation PermissionDecisionApproveForLocation `json:"PermissionDecisionApproveForLocation"` - PermissionDecisionApproveForLocationApproval PermissionDecisionApproveForLocationApproval `json:"PermissionDecisionApproveForLocationApproval"` - PermissionDecisionApproveForLocationApprovalCommands PermissionDecisionApproveForLocationApprovalCommands `json:"PermissionDecisionApproveForLocationApprovalCommands"` - PermissionDecisionApproveForLocationApprovalCustomTool PermissionDecisionApproveForLocationApprovalCustomTool `json:"PermissionDecisionApproveForLocationApprovalCustomTool"` - PermissionDecisionApproveForLocationApprovalMCP PermissionDecisionApproveForLocationApprovalMCP `json:"PermissionDecisionApproveForLocationApprovalMcp"` - PermissionDecisionApproveForLocationApprovalMCPSampling PermissionDecisionApproveForLocationApprovalMCPSampling `json:"PermissionDecisionApproveForLocationApprovalMcpSampling"` - PermissionDecisionApproveForLocationApprovalMemory PermissionDecisionApproveForLocationApprovalMemory `json:"PermissionDecisionApproveForLocationApprovalMemory"` - PermissionDecisionApproveForLocationApprovalRead PermissionDecisionApproveForLocationApprovalRead `json:"PermissionDecisionApproveForLocationApprovalRead"` - PermissionDecisionApproveForLocationApprovalWrite PermissionDecisionApproveForLocationApprovalWrite `json:"PermissionDecisionApproveForLocationApprovalWrite"` - PermissionDecisionApproveForSession PermissionDecisionApproveForSession `json:"PermissionDecisionApproveForSession"` - PermissionDecisionApproveForSessionApproval PermissionDecisionApproveForSessionApproval `json:"PermissionDecisionApproveForSessionApproval"` - PermissionDecisionApproveForSessionApprovalCommands PermissionDecisionApproveForSessionApprovalCommands `json:"PermissionDecisionApproveForSessionApprovalCommands"` - PermissionDecisionApproveForSessionApprovalCustomTool PermissionDecisionApproveForSessionApprovalCustomTool `json:"PermissionDecisionApproveForSessionApprovalCustomTool"` - PermissionDecisionApproveForSessionApprovalMCP PermissionDecisionApproveForSessionApprovalMCP `json:"PermissionDecisionApproveForSessionApprovalMcp"` - PermissionDecisionApproveForSessionApprovalMCPSampling PermissionDecisionApproveForSessionApprovalMCPSampling `json:"PermissionDecisionApproveForSessionApprovalMcpSampling"` - PermissionDecisionApproveForSessionApprovalMemory PermissionDecisionApproveForSessionApprovalMemory `json:"PermissionDecisionApproveForSessionApprovalMemory"` - PermissionDecisionApproveForSessionApprovalRead PermissionDecisionApproveForSessionApprovalRead `json:"PermissionDecisionApproveForSessionApprovalRead"` - PermissionDecisionApproveForSessionApprovalWrite PermissionDecisionApproveForSessionApprovalWrite `json:"PermissionDecisionApproveForSessionApprovalWrite"` - PermissionDecisionApproveOnce PermissionDecisionApproveOnce `json:"PermissionDecisionApproveOnce"` - PermissionDecisionApprovePermanently PermissionDecisionApprovePermanently `json:"PermissionDecisionApprovePermanently"` - PermissionDecisionReject PermissionDecisionReject `json:"PermissionDecisionReject"` - PermissionDecisionRequest PermissionDecisionRequest `json:"PermissionDecisionRequest"` - PermissionDecisionUserNotAvailable PermissionDecisionUserNotAvailable `json:"PermissionDecisionUserNotAvailable"` - PermissionRequestResult PermissionRequestResult `json:"PermissionRequestResult"` - PermissionsResetSessionApprovalsRequest PermissionsResetSessionApprovalsRequest `json:"PermissionsResetSessionApprovalsRequest"` - PermissionsResetSessionApprovalsResult PermissionsResetSessionApprovalsResult `json:"PermissionsResetSessionApprovalsResult"` - PermissionsSetApproveAllRequest PermissionsSetApproveAllRequest `json:"PermissionsSetApproveAllRequest"` - PermissionsSetApproveAllResult PermissionsSetApproveAllResult `json:"PermissionsSetApproveAllResult"` - PingRequest PingRequest `json:"PingRequest"` - PingResult PingResult `json:"PingResult"` - PlanDeleteResult PlanDeleteResult `json:"PlanDeleteResult"` - PlanReadResult PlanReadResult `json:"PlanReadResult"` - PlanUpdateRequest PlanUpdateRequest `json:"PlanUpdateRequest"` - PlanUpdateResult PlanUpdateResult `json:"PlanUpdateResult"` - Plugin PluginElement `json:"Plugin"` - PluginList PluginList `json:"PluginList"` - RemoteDisableResult RemoteDisableResult `json:"RemoteDisableResult"` - RemoteEnableResult RemoteEnableResult `json:"RemoteEnableResult"` - ServerSkill ServerSkill `json:"ServerSkill"` - ServerSkillList ServerSkillList `json:"ServerSkillList"` - SessionAuthStatus SessionAuthStatus `json:"SessionAuthStatus"` - SessionFSAppendFileRequest SessionFSAppendFileRequest `json:"SessionFsAppendFileRequest"` - SessionFSError SessionFSError `json:"SessionFsError"` - SessionFSErrorCode SessionFSErrorCode `json:"SessionFsErrorCode"` - SessionFSExistsRequest SessionFSExistsRequest `json:"SessionFsExistsRequest"` - SessionFSExistsResult SessionFSExistsResult `json:"SessionFsExistsResult"` - SessionFSMkdirRequest SessionFSMkdirRequest `json:"SessionFsMkdirRequest"` - SessionFSReaddirRequest SessionFSReaddirRequest `json:"SessionFsReaddirRequest"` - SessionFSReaddirResult SessionFSReaddirResult `json:"SessionFsReaddirResult"` - SessionFSReaddirWithTypesEntry SessionFSReaddirWithTypesEntry `json:"SessionFsReaddirWithTypesEntry"` - SessionFSReaddirWithTypesEntryType SessionFSReaddirWithTypesEntryType `json:"SessionFsReaddirWithTypesEntryType"` - SessionFSReaddirWithTypesRequest SessionFSReaddirWithTypesRequest `json:"SessionFsReaddirWithTypesRequest"` - SessionFSReaddirWithTypesResult SessionFSReaddirWithTypesResult `json:"SessionFsReaddirWithTypesResult"` - SessionFSReadFileRequest SessionFSReadFileRequest `json:"SessionFsReadFileRequest"` - SessionFSReadFileResult SessionFSReadFileResult `json:"SessionFsReadFileResult"` - SessionFSRenameRequest SessionFSRenameRequest `json:"SessionFsRenameRequest"` - SessionFSRmRequest SessionFSRmRequest `json:"SessionFsRmRequest"` - SessionFSSetProviderConventions SessionFSSetProviderConventions `json:"SessionFsSetProviderConventions"` - SessionFSSetProviderRequest SessionFSSetProviderRequest `json:"SessionFsSetProviderRequest"` - SessionFSSetProviderResult SessionFSSetProviderResult `json:"SessionFsSetProviderResult"` - SessionFSStatRequest SessionFSStatRequest `json:"SessionFsStatRequest"` - SessionFSStatResult SessionFSStatResult `json:"SessionFsStatResult"` - SessionFSWriteFileRequest SessionFSWriteFileRequest `json:"SessionFsWriteFileRequest"` - SessionLogLevel SessionLogLevel `json:"SessionLogLevel"` - SessionMode SessionMode `json:"SessionMode"` - SessionsForkRequest SessionsForkRequest `json:"SessionsForkRequest"` - SessionsForkResult SessionsForkResult `json:"SessionsForkResult"` - ShellExecRequest ShellExecRequest `json:"ShellExecRequest"` - ShellExecResult ShellExecResult `json:"ShellExecResult"` - ShellKillRequest ShellKillRequest `json:"ShellKillRequest"` - ShellKillResult ShellKillResult `json:"ShellKillResult"` - ShellKillSignal ShellKillSignal `json:"ShellKillSignal"` - Skill Skill `json:"Skill"` - SkillList SkillList `json:"SkillList"` - SkillsConfigSetDisabledSkillsRequest SkillsConfigSetDisabledSkillsRequest `json:"SkillsConfigSetDisabledSkillsRequest"` - SkillsConfigSetDisabledSkillsResult SkillsConfigSetDisabledSkillsResult `json:"SkillsConfigSetDisabledSkillsResult"` - SkillsDisableRequest SkillsDisableRequest `json:"SkillsDisableRequest"` - SkillsDisableResult SkillsDisableResult `json:"SkillsDisableResult"` - SkillsDiscoverRequest SkillsDiscoverRequest `json:"SkillsDiscoverRequest"` - SkillsEnableRequest SkillsEnableRequest `json:"SkillsEnableRequest"` - SkillsEnableResult SkillsEnableResult `json:"SkillsEnableResult"` - SkillsReloadResult SkillsReloadResult `json:"SkillsReloadResult"` - SuspendResult SuspendResult `json:"SuspendResult"` - TaskAgentInfo TaskAgentInfo `json:"TaskAgentInfo"` - TaskAgentInfoExecutionMode TaskInfoExecutionMode `json:"TaskAgentInfoExecutionMode"` - TaskAgentInfoStatus TaskInfoStatus `json:"TaskAgentInfoStatus"` - TaskInfo TaskInfo `json:"TaskInfo"` - TaskList TaskList `json:"TaskList"` - TasksCancelRequest TasksCancelRequest `json:"TasksCancelRequest"` - TasksCancelResult TasksCancelResult `json:"TasksCancelResult"` - TaskShellInfo TaskShellInfo `json:"TaskShellInfo"` - TaskShellInfoAttachmentMode TaskShellInfoAttachmentMode `json:"TaskShellInfoAttachmentMode"` - TaskShellInfoExecutionMode TaskInfoExecutionMode `json:"TaskShellInfoExecutionMode"` - TaskShellInfoStatus TaskInfoStatus `json:"TaskShellInfoStatus"` - TasksPromoteToBackgroundRequest TasksPromoteToBackgroundRequest `json:"TasksPromoteToBackgroundRequest"` - TasksPromoteToBackgroundResult TasksPromoteToBackgroundResult `json:"TasksPromoteToBackgroundResult"` - TasksRemoveRequest TasksRemoveRequest `json:"TasksRemoveRequest"` - TasksRemoveResult TasksRemoveResult `json:"TasksRemoveResult"` - TasksStartAgentRequest TasksStartAgentRequest `json:"TasksStartAgentRequest"` - TasksStartAgentResult TasksStartAgentResult `json:"TasksStartAgentResult"` - Tool Tool `json:"Tool"` - ToolList ToolList `json:"ToolList"` - ToolsListRequest ToolsListRequest `json:"ToolsListRequest"` - UIElicitationArrayAnyOfField UIElicitationArrayAnyOfField `json:"UIElicitationArrayAnyOfField"` - UIElicitationArrayAnyOfFieldItems UIElicitationArrayAnyOfFieldItems `json:"UIElicitationArrayAnyOfFieldItems"` - UIElicitationArrayAnyOfFieldItemsAnyOf UIElicitationArrayAnyOfFieldItemsAnyOf `json:"UIElicitationArrayAnyOfFieldItemsAnyOf"` - UIElicitationArrayEnumField UIElicitationArrayEnumField `json:"UIElicitationArrayEnumField"` - UIElicitationArrayEnumFieldItems UIElicitationArrayEnumFieldItems `json:"UIElicitationArrayEnumFieldItems"` - UIElicitationFieldValue *UIElicitationFieldValue `json:"UIElicitationFieldValue"` - UIElicitationRequest UIElicitationRequest `json:"UIElicitationRequest"` - UIElicitationResponse UIElicitationResponse `json:"UIElicitationResponse"` - UIElicitationResponseAction UIElicitationResponseAction `json:"UIElicitationResponseAction"` - UIElicitationResponseContent map[string]*UIElicitationFieldValue `json:"UIElicitationResponseContent"` - UIElicitationResult UIElicitationResult `json:"UIElicitationResult"` - UIElicitationSchema UIElicitationSchema `json:"UIElicitationSchema"` - UIElicitationSchemaProperty UIElicitationSchemaProperty `json:"UIElicitationSchemaProperty"` - UIElicitationSchemaPropertyBoolean UIElicitationSchemaPropertyBoolean `json:"UIElicitationSchemaPropertyBoolean"` - UIElicitationSchemaPropertyNumber UIElicitationSchemaPropertyNumber `json:"UIElicitationSchemaPropertyNumber"` - UIElicitationSchemaPropertyNumberType UIElicitationSchemaPropertyNumberTypeEnum `json:"UIElicitationSchemaPropertyNumberType"` - UIElicitationSchemaPropertyString UIElicitationSchemaPropertyString `json:"UIElicitationSchemaPropertyString"` - UIElicitationSchemaPropertyStringFormat UIElicitationSchemaPropertyStringFormat `json:"UIElicitationSchemaPropertyStringFormat"` - UIElicitationStringEnumField UIElicitationStringEnumField `json:"UIElicitationStringEnumField"` - UIElicitationStringOneOfField UIElicitationStringOneOfField `json:"UIElicitationStringOneOfField"` - UIElicitationStringOneOfFieldOneOf UIElicitationStringOneOfFieldOneOf `json:"UIElicitationStringOneOfFieldOneOf"` - UIHandlePendingElicitationRequest UIHandlePendingElicitationRequest `json:"UIHandlePendingElicitationRequest"` - UsageGetMetricsResult UsageGetMetricsResult `json:"UsageGetMetricsResult"` - UsageMetricsCodeChanges UsageMetricsCodeChanges `json:"UsageMetricsCodeChanges"` - UsageMetricsModelMetric UsageMetricsModelMetric `json:"UsageMetricsModelMetric"` - UsageMetricsModelMetricRequests UsageMetricsModelMetricRequests `json:"UsageMetricsModelMetricRequests"` - UsageMetricsModelMetricTokenDetail UsageMetricsModelMetricTokenDetail `json:"UsageMetricsModelMetricTokenDetail"` - UsageMetricsModelMetricUsage UsageMetricsModelMetricUsage `json:"UsageMetricsModelMetricUsage"` - UsageMetricsTokenDetail UsageMetricsTokenDetail `json:"UsageMetricsTokenDetail"` - WorkspacesCreateFileRequest WorkspacesCreateFileRequest `json:"WorkspacesCreateFileRequest"` - WorkspacesCreateFileResult WorkspacesCreateFileResult `json:"WorkspacesCreateFileResult"` - WorkspacesGetWorkspaceResult WorkspacesGetWorkspaceResult `json:"WorkspacesGetWorkspaceResult"` - WorkspacesListFilesResult WorkspacesListFilesResult `json:"WorkspacesListFilesResult"` - WorkspacesReadFileRequest WorkspacesReadFileRequest `json:"WorkspacesReadFileRequest"` - WorkspacesReadFileResult WorkspacesReadFileResult `json:"WorkspacesReadFileResult"` + AccountGetQuotaRequest AccountGetQuotaRequest `json:"AccountGetQuotaRequest"` + AccountGetQuotaResult AccountGetQuotaResult `json:"AccountGetQuotaResult"` + AccountQuotaSnapshot AccountQuotaSnapshot `json:"AccountQuotaSnapshot"` + AgentDeselectResult AgentDeselectResult `json:"AgentDeselectResult"` + AgentGetCurrentResult AgentGetCurrentResult `json:"AgentGetCurrentResult"` + AgentInfo AgentInfo `json:"AgentInfo"` + AgentList AgentList `json:"AgentList"` + AgentReloadResult AgentReloadResult `json:"AgentReloadResult"` + AgentSelectRequest AgentSelectRequest `json:"AgentSelectRequest"` + AgentSelectResult AgentSelectResult `json:"AgentSelectResult"` + AuthInfoType AuthInfoType `json:"AuthInfoType"` + CommandsHandlePendingCommandRequest CommandsHandlePendingCommandRequest `json:"CommandsHandlePendingCommandRequest"` + CommandsHandlePendingCommandResult CommandsHandlePendingCommandResult `json:"CommandsHandlePendingCommandResult"` + ConnectRequest ConnectRequest `json:"ConnectRequest"` + ConnectResult ConnectResult `json:"ConnectResult"` + CurrentModel CurrentModel `json:"CurrentModel"` + DiscoveredMCPServer DiscoveredMCPServer `json:"DiscoveredMcpServer"` + DiscoveredMCPServerSource MCPServerSource `json:"DiscoveredMcpServerSource"` + DiscoveredMCPServerType DiscoveredMCPServerType `json:"DiscoveredMcpServerType"` + EmbeddedBlobResourceContents EmbeddedBlobResourceContents `json:"EmbeddedBlobResourceContents"` + EmbeddedTextResourceContents EmbeddedTextResourceContents `json:"EmbeddedTextResourceContents"` + Extension Extension `json:"Extension"` + ExtensionList ExtensionList `json:"ExtensionList"` + ExtensionsDisableRequest ExtensionsDisableRequest `json:"ExtensionsDisableRequest"` + ExtensionsDisableResult ExtensionsDisableResult `json:"ExtensionsDisableResult"` + ExtensionsEnableRequest ExtensionsEnableRequest `json:"ExtensionsEnableRequest"` + ExtensionsEnableResult ExtensionsEnableResult `json:"ExtensionsEnableResult"` + ExtensionSource ExtensionSource `json:"ExtensionSource"` + ExtensionsReloadResult ExtensionsReloadResult `json:"ExtensionsReloadResult"` + ExtensionStatus ExtensionStatus `json:"ExtensionStatus"` + ExternalToolResult *ExternalToolResult `json:"ExternalToolResult"` + ExternalToolTextResultForLlm ExternalToolTextResultForLlm `json:"ExternalToolTextResultForLlm"` + ExternalToolTextResultForLlmContent ExternalToolTextResultForLlmContent `json:"ExternalToolTextResultForLlmContent"` + ExternalToolTextResultForLlmContentAudio ExternalToolTextResultForLlmContentAudio `json:"ExternalToolTextResultForLlmContentAudio"` + ExternalToolTextResultForLlmContentImage ExternalToolTextResultForLlmContentImage `json:"ExternalToolTextResultForLlmContentImage"` + ExternalToolTextResultForLlmContentResource ExternalToolTextResultForLlmContentResource `json:"ExternalToolTextResultForLlmContentResource"` + ExternalToolTextResultForLlmContentResourceDetails ExternalToolTextResultForLlmContentResourceDetails `json:"ExternalToolTextResultForLlmContentResourceDetails"` + ExternalToolTextResultForLlmContentResourceLink ExternalToolTextResultForLlmContentResourceLink `json:"ExternalToolTextResultForLlmContentResourceLink"` + ExternalToolTextResultForLlmContentResourceLinkIcon ExternalToolTextResultForLlmContentResourceLinkIcon `json:"ExternalToolTextResultForLlmContentResourceLinkIcon"` + ExternalToolTextResultForLlmContentResourceLinkIconTheme ExternalToolTextResultForLlmContentResourceLinkIconTheme `json:"ExternalToolTextResultForLlmContentResourceLinkIconTheme"` + ExternalToolTextResultForLlmContentTerminal ExternalToolTextResultForLlmContentTerminal `json:"ExternalToolTextResultForLlmContentTerminal"` + ExternalToolTextResultForLlmContentText ExternalToolTextResultForLlmContentText `json:"ExternalToolTextResultForLlmContentText"` + FilterMapping *FilterMapping `json:"FilterMapping"` + FilterMappingString FilterMappingString `json:"FilterMappingString"` + FilterMappingValue FilterMappingString `json:"FilterMappingValue"` + FleetStartRequest FleetStartRequest `json:"FleetStartRequest"` + FleetStartResult FleetStartResult `json:"FleetStartResult"` + HandlePendingToolCallRequest HandlePendingToolCallRequest `json:"HandlePendingToolCallRequest"` + HandlePendingToolCallResult HandlePendingToolCallResult `json:"HandlePendingToolCallResult"` + HistoryCompactContextWindow HistoryCompactContextWindow `json:"HistoryCompactContextWindow"` + HistoryCompactResult HistoryCompactResult `json:"HistoryCompactResult"` + HistoryTruncateRequest HistoryTruncateRequest `json:"HistoryTruncateRequest"` + HistoryTruncateResult HistoryTruncateResult `json:"HistoryTruncateResult"` + InstructionsGetSourcesResult InstructionsGetSourcesResult `json:"InstructionsGetSourcesResult"` + InstructionsSources InstructionsSources `json:"InstructionsSources"` + InstructionsSourcesLocation InstructionsSourcesLocation `json:"InstructionsSourcesLocation"` + InstructionsSourcesType InstructionsSourcesType `json:"InstructionsSourcesType"` + LogRequest LogRequest `json:"LogRequest"` + LogResult LogResult `json:"LogResult"` + MCPConfigAddRequest MCPConfigAddRequest `json:"McpConfigAddRequest"` + MCPConfigAddResult MCPConfigAddResult `json:"McpConfigAddResult"` + MCPConfigDisableRequest MCPConfigDisableRequest `json:"McpConfigDisableRequest"` + MCPConfigDisableResult MCPConfigDisableResult `json:"McpConfigDisableResult"` + MCPConfigEnableRequest MCPConfigEnableRequest `json:"McpConfigEnableRequest"` + MCPConfigEnableResult MCPConfigEnableResult `json:"McpConfigEnableResult"` + MCPConfigList MCPConfigList `json:"McpConfigList"` + MCPConfigRemoveRequest MCPConfigRemoveRequest `json:"McpConfigRemoveRequest"` + MCPConfigRemoveResult MCPConfigRemoveResult `json:"McpConfigRemoveResult"` + MCPConfigUpdateRequest MCPConfigUpdateRequest `json:"McpConfigUpdateRequest"` + MCPConfigUpdateResult MCPConfigUpdateResult `json:"McpConfigUpdateResult"` + MCPDisableRequest MCPDisableRequest `json:"McpDisableRequest"` + MCPDisableResult MCPDisableResult `json:"McpDisableResult"` + MCPDiscoverRequest MCPDiscoverRequest `json:"McpDiscoverRequest"` + MCPDiscoverResult MCPDiscoverResult `json:"McpDiscoverResult"` + MCPEnableRequest MCPEnableRequest `json:"McpEnableRequest"` + MCPEnableResult MCPEnableResult `json:"McpEnableResult"` + MCPOauthLoginRequest MCPOauthLoginRequest `json:"McpOauthLoginRequest"` + MCPOauthLoginResult MCPOauthLoginResult `json:"McpOauthLoginResult"` + MCPReloadResult MCPReloadResult `json:"McpReloadResult"` + MCPServer MCPServer `json:"McpServer"` + MCPServerConfig MCPServerConfig `json:"McpServerConfig"` + MCPServerConfigHTTP MCPServerConfigHTTP `json:"McpServerConfigHttp"` + MCPServerConfigHTTPOauthGrantType MCPServerConfigHTTPOauthGrantType `json:"McpServerConfigHttpOauthGrantType"` + MCPServerConfigHTTPType MCPServerConfigHTTPType `json:"McpServerConfigHttpType"` + MCPServerConfigLocal MCPServerConfigLocal `json:"McpServerConfigLocal"` + MCPServerConfigLocalType MCPServerConfigLocalType `json:"McpServerConfigLocalType"` + MCPServerList MCPServerList `json:"McpServerList"` + MCPServerSource MCPServerSource `json:"McpServerSource"` + MCPServerStatus MCPServerStatus `json:"McpServerStatus"` + Model ModelElement `json:"Model"` + ModelBilling ModelBilling `json:"ModelBilling"` + ModelCapabilities ModelCapabilities `json:"ModelCapabilities"` + ModelCapabilitiesLimits ModelCapabilitiesLimits `json:"ModelCapabilitiesLimits"` + ModelCapabilitiesLimitsVision ModelCapabilitiesLimitsVision `json:"ModelCapabilitiesLimitsVision"` + ModelCapabilitiesOverride ModelCapabilitiesOverride `json:"ModelCapabilitiesOverride"` + ModelCapabilitiesOverrideLimits ModelCapabilitiesOverrideLimits `json:"ModelCapabilitiesOverrideLimits"` + ModelCapabilitiesOverrideLimitsVision ModelCapabilitiesOverrideLimitsVision `json:"ModelCapabilitiesOverrideLimitsVision"` + ModelCapabilitiesOverrideSupports ModelCapabilitiesOverrideSupports `json:"ModelCapabilitiesOverrideSupports"` + ModelCapabilitiesSupports ModelCapabilitiesSupports `json:"ModelCapabilitiesSupports"` + ModelList ModelList `json:"ModelList"` + ModelPolicy ModelPolicy `json:"ModelPolicy"` + ModelsListRequest ModelsListRequest `json:"ModelsListRequest"` + ModelSwitchToRequest ModelSwitchToRequest `json:"ModelSwitchToRequest"` + ModelSwitchToResult ModelSwitchToResult `json:"ModelSwitchToResult"` + ModeSetRequest ModeSetRequest `json:"ModeSetRequest"` + ModeSetResult ModeSetResult `json:"ModeSetResult"` + NameGetResult NameGetResult `json:"NameGetResult"` + NameSetRequest NameSetRequest `json:"NameSetRequest"` + NameSetResult NameSetResult `json:"NameSetResult"` + PermissionDecision PermissionDecision `json:"PermissionDecision"` + PermissionDecisionApproveForLocation PermissionDecisionApproveForLocation `json:"PermissionDecisionApproveForLocation"` + PermissionDecisionApproveForLocationApproval PermissionDecisionApproveForLocationApproval `json:"PermissionDecisionApproveForLocationApproval"` + PermissionDecisionApproveForLocationApprovalCommands PermissionDecisionApproveForLocationApprovalCommands `json:"PermissionDecisionApproveForLocationApprovalCommands"` + PermissionDecisionApproveForLocationApprovalCustomTool PermissionDecisionApproveForLocationApprovalCustomTool `json:"PermissionDecisionApproveForLocationApprovalCustomTool"` + PermissionDecisionApproveForLocationApprovalExtensionManagement PermissionDecisionApproveForLocationApprovalExtensionManagement `json:"PermissionDecisionApproveForLocationApprovalExtensionManagement"` + PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess `json:"PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess"` + PermissionDecisionApproveForLocationApprovalMCP PermissionDecisionApproveForLocationApprovalMCP `json:"PermissionDecisionApproveForLocationApprovalMcp"` + PermissionDecisionApproveForLocationApprovalMCPSampling PermissionDecisionApproveForLocationApprovalMCPSampling `json:"PermissionDecisionApproveForLocationApprovalMcpSampling"` + PermissionDecisionApproveForLocationApprovalMemory PermissionDecisionApproveForLocationApprovalMemory `json:"PermissionDecisionApproveForLocationApprovalMemory"` + PermissionDecisionApproveForLocationApprovalRead PermissionDecisionApproveForLocationApprovalRead `json:"PermissionDecisionApproveForLocationApprovalRead"` + PermissionDecisionApproveForLocationApprovalWrite PermissionDecisionApproveForLocationApprovalWrite `json:"PermissionDecisionApproveForLocationApprovalWrite"` + PermissionDecisionApproveForSession PermissionDecisionApproveForSession `json:"PermissionDecisionApproveForSession"` + PermissionDecisionApproveForSessionApproval PermissionDecisionApproveForSessionApproval `json:"PermissionDecisionApproveForSessionApproval"` + PermissionDecisionApproveForSessionApprovalCommands PermissionDecisionApproveForSessionApprovalCommands `json:"PermissionDecisionApproveForSessionApprovalCommands"` + PermissionDecisionApproveForSessionApprovalCustomTool PermissionDecisionApproveForSessionApprovalCustomTool `json:"PermissionDecisionApproveForSessionApprovalCustomTool"` + PermissionDecisionApproveForSessionApprovalExtensionManagement PermissionDecisionApproveForSessionApprovalExtensionManagement `json:"PermissionDecisionApproveForSessionApprovalExtensionManagement"` + PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess `json:"PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess"` + PermissionDecisionApproveForSessionApprovalMCP PermissionDecisionApproveForSessionApprovalMCP `json:"PermissionDecisionApproveForSessionApprovalMcp"` + PermissionDecisionApproveForSessionApprovalMCPSampling PermissionDecisionApproveForSessionApprovalMCPSampling `json:"PermissionDecisionApproveForSessionApprovalMcpSampling"` + PermissionDecisionApproveForSessionApprovalMemory PermissionDecisionApproveForSessionApprovalMemory `json:"PermissionDecisionApproveForSessionApprovalMemory"` + PermissionDecisionApproveForSessionApprovalRead PermissionDecisionApproveForSessionApprovalRead `json:"PermissionDecisionApproveForSessionApprovalRead"` + PermissionDecisionApproveForSessionApprovalWrite PermissionDecisionApproveForSessionApprovalWrite `json:"PermissionDecisionApproveForSessionApprovalWrite"` + PermissionDecisionApproveOnce PermissionDecisionApproveOnce `json:"PermissionDecisionApproveOnce"` + PermissionDecisionApprovePermanently PermissionDecisionApprovePermanently `json:"PermissionDecisionApprovePermanently"` + PermissionDecisionReject PermissionDecisionReject `json:"PermissionDecisionReject"` + PermissionDecisionRequest PermissionDecisionRequest `json:"PermissionDecisionRequest"` + PermissionDecisionUserNotAvailable PermissionDecisionUserNotAvailable `json:"PermissionDecisionUserNotAvailable"` + PermissionRequestResult PermissionRequestResult `json:"PermissionRequestResult"` + PermissionsResetSessionApprovalsRequest PermissionsResetSessionApprovalsRequest `json:"PermissionsResetSessionApprovalsRequest"` + PermissionsResetSessionApprovalsResult PermissionsResetSessionApprovalsResult `json:"PermissionsResetSessionApprovalsResult"` + PermissionsSetApproveAllRequest PermissionsSetApproveAllRequest `json:"PermissionsSetApproveAllRequest"` + PermissionsSetApproveAllResult PermissionsSetApproveAllResult `json:"PermissionsSetApproveAllResult"` + PingRequest PingRequest `json:"PingRequest"` + PingResult PingResult `json:"PingResult"` + PlanDeleteResult PlanDeleteResult `json:"PlanDeleteResult"` + PlanReadResult PlanReadResult `json:"PlanReadResult"` + PlanUpdateRequest PlanUpdateRequest `json:"PlanUpdateRequest"` + PlanUpdateResult PlanUpdateResult `json:"PlanUpdateResult"` + Plugin PluginElement `json:"Plugin"` + PluginList PluginList `json:"PluginList"` + RemoteDisableResult RemoteDisableResult `json:"RemoteDisableResult"` + RemoteEnableResult RemoteEnableResult `json:"RemoteEnableResult"` + ServerSkill ServerSkill `json:"ServerSkill"` + ServerSkillList ServerSkillList `json:"ServerSkillList"` + SessionAuthStatus SessionAuthStatus `json:"SessionAuthStatus"` + SessionFSAppendFileRequest SessionFSAppendFileRequest `json:"SessionFsAppendFileRequest"` + SessionFSError SessionFSError `json:"SessionFsError"` + SessionFSErrorCode SessionFSErrorCode `json:"SessionFsErrorCode"` + SessionFSExistsRequest SessionFSExistsRequest `json:"SessionFsExistsRequest"` + SessionFSExistsResult SessionFSExistsResult `json:"SessionFsExistsResult"` + SessionFSMkdirRequest SessionFSMkdirRequest `json:"SessionFsMkdirRequest"` + SessionFSReaddirRequest SessionFSReaddirRequest `json:"SessionFsReaddirRequest"` + SessionFSReaddirResult SessionFSReaddirResult `json:"SessionFsReaddirResult"` + SessionFSReaddirWithTypesEntry SessionFSReaddirWithTypesEntry `json:"SessionFsReaddirWithTypesEntry"` + SessionFSReaddirWithTypesEntryType SessionFSReaddirWithTypesEntryType `json:"SessionFsReaddirWithTypesEntryType"` + SessionFSReaddirWithTypesRequest SessionFSReaddirWithTypesRequest `json:"SessionFsReaddirWithTypesRequest"` + SessionFSReaddirWithTypesResult SessionFSReaddirWithTypesResult `json:"SessionFsReaddirWithTypesResult"` + SessionFSReadFileRequest SessionFSReadFileRequest `json:"SessionFsReadFileRequest"` + SessionFSReadFileResult SessionFSReadFileResult `json:"SessionFsReadFileResult"` + SessionFSRenameRequest SessionFSRenameRequest `json:"SessionFsRenameRequest"` + SessionFSRmRequest SessionFSRmRequest `json:"SessionFsRmRequest"` + SessionFSSetProviderConventions SessionFSSetProviderConventions `json:"SessionFsSetProviderConventions"` + SessionFSSetProviderRequest SessionFSSetProviderRequest `json:"SessionFsSetProviderRequest"` + SessionFSSetProviderResult SessionFSSetProviderResult `json:"SessionFsSetProviderResult"` + SessionFSStatRequest SessionFSStatRequest `json:"SessionFsStatRequest"` + SessionFSStatResult SessionFSStatResult `json:"SessionFsStatResult"` + SessionFSWriteFileRequest SessionFSWriteFileRequest `json:"SessionFsWriteFileRequest"` + SessionLogLevel SessionLogLevel `json:"SessionLogLevel"` + SessionMode SessionMode `json:"SessionMode"` + SessionsForkRequest SessionsForkRequest `json:"SessionsForkRequest"` + SessionsForkResult SessionsForkResult `json:"SessionsForkResult"` + ShellExecRequest ShellExecRequest `json:"ShellExecRequest"` + ShellExecResult ShellExecResult `json:"ShellExecResult"` + ShellKillRequest ShellKillRequest `json:"ShellKillRequest"` + ShellKillResult ShellKillResult `json:"ShellKillResult"` + ShellKillSignal ShellKillSignal `json:"ShellKillSignal"` + Skill Skill `json:"Skill"` + SkillList SkillList `json:"SkillList"` + SkillsConfigSetDisabledSkillsRequest SkillsConfigSetDisabledSkillsRequest `json:"SkillsConfigSetDisabledSkillsRequest"` + SkillsConfigSetDisabledSkillsResult SkillsConfigSetDisabledSkillsResult `json:"SkillsConfigSetDisabledSkillsResult"` + SkillsDisableRequest SkillsDisableRequest `json:"SkillsDisableRequest"` + SkillsDisableResult SkillsDisableResult `json:"SkillsDisableResult"` + SkillsDiscoverRequest SkillsDiscoverRequest `json:"SkillsDiscoverRequest"` + SkillsEnableRequest SkillsEnableRequest `json:"SkillsEnableRequest"` + SkillsEnableResult SkillsEnableResult `json:"SkillsEnableResult"` + SkillsReloadResult SkillsReloadResult `json:"SkillsReloadResult"` + SuspendResult SuspendResult `json:"SuspendResult"` + TaskAgentInfo TaskAgentInfo `json:"TaskAgentInfo"` + TaskAgentInfoExecutionMode TaskInfoExecutionMode `json:"TaskAgentInfoExecutionMode"` + TaskAgentInfoStatus TaskInfoStatus `json:"TaskAgentInfoStatus"` + TaskInfo TaskInfo `json:"TaskInfo"` + TaskList TaskList `json:"TaskList"` + TasksCancelRequest TasksCancelRequest `json:"TasksCancelRequest"` + TasksCancelResult TasksCancelResult `json:"TasksCancelResult"` + TaskShellInfo TaskShellInfo `json:"TaskShellInfo"` + TaskShellInfoAttachmentMode TaskShellInfoAttachmentMode `json:"TaskShellInfoAttachmentMode"` + TaskShellInfoExecutionMode TaskInfoExecutionMode `json:"TaskShellInfoExecutionMode"` + TaskShellInfoStatus TaskInfoStatus `json:"TaskShellInfoStatus"` + TasksPromoteToBackgroundRequest TasksPromoteToBackgroundRequest `json:"TasksPromoteToBackgroundRequest"` + TasksPromoteToBackgroundResult TasksPromoteToBackgroundResult `json:"TasksPromoteToBackgroundResult"` + TasksRemoveRequest TasksRemoveRequest `json:"TasksRemoveRequest"` + TasksRemoveResult TasksRemoveResult `json:"TasksRemoveResult"` + TasksSendMessageRequest TasksSendMessageRequest `json:"TasksSendMessageRequest"` + TasksSendMessageResult TasksSendMessageResult `json:"TasksSendMessageResult"` + TasksStartAgentRequest TasksStartAgentRequest `json:"TasksStartAgentRequest"` + TasksStartAgentResult TasksStartAgentResult `json:"TasksStartAgentResult"` + Tool Tool `json:"Tool"` + ToolList ToolList `json:"ToolList"` + ToolsListRequest ToolsListRequest `json:"ToolsListRequest"` + UIElicitationArrayAnyOfField UIElicitationArrayAnyOfField `json:"UIElicitationArrayAnyOfField"` + UIElicitationArrayAnyOfFieldItems UIElicitationArrayAnyOfFieldItems `json:"UIElicitationArrayAnyOfFieldItems"` + UIElicitationArrayAnyOfFieldItemsAnyOf UIElicitationArrayAnyOfFieldItemsAnyOf `json:"UIElicitationArrayAnyOfFieldItemsAnyOf"` + UIElicitationArrayEnumField UIElicitationArrayEnumField `json:"UIElicitationArrayEnumField"` + UIElicitationArrayEnumFieldItems UIElicitationArrayEnumFieldItems `json:"UIElicitationArrayEnumFieldItems"` + UIElicitationFieldValue *UIElicitationFieldValue `json:"UIElicitationFieldValue"` + UIElicitationRequest UIElicitationRequest `json:"UIElicitationRequest"` + UIElicitationResponse UIElicitationResponse `json:"UIElicitationResponse"` + UIElicitationResponseAction UIElicitationResponseAction `json:"UIElicitationResponseAction"` + UIElicitationResponseContent map[string]*UIElicitationFieldValue `json:"UIElicitationResponseContent"` + UIElicitationResult UIElicitationResult `json:"UIElicitationResult"` + UIElicitationSchema UIElicitationSchema `json:"UIElicitationSchema"` + UIElicitationSchemaProperty UIElicitationSchemaProperty `json:"UIElicitationSchemaProperty"` + UIElicitationSchemaPropertyBoolean UIElicitationSchemaPropertyBoolean `json:"UIElicitationSchemaPropertyBoolean"` + UIElicitationSchemaPropertyNumber UIElicitationSchemaPropertyNumber `json:"UIElicitationSchemaPropertyNumber"` + UIElicitationSchemaPropertyNumberType UIElicitationSchemaPropertyNumberTypeEnum `json:"UIElicitationSchemaPropertyNumberType"` + UIElicitationSchemaPropertyString UIElicitationSchemaPropertyString `json:"UIElicitationSchemaPropertyString"` + UIElicitationSchemaPropertyStringFormat UIElicitationSchemaPropertyStringFormat `json:"UIElicitationSchemaPropertyStringFormat"` + UIElicitationStringEnumField UIElicitationStringEnumField `json:"UIElicitationStringEnumField"` + UIElicitationStringOneOfField UIElicitationStringOneOfField `json:"UIElicitationStringOneOfField"` + UIElicitationStringOneOfFieldOneOf UIElicitationStringOneOfFieldOneOf `json:"UIElicitationStringOneOfFieldOneOf"` + UIHandlePendingElicitationRequest UIHandlePendingElicitationRequest `json:"UIHandlePendingElicitationRequest"` + UsageGetMetricsResult UsageGetMetricsResult `json:"UsageGetMetricsResult"` + UsageMetricsCodeChanges UsageMetricsCodeChanges `json:"UsageMetricsCodeChanges"` + UsageMetricsModelMetric UsageMetricsModelMetric `json:"UsageMetricsModelMetric"` + UsageMetricsModelMetricRequests UsageMetricsModelMetricRequests `json:"UsageMetricsModelMetricRequests"` + UsageMetricsModelMetricTokenDetail UsageMetricsModelMetricTokenDetail `json:"UsageMetricsModelMetricTokenDetail"` + UsageMetricsModelMetricUsage UsageMetricsModelMetricUsage `json:"UsageMetricsModelMetricUsage"` + UsageMetricsTokenDetail UsageMetricsTokenDetail `json:"UsageMetricsTokenDetail"` + WorkspacesCreateFileRequest WorkspacesCreateFileRequest `json:"WorkspacesCreateFileRequest"` + WorkspacesCreateFileResult WorkspacesCreateFileResult `json:"WorkspacesCreateFileResult"` + WorkspacesGetWorkspaceResult WorkspacesGetWorkspaceResult `json:"WorkspacesGetWorkspaceResult"` + WorkspacesListFilesResult WorkspacesListFilesResult `json:"WorkspacesListFilesResult"` + WorkspacesReadFileRequest WorkspacesReadFileRequest `json:"WorkspacesReadFileRequest"` + WorkspacesReadFileResult WorkspacesReadFileResult `json:"WorkspacesReadFileResult"` } type AccountGetQuotaRequest struct { @@ -918,7 +924,7 @@ type ModelElement struct { // Billing information type ModelBilling struct { // Billing cost multiplier relative to the base rate - Multiplier float64 `json:"multiplier"` + Multiplier *float64 `json:"multiplier,omitempty"` } // Model capabilities and limits @@ -1079,6 +1085,8 @@ type PermissionDecisionApproveForLocationApproval struct { Kind ApprovalKind `json:"kind"` ServerName *string `json:"serverName,omitempty"` ToolName *string `json:"toolName,omitempty"` + Operation *string `json:"operation,omitempty"` + ExtensionName *string `json:"extensionName,omitempty"` } type PermissionDecisionApproveForLocationApprovalCommands struct { @@ -1091,6 +1099,16 @@ type PermissionDecisionApproveForLocationApprovalCustomTool struct { ToolName string `json:"toolName"` } +type PermissionDecisionApproveForLocationApprovalExtensionManagement struct { + Kind PermissionDecisionApproveForLocationApprovalExtensionManagementKind `json:"kind"` + Operation *string `json:"operation,omitempty"` +} + +type PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess struct { + ExtensionName string `json:"extensionName"` + Kind PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind `json:"kind"` +} + type PermissionDecisionApproveForLocationApprovalMCP struct { Kind PermissionDecisionApproveForLocationApprovalMCPKind `json:"kind"` ServerName string `json:"serverName"` @@ -1129,6 +1147,8 @@ type PermissionDecisionApproveForSessionApproval struct { Kind ApprovalKind `json:"kind"` ServerName *string `json:"serverName,omitempty"` ToolName *string `json:"toolName,omitempty"` + Operation *string `json:"operation,omitempty"` + ExtensionName *string `json:"extensionName,omitempty"` } type PermissionDecisionApproveForSessionApprovalCommands struct { @@ -1141,6 +1161,16 @@ type PermissionDecisionApproveForSessionApprovalCustomTool struct { ToolName string `json:"toolName"` } +type PermissionDecisionApproveForSessionApprovalExtensionManagement struct { + Kind PermissionDecisionApproveForLocationApprovalExtensionManagementKind `json:"kind"` + Operation *string `json:"operation,omitempty"` +} + +type PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess struct { + ExtensionName string `json:"extensionName"` + Kind PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind `json:"kind"` +} + type PermissionDecisionApproveForSessionApprovalMCP struct { Kind PermissionDecisionApproveForLocationApprovalMCPKind `json:"kind"` ServerName string `json:"serverName"` @@ -1745,6 +1775,24 @@ type TasksRemoveResult struct { Removed bool `json:"removed"` } +// Experimental: TasksSendMessageRequest is part of an experimental API and may change or be removed. +type TasksSendMessageRequest struct { + // Agent ID of the sender, if sent on behalf of another agent + FromAgentID *string `json:"fromAgentId,omitempty"` + // Agent task identifier + ID string `json:"id"` + // Message content to send to the agent + Message string `json:"message"` +} + +// Experimental: TasksSendMessageResult is part of an experimental API and may change or be removed. +type TasksSendMessageResult struct { + // Error message if delivery failed + Error *string `json:"error,omitempty"` + // Whether the message was successfully delivered or steered + Sent bool `json:"sent"` +} + // Experimental: TasksStartAgentRequest is part of an experimental API and may change or be removed. type TasksStartAgentRequest struct { // Type of agent to start (e.g., 'explore', 'task', 'general-purpose') @@ -2030,24 +2078,22 @@ type WorkspacesGetWorkspaceResult struct { } type WorkspaceClass struct { - Branch *string `json:"branch,omitempty"` - ChronicleSyncDismissed *bool `json:"chronicle_sync_dismissed,omitempty"` - CreatedAt *time.Time `json:"created_at,omitempty"` - Cwd *string `json:"cwd,omitempty"` - GitRoot *string `json:"git_root,omitempty"` - HostType *HostType `json:"host_type,omitempty"` - ID string `json:"id"` - McLastEventID *string `json:"mc_last_event_id,omitempty"` - McSessionID *string `json:"mc_session_id,omitempty"` - McTaskID *string `json:"mc_task_id,omitempty"` - Name *string `json:"name,omitempty"` - RemoteSteerable *bool `json:"remote_steerable,omitempty"` - Repository *string `json:"repository,omitempty"` - SessionSyncLevel *SessionSyncLevel `json:"session_sync_level,omitempty"` - Summary *string `json:"summary,omitempty"` - SummaryCount *int64 `json:"summary_count,omitempty"` - UpdatedAt *time.Time `json:"updated_at,omitempty"` - UserNamed *bool `json:"user_named,omitempty"` + Branch *string `json:"branch,omitempty"` + ChronicleSyncDismissed *bool `json:"chronicle_sync_dismissed,omitempty"` + CreatedAt *time.Time `json:"created_at,omitempty"` + Cwd *string `json:"cwd,omitempty"` + GitRoot *string `json:"git_root,omitempty"` + HostType *HostType `json:"host_type,omitempty"` + ID string `json:"id"` + McLastEventID *string `json:"mc_last_event_id,omitempty"` + McSessionID *string `json:"mc_session_id,omitempty"` + McTaskID *string `json:"mc_task_id,omitempty"` + Name *string `json:"name,omitempty"` + RemoteSteerable *bool `json:"remote_steerable,omitempty"` + Repository *string `json:"repository,omitempty"` + SummaryCount *int64 `json:"summary_count,omitempty"` + UpdatedAt *time.Time `json:"updated_at,omitempty"` + UserNamed *bool `json:"user_named,omitempty"` } type WorkspacesListFilesResult struct { @@ -2268,13 +2314,15 @@ const ( type ApprovalKind string const ( - ApprovalKindCommands ApprovalKind = "commands" - ApprovalKindCustomTool ApprovalKind = "custom-tool" - ApprovalKindMcp ApprovalKind = "mcp" - ApprovalKindMcpSampling ApprovalKind = "mcp-sampling" - ApprovalKindMemory ApprovalKind = "memory" - ApprovalKindRead ApprovalKind = "read" - ApprovalKindWrite ApprovalKind = "write" + ApprovalKindCommands ApprovalKind = "commands" + ApprovalKindCustomTool ApprovalKind = "custom-tool" + ApprovalKindExtensionManagement ApprovalKind = "extension-management" + ApprovalKindExtensionPermissionAccess ApprovalKind = "extension-permission-access" + ApprovalKindMcp ApprovalKind = "mcp" + ApprovalKindMcpSampling ApprovalKind = "mcp-sampling" + ApprovalKindMemory ApprovalKind = "memory" + ApprovalKindRead ApprovalKind = "read" + ApprovalKindWrite ApprovalKind = "write" ) type PermissionDecisionKind string @@ -2306,6 +2354,18 @@ const ( PermissionDecisionApproveForLocationApprovalCustomToolKindCustomTool PermissionDecisionApproveForLocationApprovalCustomToolKind = "custom-tool" ) +type PermissionDecisionApproveForLocationApprovalExtensionManagementKind string + +const ( + PermissionDecisionApproveForLocationApprovalExtensionManagementKindExtensionManagement PermissionDecisionApproveForLocationApprovalExtensionManagementKind = "extension-management" +) + +type PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind string + +const ( + PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKindExtensionPermissionAccess PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind = "extension-permission-access" +) + type PermissionDecisionApproveForLocationApprovalMCPKind string const ( @@ -2514,14 +2574,6 @@ const ( HostTypeGithub HostType = "github" ) -type SessionSyncLevel string - -const ( - SessionSyncLevelRepoAndUser SessionSyncLevel = "repo_and_user" - SessionSyncLevelLocal SessionSyncLevel = "local" - SessionSyncLevelUser SessionSyncLevel = "user" -) - // Tool call result (string or expanded result object) type ExternalToolResult struct { ExternalToolTextResultForLlm *ExternalToolTextResultForLlm @@ -3225,6 +3277,26 @@ func (a *TasksApi) Remove(ctx context.Context, params *TasksRemoveRequest) (*Tas return &result, nil } +func (a *TasksApi) SendMessage(ctx context.Context, params *TasksSendMessageRequest) (*TasksSendMessageResult, error) { + req := map[string]any{"sessionId": a.sessionID} + if params != nil { + req["id"] = params.ID + req["message"] = params.Message + if params.FromAgentID != nil { + req["fromAgentId"] = *params.FromAgentID + } + } + raw, err := a.client.Request("session.tasks.sendMessage", req) + if err != nil { + return nil, err + } + var result TasksSendMessageResult + if err := json.Unmarshal(raw, &result); err != nil { + return nil, err + } + return &result, nil +} + // Experimental: SkillsApi contains experimental APIs that may change or be removed. type SkillsApi sessionApi diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json index 7a6b44f0d..0db7bc141 100644 --- a/nodejs/package-lock.json +++ b/nodejs/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.8", "license": "MIT", "dependencies": { - "@github/copilot": "^1.0.44-2", + "@github/copilot": "^1.0.44", "vscode-jsonrpc": "^8.2.1", "zod": "^4.3.6" }, @@ -663,26 +663,26 @@ } }, "node_modules/@github/copilot": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.44-2.tgz", - "integrity": "sha512-MUIR4w+oXjbg1jwUS8B86eMd/bV2gVKZ61a/aEUE4gUrFFpGXO0tNk9OkfLSH5cmlhJY6lzMzb+kKQWoeAbbNQ==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.44.tgz", + "integrity": "sha512-wr/GmNOUaJK/giJK5abyB1oTpEowgFKLi+NJnlyAymKiK/GKCaRlJqiX23H2RetM8vD2hDYUFUFm9lTCooGy0g==", "license": "SEE LICENSE IN LICENSE.md", "bin": { "copilot": "npm-loader.js" }, "optionalDependencies": { - "@github/copilot-darwin-arm64": "1.0.44-2", - "@github/copilot-darwin-x64": "1.0.44-2", - "@github/copilot-linux-arm64": "1.0.44-2", - "@github/copilot-linux-x64": "1.0.44-2", - "@github/copilot-win32-arm64": "1.0.44-2", - "@github/copilot-win32-x64": "1.0.44-2" + "@github/copilot-darwin-arm64": "1.0.44", + "@github/copilot-darwin-x64": "1.0.44", + "@github/copilot-linux-arm64": "1.0.44", + "@github/copilot-linux-x64": "1.0.44", + "@github/copilot-win32-arm64": "1.0.44", + "@github/copilot-win32-x64": "1.0.44" } }, "node_modules/@github/copilot-darwin-arm64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.44-2.tgz", - "integrity": "sha512-6o/pvew0FZJG+8saG1K/L1pUIvpz4AWkZitiqH36tDfXdXKx/PUQ+zaFg/KPeHNnxtal5OdE/7iyrJwIqm2gPg==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.44.tgz", + "integrity": "sha512-9NqA5sT2spmNsehxhs51GhXRZIZga5nq+WcMl4LG2QrUPJRDwvHf1bDKqETJUBbYvBY8jONGuTKMRofkMI68YQ==", "cpu": [ "arm64" ], @@ -696,9 +696,9 @@ } }, "node_modules/@github/copilot-darwin-x64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.44-2.tgz", - "integrity": "sha512-OMNoLNFYUynB4wiplSh4gtD5zVlvfWMKc0jKQ0oItJLGO8GRL9X0ZB2ONB+7JpVvPidz0Yy4+jU0zWNXEjMM5g==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.44.tgz", + "integrity": "sha512-QPD8KtXx07SIKILGBl4JDhPyL2Qo0FMmaTYVxR6nkyHkHnFPsUZD6VWGR+T/KMLkcUXFM85Xc1ba9Y27s4nRrQ==", "cpu": [ "x64" ], @@ -712,9 +712,9 @@ } }, "node_modules/@github/copilot-linux-arm64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.44-2.tgz", - "integrity": "sha512-5WGRADU08hqBTWmQ6JVOYMximzsXGuOdFF4GFRQqfsCR8k4RE8fdPWQJa92BpqMgGWwEVPemq0wB3D4hDM5eWw==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.44.tgz", + "integrity": "sha512-Z8ScIUP433xS18f68NP9jM9zW320Xzpi2wf7Nig/VyfrwupBy25UTezydQMT0KQHLWTEleHOPcYnASY3HgJXnQ==", "cpu": [ "arm64" ], @@ -728,9 +728,9 @@ } }, "node_modules/@github/copilot-linux-x64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.44-2.tgz", - "integrity": "sha512-4ZnA2QxEwgrdCePdS5OjuksEGFpJrXgofuELANCpDSHwR3eTV7PynVyqhG6Et7ktN2KzHk7zf8kvtiWVCOxvFg==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.44.tgz", + "integrity": "sha512-KUl6lvJt0HNKaXSx0T0bIWJ3rvrGwgZYMlkDfqMbuMnZatEQJbjPwxmL/IDfp/c0DyKd7K+ajl17wHYcN/hJIQ==", "cpu": [ "x64" ], @@ -744,9 +744,9 @@ } }, "node_modules/@github/copilot-win32-arm64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.44-2.tgz", - "integrity": "sha512-klgSdBZblz9O8BRnTh9uk9uO/INQwVeTBagXuJO7MrZ7JCfBVJyFUYky2tKIjFxlwefyhrRZuniqYeOI9fQc+A==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.44.tgz", + "integrity": "sha512-JVJxZJwAc95ZfapgOXjNFwSqrWlvC3heo128L+CDkdZ6lwpD1dTGMHT/6rMMEeo3xjZmMm8tiynfwsHLDgTtvQ==", "cpu": [ "arm64" ], @@ -760,9 +760,9 @@ } }, "node_modules/@github/copilot-win32-x64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.44-2.tgz", - "integrity": "sha512-ziq3abdbMCqtAqdiEWWf6cn0whlWss7rC9VMsO/Vx2gjSEVCeJkmIiRiQO45WikheyXyxEmCTAvOwZLQvs+I9g==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.44.tgz", + "integrity": "sha512-Yj3KQ/DqwS50PwRtyQITX2mWIVZeJeX+y0faVSMwUUzG1qxmMcme7wimhKOyc4LSV11DpgVB9MSiBw2xys7iww==", "cpu": [ "x64" ], diff --git a/nodejs/package.json b/nodejs/package.json index 69f476b73..0b4f10a57 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -56,7 +56,7 @@ "author": "GitHub", "license": "MIT", "dependencies": { - "@github/copilot": "^1.0.44-2", + "@github/copilot": "^1.0.44", "vscode-jsonrpc": "^8.2.1", "zod": "^4.3.6" }, diff --git a/nodejs/samples/package-lock.json b/nodejs/samples/package-lock.json index 6f2d1ac53..08bee79ca 100644 --- a/nodejs/samples/package-lock.json +++ b/nodejs/samples/package-lock.json @@ -18,7 +18,7 @@ "version": "0.1.8", "license": "MIT", "dependencies": { - "@github/copilot": "^1.0.44-2", + "@github/copilot": "^1.0.44", "vscode-jsonrpc": "^8.2.1", "zod": "^4.3.6" }, diff --git a/nodejs/src/generated/rpc.ts b/nodejs/src/generated/rpc.ts index 7de129d14..9298fd512 100644 --- a/nodejs/src/generated/rpc.ts +++ b/nodejs/src/generated/rpc.ts @@ -167,7 +167,9 @@ export type PermissionDecisionApproveForSessionApproval = | PermissionDecisionApproveForSessionApprovalMcp | PermissionDecisionApproveForSessionApprovalMcpSampling | PermissionDecisionApproveForSessionApprovalMemory - | PermissionDecisionApproveForSessionApprovalCustomTool; + | PermissionDecisionApproveForSessionApprovalCustomTool + | PermissionDecisionApproveForSessionApprovalExtensionManagement + | PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess; /** * The approval to persist for this location * @@ -181,7 +183,9 @@ export type PermissionDecisionApproveForLocationApproval = | PermissionDecisionApproveForLocationApprovalMcp | PermissionDecisionApproveForLocationApprovalMcpSampling | PermissionDecisionApproveForLocationApprovalMemory - | PermissionDecisionApproveForLocationApprovalCustomTool; + | PermissionDecisionApproveForLocationApprovalCustomTool + | PermissionDecisionApproveForLocationApprovalExtensionManagement + | PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess; /** * Error classification * @@ -1138,7 +1142,7 @@ export interface ModelBilling { /** * Billing cost multiplier relative to the base rate */ - multiplier: number; + multiplier?: number; } /** * Override individual model capabilities resolved by the runtime @@ -1294,6 +1298,16 @@ export interface PermissionDecisionApproveForSessionApprovalCustomTool { toolName: string; } +export interface PermissionDecisionApproveForSessionApprovalExtensionManagement { + kind: "extension-management"; + operation?: string; +} + +export interface PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess { + kind: "extension-permission-access"; + extensionName: string; +} + export interface PermissionDecisionApproveForLocation { /** * Approved and persisted for this project location @@ -1339,6 +1353,16 @@ export interface PermissionDecisionApproveForLocationApprovalCustomTool { toolName: string; } +export interface PermissionDecisionApproveForLocationApprovalExtensionManagement { + kind: "extension-management"; + operation?: string; +} + +export interface PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess { + kind: "extension-permission-access"; + extensionName: string; +} + export interface PermissionDecisionApprovePermanently { /** * Approved and persisted across sessions @@ -2085,6 +2109,34 @@ export interface TasksRemoveResult { removed: boolean; } +/** @experimental */ +export interface TasksSendMessageRequest { + /** + * Agent task identifier + */ + id: string; + /** + * Message content to send to the agent + */ + message: string; + /** + * Agent ID of the sender, if sent on behalf of another agent + */ + fromAgentId?: string; +} + +/** @experimental */ +export interface TasksSendMessageResult { + /** + * Whether the message was successfully delivered or steered + */ + sent: boolean; + /** + * Error message if delivery failed + */ + error?: string; +} + /** @experimental */ export interface TasksStartAgentRequest { /** @@ -2468,7 +2520,6 @@ export interface WorkspacesGetWorkspaceResult { branch?: string; name?: string; user_named?: boolean; - summary?: string; summary_count?: number; created_at?: string; updated_at?: string; @@ -2476,7 +2527,6 @@ export interface WorkspacesGetWorkspaceResult { mc_task_id?: string; mc_session_id?: string; mc_last_event_id?: string; - session_sync_level?: "local" | "user" | "repo_and_user"; chronicle_sync_dismissed?: boolean; } | null; } @@ -2648,6 +2698,8 @@ export function createSessionRpc(connection: MessageConnection, sessionId: strin connection.sendRequest("session.tasks.cancel", { sessionId, ...params }), remove: async (params: TasksRemoveRequest): Promise => connection.sendRequest("session.tasks.remove", { sessionId, ...params }), + sendMessage: async (params: TasksSendMessageRequest): Promise => + connection.sendRequest("session.tasks.sendMessage", { sessionId, ...params }), }, /** @experimental */ skills: { diff --git a/nodejs/src/generated/session-events.ts b/nodejs/src/generated/session-events.ts index c6a222d05..a9155ea48 100644 --- a/nodejs/src/generated/session-events.ts +++ b/nodejs/src/generated/session-events.ts @@ -180,7 +180,9 @@ export type PermissionRequest = | PermissionRequestUrl | PermissionRequestMemory | PermissionRequestCustomTool - | PermissionRequestHook; + | PermissionRequestHook + | PermissionRequestExtensionManagement + | PermissionRequestExtensionPermissionAccess; /** * Whether this is a store or vote memory operation */ @@ -201,7 +203,9 @@ export type PermissionPromptRequest = | PermissionPromptRequestMemory | PermissionPromptRequestCustomTool | PermissionPromptRequestPath - | PermissionPromptRequestHook; + | PermissionPromptRequestHook + | PermissionPromptRequestExtensionManagement + | PermissionPromptRequestExtensionPermissionAccess; /** * Whether this is a store or vote memory operation */ @@ -312,6 +316,10 @@ export interface StartData { * Version string of the Copilot application */ copilotVersion: string; + /** + * When set, identifies a parent session whose context this session continues — e.g., a detached headless rem-agent run launched on the parent's interactive shutdown. Telemetry from this session is reported under the parent's session_id. + */ + detachedFromSpawningParentSessionId?: string; /** * Identifier of the software producing the events (e.g., "copilot-agent") */ @@ -3710,6 +3718,48 @@ export interface PermissionRequestHook { */ toolName: string; } +/** + * Extension management permission request + */ +export interface PermissionRequestExtensionManagement { + /** + * Name of the extension being managed + */ + extensionName?: string; + /** + * Permission kind discriminator + */ + kind: "extension-management"; + /** + * The extension management operation (scaffold, reload) + */ + operation: string; + /** + * Tool call ID that triggered this permission request + */ + toolCallId?: string; +} +/** + * Extension permission access request + */ +export interface PermissionRequestExtensionPermissionAccess { + /** + * Capabilities the extension is requesting + */ + capabilities: string[]; + /** + * Name of the extension requesting permission access + */ + extensionName: string; + /** + * Permission kind discriminator + */ + kind: "extension-permission-access"; + /** + * Tool call ID that triggered this permission request + */ + toolCallId?: string; +} /** * Shell command permission prompt */ @@ -3947,6 +3997,48 @@ export interface PermissionPromptRequestHook { */ toolName: string; } +/** + * Extension management permission prompt + */ +export interface PermissionPromptRequestExtensionManagement { + /** + * Name of the extension being managed + */ + extensionName?: string; + /** + * Prompt kind discriminator + */ + kind: "extension-management"; + /** + * The extension management operation (scaffold, reload) + */ + operation: string; + /** + * Tool call ID that triggered this permission request + */ + toolCallId?: string; +} +/** + * Extension permission access prompt + */ +export interface PermissionPromptRequestExtensionPermissionAccess { + /** + * Capabilities the extension is requesting + */ + capabilities: string[]; + /** + * Name of the extension requesting permission access + */ + extensionName: string; + /** + * Prompt kind discriminator + */ + kind: "extension-permission-access"; + /** + * Tool call ID that triggered this permission request + */ + toolCallId?: string; +} export interface PermissionCompletedEvent { /** * Sub-agent instance identifier. Absent for events from the root/main agent and session-level events. diff --git a/python/copilot/generated/rpc.py b/python/copilot/generated/rpc.py index b18e9c7c3..55f13db5f 100644 --- a/python/copilot/generated/rpc.py +++ b/python/copilot/generated/rpc.py @@ -884,18 +884,19 @@ class SessionMode(Enum): class ModelBilling: """Billing information""" - multiplier: float + multiplier: float | None = None """Billing cost multiplier relative to the base rate""" @staticmethod def from_dict(obj: Any) -> 'ModelBilling': assert isinstance(obj, dict) - multiplier = from_float(obj.get("multiplier")) + multiplier = from_union([from_float, from_none], obj.get("multiplier")) return ModelBilling(multiplier) def to_dict(self) -> dict: result: dict = {} - result["multiplier"] = to_float(self.multiplier) + if self.multiplier is not None: + result["multiplier"] = from_union([to_float, from_none], self.multiplier) return result @dataclass @@ -1097,6 +1098,8 @@ def to_dict(self) -> dict: class ApprovalKind(Enum): COMMANDS = "commands" CUSTOM_TOOL = "custom-tool" + EXTENSION_MANAGEMENT = "extension-management" + EXTENSION_PERMISSION_ACCESS = "extension-permission-access" MCP = "mcp" MCP_SAMPLING = "mcp-sampling" MEMORY = "memory" @@ -1120,6 +1123,12 @@ class PermissionDecisionApproveForLocationApprovalCommandsKind(Enum): class PermissionDecisionApproveForLocationApprovalCustomToolKind(Enum): CUSTOM_TOOL = "custom-tool" +class PermissionDecisionApproveForLocationApprovalExtensionManagementKind(Enum): + EXTENSION_MANAGEMENT = "extension-management" + +class PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind(Enum): + EXTENSION_PERMISSION_ACCESS = "extension-permission-access" + class PermissionDecisionApproveForLocationApprovalMCPKind(Enum): MCP = "mcp" @@ -2086,6 +2095,57 @@ def to_dict(self) -> dict: result["removed"] = from_bool(self.removed) return result +# Experimental: this type is part of an experimental API and may change or be removed. +@dataclass +class TasksSendMessageRequest: + id: str + """Agent task identifier""" + + message: str + """Message content to send to the agent""" + + from_agent_id: str | None = None + """Agent ID of the sender, if sent on behalf of another agent""" + + @staticmethod + def from_dict(obj: Any) -> 'TasksSendMessageRequest': + assert isinstance(obj, dict) + id = from_str(obj.get("id")) + message = from_str(obj.get("message")) + from_agent_id = from_union([from_str, from_none], obj.get("fromAgentId")) + return TasksSendMessageRequest(id, message, from_agent_id) + + def to_dict(self) -> dict: + result: dict = {} + result["id"] = from_str(self.id) + result["message"] = from_str(self.message) + if self.from_agent_id is not None: + result["fromAgentId"] = from_union([from_str, from_none], self.from_agent_id) + return result + +# Experimental: this type is part of an experimental API and may change or be removed. +@dataclass +class TasksSendMessageResult: + sent: bool + """Whether the message was successfully delivered or steered""" + + error: str | None = None + """Error message if delivery failed""" + + @staticmethod + def from_dict(obj: Any) -> 'TasksSendMessageResult': + assert isinstance(obj, dict) + sent = from_bool(obj.get("sent")) + error = from_union([from_str, from_none], obj.get("error")) + return TasksSendMessageResult(sent, error) + + def to_dict(self) -> dict: + result: dict = {} + result["sent"] = from_bool(self.sent) + if self.error is not None: + result["error"] = from_union([from_str, from_none], self.error) + return result + # Experimental: this type is part of an experimental API and may change or be removed. @dataclass class TasksStartAgentRequest: @@ -2438,11 +2498,6 @@ class HostType(Enum): ADO = "ado" GITHUB = "github" -class SessionSyncLevel(Enum): - LOCAL = "local" - REPO_AND_USER = "repo_and_user" - USER = "user" - @dataclass class WorkspacesListFilesResult: files: list[str] @@ -3295,6 +3350,8 @@ class PermissionDecisionApproveForIonApproval: command_identifiers: list[str] | None = None server_name: str | None = None tool_name: str | None = None + operation: str | None = None + extension_name: str | None = None @staticmethod def from_dict(obj: Any) -> 'PermissionDecisionApproveForIonApproval': @@ -3303,7 +3360,9 @@ def from_dict(obj: Any) -> 'PermissionDecisionApproveForIonApproval': command_identifiers = from_union([lambda x: from_list(from_str, x), from_none], obj.get("commandIdentifiers")) server_name = from_union([from_str, from_none], obj.get("serverName")) tool_name = from_union([from_none, from_str], obj.get("toolName")) - return PermissionDecisionApproveForIonApproval(kind, command_identifiers, server_name, tool_name) + operation = from_union([from_str, from_none], obj.get("operation")) + extension_name = from_union([from_str, from_none], obj.get("extensionName")) + return PermissionDecisionApproveForIonApproval(kind, command_identifiers, server_name, tool_name, operation, extension_name) def to_dict(self) -> dict: result: dict = {} @@ -3314,6 +3373,10 @@ def to_dict(self) -> dict: result["serverName"] = from_union([from_str, from_none], self.server_name) if self.tool_name is not None: result["toolName"] = from_union([from_none, from_str], self.tool_name) + if self.operation is not None: + result["operation"] = from_union([from_str, from_none], self.operation) + if self.extension_name is not None: + result["extensionName"] = from_union([from_str, from_none], self.extension_name) return result @dataclass @@ -3324,6 +3387,8 @@ class PermissionDecisionApproveForLocationApproval: command_identifiers: list[str] | None = None server_name: str | None = None tool_name: str | None = None + operation: str | None = None + extension_name: str | None = None @staticmethod def from_dict(obj: Any) -> 'PermissionDecisionApproveForLocationApproval': @@ -3332,7 +3397,9 @@ def from_dict(obj: Any) -> 'PermissionDecisionApproveForLocationApproval': command_identifiers = from_union([lambda x: from_list(from_str, x), from_none], obj.get("commandIdentifiers")) server_name = from_union([from_str, from_none], obj.get("serverName")) tool_name = from_union([from_none, from_str], obj.get("toolName")) - return PermissionDecisionApproveForLocationApproval(kind, command_identifiers, server_name, tool_name) + operation = from_union([from_str, from_none], obj.get("operation")) + extension_name = from_union([from_str, from_none], obj.get("extensionName")) + return PermissionDecisionApproveForLocationApproval(kind, command_identifiers, server_name, tool_name, operation, extension_name) def to_dict(self) -> dict: result: dict = {} @@ -3343,6 +3410,10 @@ def to_dict(self) -> dict: result["serverName"] = from_union([from_str, from_none], self.server_name) if self.tool_name is not None: result["toolName"] = from_union([from_none, from_str], self.tool_name) + if self.operation is not None: + result["operation"] = from_union([from_str, from_none], self.operation) + if self.extension_name is not None: + result["extensionName"] = from_union([from_str, from_none], self.extension_name) return result @dataclass @@ -3353,6 +3424,8 @@ class PermissionDecisionApproveForSessionApproval: command_identifiers: list[str] | None = None server_name: str | None = None tool_name: str | None = None + operation: str | None = None + extension_name: str | None = None @staticmethod def from_dict(obj: Any) -> 'PermissionDecisionApproveForSessionApproval': @@ -3361,7 +3434,9 @@ def from_dict(obj: Any) -> 'PermissionDecisionApproveForSessionApproval': command_identifiers = from_union([lambda x: from_list(from_str, x), from_none], obj.get("commandIdentifiers")) server_name = from_union([from_str, from_none], obj.get("serverName")) tool_name = from_union([from_none, from_str], obj.get("toolName")) - return PermissionDecisionApproveForSessionApproval(kind, command_identifiers, server_name, tool_name) + operation = from_union([from_str, from_none], obj.get("operation")) + extension_name = from_union([from_str, from_none], obj.get("extensionName")) + return PermissionDecisionApproveForSessionApproval(kind, command_identifiers, server_name, tool_name, operation, extension_name) def to_dict(self) -> dict: result: dict = {} @@ -3372,6 +3447,10 @@ def to_dict(self) -> dict: result["serverName"] = from_union([from_str, from_none], self.server_name) if self.tool_name is not None: result["toolName"] = from_union([from_none, from_str], self.tool_name) + if self.operation is not None: + result["operation"] = from_union([from_str, from_none], self.operation) + if self.extension_name is not None: + result["extensionName"] = from_union([from_str, from_none], self.extension_name) return result @dataclass @@ -3446,6 +3525,80 @@ def to_dict(self) -> dict: result["toolName"] = from_str(self.tool_name) return result +@dataclass +class PermissionDecisionApproveForLocationApprovalExtensionManagement: + kind: PermissionDecisionApproveForLocationApprovalExtensionManagementKind + operation: str | None = None + + @staticmethod + def from_dict(obj: Any) -> 'PermissionDecisionApproveForLocationApprovalExtensionManagement': + assert isinstance(obj, dict) + kind = PermissionDecisionApproveForLocationApprovalExtensionManagementKind(obj.get("kind")) + operation = from_union([from_str, from_none], obj.get("operation")) + return PermissionDecisionApproveForLocationApprovalExtensionManagement(kind, operation) + + def to_dict(self) -> dict: + result: dict = {} + result["kind"] = to_enum(PermissionDecisionApproveForLocationApprovalExtensionManagementKind, self.kind) + if self.operation is not None: + result["operation"] = from_union([from_str, from_none], self.operation) + return result + +@dataclass +class PermissionDecisionApproveForSessionApprovalExtensionManagement: + kind: PermissionDecisionApproveForLocationApprovalExtensionManagementKind + operation: str | None = None + + @staticmethod + def from_dict(obj: Any) -> 'PermissionDecisionApproveForSessionApprovalExtensionManagement': + assert isinstance(obj, dict) + kind = PermissionDecisionApproveForLocationApprovalExtensionManagementKind(obj.get("kind")) + operation = from_union([from_str, from_none], obj.get("operation")) + return PermissionDecisionApproveForSessionApprovalExtensionManagement(kind, operation) + + def to_dict(self) -> dict: + result: dict = {} + result["kind"] = to_enum(PermissionDecisionApproveForLocationApprovalExtensionManagementKind, self.kind) + if self.operation is not None: + result["operation"] = from_union([from_str, from_none], self.operation) + return result + +@dataclass +class PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess: + extension_name: str + kind: PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind + + @staticmethod + def from_dict(obj: Any) -> 'PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess': + assert isinstance(obj, dict) + extension_name = from_str(obj.get("extensionName")) + kind = PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind(obj.get("kind")) + return PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess(extension_name, kind) + + def to_dict(self) -> dict: + result: dict = {} + result["extensionName"] = from_str(self.extension_name) + result["kind"] = to_enum(PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind, self.kind) + return result + +@dataclass +class PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess: + extension_name: str + kind: PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind + + @staticmethod + def from_dict(obj: Any) -> 'PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess': + assert isinstance(obj, dict) + extension_name = from_str(obj.get("extensionName")) + kind = PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind(obj.get("kind")) + return PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess(extension_name, kind) + + def to_dict(self) -> dict: + result: dict = {} + result["extensionName"] = from_str(self.extension_name) + result["kind"] = to_enum(PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind, self.kind) + return result + @dataclass class PermissionDecisionApproveForLocationApprovalMCP: kind: PermissionDecisionApproveForLocationApprovalMCPKind @@ -4219,8 +4372,6 @@ class Workspace: name: str | None = None remote_steerable: bool | None = None repository: str | None = None - session_sync_level: SessionSyncLevel | None = None - summary: str | None = None summary_count: int | None = None updated_at: datetime | None = None user_named: bool | None = None @@ -4241,12 +4392,10 @@ def from_dict(obj: Any) -> 'Workspace': name = from_union([from_str, from_none], obj.get("name")) remote_steerable = from_union([from_bool, from_none], obj.get("remote_steerable")) repository = from_union([from_str, from_none], obj.get("repository")) - session_sync_level = from_union([SessionSyncLevel, from_none], obj.get("session_sync_level")) - summary = from_union([from_str, from_none], obj.get("summary")) summary_count = from_union([from_int, from_none], obj.get("summary_count")) updated_at = from_union([from_datetime, from_none], obj.get("updated_at")) user_named = from_union([from_bool, from_none], obj.get("user_named")) - return Workspace(id, branch, chronicle_sync_dismissed, created_at, cwd, git_root, host_type, mc_last_event_id, mc_session_id, mc_task_id, name, remote_steerable, repository, session_sync_level, summary, summary_count, updated_at, user_named) + return Workspace(id, branch, chronicle_sync_dismissed, created_at, cwd, git_root, host_type, mc_last_event_id, mc_session_id, mc_task_id, name, remote_steerable, repository, summary_count, updated_at, user_named) def to_dict(self) -> dict: result: dict = {} @@ -4275,10 +4424,6 @@ def to_dict(self) -> dict: result["remote_steerable"] = from_union([from_bool, from_none], self.remote_steerable) if self.repository is not None: result["repository"] = from_union([from_str, from_none], self.repository) - if self.session_sync_level is not None: - result["session_sync_level"] = from_union([lambda x: to_enum(SessionSyncLevel, x), from_none], self.session_sync_level) - if self.summary is not None: - result["summary"] = from_union([from_str, from_none], self.summary) if self.summary_count is not None: result["summary_count"] = from_union([from_int, from_none], self.summary_count) if self.updated_at is not None: @@ -5718,6 +5863,8 @@ class RPC: permission_decision_approve_for_location_approval: PermissionDecisionApproveForLocationApproval permission_decision_approve_for_location_approval_commands: PermissionDecisionApproveForLocationApprovalCommands permission_decision_approve_for_location_approval_custom_tool: PermissionDecisionApproveForLocationApprovalCustomTool + permission_decision_approve_for_location_approval_extension_management: PermissionDecisionApproveForLocationApprovalExtensionManagement + permission_decision_approve_for_location_approval_extension_permission_access: PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess permission_decision_approve_for_location_approval_mcp: PermissionDecisionApproveForLocationApprovalMCP permission_decision_approve_for_location_approval_mcp_sampling: PermissionDecisionApproveForLocationApprovalMCPSampling permission_decision_approve_for_location_approval_memory: PermissionDecisionApproveForLocationApprovalMemory @@ -5727,6 +5874,8 @@ class RPC: permission_decision_approve_for_session_approval: PermissionDecisionApproveForSessionApproval permission_decision_approve_for_session_approval_commands: PermissionDecisionApproveForSessionApprovalCommands permission_decision_approve_for_session_approval_custom_tool: PermissionDecisionApproveForSessionApprovalCustomTool + permission_decision_approve_for_session_approval_extension_management: PermissionDecisionApproveForSessionApprovalExtensionManagement + permission_decision_approve_for_session_approval_extension_permission_access: PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess permission_decision_approve_for_session_approval_mcp: PermissionDecisionApproveForSessionApprovalMCP permission_decision_approve_for_session_approval_mcp_sampling: PermissionDecisionApproveForSessionApprovalMCPSampling permission_decision_approve_for_session_approval_memory: PermissionDecisionApproveForSessionApprovalMemory @@ -5804,6 +5953,8 @@ class RPC: tasks_promote_to_background_result: TasksPromoteToBackgroundResult tasks_remove_request: TasksRemoveRequest tasks_remove_result: TasksRemoveResult + tasks_send_message_request: TasksSendMessageRequest + tasks_send_message_result: TasksSendMessageResult tasks_start_agent_request: TasksStartAgentRequest tasks_start_agent_result: TasksStartAgentResult tool: Tool @@ -5947,6 +6098,8 @@ def from_dict(obj: Any) -> 'RPC': permission_decision_approve_for_location_approval = PermissionDecisionApproveForLocationApproval.from_dict(obj.get("PermissionDecisionApproveForLocationApproval")) permission_decision_approve_for_location_approval_commands = PermissionDecisionApproveForLocationApprovalCommands.from_dict(obj.get("PermissionDecisionApproveForLocationApprovalCommands")) permission_decision_approve_for_location_approval_custom_tool = PermissionDecisionApproveForLocationApprovalCustomTool.from_dict(obj.get("PermissionDecisionApproveForLocationApprovalCustomTool")) + permission_decision_approve_for_location_approval_extension_management = PermissionDecisionApproveForLocationApprovalExtensionManagement.from_dict(obj.get("PermissionDecisionApproveForLocationApprovalExtensionManagement")) + permission_decision_approve_for_location_approval_extension_permission_access = PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess.from_dict(obj.get("PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess")) permission_decision_approve_for_location_approval_mcp = PermissionDecisionApproveForLocationApprovalMCP.from_dict(obj.get("PermissionDecisionApproveForLocationApprovalMcp")) permission_decision_approve_for_location_approval_mcp_sampling = PermissionDecisionApproveForLocationApprovalMCPSampling.from_dict(obj.get("PermissionDecisionApproveForLocationApprovalMcpSampling")) permission_decision_approve_for_location_approval_memory = PermissionDecisionApproveForLocationApprovalMemory.from_dict(obj.get("PermissionDecisionApproveForLocationApprovalMemory")) @@ -5956,6 +6109,8 @@ def from_dict(obj: Any) -> 'RPC': permission_decision_approve_for_session_approval = PermissionDecisionApproveForSessionApproval.from_dict(obj.get("PermissionDecisionApproveForSessionApproval")) permission_decision_approve_for_session_approval_commands = PermissionDecisionApproveForSessionApprovalCommands.from_dict(obj.get("PermissionDecisionApproveForSessionApprovalCommands")) permission_decision_approve_for_session_approval_custom_tool = PermissionDecisionApproveForSessionApprovalCustomTool.from_dict(obj.get("PermissionDecisionApproveForSessionApprovalCustomTool")) + permission_decision_approve_for_session_approval_extension_management = PermissionDecisionApproveForSessionApprovalExtensionManagement.from_dict(obj.get("PermissionDecisionApproveForSessionApprovalExtensionManagement")) + permission_decision_approve_for_session_approval_extension_permission_access = PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess.from_dict(obj.get("PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess")) permission_decision_approve_for_session_approval_mcp = PermissionDecisionApproveForSessionApprovalMCP.from_dict(obj.get("PermissionDecisionApproveForSessionApprovalMcp")) permission_decision_approve_for_session_approval_mcp_sampling = PermissionDecisionApproveForSessionApprovalMCPSampling.from_dict(obj.get("PermissionDecisionApproveForSessionApprovalMcpSampling")) permission_decision_approve_for_session_approval_memory = PermissionDecisionApproveForSessionApprovalMemory.from_dict(obj.get("PermissionDecisionApproveForSessionApprovalMemory")) @@ -6033,6 +6188,8 @@ def from_dict(obj: Any) -> 'RPC': tasks_promote_to_background_result = TasksPromoteToBackgroundResult.from_dict(obj.get("TasksPromoteToBackgroundResult")) tasks_remove_request = TasksRemoveRequest.from_dict(obj.get("TasksRemoveRequest")) tasks_remove_result = TasksRemoveResult.from_dict(obj.get("TasksRemoveResult")) + tasks_send_message_request = TasksSendMessageRequest.from_dict(obj.get("TasksSendMessageRequest")) + tasks_send_message_result = TasksSendMessageResult.from_dict(obj.get("TasksSendMessageResult")) tasks_start_agent_request = TasksStartAgentRequest.from_dict(obj.get("TasksStartAgentRequest")) tasks_start_agent_result = TasksStartAgentResult.from_dict(obj.get("TasksStartAgentResult")) tool = Tool.from_dict(obj.get("Tool")) @@ -6072,7 +6229,7 @@ def from_dict(obj: Any) -> 'RPC': workspaces_list_files_result = WorkspacesListFilesResult.from_dict(obj.get("WorkspacesListFilesResult")) workspaces_read_file_request = WorkspacesReadFileRequest.from_dict(obj.get("WorkspacesReadFileRequest")) workspaces_read_file_result = WorkspacesReadFileResult.from_dict(obj.get("WorkspacesReadFileResult")) - return RPC(account_get_quota_request, account_get_quota_result, account_quota_snapshot, agent_get_current_result, agent_info, agent_list, agent_reload_result, agent_select_request, agent_select_result, auth_info_type, commands_handle_pending_command_request, commands_handle_pending_command_result, connect_request, connect_result, current_model, discovered_mcp_server, discovered_mcp_server_source, discovered_mcp_server_type, embedded_blob_resource_contents, embedded_text_resource_contents, extension, 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_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_terminal, external_tool_text_result_for_llm_content_text, filter_mapping, filter_mapping_string, filter_mapping_value, fleet_start_request, fleet_start_result, handle_pending_tool_call_request, handle_pending_tool_call_result, history_compact_context_window, history_compact_result, history_truncate_request, history_truncate_result, instructions_get_sources_result, instructions_sources, instructions_sources_location, instructions_sources_type, log_request, log_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_disable_request, mcp_discover_request, mcp_discover_result, mcp_enable_request, mcp_oauth_login_request, mcp_oauth_login_result, mcp_server, mcp_server_config, mcp_server_config_http, mcp_server_config_http_oauth_grant_type, mcp_server_config_http_type, mcp_server_config_local, mcp_server_config_local_type, mcp_server_list, mcp_server_source, mcp_server_status, model, model_billing, 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_policy, models_list_request, model_switch_to_request, model_switch_to_result, mode_set_request, name_get_result, name_set_request, permission_decision, 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_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_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_reject, permission_decision_request, permission_decision_user_not_available, permission_request_result, permissions_reset_session_approvals_request, permissions_reset_session_approvals_result, permissions_set_approve_all_request, permissions_set_approve_all_result, ping_request, ping_result, plan_read_result, plan_update_request, plugin, plugin_list, remote_enable_result, server_skill, server_skill_list, session_auth_status, 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_conventions, session_fs_set_provider_request, session_fs_set_provider_result, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_log_level, session_mode, sessions_fork_request, sessions_fork_result, shell_exec_request, shell_exec_result, shell_kill_request, shell_kill_result, shell_kill_signal, skill, skill_list, skills_config_set_disabled_skills_request, skills_disable_request, skills_discover_request, skills_enable_request, task_agent_info, task_agent_info_execution_mode, task_agent_info_status, task_info, task_list, tasks_cancel_request, tasks_cancel_result, task_shell_info, task_shell_info_attachment_mode, task_shell_info_execution_mode, task_shell_info_status, tasks_promote_to_background_request, tasks_promote_to_background_result, tasks_remove_request, tasks_remove_result, tasks_start_agent_request, tasks_start_agent_result, tool, tool_list, tools_list_request, 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_handle_pending_elicitation_request, usage_get_metrics_result, usage_metrics_code_changes, usage_metrics_model_metric, usage_metrics_model_metric_requests, usage_metrics_model_metric_token_detail, usage_metrics_model_metric_usage, usage_metrics_token_detail, workspaces_create_file_request, workspaces_get_workspace_result, workspaces_list_files_result, workspaces_read_file_request, workspaces_read_file_result) + return RPC(account_get_quota_request, account_get_quota_result, account_quota_snapshot, agent_get_current_result, agent_info, agent_list, agent_reload_result, agent_select_request, agent_select_result, auth_info_type, commands_handle_pending_command_request, commands_handle_pending_command_result, connect_request, connect_result, current_model, discovered_mcp_server, discovered_mcp_server_source, discovered_mcp_server_type, embedded_blob_resource_contents, embedded_text_resource_contents, extension, 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_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_terminal, external_tool_text_result_for_llm_content_text, filter_mapping, filter_mapping_string, filter_mapping_value, fleet_start_request, fleet_start_result, handle_pending_tool_call_request, handle_pending_tool_call_result, history_compact_context_window, history_compact_result, history_truncate_request, history_truncate_result, instructions_get_sources_result, instructions_sources, instructions_sources_location, instructions_sources_type, log_request, log_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_disable_request, mcp_discover_request, mcp_discover_result, mcp_enable_request, mcp_oauth_login_request, mcp_oauth_login_result, mcp_server, mcp_server_config, mcp_server_config_http, mcp_server_config_http_oauth_grant_type, mcp_server_config_http_type, mcp_server_config_local, mcp_server_config_local_type, mcp_server_list, mcp_server_source, mcp_server_status, model, model_billing, 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_policy, models_list_request, model_switch_to_request, model_switch_to_result, mode_set_request, name_get_result, name_set_request, permission_decision, permission_decision_approve_for_location, permission_decision_approve_for_location_approval, permission_decision_approve_for_location_approval_commands, permission_decision_approve_for_location_approval_custom_tool, permission_decision_approve_for_location_approval_extension_management, permission_decision_approve_for_location_approval_extension_permission_access, permission_decision_approve_for_location_approval_mcp, permission_decision_approve_for_location_approval_mcp_sampling, permission_decision_approve_for_location_approval_memory, permission_decision_approve_for_location_approval_read, permission_decision_approve_for_location_approval_write, permission_decision_approve_for_session, permission_decision_approve_for_session_approval, permission_decision_approve_for_session_approval_commands, permission_decision_approve_for_session_approval_custom_tool, permission_decision_approve_for_session_approval_extension_management, permission_decision_approve_for_session_approval_extension_permission_access, permission_decision_approve_for_session_approval_mcp, permission_decision_approve_for_session_approval_mcp_sampling, permission_decision_approve_for_session_approval_memory, permission_decision_approve_for_session_approval_read, permission_decision_approve_for_session_approval_write, permission_decision_approve_once, permission_decision_approve_permanently, permission_decision_reject, permission_decision_request, permission_decision_user_not_available, permission_request_result, permissions_reset_session_approvals_request, permissions_reset_session_approvals_result, permissions_set_approve_all_request, permissions_set_approve_all_result, ping_request, ping_result, plan_read_result, plan_update_request, plugin, plugin_list, remote_enable_result, server_skill, server_skill_list, session_auth_status, 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_conventions, session_fs_set_provider_request, session_fs_set_provider_result, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_log_level, session_mode, sessions_fork_request, sessions_fork_result, shell_exec_request, shell_exec_result, shell_kill_request, shell_kill_result, shell_kill_signal, skill, skill_list, skills_config_set_disabled_skills_request, skills_disable_request, skills_discover_request, skills_enable_request, task_agent_info, task_agent_info_execution_mode, task_agent_info_status, task_info, task_list, tasks_cancel_request, tasks_cancel_result, task_shell_info, task_shell_info_attachment_mode, task_shell_info_execution_mode, task_shell_info_status, tasks_promote_to_background_request, tasks_promote_to_background_result, tasks_remove_request, tasks_remove_result, tasks_send_message_request, tasks_send_message_result, tasks_start_agent_request, tasks_start_agent_result, tool, tool_list, tools_list_request, 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_handle_pending_elicitation_request, usage_get_metrics_result, usage_metrics_code_changes, usage_metrics_model_metric, usage_metrics_model_metric_requests, usage_metrics_model_metric_token_detail, usage_metrics_model_metric_usage, usage_metrics_token_detail, workspaces_create_file_request, workspaces_get_workspace_result, workspaces_list_files_result, workspaces_read_file_request, workspaces_read_file_result) def to_dict(self) -> dict: result: dict = {} @@ -6176,6 +6333,8 @@ def to_dict(self) -> dict: result["PermissionDecisionApproveForLocationApproval"] = to_class(PermissionDecisionApproveForLocationApproval, self.permission_decision_approve_for_location_approval) result["PermissionDecisionApproveForLocationApprovalCommands"] = to_class(PermissionDecisionApproveForLocationApprovalCommands, self.permission_decision_approve_for_location_approval_commands) result["PermissionDecisionApproveForLocationApprovalCustomTool"] = to_class(PermissionDecisionApproveForLocationApprovalCustomTool, self.permission_decision_approve_for_location_approval_custom_tool) + result["PermissionDecisionApproveForLocationApprovalExtensionManagement"] = to_class(PermissionDecisionApproveForLocationApprovalExtensionManagement, self.permission_decision_approve_for_location_approval_extension_management) + result["PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess"] = to_class(PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess, self.permission_decision_approve_for_location_approval_extension_permission_access) result["PermissionDecisionApproveForLocationApprovalMcp"] = to_class(PermissionDecisionApproveForLocationApprovalMCP, self.permission_decision_approve_for_location_approval_mcp) result["PermissionDecisionApproveForLocationApprovalMcpSampling"] = to_class(PermissionDecisionApproveForLocationApprovalMCPSampling, self.permission_decision_approve_for_location_approval_mcp_sampling) result["PermissionDecisionApproveForLocationApprovalMemory"] = to_class(PermissionDecisionApproveForLocationApprovalMemory, self.permission_decision_approve_for_location_approval_memory) @@ -6185,6 +6344,8 @@ def to_dict(self) -> dict: result["PermissionDecisionApproveForSessionApproval"] = to_class(PermissionDecisionApproveForSessionApproval, self.permission_decision_approve_for_session_approval) result["PermissionDecisionApproveForSessionApprovalCommands"] = to_class(PermissionDecisionApproveForSessionApprovalCommands, self.permission_decision_approve_for_session_approval_commands) result["PermissionDecisionApproveForSessionApprovalCustomTool"] = to_class(PermissionDecisionApproveForSessionApprovalCustomTool, self.permission_decision_approve_for_session_approval_custom_tool) + result["PermissionDecisionApproveForSessionApprovalExtensionManagement"] = to_class(PermissionDecisionApproveForSessionApprovalExtensionManagement, self.permission_decision_approve_for_session_approval_extension_management) + result["PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess"] = to_class(PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess, self.permission_decision_approve_for_session_approval_extension_permission_access) result["PermissionDecisionApproveForSessionApprovalMcp"] = to_class(PermissionDecisionApproveForSessionApprovalMCP, self.permission_decision_approve_for_session_approval_mcp) result["PermissionDecisionApproveForSessionApprovalMcpSampling"] = to_class(PermissionDecisionApproveForSessionApprovalMCPSampling, self.permission_decision_approve_for_session_approval_mcp_sampling) result["PermissionDecisionApproveForSessionApprovalMemory"] = to_class(PermissionDecisionApproveForSessionApprovalMemory, self.permission_decision_approve_for_session_approval_memory) @@ -6262,6 +6423,8 @@ def to_dict(self) -> dict: result["TasksPromoteToBackgroundResult"] = to_class(TasksPromoteToBackgroundResult, self.tasks_promote_to_background_result) result["TasksRemoveRequest"] = to_class(TasksRemoveRequest, self.tasks_remove_request) result["TasksRemoveResult"] = to_class(TasksRemoveResult, self.tasks_remove_result) + result["TasksSendMessageRequest"] = to_class(TasksSendMessageRequest, self.tasks_send_message_request) + result["TasksSendMessageResult"] = to_class(TasksSendMessageResult, self.tasks_send_message_result) result["TasksStartAgentRequest"] = to_class(TasksStartAgentRequest, self.tasks_start_agent_request) result["TasksStartAgentResult"] = to_class(TasksStartAgentResult, self.tasks_start_agent_result) result["Tool"] = to_class(Tool, self.tool) @@ -6633,6 +6796,11 @@ async def remove(self, params: TasksRemoveRequest, *, timeout: float | None = No params_dict["sessionId"] = self._session_id return TasksRemoveResult.from_dict(await self._client.request("session.tasks.remove", params_dict, **_timeout_kwargs(timeout))) + async def send_message(self, params: TasksSendMessageRequest, *, timeout: float | None = None) -> TasksSendMessageResult: + 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 TasksSendMessageResult.from_dict(await self._client.request("session.tasks.sendMessage", params_dict, **_timeout_kwargs(timeout))) + # Experimental: this API group is experimental and may change or be removed. class SkillsApi: diff --git a/python/copilot/generated/session_events.py b/python/copilot/generated/session_events.py index c4dbb8158..b55bd921a 100644 --- a/python/copilot/generated/session_events.py +++ b/python/copilot/generated/session_events.py @@ -1747,16 +1747,19 @@ class PermissionPromptRequest: action: PermissionPromptRequestMemoryAction | None = None args: Any | None = None can_offer_session_approval: bool | None = None + capabilities: list[str] | None = None citations: str | None = None command_identifiers: list[str] | None = None diff: str | None = None direction: PermissionPromptRequestMemoryDirection | None = None + extension_name: str | None = None fact: str | None = None file_name: str | None = None full_command_text: str | None = None hook_message: str | None = None intention: str | None = None new_file_contents: str | None = None + operation: str | None = None path: str | None = None paths: list[str] | None = None reason: str | None = None @@ -1778,16 +1781,19 @@ def from_dict(obj: Any) -> "PermissionPromptRequest": action = from_union([from_none, lambda x: parse_enum(PermissionPromptRequestMemoryAction, x)], obj.get("action", "store")) args = from_union([from_none, lambda x: x], obj.get("args")) can_offer_session_approval = from_union([from_none, from_bool], obj.get("canOfferSessionApproval")) + capabilities = from_union([from_none, lambda x: from_list(from_str, x)], obj.get("capabilities")) citations = from_union([from_none, from_str], obj.get("citations")) command_identifiers = from_union([from_none, lambda x: from_list(from_str, x)], obj.get("commandIdentifiers")) diff = from_union([from_none, from_str], obj.get("diff")) direction = from_union([from_none, lambda x: parse_enum(PermissionPromptRequestMemoryDirection, x)], obj.get("direction")) + extension_name = from_union([from_none, from_str], obj.get("extensionName")) fact = from_union([from_none, from_str], obj.get("fact")) file_name = from_union([from_none, from_str], obj.get("fileName")) full_command_text = from_union([from_none, from_str], obj.get("fullCommandText")) hook_message = from_union([from_none, from_str], obj.get("hookMessage")) intention = from_union([from_none, from_str], obj.get("intention")) new_file_contents = from_union([from_none, from_str], obj.get("newFileContents")) + operation = from_union([from_none, from_str], obj.get("operation")) path = from_union([from_none, from_str], obj.get("path")) paths = from_union([from_none, lambda x: from_list(from_str, x)], obj.get("paths")) reason = from_union([from_none, from_str], obj.get("reason")) @@ -1806,16 +1812,19 @@ def from_dict(obj: Any) -> "PermissionPromptRequest": action=action, args=args, can_offer_session_approval=can_offer_session_approval, + capabilities=capabilities, citations=citations, command_identifiers=command_identifiers, diff=diff, direction=direction, + extension_name=extension_name, fact=fact, file_name=file_name, full_command_text=full_command_text, hook_message=hook_message, intention=intention, new_file_contents=new_file_contents, + operation=operation, path=path, paths=paths, reason=reason, @@ -1841,6 +1850,8 @@ def to_dict(self) -> dict: result["args"] = from_union([from_none, lambda x: x], self.args) if self.can_offer_session_approval is not None: result["canOfferSessionApproval"] = from_union([from_none, from_bool], self.can_offer_session_approval) + if self.capabilities is not None: + result["capabilities"] = from_union([from_none, lambda x: from_list(from_str, x)], self.capabilities) if self.citations is not None: result["citations"] = from_union([from_none, from_str], self.citations) if self.command_identifiers is not None: @@ -1849,6 +1860,8 @@ def to_dict(self) -> dict: result["diff"] = from_union([from_none, from_str], self.diff) if self.direction is not None: result["direction"] = from_union([from_none, lambda x: to_enum(PermissionPromptRequestMemoryDirection, x)], self.direction) + if self.extension_name is not None: + result["extensionName"] = from_union([from_none, from_str], self.extension_name) if self.fact is not None: result["fact"] = from_union([from_none, from_str], self.fact) if self.file_name is not None: @@ -1861,6 +1874,8 @@ def to_dict(self) -> dict: result["intention"] = from_union([from_none, from_str], self.intention) if self.new_file_contents is not None: result["newFileContents"] = from_union([from_none, from_str], self.new_file_contents) + if self.operation is not None: + result["operation"] = from_union([from_none, from_str], self.operation) if self.path is not None: result["path"] = from_union([from_none, from_str], self.path) if self.paths is not None: @@ -1895,10 +1910,12 @@ class PermissionRequest: action: PermissionRequestMemoryAction | None = None args: Any = None can_offer_session_approval: bool | None = None + capabilities: list[str] | None = None citations: str | None = None commands: list[PermissionRequestShellCommand] | None = None diff: str | None = None direction: PermissionRequestMemoryDirection | None = None + extension_name: str | None = None fact: str | None = None file_name: str | None = None full_command_text: str | None = None @@ -1906,6 +1923,7 @@ class PermissionRequest: hook_message: str | None = None intention: str | None = None new_file_contents: str | None = None + operation: str | None = None path: str | None = None possible_paths: list[str] | None = None possible_urls: list[PermissionRequestShellPossibleUrl] | None = None @@ -1928,10 +1946,12 @@ def from_dict(obj: Any) -> "PermissionRequest": action = from_union([from_none, lambda x: parse_enum(PermissionRequestMemoryAction, x)], obj.get("action", "store")) args = obj.get("args") can_offer_session_approval = from_union([from_none, from_bool], obj.get("canOfferSessionApproval")) + capabilities = from_union([from_none, lambda x: from_list(from_str, x)], obj.get("capabilities")) citations = from_union([from_none, from_str], obj.get("citations")) commands = from_union([from_none, lambda x: from_list(PermissionRequestShellCommand.from_dict, x)], obj.get("commands")) diff = from_union([from_none, from_str], obj.get("diff")) direction = from_union([from_none, lambda x: parse_enum(PermissionRequestMemoryDirection, x)], obj.get("direction")) + extension_name = from_union([from_none, from_str], obj.get("extensionName")) fact = from_union([from_none, from_str], obj.get("fact")) file_name = from_union([from_none, from_str], obj.get("fileName")) full_command_text = from_union([from_none, from_str], obj.get("fullCommandText")) @@ -1939,6 +1959,7 @@ def from_dict(obj: Any) -> "PermissionRequest": hook_message = from_union([from_none, from_str], obj.get("hookMessage")) intention = from_union([from_none, from_str], obj.get("intention")) new_file_contents = from_union([from_none, from_str], obj.get("newFileContents")) + operation = from_union([from_none, from_str], obj.get("operation")) path = from_union([from_none, from_str], obj.get("path")) possible_paths = from_union([from_none, lambda x: from_list(from_str, x)], obj.get("possiblePaths")) possible_urls = from_union([from_none, lambda x: from_list(PermissionRequestShellPossibleUrl.from_dict, x)], obj.get("possibleUrls")) @@ -1958,10 +1979,12 @@ def from_dict(obj: Any) -> "PermissionRequest": action=action, args=args, can_offer_session_approval=can_offer_session_approval, + capabilities=capabilities, citations=citations, commands=commands, diff=diff, direction=direction, + extension_name=extension_name, fact=fact, file_name=file_name, full_command_text=full_command_text, @@ -1969,6 +1992,7 @@ def from_dict(obj: Any) -> "PermissionRequest": hook_message=hook_message, intention=intention, new_file_contents=new_file_contents, + operation=operation, path=path, possible_paths=possible_paths, possible_urls=possible_urls, @@ -1994,6 +2018,8 @@ def to_dict(self) -> dict: result["args"] = self.args if self.can_offer_session_approval is not None: result["canOfferSessionApproval"] = from_union([from_none, from_bool], self.can_offer_session_approval) + if self.capabilities is not None: + result["capabilities"] = from_union([from_none, lambda x: from_list(from_str, x)], self.capabilities) if self.citations is not None: result["citations"] = from_union([from_none, from_str], self.citations) if self.commands is not None: @@ -2002,6 +2028,8 @@ def to_dict(self) -> dict: result["diff"] = from_union([from_none, from_str], self.diff) if self.direction is not None: result["direction"] = from_union([from_none, lambda x: to_enum(PermissionRequestMemoryDirection, x)], self.direction) + if self.extension_name is not None: + result["extensionName"] = from_union([from_none, from_str], self.extension_name) if self.fact is not None: result["fact"] = from_union([from_none, from_str], self.fact) if self.file_name is not None: @@ -2016,6 +2044,8 @@ def to_dict(self) -> dict: result["intention"] = from_union([from_none, from_str], self.intention) if self.new_file_contents is not None: result["newFileContents"] = from_union([from_none, from_str], self.new_file_contents) + if self.operation is not None: + result["operation"] = from_union([from_none, from_str], self.operation) if self.path is not None: result["path"] = from_union([from_none, from_str], self.path) if self.possible_paths is not None: @@ -3008,6 +3038,7 @@ class SessionStartData: version: float already_in_use: bool | None = None context: WorkingDirectoryContext | None = None + detached_from_spawning_parent_session_id: str | None = None reasoning_effort: str | None = None remote_steerable: bool | None = None selected_model: str | None = None @@ -3022,6 +3053,7 @@ def from_dict(obj: Any) -> "SessionStartData": version = from_float(obj.get("version")) already_in_use = from_union([from_none, from_bool], obj.get("alreadyInUse")) context = from_union([from_none, WorkingDirectoryContext.from_dict], obj.get("context")) + detached_from_spawning_parent_session_id = from_union([from_none, from_str], obj.get("detachedFromSpawningParentSessionId")) reasoning_effort = from_union([from_none, from_str], obj.get("reasoningEffort")) remote_steerable = from_union([from_none, from_bool], obj.get("remoteSteerable")) selected_model = from_union([from_none, from_str], obj.get("selectedModel")) @@ -3033,6 +3065,7 @@ def from_dict(obj: Any) -> "SessionStartData": version=version, already_in_use=already_in_use, context=context, + detached_from_spawning_parent_session_id=detached_from_spawning_parent_session_id, reasoning_effort=reasoning_effort, remote_steerable=remote_steerable, selected_model=selected_model, @@ -3049,6 +3082,8 @@ def to_dict(self) -> dict: result["alreadyInUse"] = from_union([from_none, from_bool], self.already_in_use) if self.context is not None: result["context"] = from_union([from_none, lambda x: to_class(WorkingDirectoryContext, x)], self.context) + if self.detached_from_spawning_parent_session_id is not None: + result["detachedFromSpawningParentSessionId"] = from_union([from_none, from_str], self.detached_from_spawning_parent_session_id) if self.reasoning_effort is not None: result["reasoningEffort"] = from_union([from_none, from_str], self.reasoning_effort) if self.remote_steerable is not None: @@ -4674,6 +4709,8 @@ class PermissionPromptRequestKind(Enum): CUSTOM_TOOL = "custom-tool" PATH = "path" HOOK = "hook" + EXTENSION_MANAGEMENT = "extension-management" + EXTENSION_PERMISSION_ACCESS = "extension-permission-access" class PermissionPromptRequestMemoryAction(Enum): @@ -4705,6 +4742,8 @@ class PermissionRequestKind(Enum): MEMORY = "memory" CUSTOM_TOOL = "custom-tool" HOOK = "hook" + EXTENSION_MANAGEMENT = "extension-management" + EXTENSION_PERMISSION_ACCESS = "extension-permission-access" class PermissionRequestMemoryAction(Enum): diff --git a/rust/src/generated/api_types.rs b/rust/src/generated/api_types.rs index d0b7bf5b7..291692eec 100644 --- a/rust/src/generated/api_types.rs +++ b/rust/src/generated/api_types.rs @@ -96,6 +96,8 @@ pub mod rpc_methods { pub const SESSION_TASKS_CANCEL: &str = "session.tasks.cancel"; /// `session.tasks.remove` pub const SESSION_TASKS_REMOVE: &str = "session.tasks.remove"; + /// `session.tasks.sendMessage` + pub const SESSION_TASKS_SENDMESSAGE: &str = "session.tasks.sendMessage"; /// `session.skills.list` pub const SESSION_SKILLS_LIST: &str = "session.skills.list"; /// `session.skills.enable` @@ -823,7 +825,8 @@ pub struct McpServerList { #[serde(rename_all = "camelCase")] pub struct ModelBilling { /// Billing cost multiplier relative to the base rate - pub multiplier: f64, + #[serde(skip_serializing_if = "Option::is_none")] + pub multiplier: Option, } /// Vision-specific limits @@ -1081,6 +1084,21 @@ pub struct PermissionDecisionApproveForLocationApprovalCustomTool { pub tool_name: String, } +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PermissionDecisionApproveForLocationApprovalExtensionManagement { + pub kind: PermissionDecisionApproveForLocationApprovalExtensionManagementKind, + #[serde(skip_serializing_if = "Option::is_none")] + pub operation: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess { + pub extension_name: String, + pub kind: PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind, +} + #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct PermissionDecisionApproveForLocation { @@ -1139,6 +1157,21 @@ pub struct PermissionDecisionApproveForSessionApprovalCustomTool { pub tool_name: String, } +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PermissionDecisionApproveForSessionApprovalExtensionManagement { + pub kind: PermissionDecisionApproveForSessionApprovalExtensionManagementKind, + #[serde(skip_serializing_if = "Option::is_none")] + pub operation: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess { + pub extension_name: String, + pub kind: PermissionDecisionApproveForSessionApprovalExtensionPermissionAccessKind, +} + #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct PermissionDecisionApproveForSession { @@ -1775,6 +1808,28 @@ pub struct TasksRemoveResult { pub removed: bool, } +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TasksSendMessageRequest { + /// Agent ID of the sender, if sent on behalf of another agent + #[serde(skip_serializing_if = "Option::is_none")] + pub from_agent_id: Option, + /// Agent task identifier + pub id: String, + /// Message content to send to the agent + pub message: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TasksSendMessageResult { + /// Error message if delivery failed + #[serde(skip_serializing_if = "Option::is_none")] + pub error: Option, + /// Whether the message was successfully delivered or steered + pub sent: bool, +} + #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct TasksStartAgentRequest { @@ -2154,10 +2209,6 @@ pub struct WorkspacesGetWorkspaceResultWorkspace { pub remote_steerable: Option, #[serde(skip_serializing_if = "Option::is_none")] pub repository: Option, - #[serde(rename = "session_sync_level", skip_serializing_if = "Option::is_none")] - pub session_sync_level: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub summary: Option, #[serde(rename = "summary_count", skip_serializing_if = "Option::is_none")] pub summary_count: Option, #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")] @@ -2365,10 +2416,6 @@ pub struct SessionWorkspacesGetWorkspaceResultWorkspace { pub remote_steerable: Option, #[serde(skip_serializing_if = "Option::is_none")] pub repository: Option, - #[serde(rename = "session_sync_level", skip_serializing_if = "Option::is_none")] - pub session_sync_level: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub summary: Option, #[serde(rename = "summary_count", skip_serializing_if = "Option::is_none")] pub summary_count: Option, #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")] @@ -2524,6 +2571,16 @@ pub struct SessionTasksRemoveResult { pub removed: bool, } +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SessionTasksSendMessageResult { + /// Error message if delivery failed + #[serde(skip_serializing_if = "Option::is_none")] + pub error: Option, + /// Whether the message was successfully delivered or steered + pub sent: bool, +} + #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct SessionSkillsListParams { @@ -3108,6 +3165,18 @@ pub enum PermissionDecisionApproveForLocationApprovalCustomToolKind { CustomTool, } +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub enum PermissionDecisionApproveForLocationApprovalExtensionManagementKind { + #[serde(rename = "extension-management")] + ExtensionManagement, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub enum PermissionDecisionApproveForLocationApprovalExtensionPermissionAccessKind { + #[serde(rename = "extension-permission-access")] + ExtensionPermissionAccess, +} + /// The approval to persist for this location #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -3119,6 +3188,10 @@ pub enum PermissionDecisionApproveForLocationApproval { McpSampling(PermissionDecisionApproveForLocationApprovalMcpSampling), Memory(PermissionDecisionApproveForLocationApprovalMemory), CustomTool(PermissionDecisionApproveForLocationApprovalCustomTool), + ExtensionManagement(PermissionDecisionApproveForLocationApprovalExtensionManagement), + ExtensionPermissionAccess( + PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess, + ), } /// Approved and persisted for this project location @@ -3170,6 +3243,18 @@ pub enum PermissionDecisionApproveForSessionApprovalCustomToolKind { CustomTool, } +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub enum PermissionDecisionApproveForSessionApprovalExtensionManagementKind { + #[serde(rename = "extension-management")] + ExtensionManagement, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub enum PermissionDecisionApproveForSessionApprovalExtensionPermissionAccessKind { + #[serde(rename = "extension-permission-access")] + ExtensionPermissionAccess, +} + /// The approval to add as a session-scoped rule #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -3181,6 +3266,8 @@ pub enum PermissionDecisionApproveForSessionApproval { McpSampling(PermissionDecisionApproveForSessionApprovalMcpSampling), Memory(PermissionDecisionApproveForSessionApprovalMemory), CustomTool(PermissionDecisionApproveForSessionApprovalCustomTool), + ExtensionManagement(PermissionDecisionApproveForSessionApprovalExtensionManagement), + ExtensionPermissionAccess(PermissionDecisionApproveForSessionApprovalExtensionPermissionAccess), } /// Approved and remembered for the rest of the session @@ -3460,19 +3547,6 @@ pub enum WorkspacesGetWorkspaceResultWorkspaceHostType { Unknown, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] -pub enum WorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel { - #[serde(rename = "local")] - Local, - #[serde(rename = "user")] - User, - #[serde(rename = "repo_and_user")] - RepoAndUser, - /// Unknown variant for forward compatibility. - #[serde(other)] - Unknown, -} - #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum SessionWorkspacesGetWorkspaceResultWorkspaceHostType { #[serde(rename = "github")] @@ -3483,16 +3557,3 @@ pub enum SessionWorkspacesGetWorkspaceResultWorkspaceHostType { #[serde(other)] Unknown, } - -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] -pub enum SessionWorkspacesGetWorkspaceResultWorkspaceSessionSyncLevel { - #[serde(rename = "local")] - Local, - #[serde(rename = "user")] - User, - #[serde(rename = "repo_and_user")] - RepoAndUser, - /// Unknown variant for forward compatibility. - #[serde(other)] - Unknown, -} diff --git a/rust/src/generated/rpc.rs b/rust/src/generated/rpc.rs index eed4aea2a..ec958708c 100644 --- a/rust/src/generated/rpc.rs +++ b/rust/src/generated/rpc.rs @@ -1476,6 +1476,29 @@ impl<'a> SessionRpcTasks<'a> { .await?; Ok(serde_json::from_value(_value)?) } + + /// Wire method: `session.tasks.sendMessage`. + /// + ///
+ /// + /// **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 send_message( + &self, + params: TasksSendMessageRequest, + ) -> 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_TASKS_SENDMESSAGE, Some(wire_params)) + .await?; + Ok(serde_json::from_value(_value)?) + } } /// `session.tools.*` RPCs. diff --git a/rust/src/generated/session_events.rs b/rust/src/generated/session_events.rs index fdcf7a6b4..d27ac5a62 100644 --- a/rust/src/generated/session_events.rs +++ b/rust/src/generated/session_events.rs @@ -410,6 +410,9 @@ pub struct SessionStartData { pub context: Option, /// Version string of the Copilot application pub copilot_version: String, + /// When set, identifies a parent session whose context this session continues — e.g., a detached headless rem-agent run launched on the parent's interactive shutdown. Telemetry from this session is reported under the parent's session_id. + #[serde(skip_serializing_if = "Option::is_none")] + pub detached_from_spawning_parent_session_id: Option, /// Identifier of the software producing the events (e.g., "copilot-agent") pub producer: String, /// Reasoning effort level used for model calls, if applicable (e.g. "low", "medium", "high", "xhigh") @@ -1786,6 +1789,37 @@ pub struct PermissionRequestHook { pub tool_name: String, } +/// Extension management permission request +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PermissionRequestExtensionManagement { + /// Name of the extension being managed + #[serde(skip_serializing_if = "Option::is_none")] + pub extension_name: Option, + /// Permission kind discriminator + pub kind: PermissionRequestExtensionManagementKind, + /// The extension management operation (scaffold, reload) + pub operation: String, + /// Tool call ID that triggered this permission request + #[serde(skip_serializing_if = "Option::is_none")] + pub tool_call_id: Option, +} + +/// Extension permission access request +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PermissionRequestExtensionPermissionAccess { + /// Capabilities the extension is requesting + pub capabilities: Vec, + /// Name of the extension requesting permission access + pub extension_name: String, + /// Permission kind discriminator + pub kind: PermissionRequestExtensionPermissionAccessKind, + /// Tool call ID that triggered this permission request + #[serde(skip_serializing_if = "Option::is_none")] + pub tool_call_id: Option, +} + /// Shell command permission prompt #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] @@ -1960,6 +1994,37 @@ pub struct PermissionPromptRequestHook { pub tool_name: String, } +/// Extension management permission prompt +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PermissionPromptRequestExtensionManagement { + /// Name of the extension being managed + #[serde(skip_serializing_if = "Option::is_none")] + pub extension_name: Option, + /// Prompt kind discriminator + pub kind: PermissionPromptRequestExtensionManagementKind, + /// The extension management operation (scaffold, reload) + pub operation: String, + /// Tool call ID that triggered this permission request + #[serde(skip_serializing_if = "Option::is_none")] + pub tool_call_id: Option, +} + +/// Extension permission access prompt +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PermissionPromptRequestExtensionPermissionAccess { + /// Capabilities the extension is requesting + pub capabilities: Vec, + /// Name of the extension requesting permission access + pub extension_name: String, + /// Prompt kind discriminator + pub kind: PermissionPromptRequestExtensionPermissionAccessKind, + /// Tool call ID that triggered this permission request + #[serde(skip_serializing_if = "Option::is_none")] + pub tool_call_id: Option, +} + /// Permission request notification requiring client approval with request details #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] @@ -2766,6 +2831,20 @@ pub enum PermissionRequestHookKind { Hook, } +/// Permission kind discriminator +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub enum PermissionRequestExtensionManagementKind { + #[serde(rename = "extension-management")] + ExtensionManagement, +} + +/// Permission kind discriminator +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub enum PermissionRequestExtensionPermissionAccessKind { + #[serde(rename = "extension-permission-access")] + ExtensionPermissionAccess, +} + /// Details of the permission being requested #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -2778,6 +2857,8 @@ pub enum PermissionRequest { Memory(PermissionRequestMemory), CustomTool(PermissionRequestCustomTool), Hook(PermissionRequestHook), + ExtensionManagement(PermissionRequestExtensionManagement), + ExtensionPermissionAccess(PermissionRequestExtensionPermissionAccess), } /// Prompt kind discriminator @@ -2881,6 +2962,20 @@ pub enum PermissionPromptRequestHookKind { Hook, } +/// Prompt kind discriminator +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub enum PermissionPromptRequestExtensionManagementKind { + #[serde(rename = "extension-management")] + ExtensionManagement, +} + +/// Prompt kind discriminator +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub enum PermissionPromptRequestExtensionPermissionAccessKind { + #[serde(rename = "extension-permission-access")] + ExtensionPermissionAccess, +} + /// Derived user-facing permission prompt details for UI consumers #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -2894,6 +2989,8 @@ pub enum PermissionPromptRequest { CustomTool(PermissionPromptRequestCustomTool), Path(PermissionPromptRequestPath), Hook(PermissionPromptRequestHook), + ExtensionManagement(PermissionPromptRequestExtensionManagement), + ExtensionPermissionAccess(PermissionPromptRequestExtensionPermissionAccess), } /// The permission request was approved diff --git a/test/harness/package-lock.json b/test/harness/package-lock.json index d5f77fef7..5d29d3c17 100644 --- a/test/harness/package-lock.json +++ b/test/harness/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "@github/copilot": "^1.0.44-2", + "@github/copilot": "^1.0.44", "@modelcontextprotocol/sdk": "^1.26.0", "@types/node": "^25.3.3", "@types/node-forge": "^1.3.14", @@ -464,27 +464,27 @@ } }, "node_modules/@github/copilot": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.44-2.tgz", - "integrity": "sha512-MUIR4w+oXjbg1jwUS8B86eMd/bV2gVKZ61a/aEUE4gUrFFpGXO0tNk9OkfLSH5cmlhJY6lzMzb+kKQWoeAbbNQ==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.44.tgz", + "integrity": "sha512-wr/GmNOUaJK/giJK5abyB1oTpEowgFKLi+NJnlyAymKiK/GKCaRlJqiX23H2RetM8vD2hDYUFUFm9lTCooGy0g==", "dev": true, "license": "SEE LICENSE IN LICENSE.md", "bin": { "copilot": "npm-loader.js" }, "optionalDependencies": { - "@github/copilot-darwin-arm64": "1.0.44-2", - "@github/copilot-darwin-x64": "1.0.44-2", - "@github/copilot-linux-arm64": "1.0.44-2", - "@github/copilot-linux-x64": "1.0.44-2", - "@github/copilot-win32-arm64": "1.0.44-2", - "@github/copilot-win32-x64": "1.0.44-2" + "@github/copilot-darwin-arm64": "1.0.44", + "@github/copilot-darwin-x64": "1.0.44", + "@github/copilot-linux-arm64": "1.0.44", + "@github/copilot-linux-x64": "1.0.44", + "@github/copilot-win32-arm64": "1.0.44", + "@github/copilot-win32-x64": "1.0.44" } }, "node_modules/@github/copilot-darwin-arm64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.44-2.tgz", - "integrity": "sha512-6o/pvew0FZJG+8saG1K/L1pUIvpz4AWkZitiqH36tDfXdXKx/PUQ+zaFg/KPeHNnxtal5OdE/7iyrJwIqm2gPg==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.44.tgz", + "integrity": "sha512-9NqA5sT2spmNsehxhs51GhXRZIZga5nq+WcMl4LG2QrUPJRDwvHf1bDKqETJUBbYvBY8jONGuTKMRofkMI68YQ==", "cpu": [ "arm64" ], @@ -499,9 +499,9 @@ } }, "node_modules/@github/copilot-darwin-x64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.44-2.tgz", - "integrity": "sha512-OMNoLNFYUynB4wiplSh4gtD5zVlvfWMKc0jKQ0oItJLGO8GRL9X0ZB2ONB+7JpVvPidz0Yy4+jU0zWNXEjMM5g==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.44.tgz", + "integrity": "sha512-QPD8KtXx07SIKILGBl4JDhPyL2Qo0FMmaTYVxR6nkyHkHnFPsUZD6VWGR+T/KMLkcUXFM85Xc1ba9Y27s4nRrQ==", "cpu": [ "x64" ], @@ -516,9 +516,9 @@ } }, "node_modules/@github/copilot-linux-arm64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.44-2.tgz", - "integrity": "sha512-5WGRADU08hqBTWmQ6JVOYMximzsXGuOdFF4GFRQqfsCR8k4RE8fdPWQJa92BpqMgGWwEVPemq0wB3D4hDM5eWw==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.44.tgz", + "integrity": "sha512-Z8ScIUP433xS18f68NP9jM9zW320Xzpi2wf7Nig/VyfrwupBy25UTezydQMT0KQHLWTEleHOPcYnASY3HgJXnQ==", "cpu": [ "arm64" ], @@ -533,9 +533,9 @@ } }, "node_modules/@github/copilot-linux-x64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.44-2.tgz", - "integrity": "sha512-4ZnA2QxEwgrdCePdS5OjuksEGFpJrXgofuELANCpDSHwR3eTV7PynVyqhG6Et7ktN2KzHk7zf8kvtiWVCOxvFg==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.44.tgz", + "integrity": "sha512-KUl6lvJt0HNKaXSx0T0bIWJ3rvrGwgZYMlkDfqMbuMnZatEQJbjPwxmL/IDfp/c0DyKd7K+ajl17wHYcN/hJIQ==", "cpu": [ "x64" ], @@ -550,9 +550,9 @@ } }, "node_modules/@github/copilot-win32-arm64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.44-2.tgz", - "integrity": "sha512-klgSdBZblz9O8BRnTh9uk9uO/INQwVeTBagXuJO7MrZ7JCfBVJyFUYky2tKIjFxlwefyhrRZuniqYeOI9fQc+A==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.44.tgz", + "integrity": "sha512-JVJxZJwAc95ZfapgOXjNFwSqrWlvC3heo128L+CDkdZ6lwpD1dTGMHT/6rMMEeo3xjZmMm8tiynfwsHLDgTtvQ==", "cpu": [ "arm64" ], @@ -567,9 +567,9 @@ } }, "node_modules/@github/copilot-win32-x64": { - "version": "1.0.44-2", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.44-2.tgz", - "integrity": "sha512-ziq3abdbMCqtAqdiEWWf6cn0whlWss7rC9VMsO/Vx2gjSEVCeJkmIiRiQO45WikheyXyxEmCTAvOwZLQvs+I9g==", + "version": "1.0.44", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.44.tgz", + "integrity": "sha512-Yj3KQ/DqwS50PwRtyQITX2mWIVZeJeX+y0faVSMwUUzG1qxmMcme7wimhKOyc4LSV11DpgVB9MSiBw2xys7iww==", "cpu": [ "x64" ], diff --git a/test/harness/package.json b/test/harness/package.json index f4e117606..94a6f19e6 100644 --- a/test/harness/package.json +++ b/test/harness/package.json @@ -11,7 +11,7 @@ "test": "vitest run" }, "devDependencies": { - "@github/copilot": "^1.0.44-2", + "@github/copilot": "^1.0.44", "@modelcontextprotocol/sdk": "^1.26.0", "@types/node": "^25.3.3", "@types/node-forge": "^1.3.14",