Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions dotnet/src/Generated/Rpc.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1044,6 +1044,42 @@ internal class SessionUiElicitationRequest
public SessionUiElicitationRequestRequestedSchema RequestedSchema { get => field ??= new(); set; }
}

/// <summary>RPC data type for SessionUiHandlePendingElicitation operations.</summary>
public class SessionUiHandlePendingElicitationResult
{
/// <summary>Whether the response was accepted. False if the request was already resolved by another client.</summary>
[JsonPropertyName("success")]
public bool Success { get; set; }
}

/// <summary>The elicitation response (accept with form values, decline, or cancel).</summary>
public class SessionUiHandlePendingElicitationRequestResult
{
/// <summary>The user's response: accept (submitted), decline (rejected), or cancel (dismissed).</summary>
[JsonPropertyName("action")]
public SessionUiElicitationResultAction Action { get; set; }

/// <summary>The form values submitted by the user (present when action is 'accept').</summary>
[JsonPropertyName("content")]
public Dictionary<string, object>? Content { get; set; }
}

/// <summary>RPC data type for SessionUiHandlePendingElicitation operations.</summary>
internal class SessionUiHandlePendingElicitationRequest
{
/// <summary>Target session identifier.</summary>
[JsonPropertyName("sessionId")]
public string SessionId { get; set; } = string.Empty;

/// <summary>The unique request ID from the elicitation.requested event.</summary>
[JsonPropertyName("requestId")]
public string RequestId { get; set; } = string.Empty;

/// <summary>The elicitation response (accept with form values, decline, or cancel).</summary>
[JsonPropertyName("result")]
public SessionUiHandlePendingElicitationRequestResult Result { get => field ??= new(); set; }
}

/// <summary>RPC data type for SessionPermissionsHandlePendingPermissionRequest operations.</summary>
public class SessionPermissionsHandlePendingPermissionRequestResult
{
Expand Down Expand Up @@ -1822,6 +1858,13 @@ public async Task<SessionUiElicitationResult> ElicitationAsync(string message, S
var request = new SessionUiElicitationRequest { SessionId = _sessionId, Message = message, RequestedSchema = requestedSchema };
return await CopilotClient.InvokeRpcAsync<SessionUiElicitationResult>(_rpc, "session.ui.elicitation", [request], cancellationToken);
}

/// <summary>Calls "session.ui.handlePendingElicitation".</summary>
public async Task<SessionUiHandlePendingElicitationResult> HandlePendingElicitationAsync(string requestId, SessionUiHandlePendingElicitationRequestResult result, CancellationToken cancellationToken = default)
{
var request = new SessionUiHandlePendingElicitationRequest { SessionId = _sessionId, RequestId = requestId, Result = result };
return await CopilotClient.InvokeRpcAsync<SessionUiHandlePendingElicitationResult>(_rpc, "session.ui.handlePendingElicitation", [request], cancellationToken);
}
}

