Skip to content

Commit 9290b22

Browse files
authored
Tools in the chat mode are not correctly applied after a window reload (#255753)
Tools in the mode file are not correctly applied after window reload
1 parent 81bc3f9 commit 9290b22

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,15 +149,14 @@ export class ChatModeService extends Disposable implements IChatModeService {
149149
}
150150

151151
this.hasCustomModes.set(this._customModeInstances.size > 0);
152-
153-
if (fireChangeEvent) {
154-
this._onDidChangeChatModes.fire();
155-
}
156152
} catch (error) {
157153
this.logService.error(error, 'Failed to load custom chat modes');
158154
this._customModeInstances.clear();
159155
this.hasCustomModes.set(false);
160156
}
157+
if (fireChangeEvent) {
158+
this._onDidChangeChatModes.fire();
159+
}
161160
}
162161

163162
getModes(): { builtin: readonly IChatMode[]; custom: readonly IChatMode[] } {

src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/textModelContentsProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export class TextModelContentsProvider extends PromptContentsProviderBase<IModel
3131
}
3232

3333
public override get languageId(): string {
34-
return this.model.getLanguageId();
34+
return this.options.languageId ?? this.model.getLanguageId();
3535
}
3636

3737
constructor(

src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import { getCleanPromptName, PROMPT_FILE_EXTENSION } from '../config/promptFileL
2626
import { ILanguageService } from '../../../../../../editor/common/languages/language.js';
2727
import { PromptsConfig } from '../config/config.js';
2828
import { IConfigurationService } from '../../../../../../platform/configuration/common/configuration.js';
29-
import { TModeMetadata } from '../parsers/promptHeader/modeHeader.js';
3029

3130
/**
3231
* Provides prompt services.
@@ -240,10 +239,15 @@ export class PromptsService extends Disposable implements IPromptsService {
240239
throw new Error(localize('promptParser.notCompleted', "Prompt parser for {0} did not complete.", uri.toString()));
241240
}
242241

243-
const { description, model, tools } = parser.metadata as TModeMetadata;
244242
const body = await parser.getBody();
245243
const name = getCleanPromptName(uri);
246-
return { uri: uri, name, description, tools, model, body };
244+
245+
const metadata = parser.metadata;
246+
if (metadata?.promptType !== PromptsType.mode) {
247+
return { uri, name, body };
248+
}
249+
const { description, model, tools } = metadata;
250+
return { uri, name, description, model, tools, body };
247251
} finally {
248252
parser?.dispose();
249253
}

0 commit comments

Comments
 (0)