@@ -28,6 +28,7 @@ namespace GitHub.Copilot.SDK;
2828[ JsonDerivedType ( typeof ( AssistantTurnEndEvent ) , "assistant.turn_end" ) ]
2929[ JsonDerivedType ( typeof ( AssistantTurnStartEvent ) , "assistant.turn_start" ) ]
3030[ JsonDerivedType ( typeof ( AssistantUsageEvent ) , "assistant.usage" ) ]
31+ [ JsonDerivedType ( typeof ( CapabilitiesChangedEvent ) , "capabilities.changed" ) ]
3132[ JsonDerivedType ( typeof ( CommandCompletedEvent ) , "command.completed" ) ]
3233[ JsonDerivedType ( typeof ( CommandExecuteEvent ) , "command.execute" ) ]
3334[ JsonDerivedType ( typeof ( CommandQueuedEvent ) , "command.queued" ) ]
@@ -45,6 +46,8 @@ namespace GitHub.Copilot.SDK;
4546[ JsonDerivedType ( typeof ( PendingMessagesModifiedEvent ) , "pending_messages.modified" ) ]
4647[ JsonDerivedType ( typeof ( PermissionCompletedEvent ) , "permission.completed" ) ]
4748[ JsonDerivedType ( typeof ( PermissionRequestedEvent ) , "permission.requested" ) ]
49+ [ JsonDerivedType ( typeof ( SamplingCompletedEvent ) , "sampling.completed" ) ]
50+ [ JsonDerivedType ( typeof ( SamplingRequestedEvent ) , "sampling.requested" ) ]
4851[ JsonDerivedType ( typeof ( SessionBackgroundTasksChangedEvent ) , "session.background_tasks_changed" ) ]
4952[ JsonDerivedType ( typeof ( SessionCompactionCompleteEvent ) , "session.compaction_complete" ) ]
5053[ JsonDerivedType ( typeof ( SessionCompactionStartEvent ) , "session.compaction_start" ) ]
@@ -60,6 +63,7 @@ namespace GitHub.Copilot.SDK;
6063[ JsonDerivedType ( typeof ( SessionModeChangedEvent ) , "session.mode_changed" ) ]
6164[ JsonDerivedType ( typeof ( SessionModelChangeEvent ) , "session.model_change" ) ]
6265[ JsonDerivedType ( typeof ( SessionPlanChangedEvent ) , "session.plan_changed" ) ]
66+ [ JsonDerivedType ( typeof ( SessionRemoteSteerableChangedEvent ) , "session.remote_steerable_changed" ) ]
6367[ JsonDerivedType ( typeof ( SessionResumeEvent ) , "session.resume" ) ]
6468[ JsonDerivedType ( typeof ( SessionShutdownEvent ) , "session.shutdown" ) ]
6569[ JsonDerivedType ( typeof ( SessionSkillsLoadedEvent ) , "session.skills_loaded" ) ]
@@ -151,6 +155,19 @@ public partial class SessionResumeEvent : SessionEvent
151155 public required SessionResumeData Data { get ; set ; }
152156}
153157
158+ /// <summary>Notifies Mission Control that the session's remote steering capability has changed.</summary>
159+ /// <remarks>Represents the <c>session.remote_steerable_changed</c> event.</remarks>
160+ public partial class SessionRemoteSteerableChangedEvent : SessionEvent
161+ {
162+ /// <inheritdoc />
163+ [ JsonIgnore ]
164+ public override string Type => "session.remote_steerable_changed" ;
165+
166+ /// <summary>The <c>session.remote_steerable_changed</c> event payload.</summary>
167+ [ JsonPropertyName ( "data" ) ]
168+ public required SessionRemoteSteerableChangedData Data { get ; set ; }
169+ }
170+
154171/// <summary>Error details for timeline display including message and optional diagnostic information.</summary>
155172/// <remarks>Represents the <c>session.error</c> event.</remarks>
156173public partial class SessionErrorEvent : SessionEvent
@@ -813,6 +830,32 @@ public partial class ElicitationCompletedEvent : SessionEvent
813830 public required ElicitationCompletedData Data { get ; set ; }
814831}
815832
833+ /// <summary>Sampling request from an MCP server; contains the server name and a requestId for correlation.</summary>
834+ /// <remarks>Represents the <c>sampling.requested</c> event.</remarks>
835+ public partial class SamplingRequestedEvent : SessionEvent
836+ {
837+ /// <inheritdoc />
838+ [ JsonIgnore ]
839+ public override string Type => "sampling.requested" ;
840+
841+ /// <summary>The <c>sampling.requested</c> event payload.</summary>
842+ [ JsonPropertyName ( "data" ) ]
843+ public required SamplingRequestedData Data { get ; set ; }
844+ }
845+
846+ /// <summary>Sampling request completion notification signaling UI dismissal.</summary>
847+ /// <remarks>Represents the <c>sampling.completed</c> event.</remarks>
848+ public partial class SamplingCompletedEvent : SessionEvent
849+ {
850+ /// <inheritdoc />
851+ [ JsonIgnore ]
852+ public override string Type => "sampling.completed" ;
853+
854+ /// <summary>The <c>sampling.completed</c> event payload.</summary>
855+ [ JsonPropertyName ( "data" ) ]
856+ public required SamplingCompletedData Data { get ; set ; }
857+ }
858+
816859/// <summary>OAuth authentication request for an MCP server.</summary>
817860/// <remarks>Represents the <c>mcp.oauth_required</c> event.</remarks>
818861public partial class McpOauthRequiredEvent : SessionEvent
@@ -917,6 +960,19 @@ public partial class CommandsChangedEvent : SessionEvent
917960 public required CommandsChangedData Data { get ; set ; }
918961}
919962
963+ /// <summary>Session capability change notification.</summary>
964+ /// <remarks>Represents the <c>capabilities.changed</c> event.</remarks>
965+ public partial class CapabilitiesChangedEvent : SessionEvent
966+ {
967+ /// <inheritdoc />
968+ [ JsonIgnore ]
969+ public override string Type => "capabilities.changed" ;
970+
971+ /// <summary>The <c>capabilities.changed</c> event payload.</summary>
972+ [ JsonPropertyName ( "data" ) ]
973+ public required CapabilitiesChangedData Data { get ; set ; }
974+ }
975+
920976/// <summary>Plan approval request with plan content and available user actions.</summary>
921977/// <remarks>Represents the <c>exit_plan_mode.requested</c> event.</remarks>
922978public partial class ExitPlanModeRequestedEvent : SessionEvent
@@ -1072,8 +1128,8 @@ public partial class SessionStartData
10721128
10731129 /// <summary>Whether this session supports remote steering via Mission Control.</summary>
10741130 [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
1075- [ JsonPropertyName ( "steerable " ) ]
1076- public bool ? Steerable { get ; set ; }
1131+ [ JsonPropertyName ( "remoteSteerable " ) ]
1132+ public bool ? RemoteSteerable { get ; set ; }
10771133}
10781134
10791135/// <summary>Session resume metadata including current context and event count.</summary>
@@ -1106,6 +1162,19 @@ public partial class SessionResumeData
11061162 [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
11071163 [ JsonPropertyName ( "alreadyInUse" ) ]
11081164 public bool ? AlreadyInUse { get ; set ; }
1165+
1166+ /// <summary>Whether this session supports remote steering via Mission Control.</summary>
1167+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
1168+ [ JsonPropertyName ( "remoteSteerable" ) ]
1169+ public bool ? RemoteSteerable { get ; set ; }
1170+ }
1171+
1172+ /// <summary>Notifies Mission Control that the session's remote steering capability has changed.</summary>
1173+ public partial class SessionRemoteSteerableChangedData
1174+ {
1175+ /// <summary>Whether this session now supports remote steering via Mission Control.</summary>
1176+ [ JsonPropertyName ( "remoteSteerable" ) ]
1177+ public required bool RemoteSteerable { get ; set ; }
11091178}
11101179
11111180/// <summary>Error details for timeline display including message and optional diagnostic information.</summary>
@@ -1779,7 +1848,17 @@ public partial class AssistantUsageData
17791848 [ JsonPropertyName ( "duration" ) ]
17801849 public double ? Duration { get ; set ; }
17811850
1782- /// <summary>What initiated this API call (e.g., "sub-agent"); absent for user-initiated calls.</summary>
1851+ /// <summary>Time to first token in milliseconds. Only available for streaming requests.</summary>
1852+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
1853+ [ JsonPropertyName ( "ttftMs" ) ]
1854+ public double ? TtftMs { get ; set ; }
1855+
1856+ /// <summary>Average inter-token latency in milliseconds. Only available for streaming requests.</summary>
1857+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
1858+ [ JsonPropertyName ( "interTokenLatencyMs" ) ]
1859+ public double ? InterTokenLatencyMs { get ; set ; }
1860+
1861+ /// <summary>What initiated this API call (e.g., "sub-agent", "mcp-sampling"); absent for user-initiated calls.</summary>
17831862 [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
17841863 [ JsonPropertyName ( "initiator" ) ]
17851864 public string ? Initiator { get ; set ; }
@@ -2277,6 +2356,30 @@ public partial class ElicitationCompletedData
22772356 public required string RequestId { get ; set ; }
22782357}
22792358
2359+ /// <summary>Sampling request from an MCP server; contains the server name and a requestId for correlation.</summary>
2360+ public partial class SamplingRequestedData
2361+ {
2362+ /// <summary>Unique identifier for this sampling request; used to respond via session.respondToSampling().</summary>
2363+ [ JsonPropertyName ( "requestId" ) ]
2364+ public required string RequestId { get ; set ; }
2365+
2366+ /// <summary>Name of the MCP server that initiated the sampling request.</summary>
2367+ [ JsonPropertyName ( "serverName" ) ]
2368+ public required string ServerName { get ; set ; }
2369+
2370+ /// <summary>The JSON-RPC request ID from the MCP protocol.</summary>
2371+ [ JsonPropertyName ( "mcpRequestId" ) ]
2372+ public required object McpRequestId { get ; set ; }
2373+ }
2374+
2375+ /// <summary>Sampling request completion notification signaling UI dismissal.</summary>
2376+ public partial class SamplingCompletedData
2377+ {
2378+ /// <summary>Request ID of the resolved sampling request; clients should dismiss any UI for this request.</summary>
2379+ [ JsonPropertyName ( "requestId" ) ]
2380+ public required string RequestId { get ; set ; }
2381+ }
2382+
22802383/// <summary>OAuth authentication request for an MCP server.</summary>
22812384public partial class McpOauthRequiredData
22822385{
@@ -2397,6 +2500,15 @@ public partial class CommandsChangedData
23972500 public required CommandsChangedDataCommandsItem [ ] Commands { get ; set ; }
23982501}
23992502
2503+ /// <summary>Session capability change notification.</summary>
2504+ public partial class CapabilitiesChangedData
2505+ {
2506+ /// <summary>UI capability changes.</summary>
2507+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
2508+ [ JsonPropertyName ( "ui" ) ]
2509+ public CapabilitiesChangedDataUi ? Ui { get ; set ; }
2510+ }
2511+
24002512/// <summary>Plan approval request with plan content and available user actions.</summary>
24012513public partial class ExitPlanModeRequestedData
24022514{
@@ -3591,6 +3703,16 @@ public partial class CommandsChangedDataCommandsItem
35913703 public string ? Description { get ; set ; }
35923704}
35933705
3706+ /// <summary>UI capability changes.</summary>
3707+ /// <remarks>Nested data type for <c>CapabilitiesChangedDataUi</c>.</remarks>
3708+ public partial class CapabilitiesChangedDataUi
3709+ {
3710+ /// <summary>Whether elicitation is now supported.</summary>
3711+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
3712+ [ JsonPropertyName ( "elicitation" ) ]
3713+ public bool ? Elicitation { get ; set ; }
3714+ }
3715+
35943716/// <summary>Nested data type for <c>SessionSkillsLoadedDataSkillsItem</c>.</summary>
35953717public partial class SessionSkillsLoadedDataSkillsItem
35963718{
@@ -3955,6 +4077,9 @@ public enum SessionExtensionsLoadedDataExtensionsItemStatus
39554077[ JsonSerializable ( typeof ( AssistantUsageDataCopilotUsage ) ) ]
39564078[ JsonSerializable ( typeof ( AssistantUsageDataCopilotUsageTokenDetailsItem ) ) ]
39574079[ JsonSerializable ( typeof ( AssistantUsageEvent ) ) ]
4080+ [ JsonSerializable ( typeof ( CapabilitiesChangedData ) ) ]
4081+ [ JsonSerializable ( typeof ( CapabilitiesChangedDataUi ) ) ]
4082+ [ JsonSerializable ( typeof ( CapabilitiesChangedEvent ) ) ]
39584083[ JsonSerializable ( typeof ( CommandCompletedData ) ) ]
39594084[ JsonSerializable ( typeof ( CommandCompletedEvent ) ) ]
39604085[ JsonSerializable ( typeof ( CommandExecuteData ) ) ]
@@ -4005,6 +4130,10 @@ public enum SessionExtensionsLoadedDataExtensionsItemStatus
40054130[ JsonSerializable ( typeof ( PermissionRequestWrite ) ) ]
40064131[ JsonSerializable ( typeof ( PermissionRequestedData ) ) ]
40074132[ JsonSerializable ( typeof ( PermissionRequestedEvent ) ) ]
4133+ [ JsonSerializable ( typeof ( SamplingCompletedData ) ) ]
4134+ [ JsonSerializable ( typeof ( SamplingCompletedEvent ) ) ]
4135+ [ JsonSerializable ( typeof ( SamplingRequestedData ) ) ]
4136+ [ JsonSerializable ( typeof ( SamplingRequestedEvent ) ) ]
40084137[ JsonSerializable ( typeof ( SessionBackgroundTasksChangedData ) ) ]
40094138[ JsonSerializable ( typeof ( SessionBackgroundTasksChangedEvent ) ) ]
40104139[ JsonSerializable ( typeof ( SessionCompactionCompleteData ) ) ]
@@ -4044,6 +4173,8 @@ public enum SessionExtensionsLoadedDataExtensionsItemStatus
40444173[ JsonSerializable ( typeof ( SessionModelChangeEvent ) ) ]
40454174[ JsonSerializable ( typeof ( SessionPlanChangedData ) ) ]
40464175[ JsonSerializable ( typeof ( SessionPlanChangedEvent ) ) ]
4176+ [ JsonSerializable ( typeof ( SessionRemoteSteerableChangedData ) ) ]
4177+ [ JsonSerializable ( typeof ( SessionRemoteSteerableChangedEvent ) ) ]
40474178[ JsonSerializable ( typeof ( SessionResumeData ) ) ]
40484179[ JsonSerializable ( typeof ( SessionResumeDataContext ) ) ]
40494180[ JsonSerializable ( typeof ( SessionResumeEvent ) ) ]
0 commit comments