5
5
6
6
import { RequestMetadata , RequestType } from '@vscode/copilot-api' ;
7
7
import { HTMLTracer , IChatEndpointInfo , RenderPromptResult } from '@vscode/prompt-tsx' ;
8
- import { CancellationToken , DocumentLink , DocumentLinkProvider , LanguageModelDataPart , LanguageModelPromptTsxPart , LanguageModelTextPart , LanguageModelToolResult2 , languages , Range , TextDocument , Uri , workspace } from 'vscode' ;
8
+ import { CancellationToken , DocumentLink , DocumentLinkProvider , ExtendedLanguageModelToolResult , LanguageModelDataPart , LanguageModelPromptTsxPart , LanguageModelTextPart , LanguageModelToolResult2 , languages , Range , TextDocument , Uri , workspace } from 'vscode' ;
9
9
import { ChatFetchResponseType } from '../../../platform/chat/common/commonTypes' ;
10
10
import { ConfigKey , IConfigurationService , XTabProviderId } from '../../../platform/configuration/common/configurationService' ;
11
11
import { IModelAPIResponse } from '../../../platform/endpoint/common/endpointProvider' ;
@@ -229,6 +229,7 @@ class LoggedToolCall implements ILoggedToolCall {
229
229
public readonly time : number ,
230
230
public readonly thinking ?: ThinkingData ,
231
231
public readonly edits ?: { path : string ; edits : string } [ ] ,
232
+ public readonly toolMetadata ?: unknown ,
232
233
) { }
233
234
234
235
async toJSON ( ) : Promise < object > {
@@ -256,7 +257,8 @@ class LoggedToolCall implements ILoggedToolCall {
256
257
time : new Date ( this . time ) . toISOString ( ) ,
257
258
response : responseData ,
258
259
thinking : thinking ,
259
- edits : this . edits ? this . edits . map ( edit => ( { path : edit . path , edits : JSON . parse ( edit . edits ) } ) ) : undefined
260
+ edits : this . edits ? this . edits . map ( edit => ( { path : edit . path , edits : JSON . parse ( edit . edits ) } ) ) : undefined ,
261
+ toolMetadata : this . toolMetadata
260
262
} ;
261
263
}
262
264
}
@@ -325,6 +327,8 @@ export class RequestLogger extends AbstractRequestLogger {
325
327
326
328
public override logToolCall ( id : string , name : string , args : unknown , response : LanguageModelToolResult2 , thinking ?: ThinkingData ) : void {
327
329
const edits = this . _workspaceEditRecorder ?. getEditsAndReset ( ) ;
330
+ // Extract toolMetadata from response if it exists
331
+ const toolMetadata = 'toolMetadata' in response ? ( response as ExtendedLanguageModelToolResult ) . toolMetadata : undefined ;
328
332
this . _addEntry ( new LoggedToolCall (
329
333
id ,
330
334
name ,
@@ -333,7 +337,8 @@ export class RequestLogger extends AbstractRequestLogger {
333
337
this . currentRequest ,
334
338
Date . now ( ) ,
335
339
thinking ,
336
- edits
340
+ edits ,
341
+ toolMetadata
337
342
) ) ;
338
343
}
339
344
0 commit comments