@codingame/monaco-vscode-chat-service-override 26.1.1 → 26.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/package.json +5 -5
  2. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +4 -1
  3. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +19 -7
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +209 -57
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +3 -3
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +10 -10
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +33 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +255 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +12 -12
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +51 -51
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
  24. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  25. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  26. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +24 -24
  27. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  28. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  29. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +329 -145
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +51 -51
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +10 -10
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +16 -16
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +24 -24
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +13 -13
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +58 -58
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +6 -6
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +2 -2
  57. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  58. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +10 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +591 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +48 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +162 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  63. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -0
  64. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +30 -15
  65. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  66. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  67. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  68. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  69. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +31 -31
  70. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +24 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +251 -72
  72. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  73. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +45 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +191 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +13 -9
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +3 -3
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +19 -3
  84. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +203 -25
  85. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +18 -2
  86. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +50 -6
  87. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +11 -1
  88. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +2 -2
  89. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +23 -17
  90. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +63 -0
  91. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +121 -0
  92. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +76 -0
  93. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +120 -0
  94. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +15 -0
  95. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +27 -0
  96. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +22 -11
  97. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +3 -2
  98. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +135 -54
  99. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +64 -43
  100. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  101. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +24 -5
  102. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +341 -24
  103. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +12 -5
  104. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +95 -26
  105. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  106. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  107. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +8 -8
  108. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +6 -6
  109. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +8 -8
  110. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  111. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  112. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  113. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  114. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  115. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  116. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  117. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  118. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  119. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  120. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  121. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  122. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  123. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  124. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  125. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  126. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  127. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  128. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  129. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +8 -8
  130. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  131. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +14 -13
  132. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  133. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  134. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  135. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  136. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +0 -63
  137. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +0 -955
