Skip to content

Commit f15a9c0

Browse files
zhichliCopilot
andauthored
Add toolMetadata to exported logs in JSON from chat debug view (#1131)
* adapt * Update src/extension/prompt/vscode-node/requestLoggerImpl.ts Co-authored-by: Copilot <[email protected]> * fix --------- Co-authored-by: Copilot <[email protected]>
1 parent c4c1d34 commit f15a9c0

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/extension/prompt/vscode-node/requestLoggerImpl.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import { RequestMetadata, RequestType } from '@vscode/copilot-api';
77
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';
99
import { ChatFetchResponseType } from '../../../platform/chat/common/commonTypes';
1010
import { ConfigKey, IConfigurationService, XTabProviderId } from '../../../platform/configuration/common/configurationService';
1111
import { IModelAPIResponse } from '../../../platform/endpoint/common/endpointProvider';
@@ -229,6 +229,7 @@ class LoggedToolCall implements ILoggedToolCall {
229229
public readonly time: number,
230230
public readonly thinking?: ThinkingData,
231231
public readonly edits?: { path: string; edits: string }[],
232+
public readonly toolMetadata?: unknown,
232233
) { }
233234

234235
async toJSON(): Promise<object> {
@@ -256,7 +257,8 @@ class LoggedToolCall implements ILoggedToolCall {
256257
time: new Date(this.time).toISOString(),
257258
response: responseData,
258259
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
260262
};
261263
}
262264
}
@@ -325,6 +327,8 @@ export class RequestLogger extends AbstractRequestLogger {
325327

326328
public override logToolCall(id: string, name: string, args: unknown, response: LanguageModelToolResult2, thinking?: ThinkingData): void {
327329
const edits = this._workspaceEditRecorder?.getEditsAndReset();
330+
// Extract toolMetadata from response if it exists
331+
const toolMetadata = 'toolMetadata' in response ? (response as ExtendedLanguageModelToolResult).toolMetadata : undefined;
328332
this._addEntry(new LoggedToolCall(
329333
id,
330334
name,
@@ -333,7 +337,8 @@ export class RequestLogger extends AbstractRequestLogger {
333337
this.currentRequest,
334338
Date.now(),
335339
thinking,
336-
edits
340+
edits,
341+
toolMetadata
337342
));
338343
}
339344

src/extension/vscode.proposed.chatParticipantPrivate.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ declare module 'vscode' {
236236
export class ExtendedLanguageModelToolResult extends LanguageModelToolResult {
237237
toolResultMessage?: string | MarkdownString;
238238
toolResultDetails?: Array<Uri | Location>;
239+
toolMetadata?: unknown;
239240
}
240241

241242
// #region Chat participant detection

0 commit comments

Comments
 (0)