From b8b20d716f6344728014c908f058266753bf0927 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Sep 2025 16:57:29 +0000 Subject: [PATCH] Fix LanguageModelToolResultPart2 inheritance for instanceof checks (#264362) * Initial plan * Fix LanguageModelToolResultPart2 inheritance for instanceof checks Co-authored-by: connor4312 <2230985+connor4312@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: connor4312 <2230985+connor4312@users.noreply.github.com> --- src/vs/workbench/api/common/extHostTypes.ts | 9 +++------ .../api/test/browser/extHostTypes.test.ts | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/api/common/extHostTypes.ts b/src/vs/workbench/api/common/extHostTypes.ts index 7b18cb17054..4266842ffa7 100644 --- a/src/vs/workbench/api/common/extHostTypes.ts +++ b/src/vs/workbench/api/common/extHostTypes.ts @@ -3468,16 +3468,13 @@ export class LanguageModelToolResultPart implements vscode.LanguageModelToolResu } } -export class LanguageModelToolResultPart2 implements vscode.LanguageModelToolResultPart2 { +export class LanguageModelToolResultPart2 extends LanguageModelToolResultPart implements vscode.LanguageModelToolResultPart2 { - callId: string; - content: (LanguageModelTextPart | LanguageModelPromptTsxPart | LanguageModelDataPart | unknown)[]; - isError: boolean; + declare content: (LanguageModelTextPart | LanguageModelPromptTsxPart | LanguageModelDataPart | unknown)[]; constructor(callId: string, content: (LanguageModelTextPart | LanguageModelPromptTsxPart | LanguageModelDataPart | unknown)[], isError?: boolean) { - this.callId = callId; + super(callId, content, isError); this.content = content; - this.isError = isError ?? false; } } diff --git a/src/vs/workbench/api/test/browser/extHostTypes.test.ts b/src/vs/workbench/api/test/browser/extHostTypes.test.ts index 8cd81152eac..5fad853820c 100644 --- a/src/vs/workbench/api/test/browser/extHostTypes.test.ts +++ b/src/vs/workbench/api/test/browser/extHostTypes.test.ts @@ -783,4 +783,21 @@ suite('ExtHostTypes', function () { m.content = 'Hello'; assert.deepStrictEqual(m.content, [new types.LanguageModelTextPart('Hello')]); }); + + test('LanguageModelToolResultPart2 instanceof LanguageModelToolResultPart', function () { + // Test that LanguageModelToolResultPart2 extends LanguageModelToolResultPart for instanceof checks + const part1 = new types.LanguageModelToolResultPart('call1', [new types.LanguageModelTextPart('text')]); + const part2 = new types.LanguageModelToolResultPart2('call2', [new types.LanguageModelTextPart('text')]); + + // Basic instanceof checks + assert.ok(part1 instanceof types.LanguageModelToolResultPart); + assert.ok(part2 instanceof types.LanguageModelToolResultPart, 'LanguageModelToolResultPart2 should be instanceof LanguageModelToolResultPart'); + assert.ok(part2 instanceof types.LanguageModelToolResultPart2); + + // Verify properties are accessible + assert.strictEqual(part1.callId, 'call1'); + assert.strictEqual(part2.callId, 'call2'); + assert.strictEqual(part1.isError, false); + assert.strictEqual(part2.isError, false); + }); });