/// <summary>Provides session-scoped Permissions APIs.</summary>
Expand Down Expand Up @@ -1961,6 +2004,9 @@ public async Task<SessionShellKillResult> KillAsync(string processId, SessionShe
[JsonSerializable(typeof(SessionUiElicitationRequest))]
[JsonSerializable(typeof(SessionUiElicitationRequestRequestedSchema))]
[JsonSerializable(typeof(SessionUiElicitationResult))]
[JsonSerializable(typeof(SessionUiHandlePendingElicitationRequest))]
[JsonSerializable(typeof(SessionUiHandlePendingElicitationRequestResult))]
[JsonSerializable(typeof(SessionUiHandlePendingElicitationResult))]
[JsonSerializable(typeof(SessionWorkspaceCreateFileRequest))]
[JsonSerializable(typeof(SessionWorkspaceCreateFileResult))]
[JsonSerializable(typeof(SessionWorkspaceListFilesRequest))]
Expand Down
137 changes: 134 additions & 3 deletions dotnet/src/Generated/SessionEvents.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ namespace GitHub.Copilot.SDK;
[JsonDerivedType(typeof(AssistantTurnEndEvent), "assistant.turn_end")]
[JsonDerivedType(typeof(AssistantTurnStartEvent), "assistant.turn_start")]
[JsonDerivedType(typeof(AssistantUsageEvent), "assistant.usage")]
[JsonDerivedType(typeof(CapabilitiesChangedEvent), "capabilities.changed")]
[JsonDerivedType(typeof(CommandCompletedEvent), "command.completed")]
[JsonDerivedType(typeof(CommandExecuteEvent), "command.execute")]
[JsonDerivedType(typeof(CommandQueuedEvent), "command.queued")]
Expand All @@ -45,6 +46,8 @@ namespace GitHub.Copilot.SDK;
[JsonDerivedType(typeof(PendingMessagesModifiedEvent), "pending_messages.modified")]
[JsonDerivedType(typeof(PermissionCompletedEvent), "permission.completed")]
[JsonDerivedType(typeof(PermissionRequestedEvent), "permission.requested")]
[JsonDerivedType(typeof(SamplingCompletedEvent), "sampling.completed")]
[JsonDerivedType(typeof(SamplingRequestedEvent), "sampling.requested")]
[JsonDerivedType(typeof(SessionBackgroundTasksChangedEvent), "session.background_tasks_changed")]
[JsonDerivedType(typeof(SessionCompactionCompleteEvent), "session.compaction_complete")]
[JsonDerivedType(typeof(SessionCompactionStartEvent), "session.compaction_start")]
Expand All @@ -60,6 +63,7 @@ namespace GitHub.Copilot.SDK;
[JsonDerivedType(typeof(SessionModeChangedEvent), "session.mode_changed")]
[JsonDerivedType(typeof(SessionModelChangeEvent), "session.model_change")]
[JsonDerivedType(typeof(SessionPlanChangedEvent), "session.plan_changed")]
[JsonDerivedType(typeof(SessionRemoteSteerableChangedEvent), "session.remote_steerable_changed")]
[JsonDerivedType(typeof(SessionResumeEvent), "session.resume")]
[JsonDerivedType(typeof(SessionShutdownEvent), "session.shutdown")]
[JsonDerivedType(typeof(SessionSkillsLoadedEvent), "session.skills_loaded")]
Expand Down Expand Up @@ -151,6 +155,19 @@ public partial class SessionResumeEvent : SessionEvent
public required SessionResumeData Data { get; set; }
}

/// <summary>Notifies Mission Control that the session's remote steering capability has changed.</summary>
/// <remarks>Represents the <c>session.remote_steerable_changed</c> event.</remarks>
public partial class SessionRemoteSteerableChangedEvent : SessionEvent
{
/// <inheritdoc />
[JsonIgnore]
public override string Type => "session.remote_steerable_changed";

/// <summary>The <c>session.remote_steerable_changed</c> event payload.</summary>
[JsonPropertyName("data")]
public required SessionRemoteSteerableChangedData Data { get; set; }
}

/// <summary>Error details for timeline display including message and optional diagnostic information.</summary>
/// <remarks>Represents the <c>session.error</c> event.</remarks>
public partial class SessionErrorEvent : SessionEvent
Expand Down Expand Up @@ -813,6 +830,32 @@ public partial class ElicitationCompletedEvent : SessionEvent
public required ElicitationCompletedData Data { get; set; }
}

/// <summary>Sampling request from an MCP server; contains the server name and a requestId for correlation.</summary>
/// <remarks>Represents the <c>sampling.requested</c> event.</remarks>
public partial class SamplingRequestedEvent : SessionEvent
{
/// <inheritdoc />
[JsonIgnore]
public override string Type => "sampling.requested";

/// <summary>The <c>sampling.requested</c> event payload.</summary>
[JsonPropertyName("data")]
public required SamplingRequestedData Data { get; set; }
}

