@@ -135,6 +135,7 @@ func (e *AIStudioExecutor) Execute(ctx context.Context, auth *cliproxyauth.Auth,
135135 if err != nil {
136136 return resp , err
137137 }
138+ reporter .SetTranslatedReasoningEffort (body .payload , body .toFormat .String ())
138139
139140 endpoint := e .buildEndpoint (baseModel , body .action , opts .Alt )
140141 wsReq := & wsrelay.HTTPRequest {
@@ -167,13 +168,16 @@ func (e *AIStudioExecutor) Execute(ctx context.Context, auth *cliproxyauth.Auth,
167168 AuthValue : authValue ,
168169 })
169170
171+ reporter .StartResponseTTFT ()
170172 wsResp , err := e .relay .NonStream (ctx , authID , wsReq )
171173 if err != nil {
172174 helps .RecordAPIResponseError (ctx , e .cfg , err )
173175 return resp , err
174176 }
175177 helps .RecordAPIResponseMetadata (ctx , e .cfg , wsResp .Status , wsResp .Headers .Clone ())
178+ reporter .StartResponseTTFT ()
176179 if len (wsResp .Body ) > 0 {
180+ reporter .MarkFirstResponseByte ()
177181 helps .AppendAPIResponseChunk (ctx , e .cfg , wsResp .Body )
178182 }
179183 if wsResp .Status < 200 || wsResp .Status >= 300 {
@@ -199,6 +203,7 @@ func (e *AIStudioExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth
199203 if err != nil {
200204 return nil , err
201205 }
206+ reporter .SetTranslatedReasoningEffort (body .payload , body .toFormat .String ())
202207
203208 endpoint := e .buildEndpoint (baseModel , body .action , opts .Alt )
204209 wsReq := & wsrelay.HTTPRequest {
@@ -229,6 +234,7 @@ func (e *AIStudioExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth
229234 AuthType : authType ,
230235 AuthValue : authValue ,
231236 })
237+ reporter .StartResponseTTFT ()
232238 wsStream , err := e .relay .Stream (ctx , authID , wsReq )
233239 if err != nil {
234240 helps .RecordAPIResponseError (ctx , e .cfg , err )
@@ -244,10 +250,12 @@ func (e *AIStudioExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth
244250 metadataLogged := false
245251 if firstEvent .Status > 0 {
246252 helps .RecordAPIResponseMetadata (ctx , e .cfg , firstEvent .Status , firstEvent .Headers .Clone ())
253+ reporter .StartResponseTTFT ()
247254 metadataLogged = true
248255 }
249256 var body bytes.Buffer
250257 if len (firstEvent .Payload ) > 0 {
258+ reporter .MarkFirstResponseByte ()
251259 helps .AppendAPIResponseChunk (ctx , e .cfg , firstEvent .Payload )
252260 body .Write (firstEvent .Payload )
253261 }
@@ -264,9 +272,11 @@ func (e *AIStudioExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth
264272 }
265273 if ! metadataLogged && event .Status > 0 {
266274 helps .RecordAPIResponseMetadata (ctx , e .cfg , event .Status , event .Headers .Clone ())
275+ reporter .StartResponseTTFT ()
267276 metadataLogged = true
268277 }
269278 if len (event .Payload ) > 0 {
279+ reporter .MarkFirstResponseByte ()
270280 helps .AppendAPIResponseChunk (ctx , e .cfg , event .Payload )
271281 body .Write (event .Payload )
272282 }
@@ -295,10 +305,12 @@ func (e *AIStudioExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth
295305 case wsrelay .MessageTypeStreamStart :
296306 if ! metadataLogged && event .Status > 0 {
297307 helps .RecordAPIResponseMetadata (ctx , e .cfg , event .Status , event .Headers .Clone ())
308+ reporter .StartResponseTTFT ()
298309 metadataLogged = true
299310 }
300311 case wsrelay .MessageTypeStreamChunk :
301312 if len (event .Payload ) > 0 {
313+ reporter .MarkFirstResponseByte ()
302314 helps .AppendAPIResponseChunk (ctx , e .cfg , event .Payload )
303315 filtered := helps .FilterSSEUsageMetadata (event .Payload )
304316 if detail , ok := helps .ParseGeminiStreamUsage (filtered ); ok {
@@ -319,9 +331,11 @@ func (e *AIStudioExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth
319331 case wsrelay .MessageTypeHTTPResp :
320332 if ! metadataLogged && event .Status > 0 {
321333 helps .RecordAPIResponseMetadata (ctx , e .cfg , event .Status , event .Headers .Clone ())
334+ reporter .StartResponseTTFT ()
322335 metadataLogged = true
323336 }
324337 if len (event .Payload ) > 0 {
338+ reporter .MarkFirstResponseByte ()
325339 helps .AppendAPIResponseChunk (ctx , e .cfg , event .Payload )
326340 }
327341 lines := sdktranslator .TranslateStream (ctx , body .toFormat , opts .SourceFormat , req .Model , opts .OriginalRequest , translatedReq , event .Payload , & param )
0 commit comments