diff --git a/dotnet/src/Generated/Rpc.cs b/dotnet/src/Generated/Rpc.cs
index efed73c1d..cbb91eca9 100644
--- a/dotnet/src/Generated/Rpc.cs
+++ b/dotnet/src/Generated/Rpc.cs
@@ -2853,10 +2853,14 @@ public sealed class RemoteEnableResult
public string? Url { get; set; }
}
-/// RPC data type for SessionRemoteEnable operations.
+/// RPC data type for RemoteEnable operations.
[Experimental(Diagnostics.Experimental)]
-internal sealed class SessionRemoteEnableRequest
+internal sealed class RemoteEnableRequest
{
+ /// Per-session remote mode. "off" disables remote, "export" exports session events to Mission Control without enabling remote steering, "on" enables both export and remote steering.
+ [JsonPropertyName("mode")]
+ public RemoteSessionMode? Mode { get; set; }
+
/// Target session identifier.
[JsonPropertyName("sessionId")]
public string SessionId { get; set; } = string.Empty;
@@ -4785,6 +4789,71 @@ public override void Write(Utf8JsonWriter writer, ShellKillSignal value, JsonSer
}
+/// Per-session remote mode. "off" disables remote, "export" exports session events to Mission Control without enabling remote steering, "on" enables both export and remote steering.
+[JsonConverter(typeof(Converter))]
+[DebuggerDisplay("{Value,nq}")]
+public readonly struct RemoteSessionMode : IEquatable
+{
+ private readonly string? _value;
+
+ /// Initializes a new instance of the struct.
+ /// The value to associate with this .
+ [JsonConstructor]
+ public RemoteSessionMode(string value)
+ {
+ ArgumentException.ThrowIfNullOrWhiteSpace(value);
+ _value = value;
+ }
+
+ /// Gets the value associated with this .
+ public string Value => _value ?? string.Empty;
+
+ /// Gets the off value.
+ public static RemoteSessionMode Off { get; } = new("off");
+
+ /// Gets the export value.
+ public static RemoteSessionMode Export { get; } = new("export");
+
+ /// Gets the on value.
+ public static RemoteSessionMode On { get; } = new("on");
+
+ /// Returns a value indicating whether two instances are equivalent.
+ public static bool operator ==(RemoteSessionMode left, RemoteSessionMode right) => left.Equals(right);
+
+ /// Returns a value indicating whether two instances are not equivalent.
+ public static bool operator !=(RemoteSessionMode left, RemoteSessionMode right) => !(left == right);
+
+ ///
+ public override bool Equals(object? obj) => obj is RemoteSessionMode other && Equals(other);
+
+ ///
+ public bool Equals(RemoteSessionMode 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 RemoteSessionMode Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+ {
+ return new(GitHub.Copilot.SDK.GeneratedStringEnumJson.ReadValue(ref reader, typeToConvert));
+ }
+
+ ///
+ public override void Write(Utf8JsonWriter writer, RemoteSessionMode value, JsonSerializerOptions options)
+ {
+ GitHub.Copilot.SDK.GeneratedStringEnumJson.WriteValue(writer, value.Value, typeof(RemoteSessionMode));
+ }
+ }
+}
+
+
/// Error classification.
[JsonConverter(typeof(Converter))]
[DebuggerDisplay("{Value,nq}")]
@@ -5988,9 +6057,9 @@ internal RemoteApi(JsonRpc rpc, string sessionId)
}
/// Calls "session.remote.enable".
- public async Task EnableAsync(CancellationToken cancellationToken = default)
+ public async Task EnableAsync(RemoteSessionMode? mode = null, CancellationToken cancellationToken = default)
{
- var request = new SessionRemoteEnableRequest { SessionId = _sessionId };
+ var request = new RemoteEnableRequest { SessionId = _sessionId, Mode = mode };
return await CopilotClient.InvokeRpcAsync(_rpc, "session.remote.enable", [request], cancellationToken);
}
@@ -6202,6 +6271,7 @@ public static void RegisterClientSessionApiHandlers(JsonRpc rpc, FuncScheduled prompt registered via /every.
+/// Scheduled prompt registered via /every or /after.
/// Represents the session.schedule_created event.
public partial class SessionScheduleCreatedEvent : SessionEvent
{
@@ -1348,7 +1348,7 @@ public partial class SessionTitleChangedData
public required string Title { get; set; }
}
-/// Scheduled prompt registered via /every.
+/// Scheduled prompt registered via /every or /after.
public partial class SessionScheduleCreatedData
{
/// Sequential id assigned to the scheduled prompt within the session.
@@ -1362,6 +1362,11 @@ public partial class SessionScheduleCreatedData
/// Prompt text that gets enqueued on every tick.
[JsonPropertyName("prompt")]
public required string Prompt { get; set; }
+
+ /// Whether the schedule re-arms after each tick (`/every`) or fires once (`/after`).
+ [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+ [JsonPropertyName("recurring")]
+ public bool? Recurring { get; set; }
}
/// Scheduled prompt cancelled from the schedule manager dialog.
diff --git a/go/rpc/zrpc.go b/go/rpc/zrpc.go
index f83d26baa..6bddea23c 100644
--- a/go/rpc/zrpc.go
+++ b/go/rpc/zrpc.go
@@ -1258,6 +1258,15 @@ type QueuedCommandResult struct {
type RemoteDisableResult struct {
}
+// Experimental: RemoteEnableRequest is part of an experimental API and may change or be
+// removed.
+type RemoteEnableRequest struct {
+ // Per-session remote mode. "off" disables remote, "export" exports session events to
+ // Mission Control without enabling remote steering, "on" enables both export and remote
+ // steering.
+ Mode *RemoteSessionMode `json:"mode,omitempty"`
+}
+
// Experimental: RemoteEnableResult is part of an experimental API and may change or be
// removed.
type RemoteEnableResult struct {
@@ -2414,6 +2423,17 @@ const (
PermissionDecisionKindUserNotAvailable PermissionDecisionKind = "user-not-available"
)
+// Per-session remote mode. "off" disables remote, "export" exports session events to
+// Mission Control without enabling remote steering, "on" enables both export and remote
+// steering.
+type RemoteSessionMode string
+
+const (
+ RemoteSessionModeExport RemoteSessionMode = "export"
+ RemoteSessionModeOff RemoteSessionMode = "off"
+ RemoteSessionModeOn RemoteSessionMode = "on"
+)
+
// Error classification
type SessionFsErrorCode string
@@ -3511,8 +3531,13 @@ func (a *RemoteApi) Disable(ctx context.Context) (*RemoteDisableResult, error) {
return &result, nil
}
-func (a *RemoteApi) Enable(ctx context.Context) (*RemoteEnableResult, error) {
+func (a *RemoteApi) Enable(ctx context.Context, params *RemoteEnableRequest) (*RemoteEnableResult, error) {
req := map[string]any{"sessionId": a.sessionID}
+ if params != nil {
+ if params.Mode != nil {
+ req["mode"] = *params.Mode
+ }
+ }
raw, err := a.client.Request("session.remote.enable", req)
if err != nil {
return nil, err
diff --git a/go/zsession_events.go b/go/zsession_events.go
index c92c53d7e..fb4b852e2 100644
--- a/go/zsession_events.go
+++ b/go/zsession_events.go
@@ -775,7 +775,7 @@ func (*SessionScheduleCancelledData) Type() SessionEventType {
return SessionEventTypeSessionScheduleCancelled
}
-// Scheduled prompt registered via /every
+// Scheduled prompt registered via /every or /after
type SessionScheduleCreatedData struct {
// Sequential id assigned to the scheduled prompt within the session
ID int64 `json:"id"`
@@ -783,6 +783,8 @@ type SessionScheduleCreatedData struct {
IntervalMs int64 `json:"intervalMs"`
// Prompt text that gets enqueued on every tick
Prompt string `json:"prompt"`
+ // Whether the schedule re-arms after each tick (`/every`) or fires once (`/after`)
+ Recurring *bool `json:"recurring,omitempty"`
}
func (*SessionScheduleCreatedData) sessionEventData() {}
diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json
index b341f485c..4a45d8f02 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.47",
+ "@github/copilot": "^1.0.48-1",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
@@ -663,26 +663,26 @@
}
},
"node_modules/@github/copilot": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.47.tgz",
- "integrity": "sha512-U4WrajOOjjMVleqIRvRt+kDsjYQPLHxtJMMtdzW2N18dbRddlxqN+qo6ZOxOTy3tks2+YI+G89zyO1qpxpuWSg==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.48-1.tgz",
+ "integrity": "sha512-8Y+Lf26h5Qq6ADXQ7wUAEvMil8BXKHDv9omlKXrFCmmAUzk+a36Y+LpvdSUBPxDyf4h/A8gUq6qJ63649a5sWg==",
"license": "SEE LICENSE IN LICENSE.md",
"bin": {
"copilot": "npm-loader.js"
},
"optionalDependencies": {
- "@github/copilot-darwin-arm64": "1.0.47",
- "@github/copilot-darwin-x64": "1.0.47",
- "@github/copilot-linux-arm64": "1.0.47",
- "@github/copilot-linux-x64": "1.0.47",
- "@github/copilot-win32-arm64": "1.0.47",
- "@github/copilot-win32-x64": "1.0.47"
+ "@github/copilot-darwin-arm64": "1.0.48-1",
+ "@github/copilot-darwin-x64": "1.0.48-1",
+ "@github/copilot-linux-arm64": "1.0.48-1",
+ "@github/copilot-linux-x64": "1.0.48-1",
+ "@github/copilot-win32-arm64": "1.0.48-1",
+ "@github/copilot-win32-x64": "1.0.48-1"
}
},
"node_modules/@github/copilot-darwin-arm64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.47.tgz",
- "integrity": "sha512-sGuN+7VfBjOTbPkyKFm0dPfp1hwyNsJVkNsV+3xmOwVsGy3nhROc76sQ5SWWSmyDGl7H58KnpPazlSDwbpf4PQ==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.48-1.tgz",
+ "integrity": "sha512-ZaacHYawrFD22LgfIBpVUqlfj6d6IogVPnyQVXjAWDvZ3JLXWCzX7OpTGJ/BWgU5HJwUkmr0ZyVqBTrfTrdCZQ==",
"cpu": [
"arm64"
],
@@ -696,9 +696,9 @@
}
},
"node_modules/@github/copilot-darwin-x64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.47.tgz",
- "integrity": "sha512-nVHYbzvOau5zy4nONWZPXROIrqzd7DhY12bMkE7spLe7lj0Sh6MFtTdPpMT7kkaObEikGYLTrZtOUpguwqHkmA==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.48-1.tgz",
+ "integrity": "sha512-cHpz8onmXlABNm8jBUON0fUm/7Koe853zHK349qq8mhZkdlNN3zCn0zkZQuzrJZfJbxrjFOV863N0+F3zGBU1w==",
"cpu": [
"x64"
],
@@ -712,9 +712,9 @@
}
},
"node_modules/@github/copilot-linux-arm64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.47.tgz",
- "integrity": "sha512-7aDoE6pnSGcCTuPdJKyHfzif/Rj1z5UE0gLMHHQMo1QIYJkUZFX7mV8Ng4zB+2edq8lNL5DiYRcbFajV54ibSg==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.48-1.tgz",
+ "integrity": "sha512-UADRnVHBWWza4Py0EUp7XO2712aoFemlpvsKwhnNIe0/o1ttwVeqdOHHeUuH/BUBY/Xx8QG+YB17bNztraiP8Q==",
"cpu": [
"arm64"
],
@@ -728,9 +728,9 @@
}
},
"node_modules/@github/copilot-linux-x64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.47.tgz",
- "integrity": "sha512-wB5ekOdoxM/6Ogguk54fqJTHTRJkXwUIyzrbYaMy7zANE82jeRE1PQqs+5SdUZXq2IBMZIN1vq6bM56gpb54qg==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.48-1.tgz",
+ "integrity": "sha512-FnOTLPwWht7l2UnXxhpVwT+tSPTC9UqBzjhAoC5y68qJ1bQYXE8TG6cm1qsCo3pfwSAyxEhO7leyuslEO2mIYA==",
"cpu": [
"x64"
],
@@ -744,9 +744,9 @@
}
},
"node_modules/@github/copilot-win32-arm64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.47.tgz",
- "integrity": "sha512-AenPXpTeXApOh25biS+Vmc1Uau78OLHxeXjXDF6Po07xWO7fVzorEK0hnSoD6xmpjptvP2MDSMk4as7jyvM0sQ==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.48-1.tgz",
+ "integrity": "sha512-FIenlc2v04D7yCgm516piivbMfwpQqQ1gsZG4g2en8WxLQFjVfm2Szlk1NYwzo9K2gBmNc5+zpdTZH6kb7Hsng==",
"cpu": [
"arm64"
],
@@ -760,9 +760,9 @@
}
},
"node_modules/@github/copilot-win32-x64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.47.tgz",
- "integrity": "sha512-35bOBTTIm31rgbvFDogAMojWMSV6sLTd3mGjLl1Lf/d0KZGCGLqWXAYMAcV3grEjiAEXxlLLzNs8OfBR/9OdZg==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.48-1.tgz",
+ "integrity": "sha512-d47QHwB89rNInhNpZGhh97njorWOmUXdrMExlM/lb5zcuBnH/QmIQHUeL9CJv970Ujs7gPHtwZcPhvZVuKd16A==",
"cpu": [
"x64"
],
diff --git a/nodejs/package.json b/nodejs/package.json
index 7067cc76c..51b07aeaf 100644
--- a/nodejs/package.json
+++ b/nodejs/package.json
@@ -56,7 +56,7 @@
"author": "GitHub",
"license": "MIT",
"dependencies": {
- "@github/copilot": "^1.0.47",
+ "@github/copilot": "^1.0.48-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 061d3f3b1..2eff63e9c 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.47",
+ "@github/copilot": "^1.0.48-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 36dcb5952..9160fff57 100644
--- a/nodejs/src/generated/rpc.ts
+++ b/nodejs/src/generated/rpc.ts
@@ -221,6 +221,13 @@ export type PermissionDecisionApproveForLocationApproval =
| PermissionDecisionApproveForLocationApprovalCustomTool
| PermissionDecisionApproveForLocationApprovalExtensionManagement
| PermissionDecisionApproveForLocationApprovalExtensionPermissionAccess;
+/**
+ * Per-session remote mode. "off" disables remote, "export" exports session events to Mission Control without enabling remote steering, "on" enables both export and remote steering.
+ *
+ * This interface was referenced by `_RpcSchemaRoot`'s JSON-Schema
+ * via the `definition` "RemoteSessionMode".
+ */
+export type RemoteSessionMode = "off" | "export" | "on";
/**
* Error classification
*
@@ -1687,6 +1694,11 @@ export interface PluginList {
plugins: Plugin[];
}
+/** @experimental */
+export interface RemoteEnableRequest {
+ mode?: RemoteSessionMode;
+}
+
/** @experimental */
export interface RemoteEnableResult {
/**
@@ -3058,8 +3070,8 @@ export function createSessionRpc(connection: MessageConnection, sessionId: strin
},
/** @experimental */
remote: {
- enable: async (): Promise =>
- connection.sendRequest("session.remote.enable", { sessionId }),
+ enable: async (params: RemoteEnableRequest): Promise =>
+ connection.sendRequest("session.remote.enable", { sessionId, ...params }),
disable: async (): Promise =>
connection.sendRequest("session.remote.disable", { sessionId }),
},
diff --git a/nodejs/src/generated/session-events.ts b/nodejs/src/generated/session-events.ts
index 606cffae9..4218d78c2 100644
--- a/nodejs/src/generated/session-events.ts
+++ b/nodejs/src/generated/session-events.ts
@@ -630,7 +630,7 @@ export interface ScheduleCreatedEvent {
type: "session.schedule_created";
}
/**
- * Scheduled prompt registered via /every
+ * Scheduled prompt registered via /every or /after
*/
export interface ScheduleCreatedData {
/**
@@ -645,6 +645,10 @@ export interface ScheduleCreatedData {
* Prompt text that gets enqueued on every tick
*/
prompt: string;
+ /**
+ * Whether the schedule re-arms after each tick (`/every`) or fires once (`/after`)
+ */
+ recurring?: boolean;
}
export interface ScheduleCancelledEvent {
/**
diff --git a/python/copilot/generated/rpc.py b/python/copilot/generated/rpc.py
index 9c7329be1..41049b38d 100644
--- a/python/copilot/generated/rpc.py
+++ b/python/copilot/generated/rpc.py
@@ -1529,6 +1529,15 @@ def to_dict(self) -> dict:
result["handled"] = from_bool(self.handled)
return result
+class RemoteSessionMode(Enum):
+ """Per-session remote mode. "off" disables remote, "export" exports session events to
+ Mission Control without enabling remote steering, "on" enables both export and remote
+ steering.
+ """
+ EXPORT = "export"
+ OFF = "off"
+ ON = "on"
+
# Experimental: this type is part of an experimental API and may change or be removed.
@dataclass
class RemoteEnableResult:
@@ -4208,6 +4217,27 @@ def to_dict(self) -> dict:
result["plugins"] = from_list(lambda x: to_class(Plugin, x), self.plugins)
return result
+# Experimental: this type is part of an experimental API and may change or be removed.
+@dataclass
+class RemoteEnableRequest:
+ mode: RemoteSessionMode | None = None
+ """Per-session remote mode. "off" disables remote, "export" exports session events to
+ Mission Control without enabling remote steering, "on" enables both export and remote
+ steering.
+ """
+
+ @staticmethod
+ def from_dict(obj: Any) -> 'RemoteEnableRequest':
+ assert isinstance(obj, dict)
+ mode = from_union([RemoteSessionMode, from_none], obj.get("mode"))
+ return RemoteEnableRequest(mode)
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ if self.mode is not None:
+ result["mode"] = from_union([lambda x: to_enum(RemoteSessionMode, x), from_none], self.mode)
+ return result
+
@dataclass
class ServerSkillList:
skills: list[ServerSkill]
@@ -6481,7 +6511,9 @@ class RPC:
queued_command_handled: QueuedCommandHandled
queued_command_not_handled: QueuedCommandNotHandled
queued_command_result: QueuedCommandResult
+ remote_enable_request: RemoteEnableRequest
remote_enable_result: RemoteEnableResult
+ remote_session_mode: RemoteSessionMode
server_skill: ServerSkill
server_skill_list: ServerSkillList
session_auth_status: SessionAuthStatus
@@ -6737,7 +6769,9 @@ def from_dict(obj: Any) -> 'RPC':
queued_command_handled = QueuedCommandHandled.from_dict(obj.get("QueuedCommandHandled"))
queued_command_not_handled = QueuedCommandNotHandled.from_dict(obj.get("QueuedCommandNotHandled"))
queued_command_result = QueuedCommandResult.from_dict(obj.get("QueuedCommandResult"))
+ remote_enable_request = RemoteEnableRequest.from_dict(obj.get("RemoteEnableRequest"))
remote_enable_result = RemoteEnableResult.from_dict(obj.get("RemoteEnableResult"))
+ remote_session_mode = RemoteSessionMode(obj.get("RemoteSessionMode"))
server_skill = ServerSkill.from_dict(obj.get("ServerSkill"))
server_skill_list = ServerSkillList.from_dict(obj.get("ServerSkillList"))
session_auth_status = SessionAuthStatus.from_dict(obj.get("SessionAuthStatus"))
@@ -6844,7 +6878,7 @@ def from_dict(obj: Any) -> 'RPC':
workspaces_list_files_result = WorkspacesListFilesResult.from_dict(obj.get("WorkspacesListFilesResult"))
workspaces_read_file_request = WorkspacesReadFileRequest.from_dict(obj.get("WorkspacesReadFileRequest"))
workspaces_read_file_result = WorkspacesReadFileResult.from_dict(obj.get("WorkspacesReadFileResult"))
- return RPC(account_get_quota_request, account_get_quota_result, account_quota_snapshot, agent_get_current_result, agent_info, agent_list, agent_reload_result, agent_select_request, agent_select_result, auth_info_type, 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, connect_request, connect_result, current_model, discovered_mcp_server, discovered_mcp_server_source, discovered_mcp_server_type, embedded_blob_resource_contents, embedded_text_resource_contents, extension, extension_list, extensions_disable_request, extensions_enable_request, extension_source, extension_status, external_tool_result, external_tool_text_result_for_llm, external_tool_text_result_for_llm_content, external_tool_text_result_for_llm_content_audio, external_tool_text_result_for_llm_content_image, external_tool_text_result_for_llm_content_resource, external_tool_text_result_for_llm_content_resource_details, external_tool_text_result_for_llm_content_resource_link, external_tool_text_result_for_llm_content_resource_link_icon, external_tool_text_result_for_llm_content_resource_link_icon_theme, external_tool_text_result_for_llm_content_terminal, external_tool_text_result_for_llm_content_text, filter_mapping, filter_mapping_string, filter_mapping_value, fleet_start_request, fleet_start_result, handle_pending_tool_call_request, handle_pending_tool_call_result, history_compact_context_window, history_compact_result, history_truncate_request, history_truncate_result, instructions_get_sources_result, instructions_sources, instructions_sources_location, instructions_sources_type, log_request, log_result, mcp_config_add_request, mcp_config_disable_request, mcp_config_enable_request, mcp_config_list, mcp_config_remove_request, mcp_config_update_request, mcp_disable_request, mcp_discover_request, mcp_discover_result, mcp_enable_request, mcp_oauth_login_request, mcp_oauth_login_result, mcp_server, mcp_server_config, mcp_server_config_http, mcp_server_config_http_oauth_grant_type, mcp_server_config_http_type, mcp_server_config_local, mcp_server_config_local_type, mcp_server_list, mcp_server_source, mcp_server_status, model, model_billing, model_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, models_list_request, model_switch_to_request, model_switch_to_result, mode_set_request, name_get_result, name_set_request, permission_decision, permission_decision_approve_for_location, permission_decision_approve_for_location_approval, permission_decision_approve_for_location_approval_commands, permission_decision_approve_for_location_approval_custom_tool, permission_decision_approve_for_location_approval_extension_management, permission_decision_approve_for_location_approval_extension_permission_access, permission_decision_approve_for_location_approval_mcp, permission_decision_approve_for_location_approval_mcp_sampling, permission_decision_approve_for_location_approval_memory, permission_decision_approve_for_location_approval_read, permission_decision_approve_for_location_approval_write, permission_decision_approve_for_session, permission_decision_approve_for_session_approval, permission_decision_approve_for_session_approval_commands, permission_decision_approve_for_session_approval_custom_tool, permission_decision_approve_for_session_approval_extension_management, permission_decision_approve_for_session_approval_extension_permission_access, permission_decision_approve_for_session_approval_mcp, permission_decision_approve_for_session_approval_mcp_sampling, permission_decision_approve_for_session_approval_memory, permission_decision_approve_for_session_approval_read, permission_decision_approve_for_session_approval_write, permission_decision_approve_once, permission_decision_approve_permanently, permission_decision_reject, permission_decision_request, permission_decision_user_not_available, permission_request_result, permissions_reset_session_approvals_request, permissions_reset_session_approvals_result, permissions_set_approve_all_request, permissions_set_approve_all_result, ping_request, ping_result, plan_read_result, plan_update_request, plugin, plugin_list, queued_command_handled, queued_command_not_handled, queued_command_result, remote_enable_result, server_skill, server_skill_list, session_auth_status, session_fs_append_file_request, session_fs_error, session_fs_error_code, session_fs_exists_request, session_fs_exists_result, session_fs_mkdir_request, session_fs_readdir_request, session_fs_readdir_result, session_fs_readdir_with_types_entry, session_fs_readdir_with_types_entry_type, session_fs_readdir_with_types_request, session_fs_readdir_with_types_result, session_fs_read_file_request, session_fs_read_file_result, session_fs_rename_request, session_fs_rm_request, session_fs_set_provider_conventions, session_fs_set_provider_request, session_fs_set_provider_result, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_log_level, session_mode, sessions_fork_request, sessions_fork_result, shell_exec_request, shell_exec_result, shell_kill_request, shell_kill_result, shell_kill_signal, skill, skill_list, skills_config_set_disabled_skills_request, skills_disable_request, skills_discover_request, skills_enable_request, skills_load_diagnostics, slash_command_agent_prompt_mode, 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_text_result, task_agent_info, task_agent_info_execution_mode, task_agent_info_status, task_info, task_list, tasks_cancel_request, tasks_cancel_result, task_shell_info, task_shell_info_attachment_mode, task_shell_info_execution_mode, task_shell_info_status, tasks_promote_to_background_request, tasks_promote_to_background_result, tasks_remove_request, tasks_remove_result, tasks_send_message_request, tasks_send_message_result, tasks_start_agent_request, tasks_start_agent_result, tool, tool_list, tools_list_request, ui_elicitation_array_any_of_field, ui_elicitation_array_any_of_field_items, ui_elicitation_array_any_of_field_items_any_of, ui_elicitation_array_enum_field, ui_elicitation_array_enum_field_items, ui_elicitation_field_value, ui_elicitation_request, ui_elicitation_response, ui_elicitation_response_action, ui_elicitation_response_content, ui_elicitation_result, ui_elicitation_schema, ui_elicitation_schema_property, ui_elicitation_schema_property_boolean, ui_elicitation_schema_property_number, ui_elicitation_schema_property_number_type, ui_elicitation_schema_property_string, ui_elicitation_schema_property_string_format, ui_elicitation_string_enum_field, ui_elicitation_string_one_of_field, ui_elicitation_string_one_of_field_one_of, ui_handle_pending_elicitation_request, usage_get_metrics_result, usage_metrics_code_changes, usage_metrics_model_metric, usage_metrics_model_metric_requests, usage_metrics_model_metric_token_detail, usage_metrics_model_metric_usage, usage_metrics_token_detail, workspaces_create_file_request, workspaces_get_workspace_result, workspaces_list_files_result, workspaces_read_file_request, workspaces_read_file_result)
+ return RPC(account_get_quota_request, account_get_quota_result, account_quota_snapshot, agent_get_current_result, agent_info, agent_list, agent_reload_result, agent_select_request, agent_select_result, auth_info_type, 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, connect_request, connect_result, current_model, discovered_mcp_server, discovered_mcp_server_source, discovered_mcp_server_type, embedded_blob_resource_contents, embedded_text_resource_contents, extension, extension_list, extensions_disable_request, extensions_enable_request, extension_source, extension_status, external_tool_result, external_tool_text_result_for_llm, external_tool_text_result_for_llm_content, external_tool_text_result_for_llm_content_audio, external_tool_text_result_for_llm_content_image, external_tool_text_result_for_llm_content_resource, external_tool_text_result_for_llm_content_resource_details, external_tool_text_result_for_llm_content_resource_link, external_tool_text_result_for_llm_content_resource_link_icon, external_tool_text_result_for_llm_content_resource_link_icon_theme, external_tool_text_result_for_llm_content_terminal, external_tool_text_result_for_llm_content_text, filter_mapping, filter_mapping_string, filter_mapping_value, fleet_start_request, fleet_start_result, handle_pending_tool_call_request, handle_pending_tool_call_result, history_compact_context_window, history_compact_result, history_truncate_request, history_truncate_result, instructions_get_sources_result, instructions_sources, instructions_sources_location, instructions_sources_type, log_request, log_result, mcp_config_add_request, mcp_config_disable_request, mcp_config_enable_request, mcp_config_list, mcp_config_remove_request, mcp_config_update_request, mcp_disable_request, mcp_discover_request, mcp_discover_result, mcp_enable_request, mcp_oauth_login_request, mcp_oauth_login_result, mcp_server, mcp_server_config, mcp_server_config_http, mcp_server_config_http_oauth_grant_type, mcp_server_config_http_type, mcp_server_config_local, mcp_server_config_local_type, mcp_server_list, mcp_server_source, mcp_server_status, model, model_billing, model_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, models_list_request, model_switch_to_request, model_switch_to_result, mode_set_request, name_get_result, name_set_request, permission_decision, permission_decision_approve_for_location, permission_decision_approve_for_location_approval, permission_decision_approve_for_location_approval_commands, permission_decision_approve_for_location_approval_custom_tool, permission_decision_approve_for_location_approval_extension_management, permission_decision_approve_for_location_approval_extension_permission_access, permission_decision_approve_for_location_approval_mcp, permission_decision_approve_for_location_approval_mcp_sampling, permission_decision_approve_for_location_approval_memory, permission_decision_approve_for_location_approval_read, permission_decision_approve_for_location_approval_write, permission_decision_approve_for_session, permission_decision_approve_for_session_approval, permission_decision_approve_for_session_approval_commands, permission_decision_approve_for_session_approval_custom_tool, permission_decision_approve_for_session_approval_extension_management, permission_decision_approve_for_session_approval_extension_permission_access, permission_decision_approve_for_session_approval_mcp, permission_decision_approve_for_session_approval_mcp_sampling, permission_decision_approve_for_session_approval_memory, permission_decision_approve_for_session_approval_read, permission_decision_approve_for_session_approval_write, permission_decision_approve_once, permission_decision_approve_permanently, permission_decision_reject, permission_decision_request, permission_decision_user_not_available, permission_request_result, permissions_reset_session_approvals_request, permissions_reset_session_approvals_result, permissions_set_approve_all_request, permissions_set_approve_all_result, ping_request, ping_result, plan_read_result, plan_update_request, plugin, plugin_list, queued_command_handled, queued_command_not_handled, queued_command_result, remote_enable_request, remote_enable_result, remote_session_mode, server_skill, server_skill_list, session_auth_status, session_fs_append_file_request, session_fs_error, session_fs_error_code, session_fs_exists_request, session_fs_exists_result, session_fs_mkdir_request, session_fs_readdir_request, session_fs_readdir_result, session_fs_readdir_with_types_entry, session_fs_readdir_with_types_entry_type, session_fs_readdir_with_types_request, session_fs_readdir_with_types_result, session_fs_read_file_request, session_fs_read_file_result, session_fs_rename_request, session_fs_rm_request, session_fs_set_provider_conventions, session_fs_set_provider_request, session_fs_set_provider_result, session_fs_stat_request, session_fs_stat_result, session_fs_write_file_request, session_log_level, session_mode, sessions_fork_request, sessions_fork_result, shell_exec_request, shell_exec_result, shell_kill_request, shell_kill_result, shell_kill_signal, skill, skill_list, skills_config_set_disabled_skills_request, skills_disable_request, skills_discover_request, skills_enable_request, skills_load_diagnostics, slash_command_agent_prompt_mode, 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_text_result, task_agent_info, task_agent_info_execution_mode, task_agent_info_status, task_info, task_list, tasks_cancel_request, tasks_cancel_result, task_shell_info, task_shell_info_attachment_mode, task_shell_info_execution_mode, task_shell_info_status, tasks_promote_to_background_request, tasks_promote_to_background_result, tasks_remove_request, tasks_remove_result, tasks_send_message_request, tasks_send_message_result, tasks_start_agent_request, tasks_start_agent_result, tool, tool_list, tools_list_request, ui_elicitation_array_any_of_field, ui_elicitation_array_any_of_field_items, ui_elicitation_array_any_of_field_items_any_of, ui_elicitation_array_enum_field, ui_elicitation_array_enum_field_items, ui_elicitation_field_value, ui_elicitation_request, ui_elicitation_response, ui_elicitation_response_action, ui_elicitation_response_content, ui_elicitation_result, ui_elicitation_schema, ui_elicitation_schema_property, ui_elicitation_schema_property_boolean, ui_elicitation_schema_property_number, ui_elicitation_schema_property_number_type, ui_elicitation_schema_property_string, ui_elicitation_schema_property_string_format, ui_elicitation_string_enum_field, ui_elicitation_string_one_of_field, ui_elicitation_string_one_of_field_one_of, ui_handle_pending_elicitation_request, usage_get_metrics_result, usage_metrics_code_changes, usage_metrics_model_metric, usage_metrics_model_metric_requests, usage_metrics_model_metric_token_detail, usage_metrics_model_metric_usage, usage_metrics_token_detail, workspaces_create_file_request, workspaces_get_workspace_result, workspaces_list_files_result, workspaces_read_file_request, workspaces_read_file_result)
def to_dict(self) -> dict:
result: dict = {}
@@ -6993,7 +7027,9 @@ def to_dict(self) -> dict:
result["QueuedCommandHandled"] = to_class(QueuedCommandHandled, self.queued_command_handled)
result["QueuedCommandNotHandled"] = to_class(QueuedCommandNotHandled, self.queued_command_not_handled)
result["QueuedCommandResult"] = to_class(QueuedCommandResult, self.queued_command_result)
+ result["RemoteEnableRequest"] = to_class(RemoteEnableRequest, self.remote_enable_request)
result["RemoteEnableResult"] = to_class(RemoteEnableResult, self.remote_enable_result)
+ result["RemoteSessionMode"] = to_enum(RemoteSessionMode, self.remote_session_mode)
result["ServerSkill"] = to_class(ServerSkill, self.server_skill)
result["ServerSkillList"] = to_class(ServerSkillList, self.server_skill_list)
result["SessionAuthStatus"] = to_class(SessionAuthStatus, self.session_auth_status)
@@ -7660,8 +7696,10 @@ def __init__(self, client: "JsonRpcClient", session_id: str):
self._client = client
self._session_id = session_id
- async def enable(self, *, timeout: float | None = None) -> RemoteEnableResult:
- return RemoteEnableResult.from_dict(await self._client.request("session.remote.enable", {"sessionId": self._session_id}, **_timeout_kwargs(timeout)))
+ async def enable(self, params: RemoteEnableRequest, *, timeout: float | None = None) -> RemoteEnableResult:
+ params_dict: dict[str, Any] = {k: v for k, v in params.to_dict().items() if v is not None}
+ params_dict["sessionId"] = self._session_id
+ return RemoteEnableResult.from_dict(await self._client.request("session.remote.enable", params_dict, **_timeout_kwargs(timeout)))
async def disable(self, *, timeout: float | None = None) -> None:
await self._client.request("session.remote.disable", {"sessionId": self._session_id}, **_timeout_kwargs(timeout))
diff --git a/python/copilot/generated/session_events.py b/python/copilot/generated/session_events.py
index 9d297887b..8bab188bb 100644
--- a/python/copilot/generated/session_events.py
+++ b/python/copilot/generated/session_events.py
@@ -2903,10 +2903,11 @@ def to_dict(self) -> dict:
@dataclass
class SessionScheduleCreatedData:
- "Scheduled prompt registered via /every"
+ "Scheduled prompt registered via /every or /after"
id: int
interval_ms: int
prompt: str
+ recurring: bool | None = None
@staticmethod
def from_dict(obj: Any) -> "SessionScheduleCreatedData":
@@ -2914,10 +2915,12 @@ def from_dict(obj: Any) -> "SessionScheduleCreatedData":
id = from_int(obj.get("id"))
interval_ms = from_int(obj.get("intervalMs"))
prompt = from_str(obj.get("prompt"))
+ recurring = from_union([from_none, from_bool], obj.get("recurring"))
return SessionScheduleCreatedData(
id=id,
interval_ms=interval_ms,
prompt=prompt,
+ recurring=recurring,
)
def to_dict(self) -> dict:
@@ -2925,6 +2928,8 @@ def to_dict(self) -> dict:
result["id"] = to_int(self.id)
result["intervalMs"] = to_int(self.interval_ms)
result["prompt"] = from_str(self.prompt)
+ if self.recurring is not None:
+ result["recurring"] = from_union([from_none, from_bool], self.recurring)
return result
diff --git a/rust/src/generated/api_types.rs b/rust/src/generated/api_types.rs
index 0cd4c6994..277cce50a 100644
--- a/rust/src/generated/api_types.rs
+++ b/rust/src/generated/api_types.rs
@@ -1453,6 +1453,14 @@ pub struct QueuedCommandNotHandled {
pub handled: bool,
}
+#[derive(Debug, Clone, Default, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct RemoteEnableRequest {
+ /// Per-session remote mode. "off" disables remote, "export" exports session events to Mission Control without enabling remote steering, "on" enables both export and remote steering.
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub mode: Option,
+}
+
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RemoteEnableResult {
@@ -3028,13 +3036,6 @@ pub struct SessionUsageGetMetricsResult {
pub total_user_requests: i64,
}
-#[derive(Debug, Clone, Default, Serialize, Deserialize)]
-#[serde(rename_all = "camelCase")]
-pub struct SessionRemoteEnableParams {
- /// Target session identifier
- pub session_id: SessionId,
-}
-
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionRemoteEnableResult {
@@ -3644,6 +3645,21 @@ pub enum PermissionDecision {
UserNotAvailable(PermissionDecisionUserNotAvailable),
}
+/// Per-session remote mode. "off" disables remote, "export" exports session events to Mission Control without enabling remote steering, "on" enables both export and remote steering.
+#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
+pub enum RemoteSessionMode {
+ #[serde(rename = "off")]
+ Off,
+ #[serde(rename = "export")]
+ Export,
+ #[serde(rename = "on")]
+ On,
+ /// Unknown variant for forward compatibility.
+ #[default]
+ #[serde(other)]
+ Unknown,
+}
+
/// Error classification
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
pub enum SessionFsErrorCode {
diff --git a/rust/src/generated/rpc.rs b/rust/src/generated/rpc.rs
index cb1393483..700aebe44 100644
--- a/rust/src/generated/rpc.rs
+++ b/rust/src/generated/rpc.rs
@@ -1296,8 +1296,9 @@ impl<'a> SessionRpcRemote<'a> {
/// SDK and CLI versions if your code depends on it.
///
///
- pub async fn enable(&self) -> Result {
- let wire_params = serde_json::json!({ "sessionId": self.session.id() });
+ pub async fn enable(&self, params: RemoteEnableRequest) -> Result {
+ let mut wire_params = serde_json::to_value(params)?;
+ wire_params["sessionId"] = serde_json::Value::String(self.session.id().to_string());
let _value = self
.session
.client()
diff --git a/rust/src/generated/session_events.rs b/rust/src/generated/session_events.rs
index f9d7a12af..7c434f96d 100644
--- a/rust/src/generated/session_events.rs
+++ b/rust/src/generated/session_events.rs
@@ -517,7 +517,7 @@ pub struct SessionTitleChangedData {
pub title: String,
}
-/// Scheduled prompt registered via /every
+/// Scheduled prompt registered via /every or /after
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SessionScheduleCreatedData {
@@ -527,6 +527,9 @@ pub struct SessionScheduleCreatedData {
pub interval_ms: i64,
/// Prompt text that gets enqueued on every tick
pub prompt: String,
+ /// Whether the schedule re-arms after each tick (`/every`) or fires once (`/after`)
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub recurring: Option,
}
/// Scheduled prompt cancelled from the schedule manager dialog
diff --git a/test/harness/package-lock.json b/test/harness/package-lock.json
index cbda49ccd..e72caae70 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.47",
+ "@github/copilot": "^1.0.48-1",
"@modelcontextprotocol/sdk": "^1.26.0",
"@types/node": "^25.3.3",
"@types/node-forge": "^1.3.14",
@@ -464,27 +464,27 @@
}
},
"node_modules/@github/copilot": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.47.tgz",
- "integrity": "sha512-U4WrajOOjjMVleqIRvRt+kDsjYQPLHxtJMMtdzW2N18dbRddlxqN+qo6ZOxOTy3tks2+YI+G89zyO1qpxpuWSg==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.48-1.tgz",
+ "integrity": "sha512-8Y+Lf26h5Qq6ADXQ7wUAEvMil8BXKHDv9omlKXrFCmmAUzk+a36Y+LpvdSUBPxDyf4h/A8gUq6qJ63649a5sWg==",
"dev": true,
"license": "SEE LICENSE IN LICENSE.md",
"bin": {
"copilot": "npm-loader.js"
},
"optionalDependencies": {
- "@github/copilot-darwin-arm64": "1.0.47",
- "@github/copilot-darwin-x64": "1.0.47",
- "@github/copilot-linux-arm64": "1.0.47",
- "@github/copilot-linux-x64": "1.0.47",
- "@github/copilot-win32-arm64": "1.0.47",
- "@github/copilot-win32-x64": "1.0.47"
+ "@github/copilot-darwin-arm64": "1.0.48-1",
+ "@github/copilot-darwin-x64": "1.0.48-1",
+ "@github/copilot-linux-arm64": "1.0.48-1",
+ "@github/copilot-linux-x64": "1.0.48-1",
+ "@github/copilot-win32-arm64": "1.0.48-1",
+ "@github/copilot-win32-x64": "1.0.48-1"
}
},
"node_modules/@github/copilot-darwin-arm64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.47.tgz",
- "integrity": "sha512-sGuN+7VfBjOTbPkyKFm0dPfp1hwyNsJVkNsV+3xmOwVsGy3nhROc76sQ5SWWSmyDGl7H58KnpPazlSDwbpf4PQ==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.48-1.tgz",
+ "integrity": "sha512-ZaacHYawrFD22LgfIBpVUqlfj6d6IogVPnyQVXjAWDvZ3JLXWCzX7OpTGJ/BWgU5HJwUkmr0ZyVqBTrfTrdCZQ==",
"cpu": [
"arm64"
],
@@ -499,9 +499,9 @@
}
},
"node_modules/@github/copilot-darwin-x64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.47.tgz",
- "integrity": "sha512-nVHYbzvOau5zy4nONWZPXROIrqzd7DhY12bMkE7spLe7lj0Sh6MFtTdPpMT7kkaObEikGYLTrZtOUpguwqHkmA==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.48-1.tgz",
+ "integrity": "sha512-cHpz8onmXlABNm8jBUON0fUm/7Koe853zHK349qq8mhZkdlNN3zCn0zkZQuzrJZfJbxrjFOV863N0+F3zGBU1w==",
"cpu": [
"x64"
],
@@ -516,9 +516,9 @@
}
},
"node_modules/@github/copilot-linux-arm64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.47.tgz",
- "integrity": "sha512-7aDoE6pnSGcCTuPdJKyHfzif/Rj1z5UE0gLMHHQMo1QIYJkUZFX7mV8Ng4zB+2edq8lNL5DiYRcbFajV54ibSg==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.48-1.tgz",
+ "integrity": "sha512-UADRnVHBWWza4Py0EUp7XO2712aoFemlpvsKwhnNIe0/o1ttwVeqdOHHeUuH/BUBY/Xx8QG+YB17bNztraiP8Q==",
"cpu": [
"arm64"
],
@@ -533,9 +533,9 @@
}
},
"node_modules/@github/copilot-linux-x64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.47.tgz",
- "integrity": "sha512-wB5ekOdoxM/6Ogguk54fqJTHTRJkXwUIyzrbYaMy7zANE82jeRE1PQqs+5SdUZXq2IBMZIN1vq6bM56gpb54qg==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.48-1.tgz",
+ "integrity": "sha512-FnOTLPwWht7l2UnXxhpVwT+tSPTC9UqBzjhAoC5y68qJ1bQYXE8TG6cm1qsCo3pfwSAyxEhO7leyuslEO2mIYA==",
"cpu": [
"x64"
],
@@ -550,9 +550,9 @@
}
},
"node_modules/@github/copilot-win32-arm64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.47.tgz",
- "integrity": "sha512-AenPXpTeXApOh25biS+Vmc1Uau78OLHxeXjXDF6Po07xWO7fVzorEK0hnSoD6xmpjptvP2MDSMk4as7jyvM0sQ==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.48-1.tgz",
+ "integrity": "sha512-FIenlc2v04D7yCgm516piivbMfwpQqQ1gsZG4g2en8WxLQFjVfm2Szlk1NYwzo9K2gBmNc5+zpdTZH6kb7Hsng==",
"cpu": [
"arm64"
],
@@ -567,9 +567,9 @@
}
},
"node_modules/@github/copilot-win32-x64": {
- "version": "1.0.47",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.47.tgz",
- "integrity": "sha512-35bOBTTIm31rgbvFDogAMojWMSV6sLTd3mGjLl1Lf/d0KZGCGLqWXAYMAcV3grEjiAEXxlLLzNs8OfBR/9OdZg==",
+ "version": "1.0.48-1",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.48-1.tgz",
+ "integrity": "sha512-d47QHwB89rNInhNpZGhh97njorWOmUXdrMExlM/lb5zcuBnH/QmIQHUeL9CJv970Ujs7gPHtwZcPhvZVuKd16A==",
"cpu": [
"x64"
],
diff --git a/test/harness/package.json b/test/harness/package.json
index e6c67908d..0bc06f4ec 100644
--- a/test/harness/package.json
+++ b/test/harness/package.json
@@ -11,7 +11,7 @@
"test": "vitest run"
},
"devDependencies": {
- "@github/copilot": "^1.0.47",
+ "@github/copilot": "^1.0.48-1",
"@modelcontextprotocol/sdk": "^1.26.0",
"@types/node": "^25.3.3",
"@types/node-forge": "^1.3.14",