From f91e24d60ba38510377c0f994783cf2d834fe74c Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 19:10:01 +0000
Subject: [PATCH 01/10] Update @github/copilot to 1.0.47
- Updated nodejs and test harness dependencies
- Re-ran code generators
- Formatted generated code
---
dotnet/src/Generated/Rpc.cs | 282 ++++++++++-
dotnet/src/Generated/SessionEvents.cs | 77 +++
go/rpc/zrpc.go | 215 +++++++-
go/rpc/zrpc_encoding.go | 80 +++
go/zsession_encoding.go | 2 +
go/zsession_events.go | 14 +
nodejs/package-lock.json | 56 +--
nodejs/package.json | 2 +-
nodejs/samples/package-lock.json | 2 +-
nodejs/src/generated/rpc.ts | 214 +++++++-
nodejs/src/generated/session-events.ts | 9 +
python/copilot/generated/rpc.py | 545 ++++++++++++++++++++-
python/copilot/generated/session_events.py | 18 +
rust/src/generated/api_types.rs | 241 +++++++++
rust/src/generated/rpc.rs | 30 +-
rust/src/generated/session_events.rs | 22 +
test/harness/package-lock.json | 56 +--
test/harness/package.json | 2 +-
18 files changed, 1771 insertions(+), 96 deletions(-)
diff --git a/dotnet/src/Generated/Rpc.cs b/dotnet/src/Generated/Rpc.cs
index d51dff03e..f99ba1b1f 100644
--- a/dotnet/src/Generated/Rpc.cs
+++ b/dotnet/src/Generated/Rpc.cs
@@ -65,12 +65,36 @@ internal sealed class ConnectRequest
public string? Token { get; set; }
}
+/// Token-level pricing information for this model.
+public sealed class ModelBillingTokenPrices
+{
+ /// Number of tokens per standard billing batch.
+ [JsonPropertyName("batchSize")]
+ public long? BatchSize { get; set; }
+
+ /// Price per billing batch of cached tokens in nano-AIUs (1 nano-AIU = 0.000000001 AIU, 1 AIU = $0.01 USD).
+ [JsonPropertyName("cachePrice")]
+ public long? CachePrice { get; set; }
+
+ /// Price per billing batch of input tokens in nano-AIUs (1 nano-AIU = 0.000000001 AIU, 1 AIU = $0.01 USD).
+ [JsonPropertyName("inputPrice")]
+ public long? InputPrice { get; set; }
+
+ /// Price per billing batch of output tokens in nano-AIUs (1 nano-AIU = 0.000000001 AIU, 1 AIU = $0.01 USD).
+ [JsonPropertyName("outputPrice")]
+ public long? OutputPrice { get; set; }
+}
+
/// Billing information.
public sealed class ModelBilling
{
/// Billing cost multiplier relative to the base rate.
[JsonPropertyName("multiplier")]
public double? Multiplier { get; set; }
+
+ /// Token-level pricing information for this model.
+ [JsonPropertyName("tokenPrices")]
+ public ModelBillingTokenPrices? TokenPrices { get; set; }
}
/// Vision-specific limits.
@@ -492,6 +516,10 @@ internal sealed class SessionFsSetProviderRequest
[Experimental(Diagnostics.Experimental)]
public sealed class SessionsForkResult
{
+ /// Friendly name assigned to the forked session, if any.
+ [JsonPropertyName("name")]
+ public string? Name { get; set; }
+
/// The new forked session's ID.
[JsonPropertyName("sessionId")]
public string SessionId { get; set; } = string.Empty;
@@ -501,6 +529,10 @@ public sealed class SessionsForkResult
[Experimental(Diagnostics.Experimental)]
internal sealed class SessionsForkRequest
{
+ /// Optional friendly name to assign to the forked session.
+ [JsonPropertyName("name")]
+ public string? Name { get; set; }
+
/// Source session ID to fork from.
[JsonPropertyName("sessionId")]
public string SessionId { get; set; } = string.Empty;
@@ -1494,6 +1526,19 @@ internal sealed class SkillsDisableRequest
public string SessionId { get; set; } = string.Empty;
}
+/// RPC data type for SkillsLoadDiagnostics operations.
+[Experimental(Diagnostics.Experimental)]
+public sealed class SkillsLoadDiagnostics
+{
+ /// Errors emitted while loading skills (e.g. skills that failed to load entirely).
+ [JsonPropertyName("errors")]
+ public IList Errors { get => field ??= []; set; }
+
+ /// Warnings emitted while loading skills (e.g. skills that loaded but had issues).
+ [JsonPropertyName("warnings")]
+ public IList Warnings { get => field ??= []; set; }
+}
+
/// RPC data type for SessionSkillsReload operations.
[Experimental(Diagnostics.Experimental)]
internal sealed class SessionSkillsReloadRequest
@@ -1765,6 +1810,90 @@ internal sealed class HandlePendingToolCallRequest
public string SessionId { get; set; } = string.Empty;
}
+/// Optional unstructured input hint.
+public sealed class SlashCommandInput
+{
+ /// Optional completion hint for the input (e.g. 'directory' for filesystem path completion).
+ [JsonPropertyName("completion")]
+ public SlashCommandInputCompletion? Completion { get; set; }
+
+ /// Hint to display when command input has not been provided.
+ [JsonPropertyName("hint")]
+ public string Hint { get; set; } = string.Empty;
+
+ /// When true, clients should pass the full text after the command name as a single argument rather than splitting on whitespace.
+ [JsonPropertyName("preserveMultilineInput")]
+ public bool? PreserveMultilineInput { get; set; }
+
+ /// When true, the command requires non-empty input; clients should render the input hint as required.
+ [JsonPropertyName("required")]
+ public bool? Required { get; set; }
+}
+
+/// RPC data type for SlashCommandInfo operations.
+public sealed class SlashCommandInfo
+{
+ /// Canonical aliases without leading slashes.
+ [JsonPropertyName("aliases")]
+ public IList? Aliases { get; set; }
+
+ /// Whether the command may run while an agent turn is active.
+ [JsonPropertyName("allowDuringAgentExecution")]
+ public bool AllowDuringAgentExecution { get; set; }
+
+ /// Human-readable command description.
+ [JsonPropertyName("description")]
+ public string Description { get; set; } = string.Empty;
+
+ /// Whether the command is experimental.
+ [JsonPropertyName("experimental")]
+ public bool? Experimental { get; set; }
+
+ /// Optional unstructured input hint.
+ [JsonPropertyName("input")]
+ public SlashCommandInput? Input { get; set; }
+
+ /// Coarse command category for grouping and behavior: runtime built-in, skill-backed command, or SDK/client-owned command.
+ [JsonPropertyName("kind")]
+ public SlashCommandKind Kind { get; set; }
+
+ /// Canonical command name without a leading slash.
+ [JsonPropertyName("name")]
+ public string Name { get; set; } = string.Empty;
+}
+
+/// RPC data type for CommandList operations.
+public sealed class CommandList
+{
+ /// Commands available in this session.
+ [JsonPropertyName("commands")]
+ public IList Commands { get => field ??= []; set; }
+}
+
+/// RPC data type for CommandsList operations.
+internal sealed class CommandsListRequest
+{
+ /// Target session identifier.
+ [JsonPropertyName("sessionId")]
+ public string SessionId { get; set; } = string.Empty;
+}
+
+/// RPC data type for CommandsInvoke operations.
+internal sealed class CommandsInvokeRequest
+{
+ /// Raw input after the command name.
+ [JsonPropertyName("input")]
+ public string? Input { get; set; }
+
+ /// Command name. Leading slashes are stripped and the name is matched case-insensitively.
+ [JsonPropertyName("name")]
+ public string Name { get; set; } = string.Empty;
+
+ /// Target session identifier.
+ [JsonPropertyName("sessionId")]
+ public string SessionId { get; set; } = string.Empty;
+}
+
/// RPC data type for CommandsHandlePendingCommand operations.
public sealed class CommandsHandlePendingCommandResult
{
@@ -4223,6 +4352,130 @@ public override void Write(Utf8JsonWriter writer, ExtensionStatus value, JsonSer
}
+/// Optional completion hint for the input (e.g. 'directory' for filesystem path completion).
+[JsonConverter(typeof(Converter))]
+[DebuggerDisplay("{Value,nq}")]
+public readonly struct SlashCommandInputCompletion : IEquatable
+{
+ private readonly string? _value;
+
+ /// Initializes a new instance of the struct.
+ /// The value to associate with this .
+ [JsonConstructor]
+ public SlashCommandInputCompletion(string value)
+ {
+ ArgumentException.ThrowIfNullOrWhiteSpace(value);
+ _value = value;
+ }
+
+ /// Gets the value associated with this .
+ public string Value => _value ?? string.Empty;
+
+ /// Gets the directory value.
+ public static SlashCommandInputCompletion Directory { get; } = new("directory");
+
+ /// Returns a value indicating whether two instances are equivalent.
+ public static bool operator ==(SlashCommandInputCompletion left, SlashCommandInputCompletion right) => left.Equals(right);
+
+ /// Returns a value indicating whether two instances are not equivalent.
+ public static bool operator !=(SlashCommandInputCompletion left, SlashCommandInputCompletion right) => !(left == right);
+
+ ///
+ public override bool Equals(object? obj) => obj is SlashCommandInputCompletion other && Equals(other);
+
+ ///
+ public bool Equals(SlashCommandInputCompletion 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 SlashCommandInputCompletion Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+ {
+ return new(GitHub.Copilot.SDK.GeneratedStringEnumJson.ReadValue(ref reader, typeToConvert));
+ }
+
+ ///
+ public override void Write(Utf8JsonWriter writer, SlashCommandInputCompletion value, JsonSerializerOptions options)
+ {
+ GitHub.Copilot.SDK.GeneratedStringEnumJson.WriteValue(writer, value.Value, typeof(SlashCommandInputCompletion));
+ }
+ }
+}
+
+
+/// Coarse command category for grouping and behavior: runtime built-in, skill-backed command, or SDK/client-owned command.
+[JsonConverter(typeof(Converter))]
+[DebuggerDisplay("{Value,nq}")]
+public readonly struct SlashCommandKind : IEquatable
+{
+ private readonly string? _value;
+
+ /// Initializes a new instance of the struct.
+ /// The value to associate with this .
+ [JsonConstructor]
+ public SlashCommandKind(string value)
+ {
+ ArgumentException.ThrowIfNullOrWhiteSpace(value);
+ _value = value;
+ }
+
+ /// Gets the value associated with this .
+ public string Value => _value ?? string.Empty;
+
+ /// Gets the builtin value.
+ public static SlashCommandKind Builtin { get; } = new("builtin");
+
+ /// Gets the skill value.
+ public static SlashCommandKind Skill { get; } = new("skill");
+
+ /// Gets the client value.
+ public static SlashCommandKind Client { get; } = new("client");
+
+ /// Returns a value indicating whether two instances are equivalent.
+ public static bool operator ==(SlashCommandKind left, SlashCommandKind right) => left.Equals(right);
+
+ /// Returns a value indicating whether two instances are not equivalent.
+ public static bool operator !=(SlashCommandKind left, SlashCommandKind right) => !(left == right);
+
+ ///
+ public override bool Equals(object? obj) => obj is SlashCommandKind other && Equals(other);
+
+ ///
+ public bool Equals(SlashCommandKind 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 SlashCommandKind Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+ {
+ return new(GitHub.Copilot.SDK.GeneratedStringEnumJson.ReadValue(ref reader, typeToConvert));
+ }
+
+ ///
+ public override void Write(Utf8JsonWriter writer, SlashCommandKind value, JsonSerializerOptions options)
+ {
+ GitHub.Copilot.SDK.GeneratedStringEnumJson.WriteValue(writer, value.Value, typeof(SlashCommandKind));
+ }
+ }
+}
+
+
/// The user's response: accept (submitted), decline (rejected), or cancel (dismissed).
[JsonConverter(typeof(Converter))]
[DebuggerDisplay("{Value,nq}")]
@@ -4728,9 +4981,9 @@ internal ServerSessionsApi(JsonRpc rpc)
}
/// Calls "sessions.fork".
- public async Task ForkAsync(string sessionId, string? toEventId = null, CancellationToken cancellationToken = default)
+ public async Task ForkAsync(string sessionId, string? toEventId = null, string? name = null, CancellationToken cancellationToken = default)
{
- var request = new SessionsForkRequest { SessionId = sessionId, ToEventId = toEventId };
+ var request = new SessionsForkRequest { SessionId = sessionId, ToEventId = toEventId, Name = name };
return await CopilotClient.InvokeRpcAsync(_rpc, "sessions.fork", [request], cancellationToken);
}
}
@@ -5207,10 +5460,10 @@ public async Task DisableAsync(string name, CancellationToken cancellationToken
}
/// Calls "session.skills.reload".
- public async Task ReloadAsync(CancellationToken cancellationToken = default)
+ public async Task ReloadAsync(CancellationToken cancellationToken = default)
{
var request = new SessionSkillsReloadRequest { SessionId = _sessionId };
- await CopilotClient.InvokeRpcAsync(_rpc, "session.skills.reload", [request], cancellationToken);
+ return await CopilotClient.InvokeRpcAsync(_rpc, "session.skills.reload", [request], cancellationToken);
}
}
@@ -5376,6 +5629,20 @@ internal CommandsApi(JsonRpc rpc, string sessionId)
_sessionId = sessionId;
}
+ /// Calls "session.commands.list".
+ public async Task ListAsync(CancellationToken cancellationToken = default)
+ {
+ var request = new CommandsListRequest { SessionId = _sessionId };
+ return await CopilotClient.InvokeRpcAsync(_rpc, "session.commands.list", [request], cancellationToken);
+ }
+
+ /// Calls "session.commands.invoke".
+ public async Task