Skip to content

Commit 3ebadae

Browse files
committed
Cover progress part case for legacy terminal toolSpecificData
Fixes #258542
1 parent 30d9251 commit 3ebadae

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalMarkdownProgressPart.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { ICodeBlockRenderOptions } from '../../codeBlockPart.js';
1515
import { IChatContentPartRenderContext } from '../chatContentParts.js';
1616
import { ChatMarkdownContentPart, EditorPool } from '../chatMarkdownContentPart.js';
1717
import { ChatCustomProgressPart } from '../chatProgressContentPart.js';
18+
import type { ILegacyChatTerminalToolInvocationData } from './chatTerminalToolSubPart.js';
1819
import { BaseChatToolInvocationSubPart } from './chatToolInvocationSubPart.js';
1920

2021
export class ChatTerminalMarkdownProgressPart extends BaseChatToolInvocationSubPart {
@@ -27,7 +28,7 @@ export class ChatTerminalMarkdownProgressPart extends BaseChatToolInvocationSubP
2728

2829
constructor(
2930
toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized,
30-
terminalData: IChatTerminalToolInvocationData,
31+
terminalData: IChatTerminalToolInvocationData | ILegacyChatTerminalToolInvocationData,
3132
context: IChatContentPartRenderContext,
3233
renderer: MarkdownRenderer,
3334
editorPool: EditorPool,
@@ -38,6 +39,19 @@ export class ChatTerminalMarkdownProgressPart extends BaseChatToolInvocationSubP
3839
) {
3940
super(toolInvocation);
4041

42+
// Migrate forward the old tool data format
43+
if ('command' in terminalData) {
44+
terminalData = {
45+
kind: 'terminal',
46+
commandLine: {
47+
original: terminalData.command,
48+
toolEdited: undefined,
49+
userEdited: undefined
50+
},
51+
language: terminalData.language
52+
} satisfies IChatTerminalToolInvocationData;
53+
}
54+
4155
const command = terminalData.commandLine.userEdited ?? terminalData.commandLine.toolEdited ?? terminalData.commandLine.original;
4256

4357
let content = `\`\`\`${terminalData.language}\n${command}\n\`\`\``;

src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolSubPart.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import { BaseChatToolInvocationSubPart } from './chatToolInvocationSubPart.js';
3131
* @deprecated This is the old API shape, we should support this for a while before removing it so
3232
* we don't break existing chats
3333
*/
34-
interface ILegacyChatTerminalToolInvocationData {
34+
export interface ILegacyChatTerminalToolInvocationData {
3535
kind: 'terminal';
3636
command: string;
3737
language: string;

0 commit comments

Comments
 (0)