Path: blob/main/extensions/copilot/src/extension/agentDebug/vscode-node/toolResultContentRenderer.ts
13399 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { LanguageModelDataPart, LanguageModelPromptTsxPart, LanguageModelTextPart } from '../../../vscodeTypes';6import { renderDataPartToString } from '../../prompt/vscode-node/requestLoggerToolResult';7import { IToolResultContentRenderer } from '../common/toolResultRenderer';89export class ToolResultContentRenderer implements IToolResultContentRenderer {10readonly _serviceBrand: undefined;1112renderToolResultContent(content: Iterable<unknown>): string[] {13const parts: string[] = [];14for (const part of content) {15if (part instanceof LanguageModelTextPart) {16parts.push(part.value);17} else if (part instanceof LanguageModelPromptTsxPart) {18// Use lightweight JSON serialization instead of expensive renderPrompt().19// This runs on every tool call, so avoid async TSX rendering overhead.20try {21parts.push(JSON.stringify(part.value, null, 2));22} catch {23parts.push('[PromptTsxPart]');24}25} else if (part instanceof LanguageModelDataPart) {26parts.push(renderDataPartToString(part));27}28}29return parts;30}31}323334