@@ -102,6 +102,12 @@ interface SessionContextValue {
102102 // Messages for current session
103103 messages : Accessor < Message [ ] >
104104
105+ // All messages keyed by sessionID (includes child sessions)
106+ allMessages : ( ) => Record < string , Message [ ] >
107+
108+ // All parts keyed by messageID (includes child sessions)
109+ allParts : ( ) => Record < string , Part [ ] >
110+
105111 // Parts for a specific message
106112 getParts : ( messageID : string ) => Part [ ]
107113
@@ -143,6 +149,7 @@ interface SessionContextValue {
143149 selectSession : ( id : string ) => void
144150 deleteSession : ( id : string ) => void
145151 renameSession : ( id : string , title : string ) => void
152+ syncSession : ( sessionID : string ) => void
146153}
147154
148155const SessionContext = createContext < SessionContextValue > ( )
@@ -790,6 +797,14 @@ export const SessionProvider: ParentComponent = (props) => {
790797 return store . parts [ messageID ] || [ ]
791798 }
792799
800+ const allMessages = ( ) => store . messages
801+
802+ const allParts = ( ) => store . parts
803+
804+ function syncSession ( sessionID : string ) {
805+ vscode . postMessage ( { type : "syncSession" , sessionID } )
806+ }
807+
793808 const todos = ( ) => {
794809 const id = currentSessionID ( )
795810 return id ? store . todos [ id ] || [ ] : [ ]
@@ -865,6 +880,8 @@ export const SessionProvider: ParentComponent = (props) => {
865880 selectAgent,
866881 getSessionAgent : ( sessionID : string ) => store . agentSelections [ sessionID ] ?? defaultAgent ( ) ,
867882 getSessionModel : ( sessionID : string ) => store . modelSelections [ sessionID ] ?? provider . defaultSelection ( ) ,
883+ allMessages,
884+ allParts,
868885 sendMessage,
869886 abort,
870887 compact,
@@ -877,6 +894,7 @@ export const SessionProvider: ParentComponent = (props) => {
877894 selectSession,
878895 deleteSession,
879896 renameSession,
897+ syncSession,
880898 }
881899
882900 return < SessionContext . Provider value = { value } > { props . children } </ SessionContext . Provider >
0 commit comments