/// <summary>Sampling request completion notification signaling UI dismissal.</summary>
/// <remarks>Represents the <c>sampling.completed</c> event.</remarks>
public partial class SamplingCompletedEvent : SessionEvent
{
/// <inheritdoc />
[JsonIgnore]
public override string Type => "sampling.completed";

/// <summary>The <c>sampling.completed</c> event payload.</summary>
[JsonPropertyName("data")]
public required SamplingCompletedData Data { get; set; }
}

/// <summary>OAuth authentication request for an MCP server.</summary>
/// <remarks>Represents the <c>mcp.oauth_required</c> event.</remarks>
public partial class McpOauthRequiredEvent : SessionEvent
Expand Down Expand Up @@ -917,6 +960,19 @@ public partial class CommandsChangedEvent : SessionEvent
public required CommandsChangedData Data { get; set; }
}

/// <summary>Session capability change notification.</summary>
/// <remarks>Represents the <c>capabilities.changed</c> event.</remarks>
public partial class CapabilitiesChangedEvent : SessionEvent
{
/// <inheritdoc />
[JsonIgnore]
public override string Type => "capabilities.changed";

/// <summary>The <c>capabilities.changed</c> event payload.</summary>
[JsonPropertyName("data")]
public required CapabilitiesChangedData Data { get; set; }
}

/// <summary>Plan approval request with plan content and available user actions.</summary>
/// <remarks>Represents the <c>exit_plan_mode.requested</c> event.</remarks>
public partial class ExitPlanModeRequestedEvent : SessionEvent
Expand Down Expand Up @@ -1072,8 +1128,8 @@ public partial class SessionStartData

/// <summary>Whether this session supports remote steering via Mission Control.</summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("steerable")]
public bool? Steerable { get; set; }
[JsonPropertyName("remoteSteerable")]
public bool? RemoteSteerable { get; set; }
}

/// <summary>Session resume metadata including current context and event count.</summary>
Expand Down Expand Up @@ -1106,6 +1162,19 @@ public partial class SessionResumeData
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("alreadyInUse")]
public bool? AlreadyInUse { get; set; }

/// <summary>Whether this session supports remote steering via Mission Control.</summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("remoteSteerable")]
public bool? RemoteSteerable { get; set; }
}

/// <summary>Notifies Mission Control that the session's remote steering capability has changed.</summary>
public partial class SessionRemoteSteerableChangedData
{
/// <summary>Whether this session now supports remote steering via Mission Control.</summary>
[JsonPropertyName("remoteSteerable")]
public required bool RemoteSteerable { get; set; }
}

/// <summary>Error details for timeline display including message and optional diagnostic information.</summary>
Expand Down Expand Up @@ -1779,7 +1848,17 @@ public partial class AssistantUsageData
[JsonPropertyName("duration")]
public double? Duration { get; set; }

/// <summary>What initiated this API call (e.g., "sub-agent"); absent for user-initiated calls.</summary>
/// <summary>Time to first token in milliseconds. Only available for streaming requests.</summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("ttftMs")]
public double? TtftMs { get; set; }

/// <summary>Average inter-token latency in milliseconds. Only available for streaming requests.</summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("interTokenLatencyMs")]
public double? InterTokenLatencyMs { get; set; }

/// <summary>What initiated this API call (e.g., "sub-agent", "mcp-sampling"); absent for user-initiated calls.</summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("initiator")]
public string? Initiator { get; set; }
Expand Down Expand Up @@ -2277,6 +2356,30 @@ public partial class ElicitationCompletedData
public required string RequestId { get; set; }
}

/// <summary>Sampling request from an MCP server; contains the server name and a requestId for correlation.</summary>
public partial class SamplingRequestedData
{
/// <summary>Unique identifier for this sampling request; used to respond via session.respondToSampling().</summary>
[JsonPropertyName("requestId")]
public required string RequestId { get; set; }

/// <summary>Name of the MCP server that initiated the sampling request.</summary>
[JsonPropertyName("serverName")]
public required string ServerName { get; set; }

/// <summary>The JSON-RPC request ID from the MCP protocol.</summary>
[JsonPropertyName("mcpRequestId")]
public required object McpRequestId { get; set; }
}

