@@ -130,21 +130,21 @@ export async function generateAnswersWithChatgptApiCompat(
130130 false ,
131131 )
132132
133- // Always filter out system messages; for reasoning models, only allow user and assistant
134- const promptWithoutSystem = prompt . filter ( ( msg ) => msg . role !== 'system' )
133+ // Filter messages based on model type
135134 const filteredPrompt = isReasoningModel
136- ? promptWithoutSystem . filter ( ( msg ) => msg . role === 'user' || msg . role === 'assistant' )
137- : promptWithoutSystem
135+ ? prompt . filter ( ( msg ) => msg . role === 'user' || msg . role === 'assistant' )
136+ : prompt
138137
139138 filteredPrompt . push ( { role : 'user' , content : question } )
140139
141140 let answer = ''
142141 let finished = false
143142 const finish = ( ) => {
143+ if ( finished ) return
144144 finished = true
145145 pushRecord ( session , question , answer )
146146 console . debug ( 'conversation history' , { content : session . conversationRecords } )
147- port . postMessage ( { answer : null , done : true , session : session } )
147+ port . postMessage ( { answer : null , done : true , session } )
148148 }
149149
150150 // Build request body with reasoning model-specific parameters
@@ -202,10 +202,12 @@ export async function generateAnswersWithChatgptApiCompat(
202202 console . debug ( 'No choice in response data for reasoning model' )
203203 return
204204 }
205- const content = choice . message ?. content
206- if ( content ) {
205+ const content = choice . message ?. content ?? choice . text
206+ if ( content !== undefined && content !== null ) {
207207 answer = content
208- port . postMessage ( { answer : answer , done : false , session : null } )
208+ port . postMessage ( { answer, done : false , session : null } )
209+ }
210+ if ( choice . finish_reason || content !== undefined ) {
209211 finish ( )
210212 }
211213 } else {
@@ -225,7 +227,7 @@ export async function generateAnswersWithChatgptApiCompat(
225227 } else if ( text ) {
226228 answer += text
227229 }
228- port . postMessage ( { answer : answer , done : false , session : null } )
230+ port . postMessage ( { answer, done : false , session : null } )
229231
230232 if ( choice . finish_reason ) {
231233 finish ( )
0 commit comments