Skip to content

Commit b8b20d7

Browse files
Copilotconnor4312
andauthored
Fix LanguageModelToolResultPart2 inheritance for instanceof checks (microsoft#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>
1 parent 50e8ebb commit b8b20d7

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

src/vs/workbench/api/common/extHostTypes.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3468,16 +3468,13 @@ export class LanguageModelToolResultPart implements vscode.LanguageModelToolResu
34683468
}
34693469
}
34703470

3471-
export class LanguageModelToolResultPart2 implements vscode.LanguageModelToolResultPart2 {
3471+
export class LanguageModelToolResultPart2 extends LanguageModelToolResultPart implements vscode.LanguageModelToolResultPart2 {
34723472

3473-
callId: string;
3474-
content: (LanguageModelTextPart | LanguageModelPromptTsxPart | LanguageModelDataPart | unknown)[];
3475-
isError: boolean;
3473+
declare content: (LanguageModelTextPart | LanguageModelPromptTsxPart | LanguageModelDataPart | unknown)[];
34763474

34773475
constructor(callId: string, content: (LanguageModelTextPart | LanguageModelPromptTsxPart | LanguageModelDataPart | unknown)[], isError?: boolean) {
3478-
this.callId = callId;
3476+
super(callId, content, isError);
34793477
this.content = content;
3480-
this.isError = isError ?? false;
34813478
}
34823479
}
34833480

src/vs/workbench/api/test/browser/extHostTypes.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,4 +783,21 @@ suite('ExtHostTypes', function () {
783783
m.content = 'Hello';
784784
assert.deepStrictEqual(m.content, [new types.LanguageModelTextPart('Hello')]);
785785
});
786+
787+
test('LanguageModelToolResultPart2 instanceof LanguageModelToolResultPart', function () {
788+
// Test that LanguageModelToolResultPart2 extends LanguageModelToolResultPart for instanceof checks
789+
const part1 = new types.LanguageModelToolResultPart('call1', [new types.LanguageModelTextPart('text')]);
790+
const part2 = new types.LanguageModelToolResultPart2('call2', [new types.LanguageModelTextPart('text')]);
791+
792+
// Basic instanceof checks
793+
assert.ok(part1 instanceof types.LanguageModelToolResultPart);
794+
assert.ok(part2 instanceof types.LanguageModelToolResultPart, 'LanguageModelToolResultPart2 should be instanceof LanguageModelToolResultPart');
795+
assert.ok(part2 instanceof types.LanguageModelToolResultPart2);
796+
797+
// Verify properties are accessible
798+
assert.strictEqual(part1.callId, 'call1');
799+
assert.strictEqual(part2.callId, 'call2');
800+
assert.strictEqual(part1.isError, false);
801+
assert.strictEqual(part2.isError, false);
802+
});
786803
});

0 commit comments

Comments
 (0)