/// <summary>Sampling request completion notification signaling UI dismissal.</summary>
public partial class SamplingCompletedData
{
/// <summary>Request ID of the resolved sampling request; clients should dismiss any UI for this request.</summary>
[JsonPropertyName("requestId")]
public required string RequestId { get; set; }
}

/// <summary>OAuth authentication request for an MCP server.</summary>
public partial class McpOauthRequiredData
{
Expand Down Expand Up @@ -2397,6 +2500,15 @@ public partial class CommandsChangedData
public required CommandsChangedDataCommandsItem[] Commands { get; set; }
}

/// <summary>Session capability change notification.</summary>
public partial class CapabilitiesChangedData
{
/// <summary>UI capability changes.</summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("ui")]
public CapabilitiesChangedDataUi? Ui { get; set; }
}

/// <summary>Plan approval request with plan content and available user actions.</summary>
public partial class ExitPlanModeRequestedData
{
Expand Down Expand Up @@ -3591,6 +3703,16 @@ public partial class CommandsChangedDataCommandsItem
public string? Description { get; set; }
}

/// <summary>UI capability changes.</summary>
/// <remarks>Nested data type for <c>CapabilitiesChangedDataUi</c>.</remarks>
public partial class CapabilitiesChangedDataUi
{
/// <summary>Whether elicitation is now supported.</summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("elicitation")]
public bool? Elicitation { get; set; }
}

/// <summary>Nested data type for <c>SessionSkillsLoadedDataSkillsItem</c>.</summary>
public partial class SessionSkillsLoadedDataSkillsItem
{
Expand Down Expand Up @@ -3955,6 +4077,9 @@ public enum SessionExtensionsLoadedDataExtensionsItemStatus
[JsonSerializable(typeof(AssistantUsageDataCopilotUsage))]
[JsonSerializable(typeof(AssistantUsageDataCopilotUsageTokenDetailsItem))]
[JsonSerializable(typeof(AssistantUsageEvent))]
[JsonSerializable(typeof(CapabilitiesChangedData))]
[JsonSerializable(typeof(CapabilitiesChangedDataUi))]
[JsonSerializable(typeof(CapabilitiesChangedEvent))]
[JsonSerializable(typeof(CommandCompletedData))]
[JsonSerializable(typeof(CommandCompletedEvent))]
[JsonSerializable(typeof(CommandExecuteData))]
Expand Down Expand Up @@ -4005,6 +4130,10 @@ public enum SessionExtensionsLoadedDataExtensionsItemStatus
[JsonSerializable(typeof(PermissionRequestWrite))]
[JsonSerializable(typeof(PermissionRequestedData))]
[JsonSerializable(typeof(PermissionRequestedEvent))]
[JsonSerializable(typeof(SamplingCompletedData))]
[JsonSerializable(typeof(SamplingCompletedEvent))]
[JsonSerializable(typeof(SamplingRequestedData))]
[JsonSerializable(typeof(SamplingRequestedEvent))]
[JsonSerializable(typeof(SessionBackgroundTasksChangedData))]
[JsonSerializable(typeof(SessionBackgroundTasksChangedEvent))]
[JsonSerializable(typeof(SessionCompactionCompleteData))]
Expand Down Expand Up @@ -4044,6 +4173,8 @@ public enum SessionExtensionsLoadedDataExtensionsItemStatus
[JsonSerializable(typeof(SessionModelChangeEvent))]
[JsonSerializable(typeof(SessionPlanChangedData))]
[JsonSerializable(typeof(SessionPlanChangedEvent))]
[JsonSerializable(typeof(SessionRemoteSteerableChangedData))]
[JsonSerializable(typeof(SessionRemoteSteerableChangedEvent))]
[JsonSerializable(typeof(SessionResumeData))]
[JsonSerializable(typeof(SessionResumeDataContext))]
[JsonSerializable(typeof(SessionResumeEvent))]
Expand Down
Loading
Loading