diff --git a/dotnet/src/Generated/SessionEvents.cs b/dotnet/src/Generated/SessionEvents.cs
index aabc6afce..efb647740 100644
--- a/dotnet/src/Generated/SessionEvents.cs
+++ b/dotnet/src/Generated/SessionEvents.cs
@@ -74,6 +74,8 @@ namespace GitHub.Copilot.SDK;
[JsonDerivedType(typeof(SessionPlanChangedEvent), "session.plan_changed")]
[JsonDerivedType(typeof(SessionRemoteSteerableChangedEvent), "session.remote_steerable_changed")]
[JsonDerivedType(typeof(SessionResumeEvent), "session.resume")]
+[JsonDerivedType(typeof(SessionScheduleCancelledEvent), "session.schedule_cancelled")]
+[JsonDerivedType(typeof(SessionScheduleCreatedEvent), "session.schedule_created")]
[JsonDerivedType(typeof(SessionShutdownEvent), "session.shutdown")]
[JsonDerivedType(typeof(SessionSkillsLoadedEvent), "session.skills_loaded")]
[JsonDerivedType(typeof(SessionSnapshotRewindEvent), "session.snapshot_rewind")]
@@ -221,6 +223,32 @@ public partial class SessionTitleChangedEvent : SessionEvent
public required SessionTitleChangedData Data { get; set; }
}
+/// Scheduled prompt registered via /every.
+/// Represents the session.schedule_created event.
+public partial class SessionScheduleCreatedEvent : SessionEvent
+{
+ ///
+ [JsonIgnore]
+ public override string Type => "session.schedule_created";
+
+ /// The session.schedule_created event payload.
+ [JsonPropertyName("data")]
+ public required SessionScheduleCreatedData Data { get; set; }
+}
+
+/// Scheduled prompt cancelled from the schedule manager dialog.
+/// Represents the session.schedule_cancelled event.
+public partial class SessionScheduleCancelledEvent : SessionEvent
+{
+ ///
+ [JsonIgnore]
+ public override string Type => "session.schedule_cancelled";
+
+ /// The session.schedule_cancelled event payload.
+ [JsonPropertyName("data")]
+ public required SessionScheduleCancelledData Data { get; set; }
+}
+
/// Informational message for timeline display with categorization.
/// Represents the session.info event.
public partial class SessionInfoEvent : SessionEvent
@@ -1314,6 +1342,30 @@ public partial class SessionTitleChangedData
public required string Title { get; set; }
}
+/// Scheduled prompt registered via /every.
+public partial class SessionScheduleCreatedData
+{
+ /// Sequential id assigned to the scheduled prompt within the session.
+ [JsonPropertyName("id")]
+ public required long Id { get; set; }
+
+ /// Interval between ticks in milliseconds.
+ [JsonPropertyName("intervalMs")]
+ public required long IntervalMs { get; set; }
+
+ /// Prompt text that gets enqueued on every tick.
+ [JsonPropertyName("prompt")]
+ public required string Prompt { get; set; }
+}
+
+/// Scheduled prompt cancelled from the schedule manager dialog.
+public partial class SessionScheduleCancelledData
+{
+ /// Id of the scheduled prompt that was cancelled.
+ [JsonPropertyName("id")]
+ public required long Id { get; set; }
+}
+
/// Informational message for timeline display with categorization.
public partial class SessionInfoData
{
@@ -3344,6 +3396,11 @@ public partial class AssistantMessageToolRequest
[JsonPropertyName("mcpServerName")]
public string? McpServerName { get; set; }
+ /// Original tool name on the MCP server, when the tool is an MCP tool.
+ [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+ [JsonPropertyName("mcpToolName")]
+ public string? McpToolName { get; set; }
+
/// Name of the tool being invoked.
[JsonPropertyName("name")]
public required string Name { get; set; }
@@ -5300,6 +5357,10 @@ public enum ExtensionsLoadedExtensionStatus
[JsonSerializable(typeof(SessionRemoteSteerableChangedEvent))]
[JsonSerializable(typeof(SessionResumeData))]
[JsonSerializable(typeof(SessionResumeEvent))]
+[JsonSerializable(typeof(SessionScheduleCancelledData))]
+[JsonSerializable(typeof(SessionScheduleCancelledEvent))]
+[JsonSerializable(typeof(SessionScheduleCreatedData))]
+[JsonSerializable(typeof(SessionScheduleCreatedEvent))]
[JsonSerializable(typeof(SessionShutdownData))]
[JsonSerializable(typeof(SessionShutdownEvent))]
[JsonSerializable(typeof(SessionSkillsLoadedData))]
diff --git a/go/generated_session_events.go b/go/generated_session_events.go
index ce60561e9..6844b975a 100644
--- a/go/generated_session_events.go
+++ b/go/generated_session_events.go
@@ -111,6 +111,18 @@ func (e *SessionEvent) UnmarshalJSON(data []byte) error {
return err
}
e.Data = &d
+ case SessionEventTypeSessionScheduleCreated:
+ var d SessionScheduleCreatedData
+ if err := json.Unmarshal(raw.Data, &d); err != nil {
+ return err
+ }
+ e.Data = &d
+ case SessionEventTypeSessionScheduleCancelled:
+ var d SessionScheduleCancelledData
+ if err := json.Unmarshal(raw.Data, &d); err != nil {
+ return err
+ }
+ e.Data = &d
case SessionEventTypeSessionInfo:
var d SessionInfoData
if err := json.Unmarshal(raw.Data, &d); err != nil {
@@ -580,6 +592,8 @@ const (
SessionEventTypeSessionError SessionEventType = "session.error"
SessionEventTypeSessionIdle SessionEventType = "session.idle"
SessionEventTypeSessionTitleChanged SessionEventType = "session.title_changed"
+ SessionEventTypeSessionScheduleCreated SessionEventType = "session.schedule_created"
+ SessionEventTypeSessionScheduleCancelled SessionEventType = "session.schedule_cancelled"
SessionEventTypeSessionInfo SessionEventType = "session.info"
SessionEventTypeSessionWarning SessionEventType = "session.warning"
SessionEventTypeSessionModelChange SessionEventType = "session.model_change"
@@ -1216,6 +1230,26 @@ type SamplingRequestedData struct {
func (*SamplingRequestedData) sessionEventData() {}
+// Scheduled prompt cancelled from the schedule manager dialog
+type SessionScheduleCancelledData struct {
+ // Id of the scheduled prompt that was cancelled
+ ID int64 `json:"id"`
+}
+
+func (*SessionScheduleCancelledData) sessionEventData() {}
+
+// Scheduled prompt registered via /every
+type SessionScheduleCreatedData struct {
+ // Sequential id assigned to the scheduled prompt within the session
+ ID int64 `json:"id"`
+ // Interval between ticks in milliseconds
+ IntervalMs int64 `json:"intervalMs"`
+ // Prompt text that gets enqueued on every tick
+ Prompt string `json:"prompt"`
+}
+
+func (*SessionScheduleCreatedData) sessionEventData() {}
+
// Session capability change notification
type CapabilitiesChangedData struct {
// UI capability changes
@@ -1796,6 +1830,8 @@ type AssistantMessageToolRequest struct {
IntentionSummary *string `json:"intentionSummary,omitempty"`
// Name of the MCP server hosting this tool, when the tool is an MCP tool
McpServerName *string `json:"mcpServerName,omitempty"`
+ // Original tool name on the MCP server, when the tool is an MCP tool
+ McpToolName *string `json:"mcpToolName,omitempty"`
// Name of the tool being invoked
Name string `json:"name"`
// Unique identifier for this tool call
diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json
index 87b471a6c..75a532e0f 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.41-1",
+ "@github/copilot": "^1.0.42",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
@@ -663,26 +663,26 @@
}
},
"node_modules/@github/copilot": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.41-1.tgz",
- "integrity": "sha512-95Qxeds7SAi96b4bK91PAdB13M39ZKpZDfWf69yJg6362RTCFNa24QvflLG+3f4Vojh8GD4h8EvxAYwgq4zdMQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.42.tgz",
+ "integrity": "sha512-ODW5+aJi595Tb2WUaAlshBoUkOBuh9MegXXwXzMoar+k9fZzzDy3oNJLFg7ni4UtkUZvj/WL/y3s5O+FlsF2HA==",
"license": "SEE LICENSE IN LICENSE.md",
"bin": {
"copilot": "npm-loader.js"
},
"optionalDependencies": {
- "@github/copilot-darwin-arm64": "1.0.41-1",
- "@github/copilot-darwin-x64": "1.0.41-1",
- "@github/copilot-linux-arm64": "1.0.41-1",
- "@github/copilot-linux-x64": "1.0.41-1",
- "@github/copilot-win32-arm64": "1.0.41-1",
- "@github/copilot-win32-x64": "1.0.41-1"
+ "@github/copilot-darwin-arm64": "1.0.42",
+ "@github/copilot-darwin-x64": "1.0.42",
+ "@github/copilot-linux-arm64": "1.0.42",
+ "@github/copilot-linux-x64": "1.0.42",
+ "@github/copilot-win32-arm64": "1.0.42",
+ "@github/copilot-win32-x64": "1.0.42"
}
},
"node_modules/@github/copilot-darwin-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.41-1.tgz",
- "integrity": "sha512-9ExZaLv3/yi7Be9GnjhxJgmuklQhqT59014BsqsWt1lpTA1khJs8VyC5B+iP8TEOkFKvD/UXJNSP9PCE6n5inQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.42.tgz",
+ "integrity": "sha512-2w89QLRgMR7hWwV1KG3uXqu98WST6afJCfvtYtqvPdf6ZQC7Fj2HhPNCrMxZk/H8mZwTgYJeg30gZjvV1698EA==",
"cpu": [
"arm64"
],
@@ -696,9 +696,9 @@
}
},
"node_modules/@github/copilot-darwin-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.41-1.tgz",
- "integrity": "sha512-6ZretUFTcCPajzcZyQZixn2unVlN+sbtC6hULBYT6FLHrqSrjK4QN52eCtTYOz/kPbBUO4lj9YjT/v1gkgMDwQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.42.tgz",
+ "integrity": "sha512-G2//tgGSKXx3ZGMqe774UnewasYMh+j0ZeQ3injtuZpSpzN+OAuNkzwXpvFHprdbgekMb0oAPN+Xm3rHuQY8Xw==",
"cpu": [
"x64"
],
@@ -712,9 +712,9 @@
}
},
"node_modules/@github/copilot-linux-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.41-1.tgz",
- "integrity": "sha512-iP/VbjvGMQvo0fudLHBpmp31nAmtGvq1tZWC+YEQ43D58n2miOXkiDR61Tn9PSPGTkNbrnTecE0mgBO2oePYPw==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.42.tgz",
+ "integrity": "sha512-Ai6J4hUKVuE5ztsLspp/I7ByXtL2V6tF+AOn0q+hHp1MOA5JLq5/G8PE+c0VzG69x4hkt1lROQDjvXJGY7sv+g==",
"cpu": [
"arm64"
],
@@ -728,9 +728,9 @@
}
},
"node_modules/@github/copilot-linux-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.41-1.tgz",
- "integrity": "sha512-DAVCL7pMxeRRHcVOcbpllDBn87zVgskHNqfWrdFPEcgfslx0bw7GkErO35jx/SLnehcwpdwHquqfkyDpnfRAqg==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.42.tgz",
+ "integrity": "sha512-yYfuL6Hk3uLQuIgfxpEMCyoowFq2Bew1EaXmvg4lnDjj95tvEmyMCX77aIZ2AKwBOgp1nMV7L1B1QL9/mw6BTA==",
"cpu": [
"x64"
],
@@ -744,9 +744,9 @@
}
},
"node_modules/@github/copilot-win32-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.41-1.tgz",
- "integrity": "sha512-m+un4+m1MQlTbiaA6d+/1Aa0SBI85O+De6P/8RdrVCEaoLE0Uy10wZbiHk6GK+YN74B/9WGwW8YANVVaBXsDDw==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.42.tgz",
+ "integrity": "sha512-WgnV6AxsvbvZdNW/42JFikK/SqR1JMw6juRpGKXZr70ond/cHK6trtrmt3dXYPymBO14ppJMFdm4+chJzKGKMw==",
"cpu": [
"arm64"
],
@@ -760,9 +760,9 @@
}
},
"node_modules/@github/copilot-win32-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.41-1.tgz",
- "integrity": "sha512-9Yl56T/4Eo7etQ+98XxsYTIzPdkuN5SAD0mZN2SHjdK5h0mBJFXpEmsminSelFgUbTsMHb+srfSmvx5nFe0m0A==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.42.tgz",
+ "integrity": "sha512-J5jtrcYuODuD4LPPRHjOCMJGO6+vKZ71n8PTiHPCg9lpfThXDDXxrB7nDDkhxl23zSXlUrpWwkMI+a2Ax/AxGg==",
"cpu": [
"x64"
],
diff --git a/nodejs/package.json b/nodejs/package.json
index 4969ba23c..2d21a55e2 100644
--- a/nodejs/package.json
+++ b/nodejs/package.json
@@ -56,7 +56,7 @@
"author": "GitHub",
"license": "MIT",
"dependencies": {
- "@github/copilot": "^1.0.41-1",
+ "@github/copilot": "^1.0.42",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
diff --git a/nodejs/samples/package-lock.json b/nodejs/samples/package-lock.json
index 0c86383f6..b7f4bdd8b 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.41-1",
+ "@github/copilot": "^1.0.42",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
diff --git a/nodejs/src/generated/session-events.ts b/nodejs/src/generated/session-events.ts
index df3702843..3668a3ca6 100644
--- a/nodejs/src/generated/session-events.ts
+++ b/nodejs/src/generated/session-events.ts
@@ -10,6 +10,8 @@ export type SessionEvent =
| ErrorEvent
| IdleEvent
| TitleChangedEvent
+ | ScheduleCreatedEvent
+ | ScheduleCancelledEvent
| InfoEvent
| WarningEvent
| ModelChangeEvent
@@ -585,6 +587,80 @@ export interface TitleChangedData {
*/
title: string;
}
+export interface ScheduleCreatedEvent {
+ /**
+ * Sub-agent instance identifier. Absent for events from the root/main agent and session-level events.
+ */
+ agentId?: string;
+ data: ScheduleCreatedData;
+ /**
+ * When true, the event is transient and not persisted to the session event log on disk
+ */
+ ephemeral?: boolean;
+ /**
+ * Unique event identifier (UUID v4), generated when the event is emitted
+ */
+ id: string;
+ /**
+ * ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event.
+ */
+ parentId: string | null;
+ /**
+ * ISO 8601 timestamp when the event was created
+ */
+ timestamp: string;
+ type: "session.schedule_created";
+}
+/**
+ * Scheduled prompt registered via /every
+ */
+export interface ScheduleCreatedData {
+ /**
+ * Sequential id assigned to the scheduled prompt within the session
+ */
+ id: number;
+ /**
+ * Interval between ticks in milliseconds
+ */
+ intervalMs: number;
+ /**
+ * Prompt text that gets enqueued on every tick
+ */
+ prompt: string;
+}
+export interface ScheduleCancelledEvent {
+ /**
+ * Sub-agent instance identifier. Absent for events from the root/main agent and session-level events.
+ */
+ agentId?: string;
+ data: ScheduleCancelledData;
+ /**
+ * When true, the event is transient and not persisted to the session event log on disk
+ */
+ ephemeral?: boolean;
+ /**
+ * Unique event identifier (UUID v4), generated when the event is emitted
+ */
+ id: string;
+ /**
+ * ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event.
+ */
+ parentId: string | null;
+ /**
+ * ISO 8601 timestamp when the event was created
+ */
+ timestamp: string;
+ type: "session.schedule_cancelled";
+}
+/**
+ * Scheduled prompt cancelled from the schedule manager dialog
+ */
+export interface ScheduleCancelledData {
+ /**
+ * Id of the scheduled prompt that was cancelled
+ */
+ id: number;
+}
export interface InfoEvent {
/**
* Sub-agent instance identifier. Absent for events from the root/main agent and session-level events.
@@ -1952,6 +2028,10 @@ export interface AssistantMessageToolRequest {
* Name of the MCP server hosting this tool, when the tool is an MCP tool
*/
mcpServerName?: string;
+ /**
+ * Original tool name on the MCP server, when the tool is an MCP tool
+ */
+ mcpToolName?: string;
/**
* Name of the tool being invoked
*/
diff --git a/nodejs/test/e2e/ui_elicitation.e2e.test.ts b/nodejs/test/e2e/ui_elicitation.e2e.test.ts
index 8651c5bd2..e30dbdacd 100644
--- a/nodejs/test/e2e/ui_elicitation.e2e.test.ts
+++ b/nodejs/test/e2e/ui_elicitation.e2e.test.ts
@@ -27,7 +27,7 @@ describe("UI Elicitation Callback", async () => {
it(
"session created with onElicitationRequest reports elicitation capability",
- { timeout: 20_000 },
+ { timeout: 60_000 },
async () => {
const session = await client.createSession({
onPermissionRequest: approveAll,
@@ -40,7 +40,7 @@ describe("UI Elicitation Callback", async () => {
it(
"session created without onElicitationRequest reports no elicitation capability",
- { timeout: 20_000 },
+ { timeout: 60_000 },
async () => {
const session = await client.createSession({
onPermissionRequest: approveAll,
@@ -73,7 +73,7 @@ describe("UI Elicitation Multi-Client Capabilities", async () => {
it(
"capabilities.changed fires when second client joins with elicitation handler",
- { timeout: 20_000 },
+ { timeout: 60_000 },
async () => {
// Client1 creates session without elicitation
const session1 = await client1.createSession({
@@ -112,7 +112,7 @@ describe("UI Elicitation Multi-Client Capabilities", async () => {
it(
"capabilities.changed fires when elicitation provider disconnects",
- { timeout: 20_000 },
+ { timeout: 60_000 },
async () => {
// Client1 creates session without elicitation
const session1 = await client1.createSession({
diff --git a/python/copilot/generated/session_events.py b/python/copilot/generated/session_events.py
index 55646eba8..1fe1af32b 100644
--- a/python/copilot/generated/session_events.py
+++ b/python/copilot/generated/session_events.py
@@ -110,6 +110,8 @@ class SessionEventType(Enum):
SESSION_ERROR = "session.error"
SESSION_IDLE = "session.idle"
SESSION_TITLE_CHANGED = "session.title_changed"
+ SESSION_SCHEDULE_CREATED = "session.schedule_created"
+ SESSION_SCHEDULE_CANCELLED = "session.schedule_cancelled"
SESSION_INFO = "session.info"
SESSION_WARNING = "session.warning"
SESSION_MODEL_CHANGE = "session.model_change"
@@ -428,6 +430,7 @@ class AssistantMessageToolRequest:
arguments: Any = None
intention_summary: str | None = None
mcp_server_name: str | None = None
+ mcp_tool_name: str | None = None
tool_title: str | None = None
type: AssistantMessageToolRequestType | None = None
@@ -439,6 +442,7 @@ def from_dict(obj: Any) -> "AssistantMessageToolRequest":
arguments = obj.get("arguments")
intention_summary = from_union([from_none, from_str], obj.get("intentionSummary"))
mcp_server_name = from_union([from_none, from_str], obj.get("mcpServerName"))
+ mcp_tool_name = from_union([from_none, from_str], obj.get("mcpToolName"))
tool_title = from_union([from_none, from_str], obj.get("toolTitle"))
type = from_union([from_none, lambda x: parse_enum(AssistantMessageToolRequestType, x)], obj.get("type"))
return AssistantMessageToolRequest(
@@ -447,6 +451,7 @@ def from_dict(obj: Any) -> "AssistantMessageToolRequest":
arguments=arguments,
intention_summary=intention_summary,
mcp_server_name=mcp_server_name,
+ mcp_tool_name=mcp_tool_name,
tool_title=tool_title,
type=type,
)
@@ -461,6 +466,8 @@ def to_dict(self) -> dict:
result["intentionSummary"] = from_union([from_none, from_str], self.intention_summary)
if self.mcp_server_name is not None:
result["mcpServerName"] = from_union([from_none, from_str], self.mcp_server_name)
+ if self.mcp_tool_name is not None:
+ result["mcpToolName"] = from_union([from_none, from_str], self.mcp_tool_name)
if self.tool_title is not None:
result["toolTitle"] = from_union([from_none, from_str], self.tool_title)
if self.type is not None:
@@ -2825,6 +2832,52 @@ def to_dict(self) -> dict:
return result
+@dataclass
+class SessionScheduleCancelledData:
+ "Scheduled prompt cancelled from the schedule manager dialog"
+ id: int
+
+ @staticmethod
+ def from_dict(obj: Any) -> "SessionScheduleCancelledData":
+ assert isinstance(obj, dict)
+ id = from_int(obj.get("id"))
+ return SessionScheduleCancelledData(
+ id=id,
+ )
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["id"] = to_int(self.id)
+ return result
+
+
+@dataclass
+class SessionScheduleCreatedData:
+ "Scheduled prompt registered via /every"
+ id: int
+ interval_ms: int
+ prompt: str
+
+ @staticmethod
+ def from_dict(obj: Any) -> "SessionScheduleCreatedData":
+ assert isinstance(obj, dict)
+ id = from_int(obj.get("id"))
+ interval_ms = from_int(obj.get("intervalMs"))
+ prompt = from_str(obj.get("prompt"))
+ return SessionScheduleCreatedData(
+ id=id,
+ interval_ms=interval_ms,
+ prompt=prompt,
+ )
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["id"] = to_int(self.id)
+ result["intervalMs"] = to_int(self.interval_ms)
+ result["prompt"] = from_str(self.prompt)
+ return result
+
+
@dataclass
class SessionShutdownData:
"Session termination metrics including usage statistics, code changes, and shutdown reason"
@@ -4764,7 +4817,7 @@ class WorkspaceFileChangedOperation(Enum):
UPDATE = "update"
-SessionEventData = SessionStartData | SessionResumeData | SessionRemoteSteerableChangedData | SessionErrorData | SessionIdleData | SessionTitleChangedData | SessionInfoData | SessionWarningData | SessionModelChangeData | SessionModeChangedData | SessionPlanChangedData | SessionWorkspaceFileChangedData | SessionHandoffData | SessionTruncationData | SessionSnapshotRewindData | SessionShutdownData | SessionContextChangedData | SessionUsageInfoData | SessionCompactionStartData | SessionCompactionCompleteData | SessionTaskCompleteData | UserMessageData | PendingMessagesModifiedData | AssistantTurnStartData | AssistantIntentData | AssistantReasoningData | AssistantReasoningDeltaData | AssistantStreamingDeltaData | AssistantMessageData | AssistantMessageStartData | AssistantMessageDeltaData | AssistantTurnEndData | AssistantUsageData | ModelCallFailureData | AbortData | ToolUserRequestedData | ToolExecutionStartData | ToolExecutionPartialResultData | ToolExecutionProgressData | ToolExecutionCompleteData | SkillInvokedData | SubagentStartedData | SubagentCompletedData | SubagentFailedData | SubagentSelectedData | SubagentDeselectedData | HookStartData | HookEndData | SystemMessageData | SystemNotificationData | PermissionRequestedData | PermissionCompletedData | UserInputRequestedData | UserInputCompletedData | ElicitationRequestedData | ElicitationCompletedData | SamplingRequestedData | SamplingCompletedData | McpOauthRequiredData | McpOauthCompletedData | ExternalToolRequestedData | ExternalToolCompletedData | CommandQueuedData | CommandExecuteData | CommandCompletedData | AutoModeSwitchRequestedData | AutoModeSwitchCompletedData | CommandsChangedData | CapabilitiesChangedData | ExitPlanModeRequestedData | ExitPlanModeCompletedData | SessionToolsUpdatedData | SessionBackgroundTasksChangedData | SessionSkillsLoadedData | SessionCustomAgentsUpdatedData | SessionMcpServersLoadedData | SessionMcpServerStatusChangedData | SessionExtensionsLoadedData | RawSessionEventData | Data
+SessionEventData = SessionStartData | SessionResumeData | SessionRemoteSteerableChangedData | SessionErrorData | SessionIdleData | SessionTitleChangedData | SessionScheduleCreatedData | SessionScheduleCancelledData | SessionInfoData | SessionWarningData | SessionModelChangeData | SessionModeChangedData | SessionPlanChangedData | SessionWorkspaceFileChangedData | SessionHandoffData | SessionTruncationData | SessionSnapshotRewindData | SessionShutdownData | SessionContextChangedData | SessionUsageInfoData | SessionCompactionStartData | SessionCompactionCompleteData | SessionTaskCompleteData | UserMessageData | PendingMessagesModifiedData | AssistantTurnStartData | AssistantIntentData | AssistantReasoningData | AssistantReasoningDeltaData | AssistantStreamingDeltaData | AssistantMessageData | AssistantMessageStartData | AssistantMessageDeltaData | AssistantTurnEndData | AssistantUsageData | ModelCallFailureData | AbortData | ToolUserRequestedData | ToolExecutionStartData | ToolExecutionPartialResultData | ToolExecutionProgressData | ToolExecutionCompleteData | SkillInvokedData | SubagentStartedData | SubagentCompletedData | SubagentFailedData | SubagentSelectedData | SubagentDeselectedData | HookStartData | HookEndData | SystemMessageData | SystemNotificationData | PermissionRequestedData | PermissionCompletedData | UserInputRequestedData | UserInputCompletedData | ElicitationRequestedData | ElicitationCompletedData | SamplingRequestedData | SamplingCompletedData | McpOauthRequiredData | McpOauthCompletedData | ExternalToolRequestedData | ExternalToolCompletedData | CommandQueuedData | CommandExecuteData | CommandCompletedData | AutoModeSwitchRequestedData | AutoModeSwitchCompletedData | CommandsChangedData | CapabilitiesChangedData | ExitPlanModeRequestedData | ExitPlanModeCompletedData | SessionToolsUpdatedData | SessionBackgroundTasksChangedData | SessionSkillsLoadedData | SessionCustomAgentsUpdatedData | SessionMcpServersLoadedData | SessionMcpServerStatusChangedData | SessionExtensionsLoadedData | RawSessionEventData | Data
@dataclass
@@ -4796,6 +4849,8 @@ def from_dict(obj: Any) -> "SessionEvent":
case SessionEventType.SESSION_ERROR: data = SessionErrorData.from_dict(data_obj)
case SessionEventType.SESSION_IDLE: data = SessionIdleData.from_dict(data_obj)
case SessionEventType.SESSION_TITLE_CHANGED: data = SessionTitleChangedData.from_dict(data_obj)
+ case SessionEventType.SESSION_SCHEDULE_CREATED: data = SessionScheduleCreatedData.from_dict(data_obj)
+ case SessionEventType.SESSION_SCHEDULE_CANCELLED: data = SessionScheduleCancelledData.from_dict(data_obj)
case SessionEventType.SESSION_INFO: data = SessionInfoData.from_dict(data_obj)
case SessionEventType.SESSION_WARNING: data = SessionWarningData.from_dict(data_obj)
case SessionEventType.SESSION_MODEL_CHANGE: data = SessionModelChangeData.from_dict(data_obj)
diff --git a/rust/src/generated/session_events.rs b/rust/src/generated/session_events.rs
index 85be3731e..cf7c33c68 100644
--- a/rust/src/generated/session_events.rs
+++ b/rust/src/generated/session_events.rs
@@ -21,6 +21,10 @@ pub enum SessionEventType {
SessionIdle,
#[serde(rename = "session.title_changed")]
SessionTitleChanged,
+ #[serde(rename = "session.schedule_created")]
+ SessionScheduleCreated,
+ #[serde(rename = "session.schedule_cancelled")]
+ SessionScheduleCancelled,
#[serde(rename = "session.info")]
SessionInfo,
#[serde(rename = "session.warning")]
@@ -188,6 +192,10 @@ pub enum SessionEventData {
SessionIdle(SessionIdleData),
#[serde(rename = "session.title_changed")]
SessionTitleChanged(SessionTitleChangedData),
+ #[serde(rename = "session.schedule_created")]
+ SessionScheduleCreated(SessionScheduleCreatedData),
+ #[serde(rename = "session.schedule_cancelled")]
+ SessionScheduleCancelled(SessionScheduleCancelledData),
#[serde(rename = "session.info")]
SessionInfo(SessionInfoData),
#[serde(rename = "session.warning")]
@@ -505,6 +513,26 @@ pub struct SessionTitleChangedData {
pub title: String,
}
+/// Scheduled prompt registered via /every
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct SessionScheduleCreatedData {
+ /// Sequential id assigned to the scheduled prompt within the session
+ pub id: i64,
+ /// Interval between ticks in milliseconds
+ pub interval_ms: i64,
+ /// Prompt text that gets enqueued on every tick
+ pub prompt: String,
+}
+
+/// Scheduled prompt cancelled from the schedule manager dialog
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct SessionScheduleCancelledData {
+ /// Id of the scheduled prompt that was cancelled
+ pub id: i64,
+}
+
/// Informational message for timeline display with categorization
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
@@ -1039,6 +1067,9 @@ pub struct AssistantMessageToolRequest {
/// Name of the MCP server hosting this tool, when the tool is an MCP tool
#[serde(skip_serializing_if = "Option::is_none")]
pub mcp_server_name: Option,
+ /// Original tool name on the MCP server, when the tool is an MCP tool
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub mcp_tool_name: Option,
/// Name of the tool being invoked
pub name: String,
/// Unique identifier for this tool call
diff --git a/test/harness/package-lock.json b/test/harness/package-lock.json
index 7259fbacc..c5bbaabae 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.41-1",
+ "@github/copilot": "^1.0.42",
"@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.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.41-1.tgz",
- "integrity": "sha512-95Qxeds7SAi96b4bK91PAdB13M39ZKpZDfWf69yJg6362RTCFNa24QvflLG+3f4Vojh8GD4h8EvxAYwgq4zdMQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.42.tgz",
+ "integrity": "sha512-ODW5+aJi595Tb2WUaAlshBoUkOBuh9MegXXwXzMoar+k9fZzzDy3oNJLFg7ni4UtkUZvj/WL/y3s5O+FlsF2HA==",
"dev": true,
"license": "SEE LICENSE IN LICENSE.md",
"bin": {
"copilot": "npm-loader.js"
},
"optionalDependencies": {
- "@github/copilot-darwin-arm64": "1.0.41-1",
- "@github/copilot-darwin-x64": "1.0.41-1",
- "@github/copilot-linux-arm64": "1.0.41-1",
- "@github/copilot-linux-x64": "1.0.41-1",
- "@github/copilot-win32-arm64": "1.0.41-1",
- "@github/copilot-win32-x64": "1.0.41-1"
+ "@github/copilot-darwin-arm64": "1.0.42",
+ "@github/copilot-darwin-x64": "1.0.42",
+ "@github/copilot-linux-arm64": "1.0.42",
+ "@github/copilot-linux-x64": "1.0.42",
+ "@github/copilot-win32-arm64": "1.0.42",
+ "@github/copilot-win32-x64": "1.0.42"
}
},
"node_modules/@github/copilot-darwin-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.41-1.tgz",
- "integrity": "sha512-9ExZaLv3/yi7Be9GnjhxJgmuklQhqT59014BsqsWt1lpTA1khJs8VyC5B+iP8TEOkFKvD/UXJNSP9PCE6n5inQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.42.tgz",
+ "integrity": "sha512-2w89QLRgMR7hWwV1KG3uXqu98WST6afJCfvtYtqvPdf6ZQC7Fj2HhPNCrMxZk/H8mZwTgYJeg30gZjvV1698EA==",
"cpu": [
"arm64"
],
@@ -499,9 +499,9 @@
}
},
"node_modules/@github/copilot-darwin-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.41-1.tgz",
- "integrity": "sha512-6ZretUFTcCPajzcZyQZixn2unVlN+sbtC6hULBYT6FLHrqSrjK4QN52eCtTYOz/kPbBUO4lj9YjT/v1gkgMDwQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.42.tgz",
+ "integrity": "sha512-G2//tgGSKXx3ZGMqe774UnewasYMh+j0ZeQ3injtuZpSpzN+OAuNkzwXpvFHprdbgekMb0oAPN+Xm3rHuQY8Xw==",
"cpu": [
"x64"
],
@@ -516,9 +516,9 @@
}
},
"node_modules/@github/copilot-linux-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.41-1.tgz",
- "integrity": "sha512-iP/VbjvGMQvo0fudLHBpmp31nAmtGvq1tZWC+YEQ43D58n2miOXkiDR61Tn9PSPGTkNbrnTecE0mgBO2oePYPw==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.42.tgz",
+ "integrity": "sha512-Ai6J4hUKVuE5ztsLspp/I7ByXtL2V6tF+AOn0q+hHp1MOA5JLq5/G8PE+c0VzG69x4hkt1lROQDjvXJGY7sv+g==",
"cpu": [
"arm64"
],
@@ -533,9 +533,9 @@
}
},
"node_modules/@github/copilot-linux-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.41-1.tgz",
- "integrity": "sha512-DAVCL7pMxeRRHcVOcbpllDBn87zVgskHNqfWrdFPEcgfslx0bw7GkErO35jx/SLnehcwpdwHquqfkyDpnfRAqg==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.42.tgz",
+ "integrity": "sha512-yYfuL6Hk3uLQuIgfxpEMCyoowFq2Bew1EaXmvg4lnDjj95tvEmyMCX77aIZ2AKwBOgp1nMV7L1B1QL9/mw6BTA==",
"cpu": [
"x64"
],
@@ -550,9 +550,9 @@
}
},
"node_modules/@github/copilot-win32-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.41-1.tgz",
- "integrity": "sha512-m+un4+m1MQlTbiaA6d+/1Aa0SBI85O+De6P/8RdrVCEaoLE0Uy10wZbiHk6GK+YN74B/9WGwW8YANVVaBXsDDw==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.42.tgz",
+ "integrity": "sha512-WgnV6AxsvbvZdNW/42JFikK/SqR1JMw6juRpGKXZr70ond/cHK6trtrmt3dXYPymBO14ppJMFdm4+chJzKGKMw==",
"cpu": [
"arm64"
],
@@ -567,9 +567,9 @@
}
},
"node_modules/@github/copilot-win32-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.41-1.tgz",
- "integrity": "sha512-9Yl56T/4Eo7etQ+98XxsYTIzPdkuN5SAD0mZN2SHjdK5h0mBJFXpEmsminSelFgUbTsMHb+srfSmvx5nFe0m0A==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.42.tgz",
+ "integrity": "sha512-J5jtrcYuODuD4LPPRHjOCMJGO6+vKZ71n8PTiHPCg9lpfThXDDXxrB7nDDkhxl23zSXlUrpWwkMI+a2Ax/AxGg==",
"cpu": [
"x64"
],
diff --git a/test/harness/package.json b/test/harness/package.json
index 2b483cb44..874aeca16 100644
--- a/test/harness/package.json
+++ b/test/harness/package.json
@@ -11,7 +11,7 @@
"test": "vitest run"
},
"devDependencies": {
- "@github/copilot": "^1.0.41-1",
+ "@github/copilot": "^1.0.42",
"@modelcontextprotocol/sdk": "^1.26.0",
"@types/node": "^25.3.3",
"@types/node-forge": "^1.3.14",