@@ -250,13 +250,17 @@ internal class SessionModeSetRequest
250250
251251public class SessionPlanReadResult
252252{
253- /// <summary>Whether plan.md exists in the workspace</summary>
253+ /// <summary>Whether the plan file exists in the workspace</summary>
254254 [ JsonPropertyName ( "exists" ) ]
255255 public bool Exists { get ; set ; }
256256
257- /// <summary>The content of plan.md , or null if it does not exist</summary>
257+ /// <summary>The content of the plan file , or null if it does not exist</summary>
258258 [ JsonPropertyName ( "content" ) ]
259259 public string ? Content { get ; set ; }
260+
261+ /// <summary>Absolute file path of the plan file, or null if workspace is not enabled</summary>
262+ [ JsonPropertyName ( "path" ) ]
263+ public string ? Path { get ; set ; }
260264}
261265
262266internal class SessionPlanReadRequest
@@ -468,6 +472,45 @@ internal class SessionCompactionCompactRequest
468472 public string SessionId { get ; set ; } = string . Empty ;
469473}
470474
475+ public class SessionToolsHandlePendingToolCallResult
476+ {
477+ [ JsonPropertyName ( "success" ) ]
478+ public bool Success { get ; set ; }
479+ }
480+
481+ internal class SessionToolsHandlePendingToolCallRequest
482+ {
483+ [ JsonPropertyName ( "sessionId" ) ]
484+ public string SessionId { get ; set ; } = string . Empty ;
485+
486+ [ JsonPropertyName ( "requestId" ) ]
487+ public string RequestId { get ; set ; } = string . Empty ;
488+
489+ [ JsonPropertyName ( "result" ) ]
490+ public object ? Result { get ; set ; }
491+
492+ [ JsonPropertyName ( "error" ) ]
493+ public string ? Error { get ; set ; }
494+ }
495+
496+ public class SessionPermissionsHandlePendingPermissionRequestResult
497+ {
498+ [ JsonPropertyName ( "success" ) ]
499+ public bool Success { get ; set ; }
500+ }
501+
502+ internal class SessionPermissionsHandlePendingPermissionRequestRequest
503+ {
504+ [ JsonPropertyName ( "sessionId" ) ]
505+ public string SessionId { get ; set ; } = string . Empty ;
506+
507+ [ JsonPropertyName ( "requestId" ) ]
508+ public string RequestId { get ; set ; } = string . Empty ;
509+
510+ [ JsonPropertyName ( "result" ) ]
511+ public object Result { get ; set ; } = null ! ;
512+ }
513+
471514[ JsonConverter ( typeof ( JsonStringEnumConverter < SessionModeGetResultMode > ) ) ]
472515public enum SessionModeGetResultMode
473516{
@@ -572,36 +615,42 @@ internal SessionRpc(JsonRpc rpc, string sessionId)
572615 {
573616 _rpc = rpc ;
574617 _sessionId = sessionId ;
575- Model = new ModelApi ( rpc , sessionId ) ;
576- Mode = new ModeApi ( rpc , sessionId ) ;
577- Plan = new PlanApi ( rpc , sessionId ) ;
578- Workspace = new WorkspaceApi ( rpc , sessionId ) ;
579- Fleet = new FleetApi ( rpc , sessionId ) ;
580- Agent = new AgentApi ( rpc , sessionId ) ;
581- Compaction = new CompactionApi ( rpc , sessionId ) ;
618+ Model = new SessionModelApi ( rpc , sessionId ) ;
619+ Mode = new SessionModeApi ( rpc , sessionId ) ;
620+ Plan = new SessionPlanApi ( rpc , sessionId ) ;
621+ Workspace = new SessionWorkspaceApi ( rpc , sessionId ) ;
622+ Fleet = new SessionFleetApi ( rpc , sessionId ) ;
623+ Agent = new SessionAgentApi ( rpc , sessionId ) ;
624+ Compaction = new SessionCompactionApi ( rpc , sessionId ) ;
625+ Tools = new SessionToolsApi ( rpc , sessionId ) ;
626+ Permissions = new SessionPermissionsApi ( rpc , sessionId ) ;
582627 }
583628
584- public ModelApi Model { get ; }
629+ public SessionModelApi Model { get ; }
630+
631+ public SessionModeApi Mode { get ; }
585632
586- public ModeApi Mode { get ; }
633+ public SessionPlanApi Plan { get ; }
587634
588- public PlanApi Plan { get ; }
635+ public SessionWorkspaceApi Workspace { get ; }
589636
590- public WorkspaceApi Workspace { get ; }
637+ public SessionFleetApi Fleet { get ; }
591638
592- public FleetApi Fleet { get ; }
639+ public SessionAgentApi Agent { get ; }
593640
594- public AgentApi Agent { get ; }
641+ public SessionCompactionApi Compaction { get ; }
595642
596- public CompactionApi Compaction { get ; }
643+ public SessionToolsApi Tools { get ; }
644+
645+ public SessionPermissionsApi Permissions { get ; }
597646}
598647
599- public class ModelApi
648+ public class SessionModelApi
600649{
601650 private readonly JsonRpc _rpc ;
602651 private readonly string _sessionId ;
603652
604- internal ModelApi ( JsonRpc rpc , string sessionId )
653+ internal SessionModelApi ( JsonRpc rpc , string sessionId )
605654 {
606655 _rpc = rpc ;
607656 _sessionId = sessionId ;
@@ -622,12 +671,12 @@ public async Task<SessionModelSwitchToResult> SwitchToAsync(string modelId, Canc
622671 }
623672}
624673
625- public class ModeApi
674+ public class SessionModeApi
626675{
627676 private readonly JsonRpc _rpc ;
628677 private readonly string _sessionId ;
629678
630- internal ModeApi ( JsonRpc rpc , string sessionId )
679+ internal SessionModeApi ( JsonRpc rpc , string sessionId )
631680 {
632681 _rpc = rpc ;
633682 _sessionId = sessionId ;
@@ -648,12 +697,12 @@ public async Task<SessionModeSetResult> SetAsync(SessionModeGetResultMode mode,
648697 }
649698}
650699
651- public class PlanApi
700+ public class SessionPlanApi
652701{
653702 private readonly JsonRpc _rpc ;
654703 private readonly string _sessionId ;
655704
656- internal PlanApi ( JsonRpc rpc , string sessionId )
705+ internal SessionPlanApi ( JsonRpc rpc , string sessionId )
657706 {
658707 _rpc = rpc ;
659708 _sessionId = sessionId ;
@@ -681,12 +730,12 @@ public async Task<SessionPlanDeleteResult> DeleteAsync(CancellationToken cancell
681730 }
682731}
683732
684- public class WorkspaceApi
733+ public class SessionWorkspaceApi
685734{
686735 private readonly JsonRpc _rpc ;
687736 private readonly string _sessionId ;
688737
689- internal WorkspaceApi ( JsonRpc rpc , string sessionId )
738+ internal SessionWorkspaceApi ( JsonRpc rpc , string sessionId )
690739 {
691740 _rpc = rpc ;
692741 _sessionId = sessionId ;
@@ -714,12 +763,12 @@ public async Task<SessionWorkspaceCreateFileResult> CreateFileAsync(string path,
714763 }
715764}
716765
717- public class FleetApi
766+ public class SessionFleetApi
718767{
719768 private readonly JsonRpc _rpc ;
720769 private readonly string _sessionId ;
721770
722- internal FleetApi ( JsonRpc rpc , string sessionId )
771+ internal SessionFleetApi ( JsonRpc rpc , string sessionId )
723772 {
724773 _rpc = rpc ;
725774 _sessionId = sessionId ;
@@ -733,12 +782,12 @@ public async Task<SessionFleetStartResult> StartAsync(string? prompt, Cancellati
733782 }
734783}
735784
736- public class AgentApi
785+ public class SessionAgentApi
737786{
738787 private readonly JsonRpc _rpc ;
739788 private readonly string _sessionId ;
740789
741- internal AgentApi ( JsonRpc rpc , string sessionId )
790+ internal SessionAgentApi ( JsonRpc rpc , string sessionId )
742791 {
743792 _rpc = rpc ;
744793 _sessionId = sessionId ;
@@ -773,12 +822,12 @@ public async Task<SessionAgentDeselectResult> DeselectAsync(CancellationToken ca
773822 }
774823}
775824
776- public class CompactionApi
825+ public class SessionCompactionApi
777826{
778827 private readonly JsonRpc _rpc ;
779828 private readonly string _sessionId ;
780829
781- internal CompactionApi ( JsonRpc rpc , string sessionId )
830+ internal SessionCompactionApi ( JsonRpc rpc , string sessionId )
782831 {
783832 _rpc = rpc ;
784833 _sessionId = sessionId ;
@@ -792,6 +841,44 @@ public async Task<SessionCompactionCompactResult> CompactAsync(CancellationToken
792841 }
793842}
794843
844+ public class SessionToolsApi
845+ {
846+ private readonly JsonRpc _rpc ;
847+ private readonly string _sessionId ;
848+
849+ internal SessionToolsApi ( JsonRpc rpc , string sessionId )
850+ {
851+ _rpc = rpc ;
852+ _sessionId = sessionId ;
853+ }
854+
855+ /// <summary>Calls "session.tools.handlePendingToolCall".</summary>
856+ public async Task < SessionToolsHandlePendingToolCallResult > HandlePendingToolCallAsync ( string requestId , object ? result , string ? error , CancellationToken cancellationToken = default )
857+ {
858+ var request = new SessionToolsHandlePendingToolCallRequest { SessionId = _sessionId , RequestId = requestId , Result = result , Error = error } ;
859+ return await CopilotClient . InvokeRpcAsync < SessionToolsHandlePendingToolCallResult > ( _rpc , "session.tools.handlePendingToolCall" , [ request ] , cancellationToken ) ;
860+ }
861+ }
862+
863+ public class SessionPermissionsApi
864+ {
865+ private readonly JsonRpc _rpc ;
866+ private readonly string _sessionId ;
867+
868+ internal SessionPermissionsApi ( JsonRpc rpc , string sessionId )
869+ {
870+ _rpc = rpc ;
871+ _sessionId = sessionId ;
872+ }
873+
874+ /// <summary>Calls "session.permissions.handlePendingPermissionRequest".</summary>
875+ public async Task < SessionPermissionsHandlePendingPermissionRequestResult > HandlePendingPermissionRequestAsync ( string requestId , object result , CancellationToken cancellationToken = default )
876+ {
877+ var request = new SessionPermissionsHandlePendingPermissionRequestRequest { SessionId = _sessionId , RequestId = requestId , Result = result } ;
878+ return await CopilotClient . InvokeRpcAsync < SessionPermissionsHandlePendingPermissionRequestResult > ( _rpc , "session.permissions.handlePendingPermissionRequest" , [ request ] , cancellationToken ) ;
879+ }
880+ }
881+
795882[ JsonSourceGenerationOptions (
796883 JsonSerializerDefaults . Web ,
797884 AllowOutOfOrderMetadataProperties = true ,
@@ -830,12 +917,16 @@ public async Task<SessionCompactionCompactResult> CompactAsync(CancellationToken
830917[ JsonSerializable ( typeof ( SessionModelGetCurrentResult ) ) ]
831918[ JsonSerializable ( typeof ( SessionModelSwitchToRequest ) ) ]
832919[ JsonSerializable ( typeof ( SessionModelSwitchToResult ) ) ]
920+ [ JsonSerializable ( typeof ( SessionPermissionsHandlePendingPermissionRequestRequest ) ) ]
921+ [ JsonSerializable ( typeof ( SessionPermissionsHandlePendingPermissionRequestResult ) ) ]
833922[ JsonSerializable ( typeof ( SessionPlanDeleteRequest ) ) ]
834923[ JsonSerializable ( typeof ( SessionPlanDeleteResult ) ) ]
835924[ JsonSerializable ( typeof ( SessionPlanReadRequest ) ) ]
836925[ JsonSerializable ( typeof ( SessionPlanReadResult ) ) ]
837926[ JsonSerializable ( typeof ( SessionPlanUpdateRequest ) ) ]
838927[ JsonSerializable ( typeof ( SessionPlanUpdateResult ) ) ]
928+ [ JsonSerializable ( typeof ( SessionToolsHandlePendingToolCallRequest ) ) ]
929+ [ JsonSerializable ( typeof ( SessionToolsHandlePendingToolCallResult ) ) ]
839930[ JsonSerializable ( typeof ( SessionWorkspaceCreateFileRequest ) ) ]
840931[ JsonSerializable ( typeof ( SessionWorkspaceCreateFileResult ) ) ]
841932[ JsonSerializable ( typeof ( SessionWorkspaceListFilesRequest ) ) ]
0 commit comments