@@ -12,7 +12,7 @@ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
12
12
  import { AccessibleViewRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/browser/accessibleViewRegistry';
13
13
  import { registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
14
14
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
15
- import { Extensions, ConfigurationScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
15
+ import { Extensions as Extensions$1, ConfigurationScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
16
16
  import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
17
17
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
18
18
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
@@ -20,7 +20,7 @@ import { mcpGalleryServiceUrlConfig, mcpGalleryServiceEnablementConfig, mcpAppsE
20
20
  import product from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/product';
21
21
  import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
22
22
  import { EditorPaneDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/editor';
23
- import { Extensions as Extensions$1 } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/configuration';
23
+ import { Extensions as Extensions$2 } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/configuration';
24
24
  import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
25
25
  import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
26
26
  import { IWorkbenchAssignmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service';
@@ -49,9 +49,11 @@ import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/lan
49
49
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
50
50
  import { ChatPromptFilesExtensionPointHandler } from '../common/promptSyntax/chatPromptFilesContribution.js';
51
51
  import { PromptsConfig } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
52
- import { DEFAULT_SKILL_SOURCE_FOLDERS, SKILL_FILENAME, AGENTS_SOURCE_FOLDER, AGENT_FILE_EXTENSION, LEGACY_MODE_DEFAULT_SOURCE_FOLDER, LEGACY_MODE_FILE_EXTENSION, PROMPT_DEFAULT_SOURCE_FOLDER, PROMPT_FILE_EXTENSION, INSTRUCTIONS_DEFAULT_SOURCE_FOLDER, INSTRUCTION_FILE_EXTENSION } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
52
+ import { DEFAULT_HOOK_FILE_PATHS, DEFAULT_SKILL_SOURCE_FOLDERS, SKILL_FILENAME, AGENTS_SOURCE_FOLDER, CLAUDE_AGENTS_SOURCE_FOLDER, AGENT_FILE_EXTENSION, LEGACY_MODE_DEFAULT_SOURCE_FOLDER, LEGACY_MODE_FILE_EXTENSION, PROMPT_DEFAULT_SOURCE_FOLDER, PROMPT_FILE_EXTENSION, CLAUDE_RULES_SOURCE_FOLDER, INSTRUCTIONS_DEFAULT_SOURCE_FOLDER, INSTRUCTION_FILE_EXTENSION } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
53
53
  import { PromptLanguageFeaturesProvider } from '../common/promptSyntax/promptFileContributions.js';
54
- import { SKILL_DOCUMENTATION_URL, AGENT_DOCUMENTATION_URL, PROMPT_DOCUMENTATION_URL, INSTRUCTIONS_DOCUMENTATION_URL } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
54
+ import { HOOK_DOCUMENTATION_URL, SKILL_DOCUMENTATION_URL, AGENT_DOCUMENTATION_URL, PROMPT_DOCUMENTATION_URL, INSTRUCTIONS_DOCUMENTATION_URL } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
55
+ import { HOOK_SCHEMA_URI, hookFileSchema, HOOK_FILE_GLOB } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
56
+ import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/jsonschemas/common/jsonContributionRegistry';
55
57
  import '../common/promptSyntax/service/promptsServiceImpl.js';
56
58
  import { LanguageModelToolsExtensionPointHandler } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution';
57
59
  import { BuiltinToolsContribution } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/builtinTools/tools';
@@ -72,6 +74,7 @@ import { registerLanguageModelActions } from './actions/chatLanguageModelActions
72
74
  import { registerMoveActions } from './actions/chatMoveActions.js';
73
75
  import { registerNewChatActions } from './actions/chatNewActions.js';
74
76
  import { registerChatPromptNavigationActions } from './actions/chatPromptNavigationActions.js';
77
+ import { registerChatQueueActions } from './actions/chatQueueActions.js';
75
78
  import { registerQuickChatActions } from './actions/chatQuickInputActions.js';
76
79
  import { ChatAgentRecommendation } from './actions/chatAgentRecommendationActions.js';
77
80
  import { registerChatTitleActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatTitleActions';
@@ -80,6 +83,7 @@ import { registerChatToolActions } from './actions/chatToolActions.js';
80
83
  import { ChatTransferContribution } from './actions/chatTransfer.js';
81
84
  import { registerChatCustomizationDiagnosticsAction } from './actions/chatCustomizationDiagnosticsAction.js';
82
85
  import './agentSessions/agentSessions.contribution.js';
86
+ import { backgroundAgentDisplayName } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
83
87
  import { IAgentSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.service';
84
88
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
85
89
  import './accessibility/chatAccessibilityService.js';
@@ -124,6 +128,7 @@ import './tools/languageModelToolsConfirmationService.js';
124
128
  import { globalAutoApproveDescription } from './tools/languageModelToolsService.js';
125
129
  import './promptSyntax/promptCodingAgentActionContribution.js';
126
130
  import './promptSyntax/promptToolsCodeLensProvider.js';
131
+ import { showConfigureHooksQuickPick } from './promptSyntax/hookActions.js';
127
132
  import { PromptUrlHandler } from './promptSyntax/promptUrlHandler.js';
128
133
  import { UserToolSetsContributions, ConfigureToolSets } from './tools/toolSetsContribution.js';
129
134
  import { ChatViewsWelcomeHandler } from './viewsWelcome/chatViewsWelcomeHandler.js';
@@ -132,53 +137,57 @@ import { ChatWindowNotifier } from './chatWindowNotifier.js';
132
137
  import { ChatRepoInfoContribution } from './chatRepoInfo.js';
133
138
  import { VALID_PROMPT_FOLDER_PATTERN } from '../common/promptSyntax/utils/promptFilesLocator.js';
134
139
  import './chatTipService.js';
140
+ import { ChatQueuePickerRendering } from './widget/input/chatQueuePickerActionItem.js';
135
141
  import '../../notebook/browser/controller/chat/notebook.chat.contribution.js';
136
142
 
137
143
  const toolReferenceNameEnumValues = [];
138
144
  const toolReferenceNameEnumDescriptions = [];
139
- const configurationRegistry = ( Registry.as(Extensions.Configuration));
145
+ const jsonContributionRegistry = ( Registry.as(Extensions.JSONContribution));
146
+ jsonContributionRegistry.registerSchema(HOOK_SCHEMA_URI, hookFileSchema);
147
+ jsonContributionRegistry.registerSchemaAssociation(HOOK_SCHEMA_URI, HOOK_FILE_GLOB);
148
+ const configurationRegistry = ( Registry.as(Extensions$1.Configuration));
140
149
  configurationRegistry.registerConfiguration({
141
150
  id: "chatSidebar",
142
- title: ( localize(5122, "Chat")),
151
+ title: ( localize(5138, "Chat")),
143
152
  type: "object",
144
153
  properties: {
145
154
  "chat.fontSize": {
146
155
  type: "number",
147
- description: ( localize(5123, "Controls the font size in pixels in chat messages.")),
156
+ description: ( localize(5139, "Controls the font size in pixels in chat messages.")),
148
157
  default: 13,
149
158
  minimum: 6,
150
159
  maximum: 100
151
160
  },
152
161
  "chat.fontFamily": {
153
162
  type: "string",
154
- description: ( localize(5124, "Controls the font family in chat messages.")),
163
+ description: ( localize(5140, "Controls the font family in chat messages.")),
155
164
  default: "default"
156
165
  },
157
166
  "chat.editor.fontSize": {
158
167
  type: "number",
159
- description: ( localize(5125, "Controls the font size in pixels in chat codeblocks.")),
168
+ description: ( localize(5141, "Controls the font size in pixels in chat codeblocks.")),
160
169
  default: isMacintosh ? 12 : 14
161
170
  },
162
171
  "chat.editor.fontFamily": {
163
172
  type: "string",
164
- description: ( localize(5126, "Controls the font family in chat codeblocks.")),
173
+ description: ( localize(5142, "Controls the font family in chat codeblocks.")),
165
174
  default: "default"
166
175
  },
167
176
  "chat.editor.fontWeight": {
168
177
  type: "string",
169
- description: ( localize(5127, "Controls the font weight in chat codeblocks.")),
178
+ description: ( localize(5143, "Controls the font weight in chat codeblocks.")),
170
179
  default: "default"
171
180
  },
172
181
  "chat.editor.wordWrap": {
173
182
  type: "string",
174
- description: ( localize(5128, "Controls whether lines should wrap in chat codeblocks.")),
183
+ description: ( localize(5144, "Controls whether lines should wrap in chat codeblocks.")),
175
184
  default: "off",
176
185
  enum: ["on", "off"]
177
186
  },
178
187
  "chat.editor.lineHeight": {
179
188
  type: "number",
180
189
  description: ( localize(
181
- 5129,
190
+ 5145,
182
191
  "Controls the line height in pixels in chat codeblocks. Use 0 to compute the line height from the font size."
183
192
  )),
184
193
  default: 0
@@ -190,15 +199,15 @@ configurationRegistry.registerConfiguration({
190
199
  AgentsControlClickBehavior.Cycle,
191
200
  AgentsControlClickBehavior.Focus
192
201
  ],
193
- enumDescriptions: [( localize(5130, "Clicking chat icon toggles chat visibility.")), ( localize(
194
- 5131,
202
+ enumDescriptions: [( localize(5146, "Clicking chat icon toggles chat visibility.")), ( localize(
203
+ 5147,
195
204
  "Clicking chat icon cycles through: show chat, maximize chat, hide chat. This requires chat to be contained in the secondary sidebar."
196
205
  )), ( localize(
197
- 5132,
206
+ 5148,
198
207
  "Clicking chat icon focuses the chat view and maximizes it if located in the secondary sidebar."
199
208
  ))],
200
209
  markdownDescription: ( localize(
201
- 5133,
210
+ 5149,
202
211
  "Controls the behavior when clicking on the chat icon in the command center."
203
212
  )),
204
213
  default: product.quality !== "stable" ? AgentsControlClickBehavior.Cycle : AgentsControlClickBehavior.Default,
@@ -207,7 +216,7 @@ configurationRegistry.registerConfiguration({
207
216
  [ChatConfiguration.AgentStatusEnabled]: {
208
217
  type: "boolean",
209
218
  markdownDescription: ( localize(
210
- 5134,
219
+ 5150,
211
220
  "Controls whether the 'Agent Status' indicator is shown in the title bar command center. Enabling this setting will automatically enable {0}. The unread/in-progress session indicators require {1} to be enabled.",
212
221
  "`#window.commandCenter#`",
213
222
  "`#chat.viewSessions.enabled#`"
@@ -218,7 +227,7 @@ configurationRegistry.registerConfiguration({
218
227
  [ChatConfiguration.UnifiedAgentsBar]: {
219
228
  type: "boolean",
220
229
  markdownDescription: ( localize(
221
- 5135,
230
+ 5151,
222
231
  "Replaces the command center search box with a unified chat and search widget."
223
232
  )),
224
233
  default: false,
@@ -227,7 +236,7 @@ configurationRegistry.registerConfiguration({
227
236
  [ChatConfiguration.AgentSessionProjectionEnabled]: {
228
237
  type: "boolean",
229
238
  markdownDescription: ( localize(
230
- 5136,
239
+ 5152,
231
240
  "Controls whether Agent Session Projection mode is enabled for reviewing agent sessions in a focused workspace."
232
241
  )),
233
242
  default: false,
@@ -236,14 +245,14 @@ configurationRegistry.registerConfiguration({
236
245
  "chat.implicitContext.enabled": {
237
246
  type: "object",
238
247
  description: ( localize(
239
- 5137,
248
+ 5153,
240
249
  "Enables automatically using the active editor as chat context for specified chat locations."
241
250
  )),
242
251
  additionalProperties: {
243
252
  type: "string",
244
253
  enum: ["never", "first", "always"],
245
- description: ( localize(5138, "The value for the implicit context.")),
246
- enumDescriptions: [( localize(5139, "Implicit context is never enabled.")), ( localize(5140, "Implicit context is enabled for the first interaction.")), ( localize(5141, "Implicit context is always enabled."))]
254
+ description: ( localize(5154, "The value for the implicit context.")),
255
+ enumDescriptions: [( localize(5155, "Implicit context is never enabled.")), ( localize(5156, "Implicit context is enabled for the first interaction.")), ( localize(5157, "Implicit context is always enabled."))]
247
256
  },
248
257
  default: {
249
258
  "panel": "always"
@@ -252,7 +261,7 @@ configurationRegistry.registerConfiguration({
252
261
  "chat.implicitContext.suggestedContext": {
253
262
  type: "boolean",
254
263
  markdownDescription: ( localize(
255
- 5142,
264
+ 5158,
256
265
  "Controls whether the new implicit context flow is shown. In Ask and Edit modes, the context will automatically be included. When using an agent, context will be suggested as an attachment. Selections are always included as context."
257
266
  )),
258
267
  default: true
@@ -260,7 +269,7 @@ configurationRegistry.registerConfiguration({
260
269
  "chat.editing.autoAcceptDelay": {
261
270
  type: "number",
262
271
  markdownDescription: ( localize(
263
- 5143,
272
+ 5159,
264
273
  "Delay after which changes made by chat are automatically accepted. Values are in seconds, `0` means disabled and `100` seconds is the maximum."
265
274
  )),
266
275
  default: 0,
@@ -271,7 +280,7 @@ configurationRegistry.registerConfiguration({
271
280
  type: "boolean",
272
281
  scope: ConfigurationScope.APPLICATION,
273
282
  markdownDescription: ( localize(
274
- 5144,
283
+ 5160,
275
284
  "Whether to show a confirmation before removing a request and its associated edits."
276
285
  )),
277
286
  default: true
@@ -280,7 +289,7 @@ configurationRegistry.registerConfiguration({
280
289
  type: "boolean",
281
290
  scope: ConfigurationScope.APPLICATION,
282
291
  markdownDescription: ( localize(
283
- 5145,
292
+ 5161,
284
293
  "Whether to show a confirmation before retrying a request and its associated edits."
285
294
  )),
286
295
  default: true
@@ -288,7 +297,7 @@ configurationRegistry.registerConfiguration({
288
297
  "chat.editing.explainChanges.enabled": {
289
298
  type: "boolean",
290
299
  markdownDescription: ( localize(
291
- 5146,
300
+ 5162,
292
301
  "Controls whether the Explain button in the Chat panel and the Explain Changes context menu in the SCM view are shown. This is an experimental feature."
293
302
  )),
294
303
  default: false,
@@ -300,7 +309,7 @@ configurationRegistry.registerConfiguration({
300
309
  "chat.tips.enabled": {
301
310
  type: "boolean",
302
311
  description: ( localize(
303
- 5147,
312
+ 5163,
304
313
  "Controls whether tips are shown above user messages in chat. This is an experimental feature."
305
314
  )),
306
315
  default: false,
@@ -312,26 +321,26 @@ configurationRegistry.registerConfiguration({
312
321
  "chat.experimental.detectParticipant.enabled": {
313
322
  type: "boolean",
314
323
  deprecationMessage: ( localize(
315
- 5148,
324
+ 5164,
316
325
  "This setting is deprecated. Please use `chat.detectParticipant.enabled` instead."
317
326
  )),
318
- description: ( localize(5149, "Enables chat participant autodetection for panel chat.")),
327
+ description: ( localize(5165, "Enables chat participant autodetection for panel chat.")),
319
328
  default: null
320
329
  },
321
330
  "chat.detectParticipant.enabled": {
322
331
  type: "boolean",
323
- description: ( localize(5150, "Enables chat participant autodetection for panel chat.")),
332
+ description: ( localize(5166, "Enables chat participant autodetection for panel chat.")),
324
333
  default: true
325
334
  },
326
335
  [ChatConfiguration.InlineReferencesStyle]: {
327
336
  type: "string",
328
337
  enum: ["box", "link"],
329
- enumDescriptions: [( localize(5151, "Display file and symbol references as boxed widgets with icons.")), ( localize(
330
- 5152,
338
+ enumDescriptions: [( localize(5167, "Display file and symbol references as boxed widgets with icons.")), ( localize(
339
+ 5168,
331
340
  "Display file and symbol references as simple blue links without icons."
332
341
  ))],
333
342
  description: ( localize(
334
- 5153,
343
+ 5169,
335
344
  "Controls how file and symbol references are displayed in chat messages."
336
345
  )),
337
346
  default: "box"
@@ -339,7 +348,7 @@ configurationRegistry.registerConfiguration({
339
348
  [ChatConfiguration.EditorAssociations]: {
340
349
  type: "object",
341
350
  markdownDescription: ( localize(
342
- 5154,
351
+ 5170,
343
352
  "Configure [glob patterns](https://aka.ms/vscode-glob-patterns) to editors for opening files from chat (for example `\"*.md\": \"vscode.markdown.preview.editor\"`)."
344
353
  )),
345
354
  additionalProperties: {
@@ -350,7 +359,7 @@ configurationRegistry.registerConfiguration({
350
359
  "chat.notifyWindowOnConfirmation": {
351
360
  type: "boolean",
352
361
  description: ( localize(
353
- 5155,
362
+ 5171,
354
363
  "Controls whether a chat session should present the user with an OS notification when a confirmation is needed while the window is not in focus. This includes a window badge as well as notification toast."
355
364
  )),
356
365
  default: true
@@ -370,7 +379,7 @@ configurationRegistry.registerConfiguration({
370
379
  description: {
371
380
  key: "autoApprove2.description",
372
381
  value: ( localize(
373
- 5156,
382
+ 5172,
374
383
  "Global auto approve also known as \"YOLO mode\" disables manual approval completely for all tools in all workspaces, allowing the agent to act fully autonomously. This is extremely dangerous and is *never* recommended, even containerized environments like Codespaces and Dev Containers have user keys forwarded into the container that could be compromised.\n\nThis feature disables critical security protections and makes it much easier for an attacker to compromise the machine."
375
384
  ))
376
385
  }
@@ -388,7 +397,7 @@ configurationRegistry.registerConfiguration({
388
397
  "**/*-lock.{yaml,json}": false
389
398
  },
390
399
  markdownDescription: ( localize(
391
- 5157,
400
+ 5173,
392
401
  "Controls whether edits made by chat are automatically approved. The default is to approve all edits except those made to certain files which have the potential to cause immediate unintended side-effects, such as `**/.vscode/*.json`.\n\nSet to `true` to automatically approve edits to matching files, `false` to always require explicit approval. The last pattern matching a given file will determine whether the edit is automatically approved."
393
402
  )),
394
403
  type: "object",
@@ -399,7 +408,7 @@ configurationRegistry.registerConfiguration({
399
408
  [ChatConfiguration.AutoApprovedUrls]: {
400
409
  default: {},
401
410
  markdownDescription: ( localize(
402
- 5158,
411
+ 5174,
403
412
  "Controls which URLs are automatically approved when requested by chat tools. Keys are URL patterns and values can be `true` to approve both requests and responses, `false` to deny, or an object with `approveRequest` and `approveResponse` properties for granular control.\n\nExamples:\n- `\"https://example.com\": true` - Approve all requests to example.com\n- `\"https://*.example.com\": true` - Approve all requests to any subdomain of example.com\n- `\"https://example.com/api/*\": { \"approveRequest\": true, \"approveResponse\": false }` - Approve requests but not responses for example.com/api paths"
404
413
  )),
405
414
  type: "object",
@@ -422,7 +431,7 @@ configurationRegistry.registerConfiguration({
422
431
  [ChatConfiguration.EligibleForAutoApproval]: {
423
432
  default: {},
424
433
  markdownDescription: ( localize(
425
- 5159,
434
+ 5175,
426
435
  "Controls which tools are eligible for automatic approval. Tools set to 'false' will always present a confirmation and will never offer the option to auto-approve. The default behavior (or setting a tool to 'true') may result in the tool offering auto-approval options."
427
436
  )),
428
437
  type: "object",
@@ -445,7 +454,7 @@ configurationRegistry.registerConfiguration({
445
454
  description: {
446
455
  key: "chat.tools.eligibleForAutoApproval",
447
456
  value: ( localize(
448
- 5159,
457
+ 5175,
449
458
  "Controls which tools are eligible for automatic approval. Tools set to 'false' will always present a confirmation and will never offer the option to auto-approve. The default behavior (or setting a tool to 'true') may result in the tool offering auto-approval options."
450
459
  ))
451
460
  }
@@ -455,7 +464,7 @@ configurationRegistry.registerConfiguration({
455
464
  "chat.sendElementsToChat.enabled": {
456
465
  default: true,
457
466
  description: ( localize(
458
- 5160,
467
+ 5176,
459
468
  "Controls whether elements can be sent to chat from the Simple Browser."
460
469
  )),
461
470
  type: "boolean",
@@ -464,7 +473,7 @@ configurationRegistry.registerConfiguration({
464
473
  "chat.sendElementsToChat.attachCSS": {
465
474
  default: true,
466
475
  markdownDescription: ( localize(
467
- 5161,
476
+ 5177,
468
477
  "Controls whether CSS of the selected element will be added to the chat. {0} must be enabled.",
469
478
  "`#chat.sendElementsToChat.enabled#`"
470
479
  )),
@@ -474,7 +483,7 @@ configurationRegistry.registerConfiguration({
474
483
  "chat.sendElementsToChat.attachImages": {
475
484
  default: true,
476
485
  markdownDescription: ( localize(
477
- 5162,
486
+ 5178,
478
487
  "Controls whether a screenshot of the selected element will be added to the chat. {0} must be enabled.",
479
488
  "`#chat.sendElementsToChat.enabled#`"
480
489
  )),
@@ -484,14 +493,14 @@ configurationRegistry.registerConfiguration({
484
493
  "chat.undoRequests.restoreInput": {
485
494
  default: true,
486
495
  markdownDescription: ( localize(
487
- 5163,
496
+ 5179,
488
497
  "Controls whether the input of the chat should be restored when an undo request is made. The input will be filled with the text of the request that was restored."
489
498
  )),
490
499
  type: "boolean"
491
500
  },
492
501
  "chat.editRequests": {
493
502
  markdownDescription: ( localize(
494
- 5164,
503
+ 5180,
495
504
  "Enables editing of requests in the chat. This allows you to change the request content and resubmit it to the model."
496
505
  )),
497
506
  type: "string",
@@ -502,7 +511,7 @@ configurationRegistry.registerConfiguration({
502
511
  type: "boolean",
503
512
  default: true,
504
513
  description: ( localize(
505
- 5165,
514
+ 5181,
506
515
  "Show chat agent sessions when chat is empty or to the side when chat view is wide enough."
507
516
  ))
508
517
  },
@@ -510,15 +519,15 @@ configurationRegistry.registerConfiguration({
510
519
  type: "string",
511
520
  enum: ["stacked", "sideBySide"],
512
521
  enumDescriptions: [( localize(
513
- 5166,
522
+ 5182,
514
523
  "Display chat sessions vertically stacked above the chat input unless a chat session is visible."
515
524
  )), ( localize(
516
- 5167,
525
+ 5183,
517
526
  "Display chat sessions side by side if space is sufficient, otherwise fallback to stacked above the chat input unless a chat session is visible."
518
527
  ))],
519
528
  default: "sideBySide",
520
529
  description: ( localize(
521
- 5168,
530
+ 5184,
522
531
  "Controls the orientation of the chat agent sessions view when it is shown alongside the chat."
523
532
  ))
524
533
  },
@@ -526,7 +535,7 @@ configurationRegistry.registerConfiguration({
526
535
  type: "boolean",
527
536
  default: false,
528
537
  description: ( localize(
529
- 5169,
538
+ 5185,
530
539
  "Show a progress badge on the chat view when an agent session is in progress that is opened in that view."
531
540
  ))
532
541
  },
@@ -534,7 +543,7 @@ configurationRegistry.registerConfiguration({
534
543
  type: "boolean",
535
544
  default: true,
536
545
  description: ( localize(
537
- 5170,
546
+ 5186,
538
547
  "Controls whether a chat session should present the user with an OS notification when a response is received while the window is not in focus. This includes a window badge as well as notification toast."
539
548
  ))
540
549
  },
@@ -542,23 +551,23 @@ configurationRegistry.registerConfiguration({
542
551
  type: "boolean",
543
552
  default: true,
544
553
  description: ( localize(
545
- 5171,
554
+ 5187,
546
555
  "Enables checkpoints in chat. Checkpoints allow you to restore the chat to a previous state."
547
556
  ))
548
557
  },
549
558
  "chat.checkpoints.showFileChanges": {
550
559
  type: "boolean",
551
- description: ( localize(5172, "Controls whether to show chat checkpoint file changes.")),
560
+ description: ( localize(5188, "Controls whether to show chat checkpoint file changes.")),
552
561
  default: false
553
562
  },
554
563
  [mcpAccessConfig]: {
555
564
  type: "string",
556
- description: ( localize(5173, "Controls access to installed Model Context Protocol servers.")),
565
+ description: ( localize(5189, "Controls access to installed Model Context Protocol servers.")),
557
566
  enum: [McpAccessValue.None, McpAccessValue.Registry, McpAccessValue.All],
558
- enumDescriptions: [( localize(5174, "No access to MCP servers.")), ( localize(
559
- 5175,
567
+ enumDescriptions: [( localize(5190, "No access to MCP servers.")), ( localize(
568
+ 5191,
560
569
  "Allows access to MCP servers installed from the registry that VS Code is connected to."
561
- )), ( localize(5176, "Allow access to any installed MCP server."))],
570
+ )), ( localize(5192, "Allow access to any installed MCP server."))],
562
571
  default: McpAccessValue.All,
563
572
  policy: {
564
573
  name: "ChatMCP",
@@ -576,20 +585,20 @@ configurationRegistry.registerConfiguration({
576
585
  localization: {
577
586
  description: {
578
587
  key: "chat.mcp.access",
579
- value: ( localize(5173, "Controls access to installed Model Context Protocol servers."))
588
+ value: ( localize(5189, "Controls access to installed Model Context Protocol servers."))
580
589
  },
581
590
  enumDescriptions: [{
582
591
  key: "chat.mcp.access.none",
583
- value: ( localize(5174, "No access to MCP servers."))
592
+ value: ( localize(5190, "No access to MCP servers."))
584
593
  }, {
585
594
  key: "chat.mcp.access.registry",
586
595
  value: ( localize(
587
- 5175,
596
+ 5191,
588
597
  "Allows access to MCP servers installed from the registry that VS Code is connected to."
589
598
  ))
590
599
  }, {
591
600
  key: "chat.mcp.access.any",
592
- value: ( localize(5176, "Allow access to any installed MCP server."))
601
+ value: ( localize(5192, "Allow access to any installed MCP server."))
593
602
  }]
594
603
  }
595
604
  }
@@ -597,7 +606,7 @@ configurationRegistry.registerConfiguration({
597
606
  [mcpAutoStartConfig]: {
598
607
  type: "string",
599
608
  description: ( localize(
600
- 5177,
609
+ 5193,
601
610
  "Controls whether MCP servers should be automatically started when the chat messages are submitted."
602
611
  )),
603
612
  default: McpAutoStartValue.NewAndOutdated,
@@ -606,8 +615,8 @@ configurationRegistry.registerConfiguration({
606
615
  McpAutoStartValue.OnlyNew,
607
616
  McpAutoStartValue.NewAndOutdated
608
617
  ],
609
- enumDescriptions: [( localize(5178, "Never automatically start MCP servers.")), ( localize(5179, "Only automatically start new MCP servers that have never been run.")), ( localize(
610
- 5180,
618
+ enumDescriptions: [( localize(5194, "Never automatically start MCP servers.")), ( localize(5195, "Only automatically start new MCP servers that have never been run.")), ( localize(
619
+ 5196,
611
620
  "Automatically start new and outdated MCP servers that are not yet running."
612
621
  ))],
613
622
  tags: ["experimental"]
@@ -615,7 +624,7 @@ configurationRegistry.registerConfiguration({
615
624
  [mcpAppsEnabledConfig]: {
616
625
  type: "boolean",
617
626
  description: ( localize(
618
- 5181,
627
+ 5197,
619
628
  "Controls whether MCP servers can provide custom UI for tool invocations."
620
629
  )),
621
630
  default: true,
@@ -624,9 +633,9 @@ configurationRegistry.registerConfiguration({
624
633
  [mcpServerSamplingSection]: {
625
634
  type: "object",
626
635
  description: ( localize(
627
- 5182,
636
+ 5198,
628
637
  "Configures which models are exposed to MCP servers for sampling (making model requests in the background). This setting can be edited in a graphical way under the `{0}` command.",
629
- "MCP: " + ( localize(5183, "List Servers"))
638
+ "MCP: " + ( localize(5199, "List Servers"))
630
639
  )),
631
640
  scope: ConfigurationScope.RESOURCE,
632
641
  additionalProperties: {
@@ -635,7 +644,7 @@ configurationRegistry.registerConfiguration({
635
644
  allowedDuringChat: {
636
645
  type: "boolean",
637
646
  description: ( localize(
638
- 5184,
647
+ 5200,
639
648
  "Whether this server is make sampling requests during its tool calls in a chat session."
640
649
  )),
641
650
  default: true
@@ -643,7 +652,7 @@ configurationRegistry.registerConfiguration({
643
652
  allowedOutsideChat: {
644
653
  type: "boolean",
645
654
  description: ( localize(
646
- 5185,
655
+ 5201,
647
656
  "Whether this server is allowed to make sampling requests outside of a chat session."
648
657
  )),
649
658
  default: false
@@ -652,7 +661,7 @@ configurationRegistry.registerConfiguration({
652
661
  type: "array",
653
662
  items: {
654
663
  type: "string",
655
- description: ( localize(5186, "A model the MCP server has access to."))
664
+ description: ( localize(5202, "A model the MCP server has access to."))
656
665
  }
657
666
  }
658
667
  }
@@ -661,7 +670,7 @@ configurationRegistry.registerConfiguration({
661
670
  [AssistedTypes[AddConfigurationType.NuGetPackage].enabledConfigKey]: {
662
671
  type: "boolean",
663
672
  description: ( localize(
664
- 5187,
673
+ 5203,
665
674
  "Enables NuGet packages for AI-assisted MCP server installation. Used to install MCP servers by name from the central registry for .NET packages (NuGet.org)."
666
675
  )),
667
676
  default: false,
@@ -673,14 +682,14 @@ configurationRegistry.registerConfiguration({
673
682
  [ChatConfiguration.Edits2Enabled]: {
674
683
  type: "boolean",
675
684
  description: ( localize(
676
- 5188,
685
+ 5204,
677
686
  "Enable the new Edits mode that is based on tool-calling. When this is enabled, models that don't support tool-calling are unavailable for Edits mode."
678
687
  )),
679
688
  default: false
680
689
  },
681
690
  [ChatConfiguration.ExtensionToolsEnabled]: {
682
691
  type: "boolean",
683
- description: ( localize(5189, "Enable using tools contributed by third-party extensions.")),
692
+ description: ( localize(5205, "Enable using tools contributed by third-party extensions.")),
684
693
  default: true,
685
694
  policy: {
686
695
  name: "ChatAgentExtensionTools",
@@ -689,7 +698,7 @@ configurationRegistry.registerConfiguration({
689
698
  localization: {
690
699
  description: {
691
700
  key: "chat.extensionToolsEnabled",
692
- value: ( localize(5189, "Enable using tools contributed by third-party extensions."))
701
+ value: ( localize(5205, "Enable using tools contributed by third-party extensions."))
693
702
  }
694
703
  }
695
704
  }
@@ -697,7 +706,7 @@ configurationRegistry.registerConfiguration({
697
706
  [ChatConfiguration.AgentEnabled]: {
698
707
  type: "boolean",
699
708
  description: ( localize(
700
- 5190,
709
+ 5206,
701
710
  "When enabled, agent mode can be activated from chat and tools in agentic contexts with side effects can be used."
702
711
  )),
703
712
  default: true,
@@ -710,16 +719,38 @@ configurationRegistry.registerConfiguration({
710
719
  description: {
711
720
  key: "chat.agent.enabled.description",
712
721
  value: ( localize(
713
- 5190,
722
+ 5206,
714
723
  "When enabled, agent mode can be activated from chat and tools in agentic contexts with side effects can be used."
715
724
  ))
716
725
  }
717
726
  }
718
727
  }
719
728
  },
729
+ [ChatConfiguration.RequestQueueingEnabled]: {
730
+ type: "boolean",
731
+ description: ( localize(
732
+ 5207,
733
+ "When enabled, allows queuing additional messages while a request is in progress and steering the current request with a new message."
734
+ )),
735
+ default: true,
736
+ tags: ["experimental"]
737
+ },
738
+ [ChatConfiguration.RequestQueueingDefaultAction]: {
739
+ type: "string",
740
+ enum: ["queue", "steer"],
741
+ enumDescriptions: [( localize(5208, "Queue the message to send after the current request completes.")), ( localize(
742
+ 5209,
743
+ "Steer the current request by sending the message immediately, signaling the current request to yield."
744
+ ))],
745
+ description: ( localize(
746
+ 5210,
747
+ "Controls which action is the default for the queue button when a request is in progress."
748
+ )),
749
+ default: "steer"
750
+ },
720
751
  [ChatConfiguration.EditModeHidden]: {
721
752
  type: "boolean",
722
- description: ( localize(5191, "When enabled, hides the Edit mode from the chat mode picker.")),
753
+ description: ( localize(5211, "When enabled, hides the Edit mode from the chat mode picker.")),
723
754
  default: false,
724
755
  tags: ["experimental"],
725
756
  experiment: {
@@ -729,7 +760,7 @@ configurationRegistry.registerConfiguration({
729
760
  [ChatConfiguration.AlternativeToolAction]: {
730
761
  type: "boolean",
731
762
  description: ( localize(
732
- 5192,
763
+ 5212,
733
764
  "When enabled, shows the Configure Tools action in the mode picker dropdown on hover instead of in the chat input."
734
765
  )),
735
766
  default: false,
@@ -740,13 +771,13 @@ configurationRegistry.registerConfiguration({
740
771
  },
741
772
  [ChatConfiguration.EnableMath]: {
742
773
  type: "boolean",
743
- description: ( localize(5193, "Enable math rendering in chat responses using KaTeX.")),
774
+ description: ( localize(5213, "Enable math rendering in chat responses using KaTeX.")),
744
775
  default: true
745
776
  },
746
777
  [ChatConfiguration.ShowCodeBlockProgressAnimation]: {
747
778
  type: "boolean",
748
779
  description: ( localize(
749
- 5194,
780
+ 5214,
750
781
  "When applying edits, show a progress animation in the code block pill. If disabled, shows the progress percentage instead."
751
782
  )),
752
783
  default: true,
@@ -755,9 +786,9 @@ configurationRegistry.registerConfiguration({
755
786
  ["chat.statusWidget.sku"]: {
756
787
  type: "string",
757
788
  enum: ["free", "anonymous"],
758
- enumDescriptions: [( localize(5195, "Show status widget for free tier users.")), ( localize(5196, "Show status widget for anonymous users."))],
789
+ enumDescriptions: [( localize(5215, "Show status widget for free tier users.")), ( localize(5216, "Show status widget for anonymous users."))],
759
790
  description: ( localize(
760
- 5197,
791
+ 5217,
761
792
  "Controls which user type should see the status widget in new chat sessions when quota is exceeded."
762
793
  )),
763
794
  default: undefined,
@@ -775,7 +806,7 @@ configurationRegistry.registerConfiguration({
775
806
  additionalProperties: false,
776
807
  default: Object.fromEntries(( allDiscoverySources.map(k => [k, false]))),
777
808
  markdownDescription: ( localize(
778
- 5198,
809
+ 5218,
779
810
  "Configures discovery of Model Context Protocol servers from configuration from various other applications."
780
811
  ))
781
812
  },
@@ -784,14 +815,14 @@ configurationRegistry.registerConfiguration({
784
815
  default: false,
785
816
  tags: ["preview"],
786
817
  description: ( localize(
787
- 5199,
818
+ 5219,
788
819
  "Enables the default Marketplace for Model Context Protocol (MCP) servers."
789
820
  )),
790
821
  included: product.quality === "stable"
791
822
  },
792
823
  [mcpGalleryServiceUrlConfig]: {
793
824
  type: "string",
794
- description: ( localize(5200, "Configure the MCP Gallery service URL to connect to")),
825
+ description: ( localize(5220, "Configure the MCP Gallery service URL to connect to")),
795
826
  default: "",
796
827
  scope: ConfigurationScope.APPLICATION,
797
828
  tags: ["usesOnlineServices", "advanced"],
@@ -804,22 +835,23 @@ configurationRegistry.registerConfiguration({
804
835
  localization: {
805
836
  description: {
806
837
  key: "mcp.gallery.serviceUrl",
807
- value: ( localize(5200, "Configure the MCP Gallery service URL to connect to"))
838
+ value: ( localize(5220, "Configure the MCP Gallery service URL to connect to"))
808
839
  }
809
840
  }
810
841
  }
811
842
  },
812
843
  [PromptsConfig.INSTRUCTIONS_LOCATION_KEY]: {
813
844
  type: "object",
814
- title: ( localize(5201, "Instructions File Locations")),
845
+ title: ( localize(5221, "Instructions File Locations")),
815
846
  markdownDescription: ( localize(
816
- 5202,
847
+ 5222,
817
848
  "Specify location(s) of instructions files (`*{0}`) that can be attached in Chat sessions. [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
818
849
  INSTRUCTION_FILE_EXTENSION,
819
850
  INSTRUCTIONS_DOCUMENTATION_URL
820
851
  )),
821
852
  default: {
822
- [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true
853
+ [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true,
854
+ [CLAUDE_RULES_SOURCE_FOLDER]: true
823
855
  },
824
856
  additionalProperties: {
825
857
  type: "boolean"
@@ -827,14 +859,15 @@ configurationRegistry.registerConfiguration({
827
859
  propertyNames: {
828
860
  pattern: VALID_PROMPT_FOLDER_PATTERN,
829
861
  patternErrorMessage: ( localize(
830
- 5203,
862
+ 5223,
831
863
  "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported. Glob patterns are deprecated and will be removed in future versions."
832
864
  ))
833
865
  },
834
866
  restricted: true,
835
867
  tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
836
868
  examples: [{
837
- [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true
869
+ [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true,
870
+ [CLAUDE_RULES_SOURCE_FOLDER]: true
838
871
  }, {
839
872
  [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true,
840
873
  "/Users/vscode/repos/instructions": true
@@ -842,9 +875,9 @@ configurationRegistry.registerConfiguration({
842
875
  },
843
876
  [PromptsConfig.PROMPT_LOCATIONS_KEY]: {
844
877
  type: "object",
845
- title: ( localize(5204, "Prompt File Locations")),
878
+ title: ( localize(5224, "Prompt File Locations")),
846
879
  markdownDescription: ( localize(
847
- 5205,
880
+ 5225,
848
881
  "Specify location(s) of reusable prompt files (`*{0}`) that can be run in Chat sessions. [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
849
882
  PROMPT_FILE_EXTENSION,
850
883
  PROMPT_DOCUMENTATION_URL
@@ -861,7 +894,7 @@ configurationRegistry.registerConfiguration({
861
894
  propertyNames: {
862
895
  pattern: VALID_PROMPT_FOLDER_PATTERN,
863
896
  patternErrorMessage: ( localize(
864
- 5206,
897
+ 5226,
865
898
  "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported. Glob patterns are deprecated and will be removed in future versions."
866
899
  ))
867
900
  },
@@ -876,9 +909,9 @@ configurationRegistry.registerConfiguration({
876
909
  },
877
910
  [PromptsConfig.MODE_LOCATION_KEY]: {
878
911
  type: "object",
879
- title: ( localize(5207, "Mode File Locations")),
912
+ title: ( localize(5227, "Mode File Locations")),
880
913
  markdownDescription: ( localize(
881
- 5208,
914
+ 5228,
882
915
  "Specify location(s) of custom chat mode files (`*{0}`). [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
883
916
  LEGACY_MODE_FILE_EXTENSION,
884
917
  AGENT_DOCUMENTATION_URL
@@ -887,7 +920,7 @@ configurationRegistry.registerConfiguration({
887
920
  [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true
888
921
  },
889
922
  deprecationMessage: ( localize(
890
- 5209,
923
+ 5229,
891
924
  "This setting is deprecated and will be removed in future releases. Chat modes are now called custom agents and are located in `.github/agents`"
892
925
  )),
893
926
  additionalProperties: {
@@ -913,15 +946,16 @@ configurationRegistry.registerConfiguration({
913
946
  },
914
947
  [PromptsConfig.AGENTS_LOCATION_KEY]: {
915
948
  type: "object",
916
- title: ( localize(5210, "Agent File Locations")),
949
+ title: ( localize(5230, "Agent File Locations")),
917
950
  markdownDescription: ( localize(
918
- 5211,
951
+ 5231,
919
952
  "Specify location(s) of custom agent files (`*{0}`). [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
920
953
  AGENT_FILE_EXTENSION,
921
954
  AGENT_DOCUMENTATION_URL
922
955
  )),
923
956
  default: {
924
- [AGENTS_SOURCE_FOLDER]: true
957
+ [AGENTS_SOURCE_FOLDER]: true,
958
+ [CLAUDE_AGENTS_SOURCE_FOLDER]: true
925
959
  },
926
960
  additionalProperties: {
927
961
  type: "boolean"
@@ -929,7 +963,7 @@ configurationRegistry.registerConfiguration({
929
963
  propertyNames: {
930
964
  pattern: VALID_PROMPT_FOLDER_PATTERN,
931
965
  patternErrorMessage: ( localize(
932
- 5212,
966
+ 5232,
933
967
  "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
934
968
  ))
935
969
  },
@@ -946,9 +980,9 @@ configurationRegistry.registerConfiguration({
946
980
  },
947
981
  [PromptsConfig.USE_AGENT_MD]: {
948
982
  type: "boolean",
949
- title: ( localize(5213, "Use AGENTS.md file")),
983
+ title: ( localize(5233, "Use AGENTS.md file")),
950
984
  markdownDescription: ( localize(
951
- 5214,
985
+ 5234,
952
986
  "Controls whether instructions from `AGENTS.md` file found in a workspace roots are attached to all chat requests."
953
987
  )),
954
988
  default: true,
@@ -958,9 +992,9 @@ configurationRegistry.registerConfiguration({
958
992
  },
959
993
  [PromptsConfig.USE_NESTED_AGENT_MD]: {
960
994
  type: "boolean",
961
- title: ( localize(5215, "Use nested AGENTS.md files")),
995
+ title: ( localize(5235, "Use nested AGENTS.md files")),
962
996
  markdownDescription: ( localize(
963
- 5216,
997
+ 5236,
964
998
  "Controls whether instructions from nested `AGENTS.md` files found in the workspace are listed in all chat requests. The language model can load these skills on-demand if the `read` tool is available."
965
999
  )),
966
1000
  default: false,
@@ -974,11 +1008,23 @@ configurationRegistry.registerConfiguration({
974
1008
  "instructions"
975
1009
  ]
976
1010
  },
1011
+ [PromptsConfig.USE_CLAUDE_MD]: {
1012
+ type: "boolean",
1013
+ title: ( localize(5237, "Use CLAUDE.md file")),
1014
+ markdownDescription: ( localize(
1015
+ 5238,
1016
+ "Controls whether instructions from `CLAUDE.md` file found in workspace roots, .claude and ~/.claude folder are attached to all chat requests."
1017
+ )),
1018
+ default: true,
1019
+ restricted: true,
1020
+ disallowConfigurationDefault: true,
1021
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
1022
+ },
977
1023
  [PromptsConfig.USE_AGENT_SKILLS]: {
978
1024
  type: "boolean",
979
- title: ( localize(5217, "Use Agent skills")),
1025
+ title: ( localize(5239, "Use Agent skills")),
980
1026
  markdownDescription: ( localize(
981
- 5218,
1027
+ 5240,
982
1028
  "Controls whether skills are provided as specialized capabilities to the chat requests. Skills are loaded from the folders configured in `#chat.agentSkillsLocations#`. The language model can load these skills on-demand if the `read` tool is available. Learn more about [Agent Skills](https://aka.ms/vscode-agent-skills)."
983
1029
  )),
984
1030
  default: true,
@@ -988,9 +1034,9 @@ configurationRegistry.registerConfiguration({
988
1034
  },
989
1035
  [PromptsConfig.USE_SKILL_ADHERENCE_PROMPT]: {
990
1036
  type: "boolean",
991
- title: ( localize(5219, "Use Skill Adherence Prompt")),
1037
+ title: ( localize(5241, "Use Skill Adherence Prompt")),
992
1038
  markdownDescription: ( localize(
993
- 5220,
1039
+ 5242,
994
1040
  "Controls whether a stronger skill adherence prompt is used that encourages the model to immediately invoke skills when relevant rather than just announcing them."
995
1041
  )),
996
1042
  default: false,
@@ -1009,9 +1055,9 @@ configurationRegistry.registerConfiguration({
1009
1055
  },
1010
1056
  [PromptsConfig.INCLUDE_APPLYING_INSTRUCTIONS]: {
1011
1057
  type: "boolean",
1012
- title: ( localize(5221, "Include Applying Instructions")),
1058
+ title: ( localize(5243, "Include Applying Instructions")),
1013
1059
  markdownDescription: ( localize(
1014
- 5222,
1060
+ 5244,
1015
1061
  "Controls whether instructions with a matching 'applyTo' attribute are automatically included in chat requests."
1016
1062
  )),
1017
1063
  default: true,
@@ -1021,9 +1067,9 @@ configurationRegistry.registerConfiguration({
1021
1067
  },
1022
1068
  [PromptsConfig.INCLUDE_REFERENCED_INSTRUCTIONS]: {
1023
1069
  type: "boolean",
1024
- title: ( localize(5223, "Include Referenced Instructions")),
1070
+ title: ( localize(5245, "Include Referenced Instructions")),
1025
1071
  markdownDescription: ( localize(
1026
- 5224,
1072
+ 5246,
1027
1073
  "Controls whether referenced instructions are automatically included in chat requests."
1028
1074
  )),
1029
1075
  default: false,
@@ -1033,9 +1079,9 @@ configurationRegistry.registerConfiguration({
1033
1079
  },
1034
1080
  [PromptsConfig.SKILLS_LOCATION_KEY]: {
1035
1081
  type: "object",
1036
- title: ( localize(5225, "Agent Skills Locations")),
1082
+ title: ( localize(5247, "Agent Skills Locations")),
1037
1083
  markdownDescription: ( localize(
1038
- 5226,
1084
+ 5248,
1039
1085
  "Specify location(s) of agent skills (`{0}`) that can be used in Chat Sessions. [Learn More]({1}).\n\nEach path should contain skill subfolders with SKILL.md files (e.g., add `my-skills` if you have `my-skills/skillA/SKILL.md`). Relative paths are resolved from the root folder(s) of your workspace.",
1040
1086
  SKILL_FILENAME,
1041
1087
  SKILL_DOCUMENTATION_URL
@@ -1054,7 +1100,7 @@ configurationRegistry.registerConfiguration({
1054
1100
  propertyNames: {
1055
1101
  pattern: VALID_PROMPT_FOLDER_PATTERN,
1056
1102
  patternErrorMessage: ( localize(
1057
- 5227,
1103
+ 5249,
1058
1104
  "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
1059
1105
  ))
1060
1106
  },
@@ -1069,12 +1115,86 @@ configurationRegistry.registerConfiguration({
1069
1115
  "~/.custom/skills": true
1070
1116
  }]
1071
1117
  },
1118
+ [PromptsConfig.HOOKS_LOCATION_KEY]: {
1119
+ type: "object",
1120
+ title: ( localize(5250, "Hook File Locations")),
1121
+ markdownDescription: ( localize(
1122
+ 5251,
1123
+ "Specify paths to hook configuration files that define custom shell commands to execute at strategic points in an agent's workflow. [Learn More]({0}).\n\nRelative paths are resolved from the root folder(s) of your workspace. Supports Copilot hooks (`*.json`) and Claude Code hooks (`settings.json`, `settings.local.json`).",
1124
+ HOOK_DOCUMENTATION_URL
1125
+ )),
1126
+ default: {
1127
+ ...( DEFAULT_HOOK_FILE_PATHS.map(f => ({
1128
+ [f.path]: true
1129
+ }))).reduce((acc, curr) => ({
1130
+ ...acc,
1131
+ ...curr
1132
+ }), {})
1133
+ },
1134
+ additionalProperties: {
1135
+ type: "boolean"
1136
+ },
1137
+ propertyNames: {
1138
+ pattern: VALID_PROMPT_FOLDER_PATTERN,
1139
+ patternErrorMessage: ( localize(
1140
+ 5252,
1141
+ "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
1142
+ ))
1143
+ },
1144
+ restricted: true,
1145
+ tags: ["preview", "prompts", "hooks", "agent"],
1146
+ examples: [{
1147
+ [DEFAULT_HOOK_FILE_PATHS[0].path]: true
1148
+ }, {
1149
+ [DEFAULT_HOOK_FILE_PATHS[0].path]: true,
1150
+ "custom-hooks/hooks.json": true
1151
+ }]
1152
+ },
1153
+ [PromptsConfig.USE_CHAT_HOOKS]: {
1154
+ type: "boolean",
1155
+ title: ( localize(5253, "Use Chat Hooks")),
1156
+ markdownDescription: ( localize(
1157
+ 5254,
1158
+ "Controls whether chat hooks are executed at strategic points during an agent's workflow. Hooks are loaded from the files configured in `#chat.hookFilesLocations#`."
1159
+ )),
1160
+ default: true,
1161
+ restricted: true,
1162
+ disallowConfigurationDefault: true,
1163
+ tags: ["preview", "prompts", "hooks", "agent"],
1164
+ policy: {
1165
+ name: "ChatHooks",
1166
+ category: PolicyCategory.InteractiveSession,
1167
+ minimumVersion: "1.109",
1168
+ value: policyData => policyData.chat_preview_features_enabled === false ? false : undefined,
1169
+ localization: {
1170
+ description: {
1171
+ key: "chat.useHooks.description",
1172
+ value: ( localize(
1173
+ 5254,
1174
+ "Controls whether chat hooks are executed at strategic points during an agent's workflow. Hooks are loaded from the files configured in `#chat.hookFilesLocations#`."
1175
+ ))
1176
+ }
1177
+ }
1178
+ }
1179
+ },
1180
+ [PromptsConfig.USE_CLAUDE_HOOKS]: {
1181
+ type: "boolean",
1182
+ title: ( localize(5255, "Use Claude Hooks")),
1183
+ markdownDescription: ( localize(
1184
+ 5256,
1185
+ "Controls whether hooks from Claude configuration files can execute. When disabled, only Copilot-format hooks are used. Hooks are loaded from the files configured in `#chat.hookFilesLocations#`."
1186
+ )),
1187
+ default: false,
1188
+ restricted: true,
1189
+ disallowConfigurationDefault: true,
1190
+ tags: ["preview", "prompts", "hooks", "agent"]
1191
+ },
1072
1192
  [PromptsConfig.PROMPT_FILES_SUGGEST_KEY]: {
1073
1193
  type: "object",
1074
1194
  scope: ConfigurationScope.RESOURCE,
1075
- title: ( localize(5228, "Prompt File Recommendations")),
1195
+ title: ( localize(5257, "Prompt File Recommendations")),
1076
1196
  markdownDescription: ( localize(
1077
- 5229,
1197
+ 5258,
1078
1198
  "Configure which prompt files to recommend in the chat welcome view. Each key is a prompt file name, and the value can be `true` to always recommend, `false` to never recommend, or a [when clause](https://aka.ms/vscode-when-clause) expression like `resourceExtname == .js` or `resourceLangId == markdown`."
1079
1199
  )),
1080
1200
  default: {},
@@ -1096,7 +1216,7 @@ configurationRegistry.registerConfiguration({
1096
1216
  type: "boolean",
1097
1217
  default: true,
1098
1218
  description: ( localize(
1099
- 5230,
1219
+ 5259,
1100
1220
  "Controls whether to show the todo list widget above the chat input. When enabled, the widget displays todo items created by the agent and updates as progress is made."
1101
1221
  ))
1102
1222
  },
@@ -1104,21 +1224,21 @@ configurationRegistry.registerConfiguration({
1104
1224
  type: "string",
1105
1225
  default: "fixedScrolling",
1106
1226
  enum: ["collapsed", "collapsedPreview", "fixedScrolling"],
1107
- enumDescriptions: [( localize(5231, "Thinking parts will be collapsed by default.")), ( localize(
1108
- 5232,
1227
+ enumDescriptions: [( localize(5260, "Thinking parts will be collapsed by default.")), ( localize(
1228
+ 5261,
1109
1229
  "Thinking parts will be expanded first, then collapse once we reach a part that is not thinking."
1110
1230
  )), ( localize(
1111
- 5233,
1231
+ 5262,
1112
1232
  "Show thinking in a fixed-height streaming panel that auto-scrolls; click header to expand to full height."
1113
1233
  ))],
1114
- description: ( localize(5234, "Controls how thinking is rendered.")),
1234
+ description: ( localize(5263, "Controls how thinking is rendered.")),
1115
1235
  tags: ["experimental"]
1116
1236
  },
1117
1237
  [ChatConfiguration.ThinkingGenerateTitles]: {
1118
1238
  type: "boolean",
1119
1239
  default: true,
1120
1240
  description: ( localize(
1121
- 5235,
1241
+ 5264,
1122
1242
  "Controls whether to use an LLM to generate summary titles for thinking sections."
1123
1243
  )),
1124
1244
  tags: ["experimental"]
@@ -1127,12 +1247,12 @@ configurationRegistry.registerConfiguration({
1127
1247
  type: "string",
1128
1248
  default: "always",
1129
1249
  enum: ["off", "withThinking", "always"],
1130
- enumDescriptions: [( localize(5236, "Tool calls are shown separately, not collapsed into thinking.")), ( localize(
1131
- 5237,
1250
+ enumDescriptions: [( localize(5265, "Tool calls are shown separately, not collapsed into thinking.")), ( localize(
1251
+ 5266,
1132
1252
  "Tool calls are collapsed into thinking sections when thinking is present."
1133
- )), ( localize(5238, "Tool calls are always collapsed, even without thinking."))],
1253
+ )), ( localize(5267, "Tool calls are always collapsed, even without thinking."))],
1134
1254
  markdownDescription: ( localize(
1135
- 5239,
1255
+ 5268,
1136
1256
  "Controls how tool calls are displayed in relation to thinking sections."
1137
1257
  )),
1138
1258
  tags: ["experimental"]
@@ -1141,7 +1261,7 @@ configurationRegistry.registerConfiguration({
1141
1261
  type: "boolean",
1142
1262
  default: true,
1143
1263
  markdownDescription: ( localize(
1144
- 5240,
1264
+ 5269,
1145
1265
  "When enabled, terminal tool calls are displayed inside the thinking dropdown with a simplified view."
1146
1266
  )),
1147
1267
  tags: ["experimental"]
@@ -1150,14 +1270,14 @@ configurationRegistry.registerConfiguration({
1150
1270
  type: "boolean",
1151
1271
  default: true,
1152
1272
  markdownDescription: ( localize(
1153
- 5241,
1273
+ 5270,
1154
1274
  "When enabled, tool failures are automatically expanded in the chat UI to show error details."
1155
1275
  ))
1156
1276
  },
1157
1277
  [ChatConfiguration.AIDisabled]: {
1158
1278
  type: "boolean",
1159
1279
  description: ( localize(
1160
- 5242,
1280
+ 5271,
1161
1281
  "Disable and hide built-in AI features provided by GitHub Copilot, including chat and inline suggestions."
1162
1282
  )),
1163
1283
  default: false,
@@ -1165,7 +1285,7 @@ configurationRegistry.registerConfiguration({
1165
1285
  },
1166
1286
  "chat.allowAnonymousAccess": {
1167
1287
  type: "boolean",
1168
- description: ( localize(5243, "Controls whether anonymous access is allowed in chat.")),
1288
+ description: ( localize(5272, "Controls whether anonymous access is allowed in chat.")),
1169
1289
  default: false,
1170
1290
  tags: ["experimental"],
1171
1291
  experiment: {
@@ -1175,7 +1295,7 @@ configurationRegistry.registerConfiguration({
1175
1295
  [ChatConfiguration.RestoreLastPanelSession]: {
1176
1296
  type: "boolean",
1177
1297
  description: ( localize(
1178
- 5244,
1298
+ 5273,
1179
1299
  "Controls whether the last session is restored in panel after restart."
1180
1300
  )),
1181
1301
  default: false
@@ -1183,7 +1303,7 @@ configurationRegistry.registerConfiguration({
1183
1303
  [ChatConfiguration.ExitAfterDelegation]: {
1184
1304
  type: "boolean",
1185
1305
  description: ( localize(
1186
- 5245,
1306
+ 5274,
1187
1307
  "Controls whether the chat panel automatically exits after delegating a request to another session."
1188
1308
  )),
1189
1309
  default: true,
@@ -1192,7 +1312,7 @@ configurationRegistry.registerConfiguration({
1192
1312
  "chat.extensionUnification.enabled": {
1193
1313
  type: "boolean",
1194
1314
  description: ( localize(
1195
- 5246,
1315
+ 5275,
1196
1316
  "Enables the unification of GitHub Copilot extensions. When enabled, all GitHub Copilot functionality is served from the GitHub Copilot Chat extension. When disabled, the GitHub Copilot and GitHub Copilot Chat extensions operate independently."
1197
1317
  )),
1198
1318
  default: true,
@@ -1204,7 +1324,7 @@ configurationRegistry.registerConfiguration({
1204
1324
  [ChatConfiguration.SubagentToolCustomAgents]: {
1205
1325
  type: "boolean",
1206
1326
  description: ( localize(
1207
- 5247,
1327
+ 5276,
1208
1328
  "Whether the runSubagent tool is able to use custom agents. When enabled, the tool can take the name of a custom agent, but it must be given the exact name of the agent."
1209
1329
  )),
1210
1330
  default: false,
@@ -1216,10 +1336,10 @@ configurationRegistry.registerConfiguration({
1216
1336
  }
1217
1337
  });
1218
1338
  ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
1219
- EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(5248, "Chat"))),
1339
+ EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(5277, "Chat"))),
1220
1340
  [( new SyncDescriptor(ChatEditorInput))]
1221
1341
  );
1222
- ( Registry.as(Extensions$1.ConfigurationMigration)).registerConfigurationMigrations([{
1342
+ ( Registry.as(Extensions$2.ConfigurationMigration)).registerConfigurationMigrations([{
1223
1343
  key: "chat.experimental.detectParticipant.enabled",
1224
1344
  migrateFn: (value, _accessor) => ([["chat.experimental.detectParticipant.enabled", {
1225
1345
  value: undefined
@@ -1272,7 +1392,7 @@ let ChatResolverContribution = class ChatResolverContribution extends Disposable
1272
1392
  _registerEditor(scheme) {
1273
1393
  this._editorRegistrations.set(scheme, this.editorResolverService.registerEditor(`${scheme}:**/**`, {
1274
1394
  id: ChatEditorInput.EditorID,
1275
- label: ( localize(5248, "Chat")),
1395
+ label: ( localize(5277, "Chat")),
1276
1396
  priority: RegisteredEditorPriority.builtin
1277
1397
  }, {
1278
1398
  singlePerResource: true,
@@ -1302,6 +1422,7 @@ let ChatAgentSettingContribution = class ChatAgentSettingContribution extends Di
1302
1422
  this.experimentService = experimentService;
1303
1423
  this.entitlementService = entitlementService;
1304
1424
  this.registerMaxRequestsSetting();
1425
+ this.registerBackgroundAgentDisplayName();
1305
1426
  }
1306
1427
  registerMaxRequestsSetting() {
1307
1428
  let lastNode;
@@ -1311,13 +1432,13 @@ let ChatAgentSettingContribution = class ChatAgentSettingContribution extends Di
1311
1432
  const defaultValue = value ?? (this.entitlementService.entitlement === ChatEntitlement.Free ? 25 : 25);
1312
1433
  const node = {
1313
1434
  id: "chatSidebar",
1314
- title: ( localize(5122, "Chat")),
1435
+ title: ( localize(5138, "Chat")),
1315
1436
  type: "object",
1316
1437
  properties: {
1317
1438
  "chat.agent.maxRequests": {
1318
1439
  type: "number",
1319
1440
  markdownDescription: ( localize(
1320
- 5249,
1441
+ 5278,
1321
1442
  "The maximum number of requests to allow per-turn when using an agent. When the limit is reached, will ask to confirm to continue."
1322
1443
  )),
1323
1444
  default: defaultValue
@@ -1336,6 +1457,13 @@ let ChatAgentSettingContribution = class ChatAgentSettingContribution extends Di
1336
1457
  () => registerMaxRequestsSetting()
1337
1458
  ));
1338
1459
  }
1460
+ registerBackgroundAgentDisplayName() {
1461
+ this.experimentService.getTreatment("backgroundAgentDisplayName").then(value => {
1462
+ if (value) {
1463
+ backgroundAgentDisplayName.set(value, undefined);
1464
+ }
1465
+ });
1466
+ }
1339
1467
  };
1340
1468
  ChatAgentSettingContribution = ( __decorate([( __param(0, IWorkbenchAssignmentService)), ( __param(1, IChatEntitlementService))], ChatAgentSettingContribution));
1341
1469
  function getCustomModesWithUniqueNames(builtinModes, customModes) {
@@ -1422,7 +1550,7 @@ let ToolReferenceNamesContribution = class ToolReferenceNamesContribution extend
1422
1550
  for (const tool of tools) {
1423
1551
  toolReferenceNameEnumValues.push(tool.toolReferenceName);
1424
1552
  toolReferenceNameEnumDescriptions.push(( localize(
1425
- 5250,
1553
+ 5279,
1426
1554
  "{0} - {1}",
1427
1555
  tool.toolReferenceName,
1428
1556
  tool.userDescription || tool.displayName
@@ -1459,7 +1587,7 @@ let ChatSlashStaticSlashCommandsContribution = class ChatSlashStaticSlashCommand
1459
1587
  super();
1460
1588
  this._store.add(slashCommandService.registerSlashCommand({
1461
1589
  command: "clear",
1462
- detail: ( localize(5251, "Start a new chat and archive the current one")),
1590
+ detail: ( localize(5280, "Start a new chat and archive the current one")),
1463
1591
  sortText: "z2_clear",
1464
1592
  executeImmediately: true,
1465
1593
  locations: [ChatAgentLocation.Chat]
@@ -1467,6 +1595,56 @@ let ChatSlashStaticSlashCommandsContribution = class ChatSlashStaticSlashCommand
1467
1595
  agentSessionsService.getSession(sessionResource)?.setArchived(true);
1468
1596
  commandService.executeCommand(ACTION_ID_NEW_CHAT);
1469
1597
  }));
1598
+ this._store.add(slashCommandService.registerSlashCommand({
1599
+ command: "hooks",
1600
+ detail: ( localize(5281, "Configure hooks")),
1601
+ sortText: "z3_hooks",
1602
+ executeImmediately: true,
1603
+ silent: true,
1604
+ locations: [ChatAgentLocation.Chat]
1605
+ }, async () => {
1606
+ await instantiationService.invokeFunction(showConfigureHooksQuickPick);
1607
+ }));
1608
+ this._store.add(slashCommandService.registerSlashCommand({
1609
+ command: "agents",
1610
+ detail: ( localize(5282, "Configure custom agents")),
1611
+ sortText: "z3_agents",
1612
+ executeImmediately: true,
1613
+ silent: true,
1614
+ locations: [ChatAgentLocation.Chat]
1615
+ }, async () => {
1616
+ await commandService.executeCommand("workbench.action.chat.configure.customagents");
1617
+ }));
1618
+ this._store.add(slashCommandService.registerSlashCommand({
1619
+ command: "skills",
1620
+ detail: ( localize(5283, "Configure skills")),
1621
+ sortText: "z3_skills",
1622
+ executeImmediately: true,
1623
+ silent: true,
1624
+ locations: [ChatAgentLocation.Chat]
1625
+ }, async () => {
1626
+ await commandService.executeCommand("workbench.action.chat.configure.skills");
1627
+ }));
1628
+ this._store.add(slashCommandService.registerSlashCommand({
1629
+ command: "instructions",
1630
+ detail: ( localize(5284, "Configure instructions")),
1631
+ sortText: "z3_instructions",
1632
+ executeImmediately: true,
1633
+ silent: true,
1634
+ locations: [ChatAgentLocation.Chat]
1635
+ }, async () => {
1636
+ await commandService.executeCommand("workbench.action.chat.configure.instructions");
1637
+ }));
1638
+ this._store.add(slashCommandService.registerSlashCommand({
1639
+ command: "prompts",
1640
+ detail: ( localize(5285, "Configure prompt files")),
1641
+ sortText: "z3_prompts",
1642
+ executeImmediately: true,
1643
+ silent: true,
1644
+ locations: [ChatAgentLocation.Chat]
1645
+ }, async () => {
1646
+ await commandService.executeCommand("workbench.action.chat.configure.prompts");
1647
+ }));
1470
1648
  this._store.add(slashCommandService.registerSlashCommand({
1471
1649
  command: "help",
1472
1650
  detail: "",
@@ -1631,6 +1809,11 @@ registerWorkbenchContribution2(
1631
1809
  ChatEditingEditorAccessibility,
1632
1810
  WorkbenchPhase.AfterRestored
1633
1811
  );
1812
+ registerWorkbenchContribution2(
1813
+ ChatQueuePickerRendering.ID,
1814
+ ChatQueuePickerRendering,
1815
+ WorkbenchPhase.BlockRestore
1816
+ );
1634
1817
  registerWorkbenchContribution2(
1635
1818
  ChatEditingEditorOverlay.ID,
1636
1819
  ChatEditingEditorOverlay,
@@ -1693,6 +1876,7 @@ registerChatFileTreeActions();
1693
1876
  registerChatPromptNavigationActions();
1694
1877
  registerChatTitleActions();
1695
1878
  registerChatExecuteActions();
1879
+ registerChatQueueActions();
1696
1880
  registerQuickChatActions();
1697
1881
  registerChatExportActions();
1698
1882
  registerMoveActions();