From cc7e6f68417c8112cf1cb5eaf3a5c8c884126f19 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 01:52:17 +0000 Subject: [PATCH 1/3] Update @github/copilot to 1.0.52-1 - Updated nodejs and test harness dependencies - Re-ran code generators - Formatted generated code --- dotnet/src/Generated/Rpc.cs | 49 ++++++++++++++- dotnet/src/Generated/SessionEvents.cs | 38 ++++-------- go/rpc/zrpc.go | 42 +++++++++++++ go/rpc/zsession_events.go | 8 ++- nodejs/package-lock.json | 72 +++++++++++----------- nodejs/package.json | 2 +- nodejs/samples/package-lock.json | 2 +- nodejs/src/generated/rpc.ts | 63 +++++++++++++++++-- nodejs/src/generated/session-events.ts | 32 +++++++--- python/copilot/generated/rpc.py | 55 ++++++++++++++++- python/copilot/generated/session_events.py | 28 ++++++--- rust/src/generated/api_types.rs | 18 ++++++ rust/src/generated/rpc.rs | 38 ++++++++++++ rust/src/generated/session_events.rs | 12 +++- test/harness/package-lock.json | 72 +++++++++++----------- test/harness/package.json | 2 +- 16 files changed, 400 insertions(+), 133 deletions(-) diff --git a/dotnet/src/Generated/Rpc.cs b/dotnet/src/Generated/Rpc.cs index 61dc47805..09b16e0bf 100644 --- a/dotnet/src/Generated/Rpc.cs +++ b/dotnet/src/Generated/Rpc.cs @@ -318,6 +318,22 @@ internal sealed class AccountGetQuotaRequest public string? GitHubToken { get; set; } } +/// Confirmation that the secret values were registered. +public sealed class SecretsAddFilterValuesResult +{ + /// Whether the values were successfully registered. + [JsonPropertyName("ok")] + public bool Ok { get; set; } +} + +/// Secret values to add to the redaction filter. +internal sealed class SecretsAddFilterValuesRequest +{ + /// Raw secret values to register for redaction. + [JsonPropertyName("values")] + public IList Values { get => field ??= []; set; } +} + /// Schema for the `DiscoveredMcpServer` type. public sealed class DiscoveredMcpServer { @@ -1256,8 +1272,6 @@ public partial class SendAttachmentGithubReference : SendAttachment public required string Title { get; set; } /// URL to the referenced item on GitHub. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonPropertyName("url")] public required string Url { get; set; } } @@ -10169,6 +10183,12 @@ internal async Task ConnectAsync(string? token = null, Cancellati Interlocked.CompareExchange(ref field, new(_rpc), null) ?? field; + /// Secrets APIs. + public ServerSecretsApi Secrets => + field ?? + Interlocked.CompareExchange(ref field, new(_rpc), null) ?? + field; + /// Mcp APIs. public ServerMcpApi Mcp => field ?? @@ -10257,6 +10277,29 @@ public async Task GetQuotaAsync(string? gitHubToken = nul } } +/// Provides server-scoped Secrets APIs. +public sealed class ServerSecretsApi +{ + private readonly JsonRpc _rpc; + + internal ServerSecretsApi(JsonRpc rpc) + { + _rpc = rpc; + } + + /// Registers secret values for redaction in session logs and exports. The SDK calls this to inject dynamically generated secret values (e.g., OIDC tokens). + /// Raw secret values to register for redaction. + /// The to monitor for cancellation requests. The default is . + /// Confirmation that the secret values were registered. + public async Task AddFilterValuesAsync(IList values, CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(values); + + var request = new SecretsAddFilterValuesRequest { Values = values }; + return await CopilotClient.InvokeRpcAsync(_rpc, "secrets.addFilterValues", [request], cancellationToken); + } +} + /// Provides server-scoped Mcp APIs. public sealed class ServerMcpApi { @@ -13518,6 +13561,8 @@ public static void RegisterClientSessionApiHandlers(JsonRpc rpc, FuncOptional URL associated with this error that the user can open in a browser. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("url")] public string? Url { get; set; } @@ -1432,8 +1430,6 @@ public sealed partial class SessionInfoData public string? Tip { get; set; } /// Optional URL associated with this message that the user can open in a browser. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("url")] public string? Url { get; set; } @@ -1447,8 +1443,6 @@ public sealed partial class SessionWarningData public required string Message { get; set; } /// Optional URL associated with this warning that the user can open in a browser. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("url")] public string? Url { get; set; } @@ -1541,8 +1535,6 @@ public sealed partial class SessionHandoffData public required DateTimeOffset HandoffTime { get; set; } /// GitHub host URL for the source session (e.g., https://github.com or https://tenant.ghe.com). - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("host")] public string? Host { get; set; } @@ -1680,8 +1672,9 @@ public sealed partial class SessionShutdownData public double? TotalNanoAiu { get; set; } /// Total number of premium API requests used during the session. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("totalPremiumRequests")] - public required double TotalPremiumRequests { get; set; } + public double? TotalPremiumRequests { get; set; } } /// Working directory and git context at session start. @@ -2374,6 +2367,11 @@ public sealed partial class ToolExecutionCompleteData [JsonPropertyName("result")] public ToolExecutionCompleteResult? Result { get; set; } + /// Whether this tool execution ran inside a sandbox container. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [JsonPropertyName("sandboxed")] + public bool? Sandboxed { get; set; } + /// Whether the tool execution completed successfully. [JsonPropertyName("success")] public required bool Success { get; set; } @@ -2805,8 +2803,6 @@ public sealed partial class McpOauthRequiredData public required string ServerName { get; set; } /// URL of the MCP server that requires OAuth. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonPropertyName("serverUrl")] public required string ServerUrl { get; set; } @@ -3185,12 +3181,14 @@ public sealed partial class ShutdownCodeChanges public sealed partial class ShutdownModelMetricRequests { /// Cumulative cost multiplier for requests to this model. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("cost")] - public required double Cost { get; set; } + public double? Cost { get; set; } /// Total number of API requests made to this model. + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("count")] - public required long Count { get; set; } + public long? Count { get; set; } } /// Schema for the `ShutdownModelMetricTokenDetail` type. @@ -3476,8 +3474,6 @@ public sealed partial class UserMessageAttachmentGithubReference : UserMessageAt public required string Title { get; set; } /// URL to the referenced item on GitHub. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonPropertyName("url")] public required string Url { get; set; } } @@ -3786,8 +3782,6 @@ public sealed partial class ToolExecutionCompleteContentResourceLink : ToolExecu public string? Title { get; set; } /// URI identifying the resource. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonPropertyName("uri")] public required string Uri { get; set; } } @@ -3806,8 +3800,6 @@ public sealed partial class EmbeddedTextResourceContents public required string Text { get; set; } /// URI identifying the resource. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonPropertyName("uri")] public required string Uri { get; set; } } @@ -3827,8 +3819,6 @@ public sealed partial class EmbeddedBlobResourceContents public string? MimeType { get; set; } /// URI identifying the resource. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonPropertyName("uri")] public required string Uri { get; set; } } @@ -4173,8 +4163,6 @@ public sealed partial class PermissionRequestShellCommand public sealed partial class PermissionRequestShellPossibleUrl { /// URL that may be accessed by the command. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonPropertyName("url")] public required string Url { get; set; } } @@ -4336,8 +4324,6 @@ public sealed partial class PermissionRequestUrl : PermissionRequest public string? ToolCallId { get; set; } /// URL to be fetched. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonPropertyName("url")] public required string Url { get; set; } } @@ -4649,8 +4635,6 @@ public sealed partial class PermissionPromptRequestUrl : PermissionPromptRequest public string? ToolCallId { get; set; } /// URL to be fetched. - [Url] - [StringSyntax(StringSyntaxAttribute.Uri)] [JsonPropertyName("url")] public required string Url { get; set; } } diff --git a/go/rpc/zrpc.go b/go/rpc/zrpc.go index 1b9d9b849..eb9bbce2b 100644 --- a/go/rpc/zrpc.go +++ b/go/rpc/zrpc.go @@ -1108,6 +1108,8 @@ type InstalledPlugin struct { // Source for direct repo installs (when marketplace is empty) // Experimental: InstalledPluginSource is part of an experimental API and may change or be // removed. +// Experimental: InstalledPluginSource is part of an experimental API and may change or be +// removed. type InstalledPluginSource struct { InstalledPluginSourceGithub *InstalledPluginSourceGithub InstalledPluginSourceLocal *InstalledPluginSourceLocal @@ -1359,6 +1361,8 @@ type McpExecuteSamplingRequest struct { // construct/consume it per the MCP CreateMessageResult shape. // Experimental: McpExecuteSamplingResult is part of an experimental API and may change or // be removed. +// Experimental: McpExecuteSamplingResult is part of an experimental API and may change or +// be removed. type McpExecuteSamplingResult struct { } @@ -3215,6 +3219,18 @@ type ScheduleStopResult struct { Entry *ScheduleEntry `json:"entry,omitempty"` } +// Secret values to add to the redaction filter. +type SecretsAddFilterValuesRequest struct { + // Raw secret values to register for redaction + Values []string `json:"values"` +} + +// Confirmation that the secret values were registered. +type SecretsAddFilterValuesResult struct { + // Whether the values were successfully registered + Ok bool `json:"ok"` +} + // A user message attachment — a file, directory, code selection, blob, or GitHub reference // Experimental: SendAttachment is part of an experimental API and may change or be removed. type SendAttachment interface { @@ -3785,6 +3801,8 @@ type SessionInstalledPlugin struct { // Source descriptor for direct repo installs (when marketplace is empty) // Experimental: SessionInstalledPluginSource is part of an experimental API and may change // or be removed. +// Experimental: SessionInstalledPluginSource is part of an experimental API and may change +// or be removed. type SessionInstalledPluginSource struct { SessionInstalledPluginSourceGithub *SessionInstalledPluginSourceGithub SessionInstalledPluginSourceLocal *SessionInstalledPluginSourceLocal @@ -7044,6 +7062,28 @@ func (a *ServerModelsApi) List(ctx context.Context, params *ModelsListRequest) ( return &result, nil } +type ServerSecretsApi serverApi + +// AddFilterValues registers secret values for redaction in session logs and exports. The +// SDK calls this to inject dynamically generated secret values (e.g., OIDC tokens). +// +// RPC method: secrets.addFilterValues. +// +// Parameters: Secret values to add to the redaction filter. +// +// Returns: Confirmation that the secret values were registered. +func (a *ServerSecretsApi) AddFilterValues(ctx context.Context, params *SecretsAddFilterValuesRequest) (*SecretsAddFilterValuesResult, error) { + raw, err := a.client.Request("secrets.addFilterValues", params) + if err != nil { + return nil, err + } + var result SecretsAddFilterValuesResult + if err := json.Unmarshal(raw, &result); err != nil { + return nil, err + } + return &result, nil +} + type ServerSessionFsApi serverApi // SetProvider registers an SDK client as the session filesystem provider. @@ -7533,6 +7573,7 @@ type ServerRpc struct { Account *ServerAccountApi Mcp *ServerMcpApi Models *ServerModelsApi + Secrets *ServerSecretsApi SessionFs *ServerSessionFsApi Sessions *ServerSessionsApi Skills *ServerSkillsApi @@ -7565,6 +7606,7 @@ func NewServerRpc(client *jsonrpc2.Client) *ServerRpc { r.Account = (*ServerAccountApi)(&r.common) r.Mcp = (*ServerMcpApi)(&r.common) r.Models = (*ServerModelsApi)(&r.common) + r.Secrets = (*ServerSecretsApi)(&r.common) r.SessionFs = (*ServerSessionFsApi)(&r.common) r.Sessions = (*ServerSessionsApi)(&r.common) r.Skills = (*ServerSkillsApi)(&r.common) diff --git a/go/rpc/zsession_events.go b/go/rpc/zsession_events.go index 77ea12e4e..fc3a8de60 100644 --- a/go/rpc/zsession_events.go +++ b/go/rpc/zsession_events.go @@ -1054,7 +1054,7 @@ type SessionShutdownData struct { // Session-wide accumulated nano-AI units cost TotalNanoAiu *float64 `json:"totalNanoAiu,omitempty"` // Total number of premium API requests used during the session - TotalPremiumRequests float64 `json:"totalPremiumRequests"` + TotalPremiumRequests *float64 `json:"totalPremiumRequests,omitempty"` } func (*SessionShutdownData) sessionEventData() {} @@ -1269,6 +1269,8 @@ type ToolExecutionCompleteData struct { ParentToolCallID *string `json:"parentToolCallId,omitempty"` // Tool execution result on success Result *ToolExecutionCompleteResult `json:"result,omitempty"` + // Whether this tool execution ran inside a sandbox container + Sandboxed *bool `json:"sandboxed,omitempty"` // Whether the tool execution completed successfully Success bool `json:"success"` // Unique identifier for the completed tool call @@ -2235,9 +2237,9 @@ type ShutdownModelMetric struct { // Request count and cost metrics type ShutdownModelMetricRequests struct { // Cumulative cost multiplier for requests to this model - Cost float64 `json:"cost"` + Cost *float64 `json:"cost,omitempty"` // Total number of API requests made to this model - Count int64 `json:"count"` + Count *int64 `json:"count,omitempty"` } // Schema for the `ShutdownModelMetricTokenDetail` type. diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json index eae50ce00..e7ea0d419 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.52-0", + "@github/copilot": "^1.0.52-1", "vscode-jsonrpc": "^8.2.1", "zod": "^4.3.6" }, @@ -663,9 +663,9 @@ } }, "node_modules/@github/copilot": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.52-0.tgz", - "integrity": "sha512-OpeTdTaPgOwnhdGz5eSQLpcXLm5SPLWDcBRTMtCKANSyNVZCB3xHVEfMtzis+BVdePr1fSnnGIAYaG5wYnsdSg==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.52-1.tgz", + "integrity": "sha512-oz6m/dOpTU+FaCWXqYZj5JkJmRT+/RYcrmtGal39V+gOxTA2Nc9wIeLH1SMwMoOXC9Q6DN6keiY0wqWcHirPVg==", "license": "SEE LICENSE IN LICENSE.md", "dependencies": { "detect-libc": "^2.1.2" @@ -674,20 +674,20 @@ "copilot": "npm-loader.js" }, "optionalDependencies": { - "@github/copilot-darwin-arm64": "1.0.52-0", - "@github/copilot-darwin-x64": "1.0.52-0", - "@github/copilot-linux-arm64": "1.0.52-0", - "@github/copilot-linux-x64": "1.0.52-0", - "@github/copilot-linuxmusl-arm64": "1.0.52-0", - "@github/copilot-linuxmusl-x64": "1.0.52-0", - "@github/copilot-win32-arm64": "1.0.52-0", - "@github/copilot-win32-x64": "1.0.52-0" + "@github/copilot-darwin-arm64": "1.0.52-1", + "@github/copilot-darwin-x64": "1.0.52-1", + "@github/copilot-linux-arm64": "1.0.52-1", + "@github/copilot-linux-x64": "1.0.52-1", + "@github/copilot-linuxmusl-arm64": "1.0.52-1", + "@github/copilot-linuxmusl-x64": "1.0.52-1", + "@github/copilot-win32-arm64": "1.0.52-1", + "@github/copilot-win32-x64": "1.0.52-1" } }, "node_modules/@github/copilot-darwin-arm64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.52-0.tgz", - "integrity": "sha512-LgnSEze1LmrmnKNFP4fYRhH4tmxk0xz7yjXtWb/cuMBkXgAS4nUb5HaO5NZWVbldHshXWuPfOl0cuG7oFuDX8Q==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.52-1.tgz", + "integrity": "sha512-DWXtC/yItZVtkSQhPyRMEkFwa2mcY2rg2cu/uwJ15L9ReiYvlKYEZQDe1TMqkT+U6+k9KjA2L2HQfXVm14/vTw==", "cpu": [ "arm64" ], @@ -701,9 +701,9 @@ } }, "node_modules/@github/copilot-darwin-x64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.52-0.tgz", - "integrity": "sha512-WFyeJIN5YsGRrdJPMnRBQrhU6BP0yt0PGOqOR1yvCp3n0cIVAF9sDn0fvQTCMo6cI7XAeqIrlI1xSc4nFidZDg==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.52-1.tgz", + "integrity": "sha512-NFTJkzzlTALMfbj9CDJ7N09PRPTVFq1+71hk+zoNx1uT/pi954liV6tKSaNAihPIXTMQKfJXGwEdjtvACpc8Vg==", "cpu": [ "x64" ], @@ -717,9 +717,9 @@ } }, "node_modules/@github/copilot-linux-arm64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.52-0.tgz", - "integrity": "sha512-bOE+v954tpSXq75S3kN/Qz+91KrM8i7b3P+2+4OA2zSGNy3sKUfadKsLGJf6cmGefJCe+BVrYhVxhYhltSQJJA==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.52-1.tgz", + "integrity": "sha512-CZE29v+RPJClHgVE1rU+RpRWSG8lm48koRZ0taKVopqLRD6NWKjBOwFKYJojk08H8/K+BWr/paM5+R8hEZHxZw==", "cpu": [ "arm64" ], @@ -733,9 +733,9 @@ } }, "node_modules/@github/copilot-linux-x64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.52-0.tgz", - "integrity": "sha512-5NCuxj2nIq4Qu5QzlK8SYxi2K2zge4ZFUGJEAgt6bTac7MFIHoBAX/59GSRca1BAR+fi61HS6W5SQUHVuWA7rQ==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.52-1.tgz", + "integrity": "sha512-tJhLQV70TJLq3hPXg7P6pHPfE4vaT2nENIXZsHu6fBkOcsSAxX1APSv6Bkyfsiod8EfFHkcG2+n7VXiVg8WqFw==", "cpu": [ "x64" ], @@ -749,9 +749,9 @@ } }, "node_modules/@github/copilot-linuxmusl-arm64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.52-0.tgz", - "integrity": "sha512-0l6CSFNDtGwhLBuUMEBpnQB8olPeTwTc9yfCWhq1z4LtbJ4U/tdQdEJsd/EZIOzWJbXZKqDyL6iMkkme6v3B8w==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.52-1.tgz", + "integrity": "sha512-u24wHsUumldUEPWX/5z5IEuJvixiQEYF82N04P1g65dvOknq+89dpj+GND4Rh3Vr5u13drgj5AJqkJbWB8N+EQ==", "cpu": [ "arm64" ], @@ -765,9 +765,9 @@ } }, "node_modules/@github/copilot-linuxmusl-x64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.52-0.tgz", - "integrity": "sha512-gDAf2jrK4uKly/tdoZK4PiOx7wOvHbpFgbdXBDby/tph7/l4+hKxPsXNak+bEbBoCrLeYaSMIurbaubC8UoXUg==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.52-1.tgz", + "integrity": "sha512-wM22FxcHL8NlnesKKQPPvtk4ojqefN7irU5tQcX+IunpD1izVQl7AOXhZyHoQ21zQnN0De8EapxOUc+WnvlxpA==", "cpu": [ "x64" ], @@ -781,9 +781,9 @@ } }, "node_modules/@github/copilot-win32-arm64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.52-0.tgz", - "integrity": "sha512-DdmNzqGMZC2TkR6Bu4V4rRo6fb8KmKKlJ7FIRLkBiX33Khps1PVxKqk/TTuao6w4WvT/Sxk5gGh63mshRYlASA==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.52-1.tgz", + "integrity": "sha512-ecvfl9N7DPSwpiT2ZNUSXR1ZrSKwpkByOU6VcNphh4RptPZ0iNfyRNLhFCwSfFz+FvB6z2LZi+F7jSzQ3SaT3w==", "cpu": [ "arm64" ], @@ -797,9 +797,9 @@ } }, "node_modules/@github/copilot-win32-x64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.52-0.tgz", - "integrity": "sha512-uvUsnPAwZwNQEmC0yQ6o8O2odQzU6RU4JE9pHTyZGmvScZ9iRvb/ZQ8oR+Dmd+RapJbCnfLMm+39yValmtGG5g==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.52-1.tgz", + "integrity": "sha512-a9Ct7krktP+/pfPdh/K57deYzzmL13e5Tb1pf5E152u4o/5xKzfgroNFUOzotFfFhs1jFhdzKCm3WHNLIvVEHA==", "cpu": [ "x64" ], diff --git a/nodejs/package.json b/nodejs/package.json index bb591bc0a..611e3f7d3 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -56,7 +56,7 @@ "author": "GitHub", "license": "MIT", "dependencies": { - "@github/copilot": "^1.0.52-0", + "@github/copilot": "^1.0.52-1", "vscode-jsonrpc": "^8.2.1", "zod": "^4.3.6" }, diff --git a/nodejs/samples/package-lock.json b/nodejs/samples/package-lock.json index 379c96c86..b50ed3477 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.52-0", + "@github/copilot": "^1.0.52-1", "vscode-jsonrpc": "^8.2.1", "zod": "^4.3.6" }, diff --git a/nodejs/src/generated/rpc.ts b/nodejs/src/generated/rpc.ts index dd965d56f..86c19d6f8 100644 --- a/nodejs/src/generated/rpc.ts +++ b/nodejs/src/generated/rpc.ts @@ -1188,7 +1188,11 @@ export interface AgentInfo { * MCP server configurations attached to this agent, keyed by server name. Server config shape mirrors the MCP `mcpServers` schema. */ mcpServers?: { - [k: string]: unknown | undefined; + [k: string]: + | { + [k: string]: unknown | undefined; + } + | undefined; }; /** * Skill names preloaded into this agent's context. Omitted means none. @@ -2142,7 +2146,11 @@ export interface ExternalToolTextResultForLlm { * Optional tool-specific telemetry */ toolTelemetry?: { - [k: string]: unknown | undefined; + [k: string]: + | { + [k: string]: unknown | undefined; + } + | undefined; }; /** * Base64-encoded binary results returned to the model @@ -5327,6 +5335,30 @@ export interface ScheduleStopRequest { export interface ScheduleStopResult { entry?: ScheduleEntry; } +/** + * Secret values to add to the redaction filter. + * + * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema + * via the `definition` "SecretsAddFilterValuesRequest". + */ +export interface SecretsAddFilterValuesRequest { + /** + * Raw secret values to register for redaction + */ + values: string[]; +} +/** + * Confirmation that the secret values were registered. + * + * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema + * via the `definition` "SecretsAddFilterValuesResult". + */ +export interface SecretsAddFilterValuesResult { + /** + * Whether the values were successfully registered + */ + ok: true; +} /** * File attachment * @@ -6073,7 +6105,11 @@ export interface SessionFsSqliteQueryResult { * For SELECT: array of row objects. For others: empty array. */ rows: { - [k: string]: unknown | undefined; + [k: string]: + | { + [k: string]: unknown | undefined; + } + | undefined; }[]; /** * Column names from the result set @@ -6943,7 +6979,9 @@ export interface SessionUpdateOptionsParams { /** * Additional content-exclusion policies to merge into the session's policy set. Opaque shape; see `ContentExclusionApiResponse` in the runtime. */ - additionalContentExclusionPolicies?: unknown[]; + additionalContentExclusionPolicies?: { + [k: string]: unknown | undefined; + }[]; /** * Whether to expose the `manage_schedule` tool to the agent. The runtime always owns the per-session schedule registry; this flag only controls tool exposure (typically gated to staff users). */ @@ -7776,7 +7814,11 @@ export interface Tool { * JSON Schema for the tool's input parameters */ parameters?: { - [k: string]: unknown | undefined; + [k: string]: + | { + [k: string]: unknown | undefined; + } + | undefined; }; /** * Optional instructions for how to use this tool effectively @@ -8759,6 +8801,17 @@ export function createServerRpc(connection: MessageConnection) { getQuota: async (params: AccountGetQuotaRequest): Promise => connection.sendRequest("account.getQuota", params), }, + secrets: { + /** + * Registers secret values for redaction in session logs and exports. The SDK calls this to inject dynamically generated secret values (e.g., OIDC tokens). + * + * @param params Secret values to add to the redaction filter. + * + * @returns Confirmation that the secret values were registered. + */ + addFilterValues: async (params: SecretsAddFilterValuesRequest): Promise => + connection.sendRequest("secrets.addFilterValues", params), + }, mcp: { config: { /** diff --git a/nodejs/src/generated/session-events.ts b/nodejs/src/generated/session-events.ts index e5fe8bd03..f00a04bec 100644 --- a/nodejs/src/generated/session-events.ts +++ b/nodejs/src/generated/session-events.ts @@ -1469,7 +1469,7 @@ export interface ShutdownData { /** * Total number of premium API requests used during the session */ - totalPremiumRequests: number; + totalPremiumRequests?: number; } /** * Aggregate code change metrics for the session @@ -1512,11 +1512,11 @@ export interface ShutdownModelMetricRequests { /** * Cumulative cost multiplier for requests to this model */ - cost: number; + cost?: number; /** * Total number of API requests made to this model */ - count: number; + count?: number; } /** * Schema for the `ShutdownModelMetricTokenDetail` type. @@ -2404,7 +2404,9 @@ export interface AssistantMessageData { /** * Raw Anthropic content array with advisor blocks (server_tool_use, advisor_tool_result) for verbatim round-tripping */ - anthropicAdvisorBlocks?: unknown[]; + anthropicAdvisorBlocks?: { + [k: string]: unknown | undefined; + }[]; /** * Anthropic advisor model ID used for this response, for timeline display on replay */ @@ -3158,6 +3160,10 @@ export interface ToolExecutionCompleteData { */ parentToolCallId?: string; result?: ToolExecutionCompleteResult; + /** + * Whether this tool execution ran inside a sandbox container + */ + sandboxed?: boolean; /** * Whether the tool execution completed successfully */ @@ -3170,7 +3176,11 @@ export interface ToolExecutionCompleteData { * Tool-specific telemetry data (e.g., CodeQL check counts, grep match counts) */ toolTelemetry?: { - [k: string]: unknown | undefined; + [k: string]: + | { + [k: string]: unknown | undefined; + } + | undefined; }; /** * Identifier for the agent loop turn this tool was invoked in, matching the corresponding assistant.turn_start event @@ -3876,7 +3886,11 @@ export interface SystemMessageMetadata { * Template variables used when constructing the prompt */ variables?: { - [k: string]: unknown | undefined; + [k: string]: + | { + [k: string]: unknown | undefined; + } + | undefined; }; } /** @@ -5122,7 +5136,11 @@ export interface ElicitationRequestedSchema { * Form field definitions, keyed by field name */ properties: { - [k: string]: unknown | undefined; + [k: string]: + | { + [k: string]: unknown | undefined; + } + | undefined; }; /** * List of required field names diff --git a/python/copilot/generated/rpc.py b/python/copilot/generated/rpc.py index 327a41344..ce9f98f2a 100644 --- a/python/copilot/generated/rpc.py +++ b/python/copilot/generated/rpc.py @@ -3485,6 +3485,42 @@ def to_dict(self) -> dict: result["id"] = from_int(self.id) return result +@dataclass +class SecretsAddFilterValuesRequest: + """Secret values to add to the redaction filter.""" + + values: list[str] + """Raw secret values to register for redaction""" + + @staticmethod + def from_dict(obj: Any) -> 'SecretsAddFilterValuesRequest': + assert isinstance(obj, dict) + values = from_list(from_str, obj.get("values")) + return SecretsAddFilterValuesRequest(values) + + def to_dict(self) -> dict: + result: dict = {} + result["values"] = from_list(from_str, self.values) + return result + +@dataclass +class SecretsAddFilterValuesResult: + """Confirmation that the secret values were registered.""" + + ok: bool + """Whether the values were successfully registered""" + + @staticmethod + def from_dict(obj: Any) -> 'SecretsAddFilterValuesResult': + assert isinstance(obj, dict) + ok = from_bool(obj.get("ok")) + return SecretsAddFilterValuesResult(ok) + + def to_dict(self) -> dict: + result: dict = {} + result["ok"] = from_bool(self.ok) + return result + # Experimental: this type is part of an experimental API and may change or be removed. class SendAgentMode(Enum): """The UI mode the agent was in when this message was sent. Defaults to the session's @@ -15212,6 +15248,8 @@ class RPC: schedule_list: ScheduleList schedule_stop_request: ScheduleStopRequest schedule_stop_result: ScheduleStopResult + secrets_add_filter_values_request: SecretsAddFilterValuesRequest + secrets_add_filter_values_result: SecretsAddFilterValuesResult send_agent_mode: SendAgentMode send_attachment: SendAttachment send_attachment_blob: SendAttachmentBlob @@ -15729,6 +15767,8 @@ def from_dict(obj: Any) -> 'RPC': schedule_list = ScheduleList.from_dict(obj.get("ScheduleList")) schedule_stop_request = ScheduleStopRequest.from_dict(obj.get("ScheduleStopRequest")) schedule_stop_result = ScheduleStopResult.from_dict(obj.get("ScheduleStopResult")) + secrets_add_filter_values_request = SecretsAddFilterValuesRequest.from_dict(obj.get("SecretsAddFilterValuesRequest")) + secrets_add_filter_values_result = SecretsAddFilterValuesResult.from_dict(obj.get("SecretsAddFilterValuesResult")) send_agent_mode = SendAgentMode(obj.get("SendAgentMode")) send_attachment = SendAttachment.from_dict(obj.get("SendAttachment")) send_attachment_blob = SendAttachmentBlob.from_dict(obj.get("SendAttachmentBlob")) @@ -15952,7 +15992,7 @@ def from_dict(obj: Any) -> 'RPC': session_context_info = from_union([SessionContextInfo.from_dict, from_none], obj.get("SessionContextInfo")) task_progress = from_union([TaskProgress.from_dict, from_none], obj.get("TaskProgress")) workspace_summary = from_union([WorkspaceSummary.from_dict, from_none], obj.get("WorkspaceSummary")) - return RPC(abort_request, abort_result, account_get_quota_request, account_get_quota_result, account_quota_snapshot, agent_get_current_result, agent_info, agent_info_source, agent_list, agent_reload_result, agent_select_request, agent_select_result, api_key_auth_info, auth_info, auth_info_type, command_list, commands_handle_pending_command_request, commands_handle_pending_command_result, commands_invoke_request, commands_list_request, commands_respond_to_queued_command_request, commands_respond_to_queued_command_result, connected_remote_session_metadata, connected_remote_session_metadata_kind, connected_remote_session_metadata_repository, connect_remote_session_params, connect_request, connect_result, content_filter_mode, copilot_api_token_auth_info, copilot_user_response, copilot_user_response_endpoints, copilot_user_response_quota_snapshots, copilot_user_response_quota_snapshots_chat, copilot_user_response_quota_snapshots_completions, copilot_user_response_quota_snapshots_premium_interactions, current_model, discovered_mcp_server, discovered_mcp_server_type, enqueue_command_params, enqueue_command_result, env_auth_info, event_log_read_request, event_log_release_interest_result, event_log_tail_result, event_log_types, events_agent_scope, events_cursor_status, events_read_result, execute_command_params, execute_command_result, extension, extension_list, extensions_disable_request, extensions_enable_request, extension_source, extension_status, external_tool_result, external_tool_text_result_for_llm, external_tool_text_result_for_llm_binary_results_for_llm, external_tool_text_result_for_llm_binary_results_for_llm_type, external_tool_text_result_for_llm_content, external_tool_text_result_for_llm_content_audio, external_tool_text_result_for_llm_content_image, external_tool_text_result_for_llm_content_resource, external_tool_text_result_for_llm_content_resource_details, external_tool_text_result_for_llm_content_resource_link, external_tool_text_result_for_llm_content_resource_link_icon, external_tool_text_result_for_llm_content_resource_link_icon_theme, external_tool_text_result_for_llm_content_terminal, external_tool_text_result_for_llm_content_text, filter_mapping, fleet_start_request, fleet_start_result, folder_trust_add_params, folder_trust_check_params, folder_trust_check_result, gh_cli_auth_info, handle_pending_tool_call_request, handle_pending_tool_call_result, history_abort_manual_compaction_result, history_cancel_background_compaction_result, history_compact_context_window, history_compact_request, history_compact_result, history_summarize_for_handoff_result, history_truncate_request, history_truncate_result, hmac_auth_info, installed_plugin, installed_plugin_source, installed_plugin_source_github, installed_plugin_source_local, installed_plugin_source_url, instructions_get_sources_result, instructions_sources, instructions_sources_location, instructions_sources_type, log_request, log_result, lsp_initialize_request, mcp_cancel_sampling_execution_params, mcp_cancel_sampling_execution_result, mcp_config_add_request, mcp_config_disable_request, mcp_config_enable_request, mcp_config_list, mcp_config_remove_request, mcp_config_update_request, mcp_disable_request, mcp_discover_request, mcp_discover_result, mcp_enable_request, mcp_execute_sampling_params, mcp_execute_sampling_request, mcp_execute_sampling_result, mcp_oauth_login_request, mcp_oauth_login_result, mcp_remove_git_hub_result, mcp_sampling_execution_action, mcp_sampling_execution_result, mcp_server, mcp_server_config, mcp_server_config_http, mcp_server_config_http_auth, mcp_server_config_http_oauth_grant_type, mcp_server_config_http_type, mcp_server_config_stdio, mcp_server_list, mcp_set_env_value_mode_details, mcp_set_env_value_mode_params, mcp_set_env_value_mode_result, metadata_context_info_request, metadata_context_info_result, metadata_is_processing_result, metadata_recompute_context_tokens_request, metadata_recompute_context_tokens_result, metadata_record_context_change_request, metadata_record_context_change_result, metadata_set_working_directory_request, metadata_set_working_directory_result, metadata_snapshot_current_mode, metadata_snapshot_remote_metadata, metadata_snapshot_remote_metadata_repository, metadata_snapshot_remote_metadata_task_type, model, model_billing, model_billing_token_prices, model_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_picker_category, model_picker_price_category, model_policy, model_policy_state, model_set_reasoning_effort_request, model_set_reasoning_effort_result, models_list_request, model_switch_to_request, model_switch_to_result, mode_set_request, name_get_result, name_set_auto_request, name_set_auto_result, name_set_request, options_update_env_value_mode, pending_permission_request, pending_permission_request_list, permission_decision, permission_decision_approved, permission_decision_approved_for_location, permission_decision_approved_for_session, permission_decision_approve_for_location, permission_decision_approve_for_location_approval, permission_decision_approve_for_location_approval_commands, permission_decision_approve_for_location_approval_custom_tool, permission_decision_approve_for_location_approval_extension_management, permission_decision_approve_for_location_approval_extension_permission_access, permission_decision_approve_for_location_approval_mcp, permission_decision_approve_for_location_approval_mcp_sampling, permission_decision_approve_for_location_approval_memory, permission_decision_approve_for_location_approval_read, permission_decision_approve_for_location_approval_write, permission_decision_approve_for_session, permission_decision_approve_for_session_approval, permission_decision_approve_for_session_approval_commands, permission_decision_approve_for_session_approval_custom_tool, permission_decision_approve_for_session_approval_extension_management, permission_decision_approve_for_session_approval_extension_permission_access, permission_decision_approve_for_session_approval_mcp, permission_decision_approve_for_session_approval_mcp_sampling, permission_decision_approve_for_session_approval_memory, permission_decision_approve_for_session_approval_read, permission_decision_approve_for_session_approval_write, permission_decision_approve_once, permission_decision_approve_permanently, permission_decision_cancelled, permission_decision_denied_by_content_exclusion_policy, permission_decision_denied_by_permission_request_hook, permission_decision_denied_by_rules, permission_decision_denied_interactively_by_user, permission_decision_denied_no_approval_rule_and_could_not_request_from_user, permission_decision_reject, permission_decision_request, permission_decision_user_not_available, permission_location_add_tool_approval_params, permission_location_apply_params, permission_location_apply_result, permission_location_resolve_params, permission_location_resolve_result, permission_location_type, permission_paths_add_params, permission_paths_allowed_check_params, permission_paths_allowed_check_result, permission_paths_config, permission_paths_list, permission_paths_update_primary_params, permission_paths_workspace_check_params, permission_paths_workspace_check_result, permission_prompt_shown_notification, permission_request_result, permission_rules_set, permissions_configure_additional_content_exclusion_policy, permissions_configure_additional_content_exclusion_policy_rule, permissions_configure_additional_content_exclusion_policy_rule_source, permissions_configure_additional_content_exclusion_policy_scope, permissions_configure_params, permissions_configure_result, permissions_folder_trust_add_trusted_result, permissions_locations_add_tool_approval_details, permissions_locations_add_tool_approval_details_commands, permissions_locations_add_tool_approval_details_custom_tool, permissions_locations_add_tool_approval_details_extension_management, permissions_locations_add_tool_approval_details_extension_permission_access, permissions_locations_add_tool_approval_details_mcp, permissions_locations_add_tool_approval_details_mcp_sampling, permissions_locations_add_tool_approval_details_memory, permissions_locations_add_tool_approval_details_read, permissions_locations_add_tool_approval_details_write, permissions_locations_add_tool_approval_result, permissions_modify_rules_params, permissions_modify_rules_result, permissions_modify_rules_scope, permissions_notify_prompt_shown_result, permissions_paths_add_result, permissions_paths_list_request, permissions_paths_update_primary_result, permissions_pending_requests_request, permissions_reset_session_approvals_request, permissions_reset_session_approvals_result, permissions_set_approve_all_request, permissions_set_approve_all_result, permissions_set_approve_all_source, permissions_set_required_request, permissions_set_required_result, permissions_urls_set_unrestricted_mode_result, permission_urls_config, permission_urls_set_unrestricted_mode_params, ping_request, ping_result, plan_read_result, plan_update_request, plugin, plugin_list, queued_command_handled, queued_command_not_handled, queued_command_result, queue_pending_items, queue_pending_items_kind, queue_pending_items_result, queue_remove_most_recent_result, register_event_interest_params, register_event_interest_result, release_event_interest_params, remote_enable_request, remote_enable_result, remote_notify_steerable_changed_request, remote_notify_steerable_changed_result, remote_session_connection_result, remote_session_mode, schedule_entry, schedule_list, schedule_stop_request, schedule_stop_result, send_agent_mode, send_attachment, send_attachment_blob, send_attachment_directory, send_attachment_file, send_attachment_file_line_range, send_attachment_github_reference, send_attachment_github_reference_type, send_attachment_selection, send_attachment_selection_details, send_attachment_selection_details_end, send_attachment_selection_details_start, send_mode, send_request, send_result, server_skill, server_skill_list, session_auth_status, session_bulk_delete_result, session_context, session_context_host_type, session_enrich_metadata_result, session_fs_append_file_request, session_fs_error, session_fs_error_code, session_fs_exists_request, session_fs_exists_result, session_fs_mkdir_request, session_fs_readdir_request, session_fs_readdir_result, session_fs_readdir_with_types_entry, session_fs_readdir_with_types_entry_type, session_fs_readdir_with_types_request, session_fs_readdir_with_types_result, session_fs_read_file_request, session_fs_read_file_result, session_fs_rename_request, session_fs_rm_request, session_fs_set_provider_capabilities, session_fs_set_provider_conventions, session_fs_set_provider_request, session_fs_set_provider_result, session_fs_sqlite_exists_request, session_fs_sqlite_exists_result, session_fs_sqlite_query_request, session_fs_sqlite_query_result, session_fs_sqlite_query_type, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_installed_plugin, session_installed_plugin_source, session_installed_plugin_source_github, session_installed_plugin_source_local, session_installed_plugin_source_url, session_list, session_list_filter, session_load_deferred_repo_hooks_result, session_log_level, session_metadata, session_metadata_snapshot, session_mode, session_prune_result, sessions_bulk_delete_request, sessions_check_in_use_request, sessions_check_in_use_result, sessions_close_request, sessions_close_result, sessions_enrich_metadata_request, session_set_credentials_params, session_set_credentials_result, sessions_find_by_prefix_request, sessions_find_by_prefix_result, sessions_find_by_task_id_request, sessions_find_by_task_id_result, sessions_fork_request, sessions_fork_result, sessions_get_event_file_path_request, sessions_get_event_file_path_result, sessions_get_last_for_context_request, sessions_get_last_for_context_result, sessions_get_persisted_remote_steerable_request, sessions_get_persisted_remote_steerable_result, session_sizes, sessions_list_request, sessions_load_deferred_repo_hooks_request, sessions_prune_old_request, sessions_release_lock_request, sessions_release_lock_result, sessions_reload_plugin_hooks_request, sessions_reload_plugin_hooks_result, sessions_save_request, sessions_save_result, sessions_set_additional_plugins_request, sessions_set_additional_plugins_result, session_update_options_params, session_update_options_result, session_working_directory_context, session_working_directory_context_host_type, shell_exec_request, shell_exec_result, shell_kill_request, shell_kill_result, shell_kill_signal, shutdown_request, skill, skill_list, skills_config_set_disabled_skills_request, skills_disable_request, skills_discover_request, skills_enable_request, skills_get_invoked_result, skills_invoked_skill, skills_load_diagnostics, slash_command_agent_prompt_result, slash_command_completed_result, slash_command_info, slash_command_input, slash_command_input_completion, slash_command_invocation_result, slash_command_kind, slash_command_select_subcommand_option, slash_command_select_subcommand_result, slash_command_text_result, task_agent_info, task_agent_progress, task_execution_mode, task_info, task_list, task_progress_line, tasks_cancel_request, tasks_cancel_result, tasks_get_current_promotable_result, tasks_get_progress_request, tasks_get_progress_result, task_shell_info, task_shell_info_attachment_mode, task_shell_progress, tasks_promote_current_to_background_result, tasks_promote_to_background_request, tasks_promote_to_background_result, tasks_refresh_result, tasks_remove_request, tasks_remove_result, tasks_send_message_request, tasks_send_message_result, tasks_start_agent_request, tasks_start_agent_result, task_status, tasks_wait_for_pending_result, telemetry_set_feature_overrides_request, token_auth_info, tool, tool_list, tools_initialize_and_validate_result, tools_list_request, ui_auto_mode_switch_response, ui_elicitation_array_any_of_field, ui_elicitation_array_any_of_field_items, ui_elicitation_array_any_of_field_items_any_of, ui_elicitation_array_enum_field, ui_elicitation_array_enum_field_items, ui_elicitation_field_value, ui_elicitation_request, ui_elicitation_response, ui_elicitation_response_action, ui_elicitation_response_content, ui_elicitation_result, ui_elicitation_schema, ui_elicitation_schema_property, ui_elicitation_schema_property_boolean, ui_elicitation_schema_property_number, ui_elicitation_schema_property_number_type, ui_elicitation_schema_property_string, ui_elicitation_schema_property_string_format, ui_elicitation_string_enum_field, ui_elicitation_string_one_of_field, ui_elicitation_string_one_of_field_one_of, ui_exit_plan_mode_action, ui_exit_plan_mode_response, ui_handle_pending_auto_mode_switch_request, ui_handle_pending_elicitation_request, ui_handle_pending_exit_plan_mode_request, ui_handle_pending_result, ui_handle_pending_sampling_request, ui_handle_pending_sampling_response, ui_handle_pending_user_input_request, ui_register_direct_auto_mode_switch_handler_result, ui_unregister_direct_auto_mode_switch_handler_request, ui_unregister_direct_auto_mode_switch_handler_result, ui_user_input_response, usage_get_metrics_result, usage_metrics_code_changes, usage_metrics_model_metric, usage_metrics_model_metric_requests, usage_metrics_model_metric_token_detail, usage_metrics_model_metric_usage, usage_metrics_token_detail, user_auth_info, user_tool_session_approval_commands, user_tool_session_approval_custom_tool, user_tool_session_approval_extension_management, user_tool_session_approval_extension_permission_access, user_tool_session_approval_mcp, user_tool_session_approval_memory, user_tool_session_approval_read, user_tool_session_approval_write, workspaces_checkpoints, workspaces_create_file_request, workspaces_get_workspace_result, workspaces_list_checkpoints_result, workspaces_list_files_result, workspaces_read_checkpoint_request, workspaces_read_checkpoint_result, workspaces_read_file_request, workspaces_read_file_result, workspaces_save_large_paste_request, workspaces_save_large_paste_result, workspace_summary_host_type, workspaces_workspace_details_host_type, session_context_info, task_progress, workspace_summary) + return RPC(abort_request, abort_result, account_get_quota_request, account_get_quota_result, account_quota_snapshot, agent_get_current_result, agent_info, agent_info_source, agent_list, agent_reload_result, agent_select_request, agent_select_result, api_key_auth_info, auth_info, auth_info_type, command_list, commands_handle_pending_command_request, commands_handle_pending_command_result, commands_invoke_request, commands_list_request, commands_respond_to_queued_command_request, commands_respond_to_queued_command_result, connected_remote_session_metadata, connected_remote_session_metadata_kind, connected_remote_session_metadata_repository, connect_remote_session_params, connect_request, connect_result, content_filter_mode, copilot_api_token_auth_info, copilot_user_response, copilot_user_response_endpoints, copilot_user_response_quota_snapshots, copilot_user_response_quota_snapshots_chat, copilot_user_response_quota_snapshots_completions, copilot_user_response_quota_snapshots_premium_interactions, current_model, discovered_mcp_server, discovered_mcp_server_type, enqueue_command_params, enqueue_command_result, env_auth_info, event_log_read_request, event_log_release_interest_result, event_log_tail_result, event_log_types, events_agent_scope, events_cursor_status, events_read_result, execute_command_params, execute_command_result, extension, extension_list, extensions_disable_request, extensions_enable_request, extension_source, extension_status, external_tool_result, external_tool_text_result_for_llm, external_tool_text_result_for_llm_binary_results_for_llm, external_tool_text_result_for_llm_binary_results_for_llm_type, external_tool_text_result_for_llm_content, external_tool_text_result_for_llm_content_audio, external_tool_text_result_for_llm_content_image, external_tool_text_result_for_llm_content_resource, external_tool_text_result_for_llm_content_resource_details, external_tool_text_result_for_llm_content_resource_link, external_tool_text_result_for_llm_content_resource_link_icon, external_tool_text_result_for_llm_content_resource_link_icon_theme, external_tool_text_result_for_llm_content_terminal, external_tool_text_result_for_llm_content_text, filter_mapping, fleet_start_request, fleet_start_result, folder_trust_add_params, folder_trust_check_params, folder_trust_check_result, gh_cli_auth_info, handle_pending_tool_call_request, handle_pending_tool_call_result, history_abort_manual_compaction_result, history_cancel_background_compaction_result, history_compact_context_window, history_compact_request, history_compact_result, history_summarize_for_handoff_result, history_truncate_request, history_truncate_result, hmac_auth_info, installed_plugin, installed_plugin_source, installed_plugin_source_github, installed_plugin_source_local, installed_plugin_source_url, instructions_get_sources_result, instructions_sources, instructions_sources_location, instructions_sources_type, log_request, log_result, lsp_initialize_request, mcp_cancel_sampling_execution_params, mcp_cancel_sampling_execution_result, mcp_config_add_request, mcp_config_disable_request, mcp_config_enable_request, mcp_config_list, mcp_config_remove_request, mcp_config_update_request, mcp_disable_request, mcp_discover_request, mcp_discover_result, mcp_enable_request, mcp_execute_sampling_params, mcp_execute_sampling_request, mcp_execute_sampling_result, mcp_oauth_login_request, mcp_oauth_login_result, mcp_remove_git_hub_result, mcp_sampling_execution_action, mcp_sampling_execution_result, mcp_server, mcp_server_config, mcp_server_config_http, mcp_server_config_http_auth, mcp_server_config_http_oauth_grant_type, mcp_server_config_http_type, mcp_server_config_stdio, mcp_server_list, mcp_set_env_value_mode_details, mcp_set_env_value_mode_params, mcp_set_env_value_mode_result, metadata_context_info_request, metadata_context_info_result, metadata_is_processing_result, metadata_recompute_context_tokens_request, metadata_recompute_context_tokens_result, metadata_record_context_change_request, metadata_record_context_change_result, metadata_set_working_directory_request, metadata_set_working_directory_result, metadata_snapshot_current_mode, metadata_snapshot_remote_metadata, metadata_snapshot_remote_metadata_repository, metadata_snapshot_remote_metadata_task_type, model, model_billing, model_billing_token_prices, model_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_picker_category, model_picker_price_category, model_policy, model_policy_state, model_set_reasoning_effort_request, model_set_reasoning_effort_result, models_list_request, model_switch_to_request, model_switch_to_result, mode_set_request, name_get_result, name_set_auto_request, name_set_auto_result, name_set_request, options_update_env_value_mode, pending_permission_request, pending_permission_request_list, permission_decision, permission_decision_approved, permission_decision_approved_for_location, permission_decision_approved_for_session, permission_decision_approve_for_location, permission_decision_approve_for_location_approval, permission_decision_approve_for_location_approval_commands, permission_decision_approve_for_location_approval_custom_tool, permission_decision_approve_for_location_approval_extension_management, permission_decision_approve_for_location_approval_extension_permission_access, permission_decision_approve_for_location_approval_mcp, permission_decision_approve_for_location_approval_mcp_sampling, permission_decision_approve_for_location_approval_memory, permission_decision_approve_for_location_approval_read, permission_decision_approve_for_location_approval_write, permission_decision_approve_for_session, permission_decision_approve_for_session_approval, permission_decision_approve_for_session_approval_commands, permission_decision_approve_for_session_approval_custom_tool, permission_decision_approve_for_session_approval_extension_management, permission_decision_approve_for_session_approval_extension_permission_access, permission_decision_approve_for_session_approval_mcp, permission_decision_approve_for_session_approval_mcp_sampling, permission_decision_approve_for_session_approval_memory, permission_decision_approve_for_session_approval_read, permission_decision_approve_for_session_approval_write, permission_decision_approve_once, permission_decision_approve_permanently, permission_decision_cancelled, permission_decision_denied_by_content_exclusion_policy, permission_decision_denied_by_permission_request_hook, permission_decision_denied_by_rules, permission_decision_denied_interactively_by_user, permission_decision_denied_no_approval_rule_and_could_not_request_from_user, permission_decision_reject, permission_decision_request, permission_decision_user_not_available, permission_location_add_tool_approval_params, permission_location_apply_params, permission_location_apply_result, permission_location_resolve_params, permission_location_resolve_result, permission_location_type, permission_paths_add_params, permission_paths_allowed_check_params, permission_paths_allowed_check_result, permission_paths_config, permission_paths_list, permission_paths_update_primary_params, permission_paths_workspace_check_params, permission_paths_workspace_check_result, permission_prompt_shown_notification, permission_request_result, permission_rules_set, permissions_configure_additional_content_exclusion_policy, permissions_configure_additional_content_exclusion_policy_rule, permissions_configure_additional_content_exclusion_policy_rule_source, permissions_configure_additional_content_exclusion_policy_scope, permissions_configure_params, permissions_configure_result, permissions_folder_trust_add_trusted_result, permissions_locations_add_tool_approval_details, permissions_locations_add_tool_approval_details_commands, permissions_locations_add_tool_approval_details_custom_tool, permissions_locations_add_tool_approval_details_extension_management, permissions_locations_add_tool_approval_details_extension_permission_access, permissions_locations_add_tool_approval_details_mcp, permissions_locations_add_tool_approval_details_mcp_sampling, permissions_locations_add_tool_approval_details_memory, permissions_locations_add_tool_approval_details_read, permissions_locations_add_tool_approval_details_write, permissions_locations_add_tool_approval_result, permissions_modify_rules_params, permissions_modify_rules_result, permissions_modify_rules_scope, permissions_notify_prompt_shown_result, permissions_paths_add_result, permissions_paths_list_request, permissions_paths_update_primary_result, permissions_pending_requests_request, permissions_reset_session_approvals_request, permissions_reset_session_approvals_result, permissions_set_approve_all_request, permissions_set_approve_all_result, permissions_set_approve_all_source, permissions_set_required_request, permissions_set_required_result, permissions_urls_set_unrestricted_mode_result, permission_urls_config, permission_urls_set_unrestricted_mode_params, ping_request, ping_result, plan_read_result, plan_update_request, plugin, plugin_list, queued_command_handled, queued_command_not_handled, queued_command_result, queue_pending_items, queue_pending_items_kind, queue_pending_items_result, queue_remove_most_recent_result, register_event_interest_params, register_event_interest_result, release_event_interest_params, remote_enable_request, remote_enable_result, remote_notify_steerable_changed_request, remote_notify_steerable_changed_result, remote_session_connection_result, remote_session_mode, schedule_entry, schedule_list, schedule_stop_request, schedule_stop_result, secrets_add_filter_values_request, secrets_add_filter_values_result, send_agent_mode, send_attachment, send_attachment_blob, send_attachment_directory, send_attachment_file, send_attachment_file_line_range, send_attachment_github_reference, send_attachment_github_reference_type, send_attachment_selection, send_attachment_selection_details, send_attachment_selection_details_end, send_attachment_selection_details_start, send_mode, send_request, send_result, server_skill, server_skill_list, session_auth_status, session_bulk_delete_result, session_context, session_context_host_type, session_enrich_metadata_result, session_fs_append_file_request, session_fs_error, session_fs_error_code, session_fs_exists_request, session_fs_exists_result, session_fs_mkdir_request, session_fs_readdir_request, session_fs_readdir_result, session_fs_readdir_with_types_entry, session_fs_readdir_with_types_entry_type, session_fs_readdir_with_types_request, session_fs_readdir_with_types_result, session_fs_read_file_request, session_fs_read_file_result, session_fs_rename_request, session_fs_rm_request, session_fs_set_provider_capabilities, session_fs_set_provider_conventions, session_fs_set_provider_request, session_fs_set_provider_result, session_fs_sqlite_exists_request, session_fs_sqlite_exists_result, session_fs_sqlite_query_request, session_fs_sqlite_query_result, session_fs_sqlite_query_type, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_installed_plugin, session_installed_plugin_source, session_installed_plugin_source_github, session_installed_plugin_source_local, session_installed_plugin_source_url, session_list, session_list_filter, session_load_deferred_repo_hooks_result, session_log_level, session_metadata, session_metadata_snapshot, session_mode, session_prune_result, sessions_bulk_delete_request, sessions_check_in_use_request, sessions_check_in_use_result, sessions_close_request, sessions_close_result, sessions_enrich_metadata_request, session_set_credentials_params, session_set_credentials_result, sessions_find_by_prefix_request, sessions_find_by_prefix_result, sessions_find_by_task_id_request, sessions_find_by_task_id_result, sessions_fork_request, sessions_fork_result, sessions_get_event_file_path_request, sessions_get_event_file_path_result, sessions_get_last_for_context_request, sessions_get_last_for_context_result, sessions_get_persisted_remote_steerable_request, sessions_get_persisted_remote_steerable_result, session_sizes, sessions_list_request, sessions_load_deferred_repo_hooks_request, sessions_prune_old_request, sessions_release_lock_request, sessions_release_lock_result, sessions_reload_plugin_hooks_request, sessions_reload_plugin_hooks_result, sessions_save_request, sessions_save_result, sessions_set_additional_plugins_request, sessions_set_additional_plugins_result, session_update_options_params, session_update_options_result, session_working_directory_context, session_working_directory_context_host_type, shell_exec_request, shell_exec_result, shell_kill_request, shell_kill_result, shell_kill_signal, shutdown_request, skill, skill_list, skills_config_set_disabled_skills_request, skills_disable_request, skills_discover_request, skills_enable_request, skills_get_invoked_result, skills_invoked_skill, skills_load_diagnostics, slash_command_agent_prompt_result, slash_command_completed_result, slash_command_info, slash_command_input, slash_command_input_completion, slash_command_invocation_result, slash_command_kind, slash_command_select_subcommand_option, slash_command_select_subcommand_result, slash_command_text_result, task_agent_info, task_agent_progress, task_execution_mode, task_info, task_list, task_progress_line, tasks_cancel_request, tasks_cancel_result, tasks_get_current_promotable_result, tasks_get_progress_request, tasks_get_progress_result, task_shell_info, task_shell_info_attachment_mode, task_shell_progress, tasks_promote_current_to_background_result, tasks_promote_to_background_request, tasks_promote_to_background_result, tasks_refresh_result, tasks_remove_request, tasks_remove_result, tasks_send_message_request, tasks_send_message_result, tasks_start_agent_request, tasks_start_agent_result, task_status, tasks_wait_for_pending_result, telemetry_set_feature_overrides_request, token_auth_info, tool, tool_list, tools_initialize_and_validate_result, tools_list_request, ui_auto_mode_switch_response, ui_elicitation_array_any_of_field, ui_elicitation_array_any_of_field_items, ui_elicitation_array_any_of_field_items_any_of, ui_elicitation_array_enum_field, ui_elicitation_array_enum_field_items, ui_elicitation_field_value, ui_elicitation_request, ui_elicitation_response, ui_elicitation_response_action, ui_elicitation_response_content, ui_elicitation_result, ui_elicitation_schema, ui_elicitation_schema_property, ui_elicitation_schema_property_boolean, ui_elicitation_schema_property_number, ui_elicitation_schema_property_number_type, ui_elicitation_schema_property_string, ui_elicitation_schema_property_string_format, ui_elicitation_string_enum_field, ui_elicitation_string_one_of_field, ui_elicitation_string_one_of_field_one_of, ui_exit_plan_mode_action, ui_exit_plan_mode_response, ui_handle_pending_auto_mode_switch_request, ui_handle_pending_elicitation_request, ui_handle_pending_exit_plan_mode_request, ui_handle_pending_result, ui_handle_pending_sampling_request, ui_handle_pending_sampling_response, ui_handle_pending_user_input_request, ui_register_direct_auto_mode_switch_handler_result, ui_unregister_direct_auto_mode_switch_handler_request, ui_unregister_direct_auto_mode_switch_handler_result, ui_user_input_response, usage_get_metrics_result, usage_metrics_code_changes, usage_metrics_model_metric, usage_metrics_model_metric_requests, usage_metrics_model_metric_token_detail, usage_metrics_model_metric_usage, usage_metrics_token_detail, user_auth_info, user_tool_session_approval_commands, user_tool_session_approval_custom_tool, user_tool_session_approval_extension_management, user_tool_session_approval_extension_permission_access, user_tool_session_approval_mcp, user_tool_session_approval_memory, user_tool_session_approval_read, user_tool_session_approval_write, workspaces_checkpoints, workspaces_create_file_request, workspaces_get_workspace_result, workspaces_list_checkpoints_result, workspaces_list_files_result, workspaces_read_checkpoint_request, workspaces_read_checkpoint_result, workspaces_read_file_request, workspaces_read_file_result, workspaces_save_large_paste_request, workspaces_save_large_paste_result, workspace_summary_host_type, workspaces_workspace_details_host_type, session_context_info, task_progress, workspace_summary) def to_dict(self) -> dict: result: dict = {} @@ -16246,6 +16286,8 @@ def to_dict(self) -> dict: result["ScheduleList"] = to_class(ScheduleList, self.schedule_list) result["ScheduleStopRequest"] = to_class(ScheduleStopRequest, self.schedule_stop_request) result["ScheduleStopResult"] = to_class(ScheduleStopResult, self.schedule_stop_result) + result["SecretsAddFilterValuesRequest"] = to_class(SecretsAddFilterValuesRequest, self.secrets_add_filter_values_request) + result["SecretsAddFilterValuesResult"] = to_class(SecretsAddFilterValuesResult, self.secrets_add_filter_values_result) result["SendAgentMode"] = to_enum(SendAgentMode, self.send_agent_mode) result["SendAttachment"] = to_class(SendAttachment, self.send_attachment) result["SendAttachmentBlob"] = to_class(SendAttachmentBlob, self.send_attachment_blob) @@ -16548,6 +16590,16 @@ async def get_quota(self, params: AccountGetQuotaRequest, *, timeout: float | No return AccountGetQuotaResult.from_dict(await self._client.request("account.getQuota", params_dict, **_timeout_kwargs(timeout))) +class ServerSecretsApi: + def __init__(self, client: "JsonRpcClient"): + self._client = client + + async def add_filter_values(self, params: SecretsAddFilterValuesRequest, *, timeout: float | None = None) -> SecretsAddFilterValuesResult: + "Registers secret values for redaction in session logs and exports. The SDK calls this to inject dynamically generated secret values (e.g., OIDC tokens).\n\nArgs:\n params: Secret values to add to the redaction filter.\n\nReturns:\n Confirmation that the secret values were registered." + params_dict = {k: v for k, v in params.to_dict().items() if v is not None} + return SecretsAddFilterValuesResult.from_dict(await self._client.request("secrets.addFilterValues", params_dict, **_timeout_kwargs(timeout))) + + class ServerMcpConfigApi: def __init__(self, client: "JsonRpcClient"): self._client = client @@ -16731,6 +16783,7 @@ def __init__(self, client: "JsonRpcClient"): self.models = ServerModelsApi(client) self.tools = ServerToolsApi(client) self.account = ServerAccountApi(client) + self.secrets = ServerSecretsApi(client) self.mcp = ServerMcpApi(client) self.skills = ServerSkillsApi(client) self.session_fs = ServerSessionFsApi(client) diff --git a/python/copilot/generated/session_events.py b/python/copilot/generated/session_events.py index 93903de30..515f9c317 100644 --- a/python/copilot/generated/session_events.py +++ b/python/copilot/generated/session_events.py @@ -3092,7 +3092,6 @@ class SessionShutdownData: session_start_time: int shutdown_type: ShutdownType total_api_duration: timedelta - total_premium_requests: float conversation_tokens: int | None = None current_model: str | None = None current_tokens: int | None = None @@ -3101,6 +3100,7 @@ class SessionShutdownData: token_details: dict[str, ShutdownTokenDetail] | None = None tool_definitions_tokens: int | None = None total_nano_aiu: float | None = None + total_premium_requests: float | None = None @staticmethod def from_dict(obj: Any) -> "SessionShutdownData": @@ -3110,7 +3110,6 @@ def from_dict(obj: Any) -> "SessionShutdownData": session_start_time = from_int(obj.get("sessionStartTime")) shutdown_type = parse_enum(ShutdownType, obj.get("shutdownType")) total_api_duration = from_timedelta(obj.get("totalApiDurationMs")) - total_premium_requests = from_float(obj.get("totalPremiumRequests")) conversation_tokens = from_union([from_none, from_int], obj.get("conversationTokens")) current_model = from_union([from_none, from_str], obj.get("currentModel")) current_tokens = from_union([from_none, from_int], obj.get("currentTokens")) @@ -3119,13 +3118,13 @@ def from_dict(obj: Any) -> "SessionShutdownData": token_details = from_union([from_none, lambda x: from_dict(ShutdownTokenDetail.from_dict, x)], obj.get("tokenDetails")) tool_definitions_tokens = from_union([from_none, from_int], obj.get("toolDefinitionsTokens")) total_nano_aiu = from_union([from_none, from_float], obj.get("totalNanoAiu")) + total_premium_requests = from_union([from_none, from_float], obj.get("totalPremiumRequests")) return SessionShutdownData( code_changes=code_changes, model_metrics=model_metrics, session_start_time=session_start_time, shutdown_type=shutdown_type, total_api_duration=total_api_duration, - total_premium_requests=total_premium_requests, conversation_tokens=conversation_tokens, current_model=current_model, current_tokens=current_tokens, @@ -3134,6 +3133,7 @@ def from_dict(obj: Any) -> "SessionShutdownData": token_details=token_details, tool_definitions_tokens=tool_definitions_tokens, total_nano_aiu=total_nano_aiu, + total_premium_requests=total_premium_requests, ) def to_dict(self) -> dict: @@ -3143,7 +3143,6 @@ def to_dict(self) -> dict: result["sessionStartTime"] = to_int(self.session_start_time) result["shutdownType"] = to_enum(ShutdownType, self.shutdown_type) result["totalApiDurationMs"] = to_timedelta_int(self.total_api_duration) - result["totalPremiumRequests"] = to_float(self.total_premium_requests) if self.conversation_tokens is not None: result["conversationTokens"] = from_union([from_none, to_int], self.conversation_tokens) if self.current_model is not None: @@ -3160,6 +3159,8 @@ def to_dict(self) -> dict: result["toolDefinitionsTokens"] = from_union([from_none, to_int], self.tool_definitions_tokens) if self.total_nano_aiu is not None: result["totalNanoAiu"] = from_union([from_none, to_float], self.total_nano_aiu) + if self.total_premium_requests is not None: + result["totalPremiumRequests"] = from_union([from_none, to_float], self.total_premium_requests) return result @@ -3546,14 +3547,14 @@ def to_dict(self) -> dict: @dataclass class ShutdownModelMetricRequests: "Request count and cost metrics" - cost: float - count: int + cost: float | None = None + count: int | None = None @staticmethod def from_dict(obj: Any) -> "ShutdownModelMetricRequests": assert isinstance(obj, dict) - cost = from_float(obj.get("cost")) - count = from_int(obj.get("count")) + cost = from_union([from_none, from_float], obj.get("cost")) + count = from_union([from_none, from_int], obj.get("count")) return ShutdownModelMetricRequests( cost=cost, count=count, @@ -3561,8 +3562,10 @@ def from_dict(obj: Any) -> "ShutdownModelMetricRequests": def to_dict(self) -> dict: result: dict = {} - result["cost"] = to_float(self.cost) - result["count"] = to_int(self.count) + if self.cost is not None: + result["cost"] = from_union([from_none, to_float], self.cost) + if self.count is not None: + result["count"] = from_union([from_none, to_int], self.count) return result @@ -4195,6 +4198,7 @@ class ToolExecutionCompleteData: # Deprecated: this field is deprecated. parent_tool_call_id: str | None = None result: ToolExecutionCompleteResult | None = None + sandboxed: bool | None = None tool_telemetry: dict[str, Any] | None = None turn_id: str | None = None @@ -4209,6 +4213,7 @@ def from_dict(obj: Any) -> "ToolExecutionCompleteData": model = from_union([from_none, from_str], obj.get("model")) parent_tool_call_id = from_union([from_none, from_str], obj.get("parentToolCallId")) result = from_union([from_none, ToolExecutionCompleteResult.from_dict], obj.get("result")) + sandboxed = from_union([from_none, from_bool], obj.get("sandboxed")) tool_telemetry = from_union([from_none, lambda x: from_dict(lambda x: x, x)], obj.get("toolTelemetry")) turn_id = from_union([from_none, from_str], obj.get("turnId")) return ToolExecutionCompleteData( @@ -4220,6 +4225,7 @@ def from_dict(obj: Any) -> "ToolExecutionCompleteData": model=model, parent_tool_call_id=parent_tool_call_id, result=result, + sandboxed=sandboxed, tool_telemetry=tool_telemetry, turn_id=turn_id, ) @@ -4240,6 +4246,8 @@ def to_dict(self) -> dict: result["parentToolCallId"] = from_union([from_none, from_str], self.parent_tool_call_id) if self.result is not None: result["result"] = from_union([from_none, lambda x: to_class(ToolExecutionCompleteResult, x)], self.result) + if self.sandboxed is not None: + result["sandboxed"] = from_union([from_none, from_bool], self.sandboxed) if self.tool_telemetry is not None: result["toolTelemetry"] = from_union([from_none, lambda x: from_dict(lambda x: x, x)], self.tool_telemetry) if self.turn_id is not None: diff --git a/rust/src/generated/api_types.rs b/rust/src/generated/api_types.rs index e801a7c80..0ef378f48 100644 --- a/rust/src/generated/api_types.rs +++ b/rust/src/generated/api_types.rs @@ -24,6 +24,8 @@ pub mod rpc_methods { pub const TOOLS_LIST: &str = "tools.list"; /// `account.getQuota` pub const ACCOUNT_GETQUOTA: &str = "account.getQuota"; + /// `secrets.addFilterValues` + pub const SECRETS_ADDFILTERVALUES: &str = "secrets.addFilterValues"; /// `mcp.config.list` pub const MCP_CONFIG_LIST: &str = "mcp.config.list"; /// `mcp.config.add` @@ -4925,6 +4927,22 @@ pub struct ScheduleStopResult { pub entry: Option, } +/// Secret values to add to the redaction filter. +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SecretsAddFilterValuesRequest { + /// Raw secret values to register for redaction + pub values: Vec, +} + +/// Confirmation that the secret values were registered. +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SecretsAddFilterValuesResult { + /// Whether the values were successfully registered + pub ok: bool, +} + /// Blob attachment with inline base64-encoded data /// ///
diff --git a/rust/src/generated/rpc.rs b/rust/src/generated/rpc.rs index f73d1bc00..b5599e09a 100644 --- a/rust/src/generated/rpc.rs +++ b/rust/src/generated/rpc.rs @@ -41,6 +41,13 @@ impl<'a> ClientRpc<'a> { } } + /// `secrets.*` sub-namespace. + pub fn secrets(&self) -> ClientRpcSecrets<'a> { + ClientRpcSecrets { + client: self.client, + } + } + /// `sessionFs.*` sub-namespace. pub fn session_fs(&self) -> ClientRpcSessionFs<'a> { ClientRpcSessionFs { @@ -340,6 +347,37 @@ impl<'a> ClientRpcModels<'a> { } } +/// `secrets.*` RPCs. +#[derive(Clone, Copy)] +pub struct ClientRpcSecrets<'a> { + pub(crate) client: &'a Client, +} + +impl<'a> ClientRpcSecrets<'a> { + /// Registers secret values for redaction in session logs and exports. The SDK calls this to inject dynamically generated secret values (e.g., OIDC tokens). + /// + /// Wire method: `secrets.addFilterValues`. + /// + /// # Parameters + /// + /// * `params` - Secret values to add to the redaction filter. + /// + /// # Returns + /// + /// Confirmation that the secret values were registered. + pub async fn add_filter_values( + &self, + params: SecretsAddFilterValuesRequest, + ) -> Result { + let wire_params = serde_json::to_value(params)?; + let _value = self + .client + .call(rpc_methods::SECRETS_ADDFILTERVALUES, Some(wire_params)) + .await?; + Ok(serde_json::from_value(_value)?) + } +} + /// `sessionFs.*` RPCs. #[derive(Clone, Copy)] pub struct ClientRpcSessionFs<'a> { diff --git a/rust/src/generated/session_events.rs b/rust/src/generated/session_events.rs index 319d632c1..1f6334466 100644 --- a/rust/src/generated/session_events.rs +++ b/rust/src/generated/session_events.rs @@ -723,9 +723,11 @@ pub struct ShutdownCodeChanges { #[serde(rename_all = "camelCase")] pub struct ShutdownModelMetricRequests { /// Cumulative cost multiplier for requests to this model - pub cost: f64, + #[serde(skip_serializing_if = "Option::is_none")] + pub cost: Option, /// Total number of API requests made to this model - pub count: i64, + #[serde(skip_serializing_if = "Option::is_none")] + pub count: Option, } /// Schema for the `ShutdownModelMetricTokenDetail` type. @@ -816,7 +818,8 @@ pub struct SessionShutdownData { #[serde(skip_serializing_if = "Option::is_none")] pub total_nano_aiu: Option, /// Total number of premium API requests used during the session - pub total_premium_requests: f64, + #[serde(skip_serializing_if = "Option::is_none")] + pub total_premium_requests: Option, } /// Session event "session.context_changed". Updated working directory and git context after the change @@ -1587,6 +1590,9 @@ pub struct ToolExecutionCompleteData { /// Tool execution result on success #[serde(skip_serializing_if = "Option::is_none")] pub result: Option, + /// Whether this tool execution ran inside a sandbox container + #[serde(skip_serializing_if = "Option::is_none")] + pub sandboxed: Option, /// Whether the tool execution completed successfully pub success: bool, /// Unique identifier for the completed tool call diff --git a/test/harness/package-lock.json b/test/harness/package-lock.json index 690cfab45..3e29965e5 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.52-0", + "@github/copilot": "^1.0.52-1", "@modelcontextprotocol/sdk": "^1.26.0", "@types/node": "^25.3.3", "@types/node-forge": "^1.3.14", @@ -464,9 +464,9 @@ } }, "node_modules/@github/copilot": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.52-0.tgz", - "integrity": "sha512-OpeTdTaPgOwnhdGz5eSQLpcXLm5SPLWDcBRTMtCKANSyNVZCB3xHVEfMtzis+BVdePr1fSnnGIAYaG5wYnsdSg==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.52-1.tgz", + "integrity": "sha512-oz6m/dOpTU+FaCWXqYZj5JkJmRT+/RYcrmtGal39V+gOxTA2Nc9wIeLH1SMwMoOXC9Q6DN6keiY0wqWcHirPVg==", "dev": true, "license": "SEE LICENSE IN LICENSE.md", "dependencies": { @@ -476,20 +476,20 @@ "copilot": "npm-loader.js" }, "optionalDependencies": { - "@github/copilot-darwin-arm64": "1.0.52-0", - "@github/copilot-darwin-x64": "1.0.52-0", - "@github/copilot-linux-arm64": "1.0.52-0", - "@github/copilot-linux-x64": "1.0.52-0", - "@github/copilot-linuxmusl-arm64": "1.0.52-0", - "@github/copilot-linuxmusl-x64": "1.0.52-0", - "@github/copilot-win32-arm64": "1.0.52-0", - "@github/copilot-win32-x64": "1.0.52-0" + "@github/copilot-darwin-arm64": "1.0.52-1", + "@github/copilot-darwin-x64": "1.0.52-1", + "@github/copilot-linux-arm64": "1.0.52-1", + "@github/copilot-linux-x64": "1.0.52-1", + "@github/copilot-linuxmusl-arm64": "1.0.52-1", + "@github/copilot-linuxmusl-x64": "1.0.52-1", + "@github/copilot-win32-arm64": "1.0.52-1", + "@github/copilot-win32-x64": "1.0.52-1" } }, "node_modules/@github/copilot-darwin-arm64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.52-0.tgz", - "integrity": "sha512-LgnSEze1LmrmnKNFP4fYRhH4tmxk0xz7yjXtWb/cuMBkXgAS4nUb5HaO5NZWVbldHshXWuPfOl0cuG7oFuDX8Q==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.52-1.tgz", + "integrity": "sha512-DWXtC/yItZVtkSQhPyRMEkFwa2mcY2rg2cu/uwJ15L9ReiYvlKYEZQDe1TMqkT+U6+k9KjA2L2HQfXVm14/vTw==", "cpu": [ "arm64" ], @@ -504,9 +504,9 @@ } }, "node_modules/@github/copilot-darwin-x64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.52-0.tgz", - "integrity": "sha512-WFyeJIN5YsGRrdJPMnRBQrhU6BP0yt0PGOqOR1yvCp3n0cIVAF9sDn0fvQTCMo6cI7XAeqIrlI1xSc4nFidZDg==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.52-1.tgz", + "integrity": "sha512-NFTJkzzlTALMfbj9CDJ7N09PRPTVFq1+71hk+zoNx1uT/pi954liV6tKSaNAihPIXTMQKfJXGwEdjtvACpc8Vg==", "cpu": [ "x64" ], @@ -521,9 +521,9 @@ } }, "node_modules/@github/copilot-linux-arm64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.52-0.tgz", - "integrity": "sha512-bOE+v954tpSXq75S3kN/Qz+91KrM8i7b3P+2+4OA2zSGNy3sKUfadKsLGJf6cmGefJCe+BVrYhVxhYhltSQJJA==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.52-1.tgz", + "integrity": "sha512-CZE29v+RPJClHgVE1rU+RpRWSG8lm48koRZ0taKVopqLRD6NWKjBOwFKYJojk08H8/K+BWr/paM5+R8hEZHxZw==", "cpu": [ "arm64" ], @@ -538,9 +538,9 @@ } }, "node_modules/@github/copilot-linux-x64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.52-0.tgz", - "integrity": "sha512-5NCuxj2nIq4Qu5QzlK8SYxi2K2zge4ZFUGJEAgt6bTac7MFIHoBAX/59GSRca1BAR+fi61HS6W5SQUHVuWA7rQ==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.52-1.tgz", + "integrity": "sha512-tJhLQV70TJLq3hPXg7P6pHPfE4vaT2nENIXZsHu6fBkOcsSAxX1APSv6Bkyfsiod8EfFHkcG2+n7VXiVg8WqFw==", "cpu": [ "x64" ], @@ -555,9 +555,9 @@ } }, "node_modules/@github/copilot-linuxmusl-arm64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.52-0.tgz", - "integrity": "sha512-0l6CSFNDtGwhLBuUMEBpnQB8olPeTwTc9yfCWhq1z4LtbJ4U/tdQdEJsd/EZIOzWJbXZKqDyL6iMkkme6v3B8w==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.52-1.tgz", + "integrity": "sha512-u24wHsUumldUEPWX/5z5IEuJvixiQEYF82N04P1g65dvOknq+89dpj+GND4Rh3Vr5u13drgj5AJqkJbWB8N+EQ==", "cpu": [ "arm64" ], @@ -572,9 +572,9 @@ } }, "node_modules/@github/copilot-linuxmusl-x64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.52-0.tgz", - "integrity": "sha512-gDAf2jrK4uKly/tdoZK4PiOx7wOvHbpFgbdXBDby/tph7/l4+hKxPsXNak+bEbBoCrLeYaSMIurbaubC8UoXUg==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.52-1.tgz", + "integrity": "sha512-wM22FxcHL8NlnesKKQPPvtk4ojqefN7irU5tQcX+IunpD1izVQl7AOXhZyHoQ21zQnN0De8EapxOUc+WnvlxpA==", "cpu": [ "x64" ], @@ -589,9 +589,9 @@ } }, "node_modules/@github/copilot-win32-arm64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.52-0.tgz", - "integrity": "sha512-DdmNzqGMZC2TkR6Bu4V4rRo6fb8KmKKlJ7FIRLkBiX33Khps1PVxKqk/TTuao6w4WvT/Sxk5gGh63mshRYlASA==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.52-1.tgz", + "integrity": "sha512-ecvfl9N7DPSwpiT2ZNUSXR1ZrSKwpkByOU6VcNphh4RptPZ0iNfyRNLhFCwSfFz+FvB6z2LZi+F7jSzQ3SaT3w==", "cpu": [ "arm64" ], @@ -606,9 +606,9 @@ } }, "node_modules/@github/copilot-win32-x64": { - "version": "1.0.52-0", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.52-0.tgz", - "integrity": "sha512-uvUsnPAwZwNQEmC0yQ6o8O2odQzU6RU4JE9pHTyZGmvScZ9iRvb/ZQ8oR+Dmd+RapJbCnfLMm+39yValmtGG5g==", + "version": "1.0.52-1", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.52-1.tgz", + "integrity": "sha512-a9Ct7krktP+/pfPdh/K57deYzzmL13e5Tb1pf5E152u4o/5xKzfgroNFUOzotFfFhs1jFhdzKCm3WHNLIvVEHA==", "cpu": [ "x64" ], diff --git a/test/harness/package.json b/test/harness/package.json index 90d2eb804..dddf8fa5f 100644 --- a/test/harness/package.json +++ b/test/harness/package.json @@ -11,7 +11,7 @@ "test": "vitest run" }, "devDependencies": { - "@github/copilot": "^1.0.52-0", + "@github/copilot": "^1.0.52-1", "@modelcontextprotocol/sdk": "^1.26.0", "@types/node": "^25.3.3", "@types/node-forge": "^1.3.14", From 612a133f92a107952b5e0b69a95fb67f69f736cd Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Thu, 21 May 2026 22:14:06 -0400 Subject: [PATCH 2/3] Fix duplicate Go experimental comments Avoid adding generated Go experimental doc comments when the leading doc block already contains the same notice. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- go/rpc/zrpc.go | 6 ------ scripts/codegen/go.ts | 38 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/go/rpc/zrpc.go b/go/rpc/zrpc.go index eb9bbce2b..d2a332e49 100644 --- a/go/rpc/zrpc.go +++ b/go/rpc/zrpc.go @@ -1108,8 +1108,6 @@ type InstalledPlugin struct { // Source for direct repo installs (when marketplace is empty) // Experimental: InstalledPluginSource is part of an experimental API and may change or be // removed. -// Experimental: InstalledPluginSource is part of an experimental API and may change or be -// removed. type InstalledPluginSource struct { InstalledPluginSourceGithub *InstalledPluginSourceGithub InstalledPluginSourceLocal *InstalledPluginSourceLocal @@ -1361,8 +1359,6 @@ type McpExecuteSamplingRequest struct { // construct/consume it per the MCP CreateMessageResult shape. // Experimental: McpExecuteSamplingResult is part of an experimental API and may change or // be removed. -// Experimental: McpExecuteSamplingResult is part of an experimental API and may change or -// be removed. type McpExecuteSamplingResult struct { } @@ -3801,8 +3797,6 @@ type SessionInstalledPlugin struct { // Source descriptor for direct repo installs (when marketplace is empty) // Experimental: SessionInstalledPluginSource is part of an experimental API and may change // or be removed. -// Experimental: SessionInstalledPluginSource is part of an experimental API and may change -// or be removed. type SessionInstalledPluginSource struct { SessionInstalledPluginSourceGithub *SessionInstalledPluginSourceGithub SessionInstalledPluginSourceLocal *SessionInstalledPluginSourceLocal diff --git a/scripts/codegen/go.ts b/scripts/codegen/go.ts index 03a8da8e8..6723906d4 100644 --- a/scripts/codegen/go.ts +++ b/scripts/codegen/go.ts @@ -158,6 +158,33 @@ function pushGoExperimentalTypeComment(lines: string[], typeName: string, ctx: G pushGoCommentForContext(lines, goExperimentalTypeComment(typeName), ctx); } +function hasGoCommentLinesInLeadingDocBlock(source: string, typeDeclOffset: number, commentLines: string[]): boolean { + const precedingLines = source.slice(0, typeDeclOffset).split(/\r?\n/); + if (precedingLines[precedingLines.length - 1] === "") { + precedingLines.pop(); + } + + const docBlockLines: string[] = []; + for (let i = precedingLines.length - 1; i >= 0; i--) { + const line = precedingLines[i]; + if (line.trim() === "") { + break; + } + if (!line.startsWith("//")) { + break; + } + docBlockLines.unshift(line); + } + + for (let i = 0; i <= docBlockLines.length - commentLines.length; i++) { + if (commentLines.every((commentLine, offset) => docBlockLines[i + offset] === commentLine)) { + return true; + } + } + + return false; +} + function pushGoExperimentalEventComment(lines: string[], constName: string, indent = ""): void { pushGoComment(lines, `Experimental: ${constName} identifies an experimental event that may change or be removed.`, indent); } @@ -3559,9 +3586,16 @@ async function generateRpc(schemaPath?: string): Promise { } for (const typeName of experimentalTypeNames) { const emittedTypeName = resolveType(typeName); + const experimentalCommentLines = goCommentLines(goExperimentalTypeComment(emittedTypeName)); + const experimentalComment = experimentalCommentLines.join("\n"); generatedTypeCode = generatedTypeCode.replace( - new RegExp(`^(type ${escapeRegExp(emittedTypeName)}\\b)`, "m"), - `// ${goExperimentalTypeComment(emittedTypeName)}\n$1` + new RegExp(`^type ${escapeRegExp(emittedTypeName)}\\b`, "m"), + (typeDeclaration: string, offset: number, source: string) => { + if (hasGoCommentLinesInLeadingDocBlock(source, offset, experimentalCommentLines)) { + return typeDeclaration; + } + return `${experimentalComment}\n${typeDeclaration}`; + } ); } From df07fd0874568e695182596ed7e86423eee79f1e Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Thu, 21 May 2026 22:40:39 -0400 Subject: [PATCH 3/3] Align Node tool telemetry type Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- nodejs/src/index.ts | 1 + nodejs/src/types.ts | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/nodejs/src/index.ts b/nodejs/src/index.ts index bd1dd0af1..6ada0f141 100644 --- a/nodejs/src/index.ts +++ b/nodejs/src/index.ts @@ -117,6 +117,7 @@ export type { Tool, ToolHandler, ToolInvocation, + ToolTelemetry, ToolResultObject, TypedSessionEventHandler, TypedSessionLifecycleHandler, diff --git a/nodejs/src/types.ts b/nodejs/src/types.ts index ebf701685..c212d6722 100644 --- a/nodejs/src/types.ts +++ b/nodejs/src/types.ts @@ -298,13 +298,15 @@ export type ToolBinaryResult = { description?: string; }; +export type ToolTelemetry = Record | undefined>; + export type ToolResultObject = { textResultForLlm: string; binaryResultsForLlm?: ToolBinaryResult[]; resultType: ToolResultType; error?: string; sessionLog?: string; - toolTelemetry?: Record; + toolTelemetry?: ToolTelemetry; }; export type ToolResult = string | ToolResultObject;