Skip to content

Commit ce15a59

Browse files
authored
Merge branch 'main' into eli/empty-add
2 parents 5923367 + 99170bb commit ce15a59

3 files changed

Lines changed: 23 additions & 14 deletions

File tree

src/vs/workbench/contrib/chat/browser/chat.contribution.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -640,16 +640,25 @@ configurationRegistry.registerConfiguration({
640640
mode: 'auto'
641641
}
642642
},
643-
'chat.todoListWidget.position': {
644-
type: 'string',
645-
default: 'default',
646-
enum: ['default', 'off', 'chat-input'],
647-
enumDescriptions: [
648-
nls.localize('chat.todoListWidget.position.default', "Show todo list widget in the default position at the top of the chat panel."),
649-
nls.localize('chat.todoListWidget.position.off', "Hide the todo list widget."),
650-
nls.localize('chat.todoListWidget.position.chatInput', "Show todo list widget near the chat input.")
651-
],
652-
description: nls.localize('chat.todoListWidget.position', "Controls the position of the todo list widget in chat."),
643+
[ChatConfiguration.TodoList]: {
644+
type: 'object',
645+
description: nls.localize('chat.agent.todoList', "Configures the todo list widget in chat."),
646+
properties: {
647+
position: {
648+
type: 'string',
649+
default: 'default',
650+
enum: ['default', 'off', 'chat-input'],
651+
enumDescriptions: [
652+
nls.localize('chat.agent.todoList.position.default', "Show todo list in the top of the chat panel."),
653+
nls.localize('chat.agent.todoList.position.off', "Hide the todo list (still shows the tool calls for tracking todo progress)."),
654+
nls.localize('chat.agent.todoList.position.chatInput', "Show todo list above the chat input.")
655+
],
656+
description: nls.localize('chat.agent.todoList.position', "Controls the position of the todo list in the chat view, which opens when the agent has created todo items and updates as it makes progress.")
657+
}
658+
},
659+
default: {
660+
position: 'default'
661+
},
653662
tags: ['experimental'],
654663
experiment: {
655664
mode: 'auto'

src/vs/workbench/contrib/chat/browser/chatWidget.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ import { ChatRequestVariableSet, IChatRequestVariableEntry, isPromptFileVariable
7272
import { ChatViewModel, IChatRequestViewModel, IChatResponseViewModel, isRequestVM, isResponseVM } from '../common/chatViewModel.js';
7373
import { IChatInputState } from '../common/chatWidgetHistoryService.js';
7474
import { CodeBlockModelCollection } from '../common/codeBlockModelCollection.js';
75-
import { ChatAgentLocation, ChatConfiguration, ChatModeKind, TodoListWidgetPositionSettingId } from '../common/constants.js';
75+
import { ChatAgentLocation, ChatConfiguration, ChatModeKind } from '../common/constants.js';
7676
import { ILanguageModelToolsService, IToolData, ToolSet } from '../common/languageModelToolsService.js';
7777
import { ComputeAutomaticInstructions } from '../common/promptSyntax/computeAutomaticInstructions.js';
7878
import { PromptsConfig } from '../common/promptSyntax/config/config.js';
@@ -1248,7 +1248,8 @@ export class ChatWidget extends Disposable implements IChatWidget {
12481248
return;
12491249
}
12501250

1251-
const todoListWidgetPosition = this.configurationService.getValue<string>(TodoListWidgetPositionSettingId) || 'default';
1251+
const todoListConfig = this.configurationService.getValue<{ position?: string }>(ChatConfiguration.TodoList);
1252+
const todoListWidgetPosition = todoListConfig?.position || 'default';
12521253

12531254
// Handle 'off' - hide the widget and return
12541255
if (todoListWidgetPosition === 'off') {

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export enum ChatConfiguration {
1616
CheckpointsEnabled = 'chat.checkpoints.enabled',
1717
AgentSessionsViewLocation = 'chat.agentSessionsViewLocation',
1818
ThinkingStyle = 'chat.agent.thinkingStyle',
19+
TodoList = 'chat.agent.todoList',
1920
UseCloudButtonV2 = 'chat.useCloudButtonV2',
2021
ShowAgentSessionsViewDescription = 'chat.showAgentSessionsViewDescription',
2122
EmptyStateHistoryEnabled = 'chat.emptyState.history.enabled',
@@ -85,6 +86,4 @@ export namespace ChatAgentLocation {
8586

8687
export const ChatUnsupportedFileSchemes = new Set([Schemas.vscodeChatEditor, Schemas.walkThrough, Schemas.vscodeChatSession, 'ccreq']);
8788

88-
export const TodoListWidgetPositionSettingId = 'chat.todoListWidget.position';
89-
9089
export const VIEWLET_ID = 'workbench.view.chat.sessions';

0 commit comments

Comments
 (0)