Skip to content

Commit df65680

Browse files
authored
add languagemodel thinking part for byok (microsoft#262951)
add languagemodel thining part for byok
1 parent d5dc23b commit df65680

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2430,6 +2430,8 @@ export namespace LanguageModelChatMessage2 {
24302430
return new types.LanguageModelDataPart(c.value.data.buffer, c.value.mimeType);
24312431
} else if (c.type === 'data') {
24322432
return new types.LanguageModelDataPart(c.data.buffer, c.mimeType);
2433+
} else if (c.type === 'thinking') {
2434+
return new types.LanguageModelThinkingPart(c.value, c.id, c.metadata);
24332435
} else {
24342436
return new types.LanguageModelToolCallPart(c.toolCallId, c.name, c.parameters);
24352437
}
@@ -2511,6 +2513,14 @@ export namespace LanguageModelChatMessage2 {
25112513
type: 'text',
25122514
value: c.value
25132515
};
2516+
} else if (c instanceof types.LanguageModelThinkingPart) {
2517+
return {
2518+
type: 'thinking',
2519+
value: c.value,
2520+
id: c.id,
2521+
metadata: c.metadata
2522+
};
2523+
25142524
} else {
25152525
if (typeof c !== 'string') {
25162526
throw new Error('Unexpected chat message content type llm 2');

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4992,9 +4992,9 @@ export class LanguageModelChatMessage2 implements vscode.LanguageModelChatMessag
49924992

49934993
role: vscode.LanguageModelChatMessageRole;
49944994

4995-
private _content: (LanguageModelTextPart | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart)[] = [];
4995+
private _content: (LanguageModelTextPart | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart | LanguageModelThinkingPart)[] = [];
49964996

4997-
set content(value: string | (LanguageModelTextPart | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart)[]) {
4997+
set content(value: string | (LanguageModelTextPart | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart | LanguageModelThinkingPart)[]) {
49984998
if (typeof value === 'string') {
49994999
// we changed this and still support setting content with a string property. this keep the API runtime stable
50005000
// despite the breaking change in the type definition.
@@ -5004,7 +5004,7 @@ export class LanguageModelChatMessage2 implements vscode.LanguageModelChatMessag
50045004
}
50055005
}
50065006

5007-
get content(): (LanguageModelTextPart | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart)[] {
5007+
get content(): (LanguageModelTextPart | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart | LanguageModelThinkingPart)[] {
50085008
return this._content;
50095009
}
50105010

@@ -5020,7 +5020,7 @@ export class LanguageModelChatMessage2 implements vscode.LanguageModelChatMessag
50205020
}
50215021
}
50225022

5023-
get content2(): (string | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart)[] | undefined {
5023+
get content2(): (string | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart | LanguageModelThinkingPart)[] | undefined {
50245024
return this.content.map(part => {
50255025
if (part instanceof LanguageModelTextPart) {
50265026
return part.value;
@@ -5031,7 +5031,7 @@ export class LanguageModelChatMessage2 implements vscode.LanguageModelChatMessag
50315031

50325032
name: string | undefined;
50335033

5034-
constructor(role: vscode.LanguageModelChatMessageRole, content: string | (LanguageModelTextPart | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart)[], name?: string) {
5034+
constructor(role: vscode.LanguageModelChatMessageRole, content: string | (LanguageModelTextPart | LanguageModelToolResultPart2 | LanguageModelToolCallPart | LanguageModelDataPart | LanguageModelThinkingPart)[], name?: string) {
50355035
this.role = role;
50365036
this.content = content;
50375037
this.name = name;

src/vs/workbench/contrib/chat/common/languageModels.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@ export interface IChatMessageImagePart {
4444
value: IChatImageURLPart;
4545
}
4646

47+
export interface IChatMessageThinkingPart {
48+
type: 'thinking';
49+
value: string;
50+
id?: string;
51+
metadata?: string;
52+
}
53+
4754
export interface IChatMessageDataPart {
4855
type: 'data';
4956
mimeType: string;
@@ -90,7 +97,7 @@ export interface IChatMessageToolResultPart {
9097
isError?: boolean;
9198
}
9299

93-
export type IChatMessagePart = IChatMessageTextPart | IChatMessageToolResultPart | IChatResponseToolUsePart | IChatMessageImagePart | IChatMessageDataPart;
100+
export type IChatMessagePart = IChatMessageTextPart | IChatMessageToolResultPart | IChatResponseToolUsePart | IChatMessageImagePart | IChatMessageDataPart | IChatMessageThinkingPart;
94101

95102
export interface IChatMessage {
96103
readonly name?: string | undefined;

0 commit comments

Comments
 (0)