@codingame/monaco-vscode-chat-service-override 25.1.2 → 26.0.0

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 (334) hide show
  1. package/index.js +24 -3
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +23 -3
  4. package/vscode/src/vs/platform/browserElements/common/browserElements.js +13 -6
  5. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +4 -4
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +42 -27
  8. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +14 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +218 -74
  10. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.js +6 -8
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -9
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +165 -168
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +27 -25
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +141 -140
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +189 -121
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +14 -15
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +60 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +435 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +28 -12
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +10 -12
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +37 -16
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.d.ts +11 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +54 -24
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +73 -34
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +71 -30
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +151 -89
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +12 -15
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +39 -40
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +90 -125
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +5 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +263 -143
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +4 -4
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +188 -126
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +37 -28
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +21 -9
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +392 -226
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +31 -27
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +25 -23
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +1 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.d.ts +2 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +13 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +20 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +83 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +68 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +319 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.d.ts +1 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +215 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +179 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +951 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agentsessionprojection.css +20 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +388 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/unifiedQuickAccess.css +195 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +120 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +394 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.d.ts +38 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +95 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +31 -29
  61. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +49 -47
  62. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +4 -6
  63. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +188 -151
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +1012 -639
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +256 -151
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +8 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +182 -101
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +79 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +193 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +9 -7
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.d.ts +68 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +253 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +69 -50
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +52 -33
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +5 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +274 -155
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +2 -10
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +130 -104
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +12 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +385 -160
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +53 -36
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +112 -75
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +19 -10
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +31 -11
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +39 -17
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.js +10 -14
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +0 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +25 -16
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +265 -203
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +29 -26
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.js +114 -60
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +16 -19
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +44 -30
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +119 -45
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +152 -136
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +12 -8
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +51 -31
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +323 -217
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +653 -401
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +52 -40
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +5 -2
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +43 -28
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +182 -136
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +33 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +548 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +222 -138
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +3 -3
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +151 -113
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +6 -4
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +453 -217
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +162 -88
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/media/chatSetup.css +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +0 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -13
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +309 -233
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +55 -53
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.js +3 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +37 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +109 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +35 -23
  132. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.d.ts +9 -4
  133. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +73 -33
  134. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +47 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +333 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +39 -25
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +9 -5
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +23 -20
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +20 -16
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +65 -57
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +48 -36
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +20 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +52 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +155 -159
  147. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +24 -14
  148. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +521 -246
  149. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +107 -76
  150. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +28 -24
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.js +10 -6
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.d.ts +16 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.js +57 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatLayoutService.js +4 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +56 -44
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -3
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +37 -47
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatEditorInputContentProvider.js +5 -7
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +10 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +1284 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +179 -125
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +9 -11
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/editorHoverWrapper.js +7 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +96 -78
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +58 -53
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +25 -11
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +484 -292
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.d.ts +1 -6
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +65 -92
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +16 -19
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +1 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +9 -1
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +331 -189
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +81 -93
  175. package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.js +1 -3
  176. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -3
  177. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +6 -7
  178. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +36 -8
  179. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +169 -31
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.d.ts +6 -0
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +141 -0
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -4
  183. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +218 -144
  184. package/vscode/src/vs/workbench/contrib/chat/common/model/chatTransferService.js +20 -10
  185. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +109 -0
  186. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +349 -0
  187. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +9 -8
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +9 -0
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +139 -36
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +3 -6
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +64 -51
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +49 -34
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +21 -13
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +125 -97
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +91 -131
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +8 -5
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +488 -222
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +32 -12
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +58 -13
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +717 -200
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +79 -18
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +371 -130
  205. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +0 -1
  206. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +3 -7
  207. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +79 -61
  208. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +27 -21
  209. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +7 -10
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +26 -32
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +2 -2
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -60
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +115 -426
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +15 -0
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +127 -0
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -37
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +16 -0
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +21 -0
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +51 -0
  221. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +334 -0
  222. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +41 -0
  223. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +424 -0
  224. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +4 -0
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +58 -0
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.d.ts +7 -0
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +195 -0
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.d.ts +8 -0
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +368 -0
  230. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.d.ts +2 -0
  231. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +7 -0
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +23 -25
  235. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/common/remoteCodingAgentsService.js +7 -8
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +34 -38
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +8 -12
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +103 -95
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +28 -16
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +4 -5
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +12 -8
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +65 -54
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +86 -60
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +13 -26
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -1
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +56 -46
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +2 -2
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +63 -31
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +2 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +35 -30
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -1
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +44 -37
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +3 -4
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +3 -3
  258. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -0
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +70 -50
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +26 -394
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +85 -49
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +68 -27
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +1 -0
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +67 -45
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +12 -0
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +106 -0
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +2 -2
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +177 -97
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +136 -49
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +2 -1
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +128 -112
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +51 -49
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +8 -0
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +25 -0
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +12 -0
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +21 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +5 -14
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +2 -4
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +1 -0
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +29 -0
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +30 -31
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -17
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +19 -20
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.d.ts +11 -0
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +58 -0
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +31 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +325 -199
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +1 -1
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +33 -38
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +45 -5
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +746 -456
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +145 -98
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +88 -37
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +120 -51
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +25 -28
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +5 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +58 -12
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +12 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +17 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +8 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +47 -28
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +37 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +171 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +0 -58
  314. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +0 -213
  315. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +0 -39
  316. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +0 -243
  317. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +0 -7
  318. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +0 -41
  319. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +0 -166
  320. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +0 -607
  321. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +0 -255
  322. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  323. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -396
  324. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -9
  325. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -379
  326. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -117
  327. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +0 -141
  328. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +0 -961
  329. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +0 -36
  330. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +0 -447
  331. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +0 -6
  332. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.js +0 -251
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.d.ts +0 -10
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -42
@@ -16,7 +16,7 @@ import { Extensions, ConfigurationScope } from '@codingame/monaco-vscode-api/vsc
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';
19
- import { mcpGalleryServiceUrlConfig, mcpGalleryServiceEnablementConfig, mcpAutoStartConfig, McpAutoStartValue, mcpAccessConfig, McpAccessValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/mcpManagement';
19
+ import { mcpGalleryServiceUrlConfig, mcpGalleryServiceEnablementConfig, mcpAppsEnabledConfig, mcpAutoStartConfig, McpAutoStartValue, mcpAccessConfig, McpAccessValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/mcpManagement';
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';
@@ -43,26 +43,25 @@ import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs
43
43
  import '../common/tools/chatTodoListService.js';
44
44
  import '../common/model/chatTransferService.js';
45
45
  import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService';
46
- import { ChatConfiguration, ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
46
+ import { ChatConfiguration, AgentsControlClickBehavior, ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
47
47
  import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
48
48
  import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelStats';
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 { 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_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';
53
53
  import { PromptLanguageFeaturesProvider } from '../common/promptSyntax/promptFileContributions.js';
54
- import { AGENT_DOCUMENTATION_URL, PROMPT_DOCUMENTATION_URL, INSTRUCTIONS_DOCUMENTATION_URL } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
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';
55
55
  import '../common/promptSyntax/service/promptsServiceImpl.js';
56
- import { LanguageModelToolsExtensionPointHandler } from '../common/tools/languageModelToolsContribution.js';
56
+ import { LanguageModelToolsExtensionPointHandler } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution';
57
57
  import { BuiltinToolsContribution } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/builtinTools/tools';
58
58
  import '../common/voiceChatService.js';
59
59
  import { registerChatAccessibilityActions } from './actions/chatAccessibilityActions.js';
60
60
  import { PanelChatAccessibilityHelp, QuickChatAccessibilityHelp, EditsChatAccessibilityHelp, AgentChatAccessibilityHelp } from './actions/chatAccessibilityHelp.js';
61
- import { ModeOpenChatGlobalAction, ACTION_ID_NEW_CHAT, CopilotTitleBarMenuRendering, registerChatActions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
61
+ import { ModeOpenChatGlobalAction, ACTION_ID_NEW_CHAT, registerChatActions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
62
62
  import { CodeBlockActionRendering, registerChatCodeBlockActions, registerChatCodeCompareBlockActions } from './actions/chatCodeblockActions.js';
63
63
  import { ChatContextContributions } from '@codingame/monaco-vscode-xterm-addons-common/vscode/vs/workbench/contrib/chat/browser/actions/chatContext';
64
64
  import { registerChatContextActions } from './actions/chatContextActions.js';
65
- import { ContinueChatInSessionActionRendering } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatContinueInAction';
66
65
  import { registerChatCopyActions } from './actions/chatCopyActions.js';
67
66
  import { registerChatDeveloperActions } from './actions/chatDeveloperActions.js';
68
67
  import { ChatSubmitAction, registerChatExecuteActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatExecuteActions';
@@ -79,7 +78,9 @@ import { registerChatTitleActions } from '@codingame/monaco-vscode-katex-common/
79
78
  import { registerChatElicitationActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatElicitationActions';
80
79
  import { registerChatToolActions } from './actions/chatToolActions.js';
81
80
  import { ChatTransferContribution } from './actions/chatTransfer.js';
81
+ import { registerChatCustomizationDiagnosticsAction } from './actions/chatCustomizationDiagnosticsAction.js';
82
82
  import './agentSessions/agentSessions.contribution.js';
83
+ import { IAgentSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.service';
83
84
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
84
85
  import './accessibility/chatAccessibilityService.js';
85
86
  import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel';
@@ -92,15 +93,16 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
92
93
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
93
94
  import { ChatInputBoxContentProvider } from './widget/input/editor/chatEditorInputContentProvider.js';
94
95
  import { ChatEditingEditorAccessibility } from './chatEditing/chatEditingEditorAccessibility.js';
95
- import { registerChatEditorActions } from './chatEditing/chatEditingEditorActions.js';
96
+ import { registerChatEditorActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions';
96
97
  import { ChatEditingEditorContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys';
97
- import { ChatEditingEditorOverlay } from './chatEditing/chatEditingEditorOverlay.js';
98
+ import { ChatEditingEditorOverlay } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay';
98
99
  import './chatEditing/chatEditingServiceImpl.js';
99
100
  import { ChatEditingNotebookFileSystemProviderContrib } from './chatEditing/notebook/chatEditingNotebookFileSystemProvider.js';
100
101
  import { SimpleBrowserOverlay } from './attachments/simpleBrowserEditorOverlay.js';
101
102
  import { ChatEditor } from './widgetHosts/editor/chatEditor.js';
102
103
  import { ChatEditorInput, ChatEditorInputSerializer } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput';
103
104
  import './widget/chatLayoutService.js';
105
+ import { ChatLanguageModelsDataContribution } from './languageModelsConfigurationService.js';
104
106
  import './chatManagement/chatManagement.contribution.js';
105
107
  import { agentToMarkdown, agentSlashCommandToMarkdown } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownDecorationsRenderer';
106
108
  import './chatOutputItemRenderer.js';
@@ -113,12 +115,11 @@ import { ChatSetupContribution, ChatTeardownContribution } from './chatSetup/cha
113
115
  import { ChatStatusBarEntry } from './chatStatus/chatStatusEntry.js';
114
116
  import './attachments/chatVariables.js';
115
117
  import { ChatWidget } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/widget/chatWidget';
116
- import { ChatDynamicVariableModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables';
118
+ import { ChatDynamicVariableModel } from '@codingame/monaco-vscode-xterm-addons-common/vscode/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables';
117
119
  import { ChatImplicitContextContribution } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext';
118
- import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions';
120
+ import './widget/input/editor/chatInputCompletions.js';
119
121
  import './widget/input/editor/chatInputEditorContrib.js';
120
122
  import './widget/input/editor/chatInputEditorHover.js';
121
- import { ChatRelatedFilesContribution } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/attachments/chatInputRelatedFilesContrib';
122
123
  import './tools/languageModelToolsConfirmationService.js';
123
124
  import { globalAutoApproveDescription } from './tools/languageModelToolsService.js';
124
125
  import './promptSyntax/promptCodingAgentActionContribution.js';
@@ -128,415 +129,475 @@ import { UserToolSetsContributions, ConfigureToolSets } from './tools/toolSetsCo
128
129
  import { ChatViewsWelcomeHandler } from './viewsWelcome/chatViewsWelcomeHandler.js';
129
130
  import './widget/chatWidgetService.js';
130
131
  import { ChatWindowNotifier } from './chatWindowNotifier.js';
132
+ import { ChatRepoInfoContribution } from './chatRepoInfo.js';
133
+ import { VALID_PROMPT_FOLDER_PATTERN } from '../common/promptSyntax/utils/promptFilesLocator.js';
134
+ import './chatTipService.js';
135
+ import '../../notebook/browser/controller/chat/notebook.chat.contribution.js';
131
136
 
132
137
  const toolReferenceNameEnumValues = [];
133
138
  const toolReferenceNameEnumDescriptions = [];
134
139
  const configurationRegistry = ( Registry.as(Extensions.Configuration));
135
140
  configurationRegistry.registerConfiguration({
136
- id: 'chatSidebar',
137
- title: ( localize(4993, "Chat")),
138
- type: 'object',
141
+ id: "chatSidebar",
142
+ title: ( localize(5122, "Chat")),
143
+ type: "object",
139
144
  properties: {
140
- 'chat.fontSize': {
141
- type: 'number',
142
- description: ( localize(4994, "Controls the font size in pixels in chat messages.")),
145
+ "chat.fontSize": {
146
+ type: "number",
147
+ description: ( localize(5123, "Controls the font size in pixels in chat messages.")),
143
148
  default: 13,
144
149
  minimum: 6,
145
150
  maximum: 100
146
151
  },
147
- 'chat.fontFamily': {
148
- type: 'string',
149
- description: ( localize(4995, "Controls the font family in chat messages.")),
150
- default: 'default'
151
- },
152
- 'chat.editor.fontSize': {
153
- type: 'number',
154
- description: ( localize(4996, "Controls the font size in pixels in chat codeblocks.")),
155
- default: isMacintosh ? 12 : 14,
156
- },
157
- 'chat.editor.fontFamily': {
158
- type: 'string',
159
- description: ( localize(4997, "Controls the font family in chat codeblocks.")),
160
- default: 'default'
161
- },
162
- 'chat.editor.fontWeight': {
163
- type: 'string',
164
- description: ( localize(4998, "Controls the font weight in chat codeblocks.")),
165
- default: 'default'
166
- },
167
- 'chat.editor.wordWrap': {
168
- type: 'string',
169
- description: ( localize(4999, "Controls whether lines should wrap in chat codeblocks.")),
170
- default: 'off',
171
- enum: ['on', 'off']
172
- },
173
- 'chat.editor.lineHeight': {
174
- type: 'number',
152
+ "chat.fontFamily": {
153
+ type: "string",
154
+ description: ( localize(5124, "Controls the font family in chat messages.")),
155
+ default: "default"
156
+ },
157
+ "chat.editor.fontSize": {
158
+ type: "number",
159
+ description: ( localize(5125, "Controls the font size in pixels in chat codeblocks.")),
160
+ default: isMacintosh ? 12 : 14
161
+ },
162
+ "chat.editor.fontFamily": {
163
+ type: "string",
164
+ description: ( localize(5126, "Controls the font family in chat codeblocks.")),
165
+ default: "default"
166
+ },
167
+ "chat.editor.fontWeight": {
168
+ type: "string",
169
+ description: ( localize(5127, "Controls the font weight in chat codeblocks.")),
170
+ default: "default"
171
+ },
172
+ "chat.editor.wordWrap": {
173
+ type: "string",
174
+ description: ( localize(5128, "Controls whether lines should wrap in chat codeblocks.")),
175
+ default: "off",
176
+ enum: ["on", "off"]
177
+ },
178
+ "chat.editor.lineHeight": {
179
+ type: "number",
175
180
  description: ( localize(
176
- 5000,
181
+ 5129,
177
182
  "Controls the line height in pixels in chat codeblocks. Use 0 to compute the line height from the font size."
178
183
  )),
179
184
  default: 0
180
185
  },
181
- 'chat.commandCenter.enabled': {
182
- type: 'boolean',
186
+ [ChatConfiguration.AgentsControlClickBehavior]: {
187
+ type: "string",
188
+ enum: [
189
+ AgentsControlClickBehavior.Default,
190
+ AgentsControlClickBehavior.Cycle,
191
+ AgentsControlClickBehavior.Focus
192
+ ],
193
+ enumDescriptions: [( localize(5130, "Clicking chat icon toggles chat visibility.")), ( localize(
194
+ 5131,
195
+ "Clicking chat icon cycles through: show chat, maximize chat, hide chat. This requires chat to be contained in the secondary sidebar."
196
+ )), ( localize(
197
+ 5132,
198
+ "Clicking chat icon focuses the chat view and maximizes it if located in the secondary sidebar."
199
+ ))],
183
200
  markdownDescription: ( localize(
184
- 5001,
185
- "Controls whether the command center shows a menu for actions to control chat (requires {0}).",
186
- '`#window.commandCenter#`'
201
+ 5133,
202
+ "Controls the behavior when clicking on the chat icon in the command center."
187
203
  )),
188
- default: true
204
+ default: product.quality !== "stable" ? AgentsControlClickBehavior.Cycle : AgentsControlClickBehavior.Default,
205
+ tags: ["experimental"]
206
+ },
207
+ [ChatConfiguration.AgentStatusEnabled]: {
208
+ type: "boolean",
209
+ markdownDescription: ( localize(
210
+ 5134,
211
+ "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
+ "`#window.commandCenter#`",
213
+ "`#chat.viewSessions.enabled#`"
214
+ )),
215
+ default: true,
216
+ tags: ["experimental"]
217
+ },
218
+ [ChatConfiguration.UnifiedAgentsBar]: {
219
+ type: "boolean",
220
+ markdownDescription: ( localize(
221
+ 5135,
222
+ "Replaces the command center search box with a unified chat and search widget."
223
+ )),
224
+ default: false,
225
+ tags: ["experimental"]
226
+ },
227
+ [ChatConfiguration.AgentSessionProjectionEnabled]: {
228
+ type: "boolean",
229
+ markdownDescription: ( localize(
230
+ 5136,
231
+ "Controls whether Agent Session Projection mode is enabled for reviewing agent sessions in a focused workspace."
232
+ )),
233
+ default: false,
234
+ tags: ["experimental"]
189
235
  },
190
- 'chat.implicitContext.enabled': {
191
- type: 'object',
236
+ "chat.implicitContext.enabled": {
237
+ type: "object",
192
238
  description: ( localize(
193
- 5002,
239
+ 5137,
194
240
  "Enables automatically using the active editor as chat context for specified chat locations."
195
241
  )),
196
242
  additionalProperties: {
197
- type: 'string',
198
- enum: ['never', 'first', 'always'],
199
- description: ( localize(5003, "The value for the implicit context.")),
200
- enumDescriptions: [
201
- ( localize(5004, "Implicit context is never enabled.")),
202
- ( localize(5005, "Implicit context is enabled for the first interaction.")),
203
- ( localize(5006, "Implicit context is always enabled."))
204
- ]
243
+ type: "string",
244
+ 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."))]
205
247
  },
206
248
  default: {
207
- 'panel': 'always',
249
+ "panel": "always"
208
250
  }
209
251
  },
210
- 'chat.implicitContext.suggestedContext': {
211
- type: 'boolean',
252
+ "chat.implicitContext.suggestedContext": {
253
+ type: "boolean",
212
254
  markdownDescription: ( localize(
213
- 5007,
255
+ 5142,
214
256
  "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."
215
257
  )),
216
- default: true,
258
+ default: true
217
259
  },
218
- 'chat.editing.autoAcceptDelay': {
219
- type: 'number',
260
+ "chat.editing.autoAcceptDelay": {
261
+ type: "number",
220
262
  markdownDescription: ( localize(
221
- 5008,
263
+ 5143,
222
264
  "Delay after which changes made by chat are automatically accepted. Values are in seconds, `0` means disabled and `100` seconds is the maximum."
223
265
  )),
224
266
  default: 0,
225
267
  minimum: 0,
226
268
  maximum: 100
227
269
  },
228
- 'chat.editing.confirmEditRequestRemoval': {
229
- type: 'boolean',
270
+ "chat.editing.confirmEditRequestRemoval": {
271
+ type: "boolean",
230
272
  scope: ConfigurationScope.APPLICATION,
231
273
  markdownDescription: ( localize(
232
- 5009,
274
+ 5144,
233
275
  "Whether to show a confirmation before removing a request and its associated edits."
234
276
  )),
235
- default: true,
277
+ default: true
236
278
  },
237
- 'chat.editing.confirmEditRequestRetry': {
238
- type: 'boolean',
279
+ "chat.editing.confirmEditRequestRetry": {
280
+ type: "boolean",
239
281
  scope: ConfigurationScope.APPLICATION,
240
282
  markdownDescription: ( localize(
241
- 5010,
283
+ 5145,
242
284
  "Whether to show a confirmation before retrying a request and its associated edits."
243
285
  )),
244
- default: true,
286
+ default: true
287
+ },
288
+ "chat.editing.explainChanges.enabled": {
289
+ type: "boolean",
290
+ markdownDescription: ( localize(
291
+ 5146,
292
+ "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
+ )),
294
+ default: false,
295
+ tags: ["experimental"],
296
+ experiment: {
297
+ mode: "auto"
298
+ }
299
+ },
300
+ "chat.tips.enabled": {
301
+ type: "boolean",
302
+ description: ( localize(
303
+ 5147,
304
+ "Controls whether tips are shown above user messages in chat. This is an experimental feature."
305
+ )),
306
+ default: false,
307
+ tags: ["experimental"],
308
+ experiment: {
309
+ mode: "auto"
310
+ }
245
311
  },
246
- 'chat.experimental.detectParticipant.enabled': {
247
- type: 'boolean',
312
+ "chat.experimental.detectParticipant.enabled": {
313
+ type: "boolean",
248
314
  deprecationMessage: ( localize(
249
- 5011,
315
+ 5148,
250
316
  "This setting is deprecated. Please use `chat.detectParticipant.enabled` instead."
251
317
  )),
252
- description: ( localize(5012, "Enables chat participant autodetection for panel chat.")),
318
+ description: ( localize(5149, "Enables chat participant autodetection for panel chat.")),
253
319
  default: null
254
320
  },
255
- 'chat.detectParticipant.enabled': {
256
- type: 'boolean',
257
- description: ( localize(5013, "Enables chat participant autodetection for panel chat.")),
321
+ "chat.detectParticipant.enabled": {
322
+ type: "boolean",
323
+ description: ( localize(5150, "Enables chat participant autodetection for panel chat.")),
258
324
  default: true
259
325
  },
260
- 'chat.renderRelatedFiles': {
261
- type: 'boolean',
326
+ [ChatConfiguration.InlineReferencesStyle]: {
327
+ type: "string",
328
+ enum: ["box", "link"],
329
+ enumDescriptions: [( localize(5151, "Display file and symbol references as boxed widgets with icons.")), ( localize(
330
+ 5152,
331
+ "Display file and symbol references as simple blue links without icons."
332
+ ))],
262
333
  description: ( localize(
263
- 5014,
264
- "Controls whether related files should be rendered in the chat input."
334
+ 5153,
335
+ "Controls how file and symbol references are displayed in chat messages."
265
336
  )),
266
- default: false
337
+ default: "box"
338
+ },
339
+ [ChatConfiguration.EditorAssociations]: {
340
+ type: "object",
341
+ markdownDescription: ( localize(
342
+ 5154,
343
+ "Configure [glob patterns](https://aka.ms/vscode-glob-patterns) to editors for opening files from chat (for example `\"*.md\": \"vscode.markdown.preview.editor\"`)."
344
+ )),
345
+ additionalProperties: {
346
+ type: "string"
347
+ },
348
+ default: {}
267
349
  },
268
- 'chat.notifyWindowOnConfirmation': {
269
- type: 'boolean',
350
+ "chat.notifyWindowOnConfirmation": {
351
+ type: "boolean",
270
352
  description: ( localize(
271
- 5015,
353
+ 5155,
272
354
  "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."
273
355
  )),
274
- default: true,
356
+ default: true
275
357
  },
276
358
  [ChatConfiguration.GlobalAutoApprove]: {
277
359
  default: false,
278
360
  markdownDescription: globalAutoApproveDescription.value,
279
- type: 'boolean',
361
+ type: "boolean",
280
362
  scope: ConfigurationScope.APPLICATION_MACHINE,
281
- tags: ['experimental'],
363
+ tags: ["experimental"],
282
364
  policy: {
283
- name: 'ChatToolsAutoApprove',
365
+ name: "ChatToolsAutoApprove",
284
366
  category: PolicyCategory.InteractiveSession,
285
- minimumVersion: '1.99',
286
- value: (account) => account.chat_preview_features_enabled === false ? false : undefined,
367
+ minimumVersion: "1.99",
368
+ value: policyData => policyData.chat_preview_features_enabled === false ? false : undefined,
287
369
  localization: {
288
370
  description: {
289
- key: 'autoApprove2.description',
371
+ key: "autoApprove2.description",
290
372
  value: ( localize(
291
- 5016,
292
- '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.'
373
+ 5156,
374
+ "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."
293
375
  ))
294
376
  }
295
- },
377
+ }
296
378
  }
297
379
  },
298
380
  [ChatConfiguration.AutoApproveEdits]: {
299
381
  default: {
300
- '**/*': true,
301
- '**/.vscode/*.json': false,
302
- '**/.git/**': false,
303
- '**/{package.json,package-lock.json,server.xml,build.rs,web.config,.gitattributes,.env}': false,
304
- '**/*.{code-workspace,csproj,fsproj,vbproj,vcxproj,proj,targets,props}': false,
382
+ "**/*": true,
383
+ "**/.vscode/*.json": false,
384
+ "**/.git/**": false,
385
+ "**/{package.json,server.xml,build.rs,web.config,.gitattributes,.env}": false,
386
+ "**/*.{code-workspace,csproj,fsproj,vbproj,vcxproj,proj,targets,props}": false,
387
+ "**/*.lock": false,
388
+ "**/*-lock.{yaml,json}": false
305
389
  },
306
390
  markdownDescription: ( localize(
307
- 5017,
391
+ 5157,
308
392
  "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."
309
393
  )),
310
- type: 'object',
394
+ type: "object",
311
395
  additionalProperties: {
312
- type: 'boolean',
396
+ type: "boolean"
313
397
  }
314
398
  },
315
399
  [ChatConfiguration.AutoApprovedUrls]: {
316
400
  default: {},
317
401
  markdownDescription: ( localize(
318
- 5018,
402
+ 5158,
319
403
  "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"
320
404
  )),
321
- type: 'object',
405
+ type: "object",
322
406
  additionalProperties: {
323
- oneOf: [
324
- { type: 'boolean' },
325
- {
326
- type: 'object',
327
- properties: {
328
- approveRequest: { type: 'boolean' },
329
- approveResponse: { type: 'boolean' }
407
+ oneOf: [{
408
+ type: "boolean"
409
+ }, {
410
+ type: "object",
411
+ properties: {
412
+ approveRequest: {
413
+ type: "boolean"
414
+ },
415
+ approveResponse: {
416
+ type: "boolean"
330
417
  }
331
418
  }
332
- ]
419
+ }]
333
420
  }
334
421
  },
335
422
  [ChatConfiguration.EligibleForAutoApproval]: {
336
423
  default: {},
337
424
  markdownDescription: ( localize(
338
- 5019,
339
- '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.'
425
+ 5159,
426
+ "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."
340
427
  )),
341
- type: 'object',
428
+ type: "object",
342
429
  propertyNames: {
343
430
  enum: toolReferenceNameEnumValues,
344
- enumDescriptions: toolReferenceNameEnumDescriptions,
431
+ enumDescriptions: toolReferenceNameEnumDescriptions
345
432
  },
346
433
  additionalProperties: {
347
- type: 'boolean',
434
+ type: "boolean"
348
435
  },
349
- tags: ['experimental'],
350
- examples: [
351
- {
352
- 'fetch': false,
353
- 'runTask': false
354
- }
355
- ],
436
+ examples: [{
437
+ "fetch": false,
438
+ "runTask": false
439
+ }],
356
440
  policy: {
357
- name: 'ChatToolsEligibleForAutoApproval',
441
+ name: "ChatToolsEligibleForAutoApproval",
358
442
  category: PolicyCategory.InteractiveSession,
359
- minimumVersion: '1.107',
443
+ minimumVersion: "1.107",
360
444
  localization: {
361
445
  description: {
362
- key: 'chat.tools.eligibleForAutoApproval',
446
+ key: "chat.tools.eligibleForAutoApproval",
363
447
  value: ( localize(
364
- 5019,
365
- '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.'
448
+ 5159,
449
+ "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."
366
450
  ))
367
451
  }
368
- },
452
+ }
369
453
  }
370
454
  },
371
- [ChatConfiguration.SuspendThrottling]: {
372
- type: 'boolean',
373
- description: ( localize(
374
- 5020,
375
- "Controls whether background throttling is suspended when a chat request is in progress, allowing the chat session to continue even when the window is not in focus."
376
- )),
377
- default: true,
378
- tags: ['preview']
379
- },
380
- 'chat.sendElementsToChat.enabled': {
455
+ "chat.sendElementsToChat.enabled": {
381
456
  default: true,
382
457
  description: ( localize(
383
- 5021,
458
+ 5160,
384
459
  "Controls whether elements can be sent to chat from the Simple Browser."
385
460
  )),
386
- type: 'boolean',
387
- tags: ['preview']
461
+ type: "boolean",
462
+ tags: ["preview"]
388
463
  },
389
- 'chat.sendElementsToChat.attachCSS': {
464
+ "chat.sendElementsToChat.attachCSS": {
390
465
  default: true,
391
466
  markdownDescription: ( localize(
392
- 5022,
467
+ 5161,
393
468
  "Controls whether CSS of the selected element will be added to the chat. {0} must be enabled.",
394
- '`#chat.sendElementsToChat.enabled#`'
469
+ "`#chat.sendElementsToChat.enabled#`"
395
470
  )),
396
- type: 'boolean',
397
- tags: ['preview']
471
+ type: "boolean",
472
+ tags: ["preview"]
398
473
  },
399
- 'chat.sendElementsToChat.attachImages': {
474
+ "chat.sendElementsToChat.attachImages": {
400
475
  default: true,
401
476
  markdownDescription: ( localize(
402
- 5023,
477
+ 5162,
403
478
  "Controls whether a screenshot of the selected element will be added to the chat. {0} must be enabled.",
404
- '`#chat.sendElementsToChat.enabled#`'
479
+ "`#chat.sendElementsToChat.enabled#`"
405
480
  )),
406
- type: 'boolean',
407
- tags: ['experimental']
481
+ type: "boolean",
482
+ tags: ["experimental"]
408
483
  },
409
- 'chat.undoRequests.restoreInput': {
484
+ "chat.undoRequests.restoreInput": {
410
485
  default: true,
411
486
  markdownDescription: ( localize(
412
- 5024,
487
+ 5163,
413
488
  "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."
414
489
  )),
415
- type: 'boolean',
490
+ type: "boolean"
416
491
  },
417
- 'chat.editRequests': {
492
+ "chat.editRequests": {
418
493
  markdownDescription: ( localize(
419
- 5025,
494
+ 5164,
420
495
  "Enables editing of requests in the chat. This allows you to change the request content and resubmit it to the model."
421
496
  )),
422
- type: 'string',
423
- enum: ['inline', 'hover', 'input', 'none'],
424
- default: 'inline',
425
- },
426
- [ChatConfiguration.ChatViewWelcomeEnabled]: {
427
- type: 'boolean',
428
- default: true,
429
- description: ( localize(5026, "Show welcome banner when chat is empty.")),
497
+ type: "string",
498
+ enum: ["inline", "hover", "input", "none"],
499
+ default: "inline"
430
500
  },
431
501
  [ChatConfiguration.ChatViewSessionsEnabled]: {
432
- type: 'boolean',
502
+ type: "boolean",
433
503
  default: true,
434
504
  description: ( localize(
435
- 5027,
505
+ 5165,
436
506
  "Show chat agent sessions when chat is empty or to the side when chat view is wide enough."
437
- )),
507
+ ))
438
508
  },
439
509
  [ChatConfiguration.ChatViewSessionsOrientation]: {
440
- type: 'string',
441
- enum: ['stacked', 'sideBySide'],
442
- enumDescriptions: [
443
- ( localize(
444
- 5028,
510
+ type: "string",
511
+ enum: ["stacked", "sideBySide"],
512
+ enumDescriptions: [( localize(
513
+ 5166,
445
514
  "Display chat sessions vertically stacked above the chat input unless a chat session is visible."
446
- )),
447
- ( localize(
448
- 5029,
515
+ )), ( localize(
516
+ 5167,
449
517
  "Display chat sessions side by side if space is sufficient, otherwise fallback to stacked above the chat input unless a chat session is visible."
450
- ))
451
- ],
452
- default: 'sideBySide',
518
+ ))],
519
+ default: "sideBySide",
453
520
  description: ( localize(
454
- 5030,
521
+ 5168,
455
522
  "Controls the orientation of the chat agent sessions view when it is shown alongside the chat."
456
- )),
523
+ ))
457
524
  },
458
- [ChatConfiguration.ChatViewTitleEnabled]: {
459
- type: 'boolean',
460
- default: true,
461
- description: ( localize(5031, "Show the title of the chat above the chat in the chat view.")),
525
+ [ChatConfiguration.ChatViewProgressBadgeEnabled]: {
526
+ type: "boolean",
527
+ default: false,
528
+ description: ( localize(
529
+ 5169,
530
+ "Show a progress badge on the chat view when an agent session is in progress that is opened in that view."
531
+ ))
462
532
  },
463
533
  [ChatConfiguration.NotifyWindowOnResponseReceived]: {
464
- type: 'boolean',
534
+ type: "boolean",
465
535
  default: true,
466
536
  description: ( localize(
467
- 5032,
537
+ 5170,
468
538
  "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."
469
- )),
539
+ ))
470
540
  },
471
- 'chat.checkpoints.enabled': {
472
- type: 'boolean',
541
+ "chat.checkpoints.enabled": {
542
+ type: "boolean",
473
543
  default: true,
474
544
  description: ( localize(
475
- 5033,
545
+ 5171,
476
546
  "Enables checkpoints in chat. Checkpoints allow you to restore the chat to a previous state."
477
- )),
547
+ ))
478
548
  },
479
- 'chat.checkpoints.showFileChanges': {
480
- type: 'boolean',
481
- description: ( localize(5034, "Controls whether to show chat checkpoint file changes.")),
549
+ "chat.checkpoints.showFileChanges": {
550
+ type: "boolean",
551
+ description: ( localize(5172, "Controls whether to show chat checkpoint file changes.")),
482
552
  default: false
483
553
  },
484
554
  [mcpAccessConfig]: {
485
- type: 'string',
486
- description: ( localize(5035, "Controls access to installed Model Context Protocol servers.")),
487
- enum: [
488
- McpAccessValue.None,
489
- McpAccessValue.Registry,
490
- McpAccessValue.All
491
- ],
492
- enumDescriptions: [
493
- ( localize(5036, "No access to MCP servers.")),
494
- ( localize(
495
- 5037,
555
+ type: "string",
556
+ description: ( localize(5173, "Controls access to installed Model Context Protocol servers.")),
557
+ enum: [McpAccessValue.None, McpAccessValue.Registry, McpAccessValue.All],
558
+ enumDescriptions: [( localize(5174, "No access to MCP servers.")), ( localize(
559
+ 5175,
496
560
  "Allows access to MCP servers installed from the registry that VS Code is connected to."
497
- )),
498
- ( localize(5038, "Allow access to any installed MCP server."))
499
- ],
561
+ )), ( localize(5176, "Allow access to any installed MCP server."))],
500
562
  default: McpAccessValue.All,
501
563
  policy: {
502
- name: 'ChatMCP',
564
+ name: "ChatMCP",
503
565
  category: PolicyCategory.InteractiveSession,
504
- minimumVersion: '1.99',
505
- value: (account) => {
506
- if (account.mcp === false) {
566
+ minimumVersion: "1.99",
567
+ value: policyData => {
568
+ if (policyData.mcp === false) {
507
569
  return McpAccessValue.None;
508
570
  }
509
- if (account.mcpAccess === 'registry_only') {
571
+ if (policyData.mcpAccess === "registry_only") {
510
572
  return McpAccessValue.Registry;
511
573
  }
512
574
  return undefined;
513
575
  },
514
576
  localization: {
515
577
  description: {
516
- key: 'chat.mcp.access',
517
- value: ( localize(5035, "Controls access to installed Model Context Protocol servers."))
578
+ key: "chat.mcp.access",
579
+ value: ( localize(5173, "Controls access to installed Model Context Protocol servers."))
518
580
  },
519
- enumDescriptions: [
520
- {
521
- key: 'chat.mcp.access.none', value: ( localize(5036, "No access to MCP servers.")),
522
- },
523
- {
524
- key: 'chat.mcp.access.registry', value: ( localize(
525
- 5037,
581
+ enumDescriptions: [{
582
+ key: "chat.mcp.access.none",
583
+ value: ( localize(5174, "No access to MCP servers."))
584
+ }, {
585
+ key: "chat.mcp.access.registry",
586
+ value: ( localize(
587
+ 5175,
526
588
  "Allows access to MCP servers installed from the registry that VS Code is connected to."
527
- )),
528
- },
529
- {
530
- key: 'chat.mcp.access.any', value: ( localize(5038, "Allow access to any installed MCP server."))
531
- }
532
- ]
533
- },
589
+ ))
590
+ }, {
591
+ key: "chat.mcp.access.any",
592
+ value: ( localize(5176, "Allow access to any installed MCP server."))
593
+ }]
594
+ }
534
595
  }
535
596
  },
536
597
  [mcpAutoStartConfig]: {
537
- type: 'string',
598
+ type: "string",
538
599
  description: ( localize(
539
- 5039,
600
+ 5177,
540
601
  "Controls whether MCP servers should be automatically started when the chat messages are submitted."
541
602
  )),
542
603
  default: McpAutoStartValue.NewAndOutdated,
@@ -545,500 +606,650 @@ configurationRegistry.registerConfiguration({
545
606
  McpAutoStartValue.OnlyNew,
546
607
  McpAutoStartValue.NewAndOutdated
547
608
  ],
548
- enumDescriptions: [
549
- ( localize(5040, "Never automatically start MCP servers.")),
550
- ( localize(5041, "Only automatically start new MCP servers that have never been run.")),
551
- ( localize(
552
- 5042,
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,
553
611
  "Automatically start new and outdated MCP servers that are not yet running."
554
- ))
555
- ],
556
- tags: ['experimental'],
612
+ ))],
613
+ tags: ["experimental"]
614
+ },
615
+ [mcpAppsEnabledConfig]: {
616
+ type: "boolean",
617
+ description: ( localize(
618
+ 5181,
619
+ "Controls whether MCP servers can provide custom UI for tool invocations."
620
+ )),
621
+ default: true,
622
+ tags: ["experimental"]
557
623
  },
558
624
  [mcpServerSamplingSection]: {
559
- type: 'object',
625
+ type: "object",
560
626
  description: ( localize(
561
- 5043,
627
+ 5182,
562
628
  "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.",
563
- 'MCP: ' + ( localize(5044, 'List Servers'))
629
+ "MCP: " + ( localize(5183, "List Servers"))
564
630
  )),
565
631
  scope: ConfigurationScope.RESOURCE,
566
632
  additionalProperties: {
567
- type: 'object',
633
+ type: "object",
568
634
  properties: {
569
635
  allowedDuringChat: {
570
- type: 'boolean',
636
+ type: "boolean",
571
637
  description: ( localize(
572
- 5045,
638
+ 5184,
573
639
  "Whether this server is make sampling requests during its tool calls in a chat session."
574
640
  )),
575
- default: true,
641
+ default: true
576
642
  },
577
643
  allowedOutsideChat: {
578
- type: 'boolean',
644
+ type: "boolean",
579
645
  description: ( localize(
580
- 5046,
646
+ 5185,
581
647
  "Whether this server is allowed to make sampling requests outside of a chat session."
582
648
  )),
583
- default: false,
649
+ default: false
584
650
  },
585
651
  allowedModels: {
586
- type: 'array',
652
+ type: "array",
587
653
  items: {
588
- type: 'string',
589
- description: ( localize(5047, "A model the MCP server has access to.")),
590
- },
654
+ type: "string",
655
+ description: ( localize(5186, "A model the MCP server has access to."))
656
+ }
591
657
  }
592
658
  }
593
- },
659
+ }
594
660
  },
595
661
  [AssistedTypes[AddConfigurationType.NuGetPackage].enabledConfigKey]: {
596
- type: 'boolean',
662
+ type: "boolean",
597
663
  description: ( localize(
598
- 5048,
664
+ 5187,
599
665
  "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)."
600
666
  )),
601
667
  default: false,
602
- tags: ['experimental'],
668
+ tags: ["experimental"],
603
669
  experiment: {
604
- mode: 'startup'
670
+ mode: "startup"
605
671
  }
606
672
  },
607
673
  [ChatConfiguration.Edits2Enabled]: {
608
- type: 'boolean',
674
+ type: "boolean",
609
675
  description: ( localize(
610
- 5049,
676
+ 5188,
611
677
  "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."
612
678
  )),
613
- default: false,
679
+ default: false
614
680
  },
615
681
  [ChatConfiguration.ExtensionToolsEnabled]: {
616
- type: 'boolean',
617
- description: ( localize(5050, "Enable using tools contributed by third-party extensions.")),
682
+ type: "boolean",
683
+ description: ( localize(5189, "Enable using tools contributed by third-party extensions.")),
618
684
  default: true,
619
685
  policy: {
620
- name: 'ChatAgentExtensionTools',
686
+ name: "ChatAgentExtensionTools",
621
687
  category: PolicyCategory.InteractiveSession,
622
- minimumVersion: '1.99',
688
+ minimumVersion: "1.99",
623
689
  localization: {
624
690
  description: {
625
- key: 'chat.extensionToolsEnabled',
626
- value: ( localize(5050, "Enable using tools contributed by third-party extensions."))
691
+ key: "chat.extensionToolsEnabled",
692
+ value: ( localize(5189, "Enable using tools contributed by third-party extensions."))
627
693
  }
628
- },
694
+ }
629
695
  }
630
696
  },
631
697
  [ChatConfiguration.AgentEnabled]: {
632
- type: 'boolean',
698
+ type: "boolean",
633
699
  description: ( localize(
634
- 5051,
700
+ 5190,
635
701
  "When enabled, agent mode can be activated from chat and tools in agentic contexts with side effects can be used."
636
702
  )),
637
703
  default: true,
638
704
  policy: {
639
- name: 'ChatAgentMode',
705
+ name: "ChatAgentMode",
640
706
  category: PolicyCategory.InteractiveSession,
641
- minimumVersion: '1.99',
642
- value: (account) => account.chat_agent_enabled === false ? false : undefined,
707
+ minimumVersion: "1.99",
708
+ value: policyData => policyData.chat_agent_enabled === false ? false : undefined,
643
709
  localization: {
644
710
  description: {
645
- key: 'chat.agent.enabled.description',
711
+ key: "chat.agent.enabled.description",
646
712
  value: ( localize(
647
- 5051,
713
+ 5190,
648
714
  "When enabled, agent mode can be activated from chat and tools in agentic contexts with side effects can be used."
649
- )),
715
+ ))
650
716
  }
651
717
  }
652
718
  }
653
719
  },
720
+ [ChatConfiguration.EditModeHidden]: {
721
+ type: "boolean",
722
+ description: ( localize(5191, "When enabled, hides the Edit mode from the chat mode picker.")),
723
+ default: false,
724
+ tags: ["experimental"],
725
+ experiment: {
726
+ mode: "auto"
727
+ }
728
+ },
729
+ [ChatConfiguration.AlternativeToolAction]: {
730
+ type: "boolean",
731
+ description: ( localize(
732
+ 5192,
733
+ "When enabled, shows the Configure Tools action in the mode picker dropdown on hover instead of in the chat input."
734
+ )),
735
+ default: false,
736
+ tags: ["experimental"],
737
+ experiment: {
738
+ mode: "auto"
739
+ }
740
+ },
654
741
  [ChatConfiguration.EnableMath]: {
655
- type: 'boolean',
656
- description: ( localize(5052, "Enable math rendering in chat responses using KaTeX.")),
657
- default: true,
658
- tags: ['preview'],
742
+ type: "boolean",
743
+ description: ( localize(5193, "Enable math rendering in chat responses using KaTeX.")),
744
+ default: true
659
745
  },
660
746
  [ChatConfiguration.ShowCodeBlockProgressAnimation]: {
661
- type: 'boolean',
747
+ type: "boolean",
662
748
  description: ( localize(
663
- 5053,
749
+ 5194,
664
750
  "When applying edits, show a progress animation in the code block pill. If disabled, shows the progress percentage instead."
665
751
  )),
666
752
  default: true,
667
- tags: ['experimental'],
668
- },
669
- ['chat.statusWidget.sku']: {
670
- type: 'string',
671
- enum: ['free', 'anonymous'],
672
- enumDescriptions: [
673
- ( localize(5054, "Show status widget for free tier users.")),
674
- ( localize(5055, "Show status widget for anonymous users."))
675
- ],
753
+ tags: ["experimental"]
754
+ },
755
+ ["chat.statusWidget.sku"]: {
756
+ type: "string",
757
+ enum: ["free", "anonymous"],
758
+ enumDescriptions: [( localize(5195, "Show status widget for free tier users.")), ( localize(5196, "Show status widget for anonymous users."))],
676
759
  description: ( localize(
677
- 5056,
760
+ 5197,
678
761
  "Controls which user type should see the status widget in new chat sessions when quota is exceeded."
679
762
  )),
680
763
  default: undefined,
681
- tags: ['experimental', 'advanced'],
764
+ tags: ["experimental", "advanced"],
682
765
  experiment: {
683
- mode: 'auto'
766
+ mode: "auto"
684
767
  }
685
768
  },
686
769
  [mcpDiscoverySection]: {
687
- type: 'object',
688
- properties: Object.fromEntries(( allDiscoverySources.map(
689
- k => [k, { type: 'boolean', description: discoverySourceSettingsLabel[k] }]
690
- ))),
770
+ type: "object",
771
+ properties: Object.fromEntries(( allDiscoverySources.map(k => [k, {
772
+ type: "boolean",
773
+ description: discoverySourceSettingsLabel[k]
774
+ }]))),
691
775
  additionalProperties: false,
692
776
  default: Object.fromEntries(( allDiscoverySources.map(k => [k, false]))),
693
777
  markdownDescription: ( localize(
694
- 5057,
778
+ 5198,
695
779
  "Configures discovery of Model Context Protocol servers from configuration from various other applications."
696
- )),
780
+ ))
697
781
  },
698
782
  [mcpGalleryServiceEnablementConfig]: {
699
- type: 'boolean',
783
+ type: "boolean",
700
784
  default: false,
701
- tags: ['preview'],
785
+ tags: ["preview"],
702
786
  description: ( localize(
703
- 5058,
787
+ 5199,
704
788
  "Enables the default Marketplace for Model Context Protocol (MCP) servers."
705
789
  )),
706
- included: product.quality === 'stable'
790
+ included: product.quality === "stable"
707
791
  },
708
792
  [mcpGalleryServiceUrlConfig]: {
709
- type: 'string',
710
- description: ( localize(5059, "Configure the MCP Gallery service URL to connect to")),
711
- default: '',
793
+ type: "string",
794
+ description: ( localize(5200, "Configure the MCP Gallery service URL to connect to")),
795
+ default: "",
712
796
  scope: ConfigurationScope.APPLICATION,
713
- tags: ['usesOnlineServices', 'advanced'],
797
+ tags: ["usesOnlineServices", "advanced"],
714
798
  included: false,
715
799
  policy: {
716
- name: 'McpGalleryServiceUrl',
800
+ name: "McpGalleryServiceUrl",
717
801
  category: PolicyCategory.InteractiveSession,
718
- minimumVersion: '1.101',
719
- value: (account) => account.mcpRegistryUrl,
802
+ minimumVersion: "1.101",
803
+ value: policyData => policyData.mcpRegistryUrl,
720
804
  localization: {
721
805
  description: {
722
- key: 'mcp.gallery.serviceUrl',
723
- value: ( localize(5059, "Configure the MCP Gallery service URL to connect to")),
806
+ key: "mcp.gallery.serviceUrl",
807
+ value: ( localize(5200, "Configure the MCP Gallery service URL to connect to"))
724
808
  }
725
809
  }
726
- },
810
+ }
727
811
  },
728
812
  [PromptsConfig.INSTRUCTIONS_LOCATION_KEY]: {
729
- type: 'object',
730
- title: ( localize(5060, "Instructions File Locations")),
813
+ type: "object",
814
+ title: ( localize(5201, "Instructions File Locations")),
731
815
  markdownDescription: ( localize(
732
- 5061,
816
+ 5202,
733
817
  "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.",
734
818
  INSTRUCTION_FILE_EXTENSION,
735
819
  INSTRUCTIONS_DOCUMENTATION_URL
736
820
  )),
737
821
  default: {
738
- [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true,
822
+ [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true
823
+ },
824
+ additionalProperties: {
825
+ type: "boolean"
826
+ },
827
+ propertyNames: {
828
+ pattern: VALID_PROMPT_FOLDER_PATTERN,
829
+ patternErrorMessage: ( localize(
830
+ 5203,
831
+ "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
+ ))
739
833
  },
740
- additionalProperties: { type: 'boolean' },
741
834
  restricted: true,
742
- tags: ['prompts', 'reusable prompts', 'prompt snippets', 'instructions'],
743
- examples: [
744
- {
745
- [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true,
746
- },
747
- {
748
- [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true,
749
- '/Users/vscode/repos/instructions': true,
750
- },
751
- ],
835
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
836
+ examples: [{
837
+ [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true
838
+ }, {
839
+ [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true,
840
+ "/Users/vscode/repos/instructions": true
841
+ }]
752
842
  },
753
843
  [PromptsConfig.PROMPT_LOCATIONS_KEY]: {
754
- type: 'object',
755
- title: ( localize(5062, "Prompt File Locations")),
844
+ type: "object",
845
+ title: ( localize(5204, "Prompt File Locations")),
756
846
  markdownDescription: ( localize(
757
- 5063,
847
+ 5205,
758
848
  "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.",
759
849
  PROMPT_FILE_EXTENSION,
760
850
  PROMPT_DOCUMENTATION_URL
761
851
  )),
762
852
  default: {
763
- [PROMPT_DEFAULT_SOURCE_FOLDER]: true,
853
+ [PROMPT_DEFAULT_SOURCE_FOLDER]: true
854
+ },
855
+ additionalProperties: {
856
+ type: "boolean"
857
+ },
858
+ unevaluatedProperties: {
859
+ type: "boolean"
860
+ },
861
+ propertyNames: {
862
+ pattern: VALID_PROMPT_FOLDER_PATTERN,
863
+ patternErrorMessage: ( localize(
864
+ 5206,
865
+ "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
+ ))
764
867
  },
765
- additionalProperties: { type: 'boolean' },
766
- unevaluatedProperties: { type: 'boolean' },
767
868
  restricted: true,
768
- tags: ['prompts', 'reusable prompts', 'prompt snippets', 'instructions'],
769
- examples: [
770
- {
771
- [PROMPT_DEFAULT_SOURCE_FOLDER]: true,
772
- },
773
- {
774
- [PROMPT_DEFAULT_SOURCE_FOLDER]: true,
775
- '/Users/vscode/repos/prompts': true,
776
- },
777
- ],
869
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
870
+ examples: [{
871
+ [PROMPT_DEFAULT_SOURCE_FOLDER]: true
872
+ }, {
873
+ [PROMPT_DEFAULT_SOURCE_FOLDER]: true,
874
+ "/Users/vscode/repos/prompts": true
875
+ }]
778
876
  },
779
877
  [PromptsConfig.MODE_LOCATION_KEY]: {
780
- type: 'object',
781
- title: ( localize(5064, "Mode File Locations")),
878
+ type: "object",
879
+ title: ( localize(5207, "Mode File Locations")),
782
880
  markdownDescription: ( localize(
783
- 5065,
881
+ 5208,
784
882
  "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.",
785
883
  LEGACY_MODE_FILE_EXTENSION,
786
884
  AGENT_DOCUMENTATION_URL
787
885
  )),
788
886
  default: {
789
- [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true,
887
+ [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true
790
888
  },
791
889
  deprecationMessage: ( localize(
792
- 5066,
890
+ 5209,
793
891
  "This setting is deprecated and will be removed in future releases. Chat modes are now called custom agents and are located in `.github/agents`"
794
892
  )),
795
- additionalProperties: { type: 'boolean' },
796
- unevaluatedProperties: { type: 'boolean' },
893
+ additionalProperties: {
894
+ type: "boolean"
895
+ },
896
+ unevaluatedProperties: {
897
+ type: "boolean"
898
+ },
797
899
  restricted: true,
798
- tags: ['experimental', 'prompts', 'reusable prompts', 'prompt snippets', 'instructions'],
799
- examples: [
800
- {
801
- [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true,
802
- },
803
- {
804
- [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true,
805
- '/Users/vscode/repos/chatmodes': true,
806
- },
900
+ tags: [
901
+ "experimental",
902
+ "prompts",
903
+ "reusable prompts",
904
+ "prompt snippets",
905
+ "instructions"
807
906
  ],
907
+ examples: [{
908
+ [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true
909
+ }, {
910
+ [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true,
911
+ "/Users/vscode/repos/chatmodes": true
912
+ }]
913
+ },
914
+ [PromptsConfig.AGENTS_LOCATION_KEY]: {
915
+ type: "object",
916
+ title: ( localize(5210, "Agent File Locations")),
917
+ markdownDescription: ( localize(
918
+ 5211,
919
+ "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
+ AGENT_FILE_EXTENSION,
921
+ AGENT_DOCUMENTATION_URL
922
+ )),
923
+ default: {
924
+ [AGENTS_SOURCE_FOLDER]: true
925
+ },
926
+ additionalProperties: {
927
+ type: "boolean"
928
+ },
929
+ propertyNames: {
930
+ pattern: VALID_PROMPT_FOLDER_PATTERN,
931
+ patternErrorMessage: ( localize(
932
+ 5212,
933
+ "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
934
+ ))
935
+ },
936
+ restricted: true,
937
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
938
+ examples: [{
939
+ [AGENTS_SOURCE_FOLDER]: true
940
+ }, {
941
+ [AGENTS_SOURCE_FOLDER]: true,
942
+ "my-agents": true,
943
+ "../shared-agents": true,
944
+ "~/.copilot/agents": true
945
+ }]
808
946
  },
809
947
  [PromptsConfig.USE_AGENT_MD]: {
810
- type: 'boolean',
811
- title: ( localize(5067, "Use AGENTS.md file")),
948
+ type: "boolean",
949
+ title: ( localize(5213, "Use AGENTS.md file")),
812
950
  markdownDescription: ( localize(
813
- 5068,
951
+ 5214,
814
952
  "Controls whether instructions from `AGENTS.md` file found in a workspace roots are attached to all chat requests."
815
953
  )),
816
954
  default: true,
817
955
  restricted: true,
818
956
  disallowConfigurationDefault: true,
819
- tags: ['prompts', 'reusable prompts', 'prompt snippets', 'instructions']
957
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
820
958
  },
821
959
  [PromptsConfig.USE_NESTED_AGENT_MD]: {
822
- type: 'boolean',
823
- title: ( localize(5069, "Use nested AGENTS.md files")),
960
+ type: "boolean",
961
+ title: ( localize(5215, "Use nested AGENTS.md files")),
824
962
  markdownDescription: ( localize(
825
- 5070,
963
+ 5216,
826
964
  "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."
827
965
  )),
828
966
  default: false,
829
967
  restricted: true,
830
968
  disallowConfigurationDefault: true,
831
- tags: ['experimental', 'prompts', 'reusable prompts', 'prompt snippets', 'instructions']
969
+ tags: [
970
+ "experimental",
971
+ "prompts",
972
+ "reusable prompts",
973
+ "prompt snippets",
974
+ "instructions"
975
+ ]
832
976
  },
833
977
  [PromptsConfig.USE_AGENT_SKILLS]: {
834
- type: 'boolean',
835
- title: ( localize(5071, "Use Agent skills")),
978
+ type: "boolean",
979
+ title: ( localize(5217, "Use Agent skills")),
980
+ markdownDescription: ( localize(
981
+ 5218,
982
+ "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
+ )),
984
+ default: true,
985
+ restricted: true,
986
+ disallowConfigurationDefault: true,
987
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
988
+ },
989
+ [PromptsConfig.USE_SKILL_ADHERENCE_PROMPT]: {
990
+ type: "boolean",
991
+ title: ( localize(5219, "Use Skill Adherence Prompt")),
836
992
  markdownDescription: ( localize(
837
- 5072,
838
- "Controls whether skills are provided as specialized capabilities to the chat requests. Skills are loaded from `.github/skills`, `~/.copilot/skills`, `.claude/skills`, and `~/.claude/skills`. 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)."
993
+ 5220,
994
+ "Controls whether a stronger skill adherence prompt is used that encourages the model to immediately invoke skills when relevant rather than just announcing them."
839
995
  )),
840
996
  default: false,
841
997
  restricted: true,
842
998
  disallowConfigurationDefault: true,
843
- tags: ['experimental', 'prompts', 'reusable prompts', 'prompt snippets', 'instructions']
999
+ tags: [
1000
+ "experimental",
1001
+ "prompts",
1002
+ "reusable prompts",
1003
+ "prompt snippets",
1004
+ "instructions"
1005
+ ],
1006
+ experiment: {
1007
+ mode: "auto"
1008
+ }
1009
+ },
1010
+ [PromptsConfig.INCLUDE_APPLYING_INSTRUCTIONS]: {
1011
+ type: "boolean",
1012
+ title: ( localize(5221, "Include Applying Instructions")),
1013
+ markdownDescription: ( localize(
1014
+ 5222,
1015
+ "Controls whether instructions with a matching 'applyTo' attribute are automatically included in chat requests."
1016
+ )),
1017
+ default: true,
1018
+ restricted: true,
1019
+ disallowConfigurationDefault: true,
1020
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
1021
+ },
1022
+ [PromptsConfig.INCLUDE_REFERENCED_INSTRUCTIONS]: {
1023
+ type: "boolean",
1024
+ title: ( localize(5223, "Include Referenced Instructions")),
1025
+ markdownDescription: ( localize(
1026
+ 5224,
1027
+ "Controls whether referenced instructions are automatically included in chat requests."
1028
+ )),
1029
+ default: false,
1030
+ restricted: true,
1031
+ disallowConfigurationDefault: true,
1032
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
1033
+ },
1034
+ [PromptsConfig.SKILLS_LOCATION_KEY]: {
1035
+ type: "object",
1036
+ title: ( localize(5225, "Agent Skills Locations")),
1037
+ markdownDescription: ( localize(
1038
+ 5226,
1039
+ "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
+ SKILL_FILENAME,
1041
+ SKILL_DOCUMENTATION_URL
1042
+ )),
1043
+ default: {
1044
+ ...( DEFAULT_SKILL_SOURCE_FOLDERS.map(folder => ({
1045
+ [folder.path]: true
1046
+ }))).reduce((acc, curr) => ({
1047
+ ...acc,
1048
+ ...curr
1049
+ }), {})
1050
+ },
1051
+ additionalProperties: {
1052
+ type: "boolean"
1053
+ },
1054
+ propertyNames: {
1055
+ pattern: VALID_PROMPT_FOLDER_PATTERN,
1056
+ patternErrorMessage: ( localize(
1057
+ 5227,
1058
+ "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
1059
+ ))
1060
+ },
1061
+ restricted: true,
1062
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
1063
+ examples: [{
1064
+ [DEFAULT_SKILL_SOURCE_FOLDERS[0].path]: true
1065
+ }, {
1066
+ [DEFAULT_SKILL_SOURCE_FOLDERS[0].path]: true,
1067
+ "my-skills": true,
1068
+ "../shared-skills": true,
1069
+ "~/.custom/skills": true
1070
+ }]
844
1071
  },
845
1072
  [PromptsConfig.PROMPT_FILES_SUGGEST_KEY]: {
846
- type: 'object',
1073
+ type: "object",
847
1074
  scope: ConfigurationScope.RESOURCE,
848
- title: ( localize(5073, "Prompt File Recommendations")),
1075
+ title: ( localize(5228, "Prompt File Recommendations")),
849
1076
  markdownDescription: ( localize(
850
- 5074,
1077
+ 5229,
851
1078
  "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`."
852
1079
  )),
853
1080
  default: {},
854
1081
  additionalProperties: {
855
- oneOf: [
856
- { type: 'boolean' },
857
- { type: 'string' }
858
- ]
1082
+ oneOf: [{
1083
+ type: "boolean"
1084
+ }, {
1085
+ type: "string"
1086
+ }]
859
1087
  },
860
- tags: ['prompts', 'reusable prompts', 'prompt snippets', 'instructions'],
861
- examples: [
862
- {
863
- 'plan': true,
864
- 'a11y-audit': 'resourceExtname == .html',
865
- 'document': 'resourceLangId == markdown'
866
- }
867
- ],
1088
+ tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
1089
+ examples: [{
1090
+ "plan": true,
1091
+ "a11y-audit": "resourceExtname == .html",
1092
+ "document": "resourceLangId == markdown"
1093
+ }]
868
1094
  },
869
1095
  [ChatConfiguration.TodosShowWidget]: {
870
- type: 'boolean',
1096
+ type: "boolean",
871
1097
  default: true,
872
1098
  description: ( localize(
873
- 5075,
1099
+ 5230,
874
1100
  "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."
875
- )),
876
- tags: ['experimental'],
877
- experiment: {
878
- mode: 'auto'
879
- }
880
- },
881
- 'chat.todoListTool.writeOnly': {
882
- type: 'boolean',
883
- default: false,
884
- description: ( localize(
885
- 5076,
886
- "When enabled, the todo tool operates in write-only mode, requiring the agent to remember todos in context."
887
- )),
888
- tags: ['experimental'],
889
- experiment: {
890
- mode: 'auto'
891
- }
892
- },
893
- 'chat.todoListTool.descriptionField': {
894
- type: 'boolean',
895
- default: true,
896
- description: ( localize(
897
- 5077,
898
- "When enabled, todo items include detailed descriptions for implementation context. This provides more information but uses additional tokens and may slow down responses."
899
- )),
900
- tags: ['experimental'],
901
- experiment: {
902
- mode: 'auto'
903
- }
1101
+ ))
904
1102
  },
905
1103
  [ChatConfiguration.ThinkingStyle]: {
906
- type: 'string',
907
- default: 'fixedScrolling',
908
- enum: ['collapsed', 'collapsedPreview', 'fixedScrolling'],
909
- enumDescriptions: [
910
- ( localize(5078, "Thinking parts will be collapsed by default.")),
911
- ( localize(
912
- 5079,
1104
+ type: "string",
1105
+ default: "fixedScrolling",
1106
+ enum: ["collapsed", "collapsedPreview", "fixedScrolling"],
1107
+ enumDescriptions: [( localize(5231, "Thinking parts will be collapsed by default.")), ( localize(
1108
+ 5232,
913
1109
  "Thinking parts will be expanded first, then collapse once we reach a part that is not thinking."
914
- )),
915
- ( localize(
916
- 5080,
1110
+ )), ( localize(
1111
+ 5233,
917
1112
  "Show thinking in a fixed-height streaming panel that auto-scrolls; click header to expand to full height."
918
- )),
919
- ],
920
- description: ( localize(5081, "Controls how thinking is rendered.")),
921
- tags: ['experimental'],
1113
+ ))],
1114
+ description: ( localize(5234, "Controls how thinking is rendered.")),
1115
+ tags: ["experimental"]
922
1116
  },
923
1117
  [ChatConfiguration.ThinkingGenerateTitles]: {
924
- type: 'boolean',
1118
+ type: "boolean",
925
1119
  default: true,
926
1120
  description: ( localize(
927
- 5082,
1121
+ 5235,
928
1122
  "Controls whether to use an LLM to generate summary titles for thinking sections."
929
1123
  )),
930
- tags: ['experimental'],
931
- },
932
- 'chat.agent.thinking.collapsedTools': {
933
- type: 'string',
934
- default: 'always',
935
- enum: ['off', 'withThinking', 'always'],
936
- enumDescriptions: [
937
- ( localize(5083, "Tool calls are shown separately, not collapsed into thinking.")),
938
- ( localize(
939
- 5084,
1124
+ tags: ["experimental"]
1125
+ },
1126
+ "chat.agent.thinking.collapsedTools": {
1127
+ type: "string",
1128
+ default: "always",
1129
+ enum: ["off", "withThinking", "always"],
1130
+ enumDescriptions: [( localize(5236, "Tool calls are shown separately, not collapsed into thinking.")), ( localize(
1131
+ 5237,
940
1132
  "Tool calls are collapsed into thinking sections when thinking is present."
941
- )),
942
- ( localize(5085, "Tool calls are always collapsed, even without thinking.")),
943
- ],
1133
+ )), ( localize(5238, "Tool calls are always collapsed, even without thinking."))],
944
1134
  markdownDescription: ( localize(
945
- 5086,
1135
+ 5239,
946
1136
  "Controls how tool calls are displayed in relation to thinking sections."
947
1137
  )),
948
- tags: ['experimental'],
1138
+ tags: ["experimental"]
1139
+ },
1140
+ [ChatConfiguration.TerminalToolsInThinking]: {
1141
+ type: "boolean",
1142
+ default: true,
1143
+ markdownDescription: ( localize(
1144
+ 5240,
1145
+ "When enabled, terminal tool calls are displayed inside the thinking dropdown with a simplified view."
1146
+ )),
1147
+ tags: ["experimental"]
949
1148
  },
950
- 'chat.disableAIFeatures': {
951
- type: 'boolean',
1149
+ [ChatConfiguration.AutoExpandToolFailures]: {
1150
+ type: "boolean",
1151
+ default: true,
1152
+ markdownDescription: ( localize(
1153
+ 5241,
1154
+ "When enabled, tool failures are automatically expanded in the chat UI to show error details."
1155
+ ))
1156
+ },
1157
+ [ChatConfiguration.AIDisabled]: {
1158
+ type: "boolean",
952
1159
  description: ( localize(
953
- 5087,
1160
+ 5242,
954
1161
  "Disable and hide built-in AI features provided by GitHub Copilot, including chat and inline suggestions."
955
1162
  )),
956
1163
  default: false,
957
1164
  scope: ConfigurationScope.WINDOW
958
1165
  },
959
- 'chat.allowAnonymousAccess': {
960
- type: 'boolean',
961
- description: ( localize(5088, "Controls whether anonymous access is allowed in chat.")),
1166
+ "chat.allowAnonymousAccess": {
1167
+ type: "boolean",
1168
+ description: ( localize(5243, "Controls whether anonymous access is allowed in chat.")),
962
1169
  default: false,
963
- tags: ['experimental'],
1170
+ tags: ["experimental"],
964
1171
  experiment: {
965
- mode: 'auto'
1172
+ mode: "auto"
966
1173
  }
967
1174
  },
968
1175
  [ChatConfiguration.RestoreLastPanelSession]: {
969
- type: 'boolean',
1176
+ type: "boolean",
970
1177
  description: ( localize(
971
- 5089,
1178
+ 5244,
972
1179
  "Controls whether the last session is restored in panel after restart."
973
1180
  )),
974
- default: false,
975
- tags: ['experimental'],
976
- experiment: {
977
- mode: 'auto'
978
- }
1181
+ default: false
979
1182
  },
980
1183
  [ChatConfiguration.ExitAfterDelegation]: {
981
- type: 'boolean',
1184
+ type: "boolean",
982
1185
  description: ( localize(
983
- 5090,
1186
+ 5245,
984
1187
  "Controls whether the chat panel automatically exits after delegating a request to another session."
985
1188
  )),
986
1189
  default: true,
987
- tags: ['preview'],
1190
+ tags: ["preview"]
988
1191
  },
989
- 'chat.extensionUnification.enabled': {
990
- type: 'boolean',
1192
+ "chat.extensionUnification.enabled": {
1193
+ type: "boolean",
991
1194
  description: ( localize(
992
- 5091,
1195
+ 5246,
993
1196
  "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."
994
1197
  )),
995
1198
  default: true,
996
- tags: ['experimental'],
1199
+ tags: ["experimental"],
997
1200
  experiment: {
998
- mode: 'auto'
1201
+ mode: "auto"
999
1202
  }
1000
1203
  },
1001
1204
  [ChatConfiguration.SubagentToolCustomAgents]: {
1002
- type: 'boolean',
1205
+ type: "boolean",
1003
1206
  description: ( localize(
1004
- 5092,
1207
+ 5247,
1005
1208
  "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."
1006
1209
  )),
1007
1210
  default: false,
1008
- tags: ['experimental'],
1211
+ tags: ["experimental"],
1212
+ experiment: {
1213
+ mode: "auto"
1214
+ }
1009
1215
  }
1010
1216
  }
1011
1217
  });
1012
- ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(5093, "Chat"))), [
1013
- ( new SyncDescriptor(ChatEditorInput))
1014
- ]);
1015
- ( Registry.as(Extensions$1.ConfigurationMigration)).registerConfigurationMigrations([
1016
- {
1017
- key: 'chat.experimental.detectParticipant.enabled',
1018
- migrateFn: (value, _accessor) => ([
1019
- ['chat.experimental.detectParticipant.enabled', { value: undefined }],
1020
- ['chat.detectParticipant.enabled', { value: value !== false }]
1021
- ])
1022
- },
1023
- {
1024
- key: 'chat.useClaudeSkills',
1025
- migrateFn: (value, _accessor) => ([
1026
- ['chat.useClaudeSkills', { value: undefined }],
1027
- ['chat.useAgentSkills', { value }]
1028
- ])
1029
- },
1030
- {
1031
- key: mcpDiscoverySection,
1032
- migrateFn: (value) => {
1033
- if (typeof value === 'boolean') {
1034
- return { value: Object.fromEntries(( allDiscoverySources.map(k => [k, value]))) };
1035
- }
1036
- return { value };
1218
+ ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
1219
+ EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(5248, "Chat"))),
1220
+ [( new SyncDescriptor(ChatEditorInput))]
1221
+ );
1222
+ ( Registry.as(Extensions$1.ConfigurationMigration)).registerConfigurationMigrations([{
1223
+ key: "chat.experimental.detectParticipant.enabled",
1224
+ migrateFn: (value, _accessor) => ([["chat.experimental.detectParticipant.enabled", {
1225
+ value: undefined
1226
+ }], ["chat.detectParticipant.enabled", {
1227
+ value: value !== false
1228
+ }]])
1229
+ }, {
1230
+ key: "chat.useClaudeSkills",
1231
+ migrateFn: (value, _accessor) => ([["chat.useClaudeSkills", {
1232
+ value: undefined
1233
+ }], ["chat.useAgentSkills", {
1234
+ value
1235
+ }]])
1236
+ }, {
1237
+ key: mcpDiscoverySection,
1238
+ migrateFn: value => {
1239
+ if (typeof value === "boolean") {
1240
+ return {
1241
+ value: Object.fromEntries(( allDiscoverySources.map(k => [k, value])))
1242
+ };
1037
1243
  }
1038
- },
1039
- ]);
1244
+ return {
1245
+ value
1246
+ };
1247
+ }
1248
+ }]);
1040
1249
  let ChatResolverContribution = class ChatResolverContribution extends Disposable {
1041
- static { this.ID = 'workbench.contrib.chatResolver'; }
1250
+ static {
1251
+ this.ID = "workbench.contrib.chatResolver";
1252
+ }
1042
1253
  constructor(chatSessionsService, editorResolverService, instantiationService) {
1043
1254
  super();
1044
1255
  this.editorResolverService = editorResolverService;
@@ -1046,7 +1257,7 @@ let ChatResolverContribution = class ChatResolverContribution extends Disposable
1046
1257
  this._editorRegistrations = this._register(( new DisposableMap()));
1047
1258
  this._registerEditor(Schemas.vscodeChatEditor);
1048
1259
  this._registerEditor(Schemas.vscodeLocalChatSession);
1049
- this._register(chatSessionsService.onDidChangeContentProviderSchemes((e) => {
1260
+ this._register(chatSessionsService.onDidChangeContentProviderSchemes(e => {
1050
1261
  for (const scheme of e.added) {
1051
1262
  this._registerEditor(scheme);
1052
1263
  }
@@ -1061,13 +1272,18 @@ let ChatResolverContribution = class ChatResolverContribution extends Disposable
1061
1272
  _registerEditor(scheme) {
1062
1273
  this._editorRegistrations.set(scheme, this.editorResolverService.registerEditor(`${scheme}:**/**`, {
1063
1274
  id: ChatEditorInput.EditorID,
1064
- label: ( localize(5093, "Chat")),
1275
+ label: ( localize(5248, "Chat")),
1065
1276
  priority: RegisteredEditorPriority.builtin
1066
1277
  }, {
1067
1278
  singlePerResource: true,
1068
- canSupportResource: resource => resource.scheme === scheme,
1279
+ canSupportResource: resource => resource.scheme === scheme
1069
1280
  }, {
1070
- createEditorInput: ({ resource, options }) => {
1281
+ createEditorInput: (
1282
+ {
1283
+ resource,
1284
+ options
1285
+ }
1286
+ ) => {
1071
1287
  return {
1072
1288
  editor: this.instantiationService.createInstance(ChatEditorInput, resource, options),
1073
1289
  options
@@ -1076,13 +1292,11 @@ let ChatResolverContribution = class ChatResolverContribution extends Disposable
1076
1292
  }));
1077
1293
  }
1078
1294
  };
1079
- ChatResolverContribution = ( __decorate([
1080
- ( __param(0, IChatSessionsService)),
1081
- ( __param(1, IEditorResolverService)),
1082
- ( __param(2, IInstantiationService))
1083
- ], ChatResolverContribution));
1295
+ ChatResolverContribution = ( __decorate([( __param(0, IChatSessionsService)), ( __param(1, IEditorResolverService)), ( __param(2, IInstantiationService))], ChatResolverContribution));
1084
1296
  let ChatAgentSettingContribution = class ChatAgentSettingContribution extends Disposable {
1085
- static { this.ID = 'workbench.contrib.chatAgentSetting'; }
1297
+ static {
1298
+ this.ID = "workbench.contrib.chatAgentSetting";
1299
+ }
1086
1300
  constructor(experimentService, entitlementService) {
1087
1301
  super();
1088
1302
  this.experimentService = experimentService;
@@ -1092,60 +1306,81 @@ let ChatAgentSettingContribution = class ChatAgentSettingContribution extends Di
1092
1306
  registerMaxRequestsSetting() {
1093
1307
  let lastNode;
1094
1308
  const registerMaxRequestsSetting = () => {
1095
- const treatmentId = this.entitlementService.entitlement === ChatEntitlement.Free ?
1096
- 'chatAgentMaxRequestsFree' :
1097
- 'chatAgentMaxRequestsPro';
1098
- this.experimentService.getTreatment(treatmentId).then((value) => {
1309
+ const treatmentId = this.entitlementService.entitlement === ChatEntitlement.Free ? "chatAgentMaxRequestsFree" : "chatAgentMaxRequestsPro";
1310
+ this.experimentService.getTreatment(treatmentId).then(value => {
1099
1311
  const defaultValue = value ?? (this.entitlementService.entitlement === ChatEntitlement.Free ? 25 : 25);
1100
1312
  const node = {
1101
- id: 'chatSidebar',
1102
- title: ( localize(4993, "Chat")),
1103
- type: 'object',
1313
+ id: "chatSidebar",
1314
+ title: ( localize(5122, "Chat")),
1315
+ type: "object",
1104
1316
  properties: {
1105
- 'chat.agent.maxRequests': {
1106
- type: 'number',
1317
+ "chat.agent.maxRequests": {
1318
+ type: "number",
1107
1319
  markdownDescription: ( localize(
1108
- 5094,
1320
+ 5249,
1109
1321
  "The maximum number of requests to allow per-turn when using an agent. When the limit is reached, will ask to confirm to continue."
1110
1322
  )),
1111
- default: defaultValue,
1112
- },
1323
+ default: defaultValue
1324
+ }
1113
1325
  }
1114
1326
  };
1115
- configurationRegistry.updateConfigurations({ remove: lastNode ? [lastNode] : [], add: [node] });
1327
+ configurationRegistry.updateConfigurations({
1328
+ remove: lastNode ? [lastNode] : [],
1329
+ add: [node]
1330
+ });
1116
1331
  lastNode = node;
1117
1332
  });
1118
1333
  };
1119
- this._register(Event.runAndSubscribe(Event.debounce(this.entitlementService.onDidChangeEntitlement, () => { }, 1000), () => registerMaxRequestsSetting()));
1334
+ this._register(Event.runAndSubscribe(
1335
+ Event.debounce(this.entitlementService.onDidChangeEntitlement, () => {}, 1000),
1336
+ () => registerMaxRequestsSetting()
1337
+ ));
1120
1338
  }
1121
1339
  };
1122
- ChatAgentSettingContribution = ( __decorate([
1123
- ( __param(0, IWorkbenchAssignmentService)),
1124
- ( __param(1, IChatEntitlementService))
1125
- ], ChatAgentSettingContribution));
1340
+ ChatAgentSettingContribution = ( __decorate([( __param(0, IWorkbenchAssignmentService)), ( __param(1, IChatEntitlementService))], ChatAgentSettingContribution));
1341
+ function getCustomModesWithUniqueNames(builtinModes, customModes) {
1342
+ const customModeIds = ( new Set());
1343
+ const builtinNames = ( new Set(( builtinModes.map(mode => mode.name.get()))));
1344
+ const customNameToId = ( new Map());
1345
+ for (const mode of customModes) {
1346
+ const modeName = mode.name.get();
1347
+ if (( builtinNames.has(modeName))) {
1348
+ continue;
1349
+ }
1350
+ const existingId = customNameToId.get(modeName);
1351
+ if (existingId) {
1352
+ customModeIds.delete(existingId);
1353
+ }
1354
+ customNameToId.set(modeName, mode.id);
1355
+ customModeIds.add(mode.id);
1356
+ }
1357
+ return customModeIds;
1358
+ }
1126
1359
  let ChatAgentActionsContribution = class ChatAgentActionsContribution extends Disposable {
1127
- static { this.ID = 'workbench.contrib.chatAgentActions'; }
1360
+ static {
1361
+ this.ID = "workbench.contrib.chatAgentActions";
1362
+ }
1128
1363
  constructor(chatModeService) {
1129
1364
  super();
1130
1365
  this.chatModeService = chatModeService;
1131
1366
  this._modeActionDisposables = ( new DisposableMap());
1132
1367
  this._store.add(this._modeActionDisposables);
1133
- const { custom } = this.chatModeService.getModes();
1368
+ const {
1369
+ builtin,
1370
+ custom
1371
+ } = this.chatModeService.getModes();
1372
+ const currentModeIds = getCustomModesWithUniqueNames(builtin, custom);
1134
1373
  for (const mode of custom) {
1135
- this._registerModeAction(mode);
1374
+ if (( currentModeIds.has(mode.id))) {
1375
+ this._registerModeAction(mode);
1376
+ }
1136
1377
  }
1137
1378
  this._register(this.chatModeService.onDidChangeChatModes(() => {
1138
- const { custom } = this.chatModeService.getModes();
1139
- const currentModeIds = ( new Set());
1140
- const currentModeNames = ( new Map());
1141
- for (const mode of custom) {
1142
- const modeName = mode.name.get();
1143
- if (( currentModeNames.has(modeName))) {
1144
- currentModeIds.delete(currentModeNames.get(modeName));
1145
- }
1146
- currentModeNames.set(modeName, mode.id);
1147
- currentModeIds.add(mode.id);
1148
- }
1379
+ const {
1380
+ builtin,
1381
+ custom
1382
+ } = this.chatModeService.getModes();
1383
+ const currentModeIds = getCustomModesWithUniqueNames(builtin, custom);
1149
1384
  for (const modeId of ( this._modeActionDisposables.keys())) {
1150
1385
  if (!( currentModeIds.has(modeId))) {
1151
1386
  this._modeActionDisposables.deleteAndDispose(modeId);
@@ -1167,43 +1402,41 @@ let ChatAgentActionsContribution = class ChatAgentActionsContribution extends Di
1167
1402
  this._modeActionDisposables.set(mode.id, registerAction2(actionClass));
1168
1403
  }
1169
1404
  };
1170
- ChatAgentActionsContribution = ( __decorate([
1171
- ( __param(0, IChatModeService))
1172
- ], ChatAgentActionsContribution));
1405
+ ChatAgentActionsContribution = ( __decorate([( __param(0, IChatModeService))], ChatAgentActionsContribution));
1173
1406
  let ToolReferenceNamesContribution = class ToolReferenceNamesContribution extends Disposable {
1174
- static { this.ID = 'workbench.contrib.toolReferenceNames'; }
1407
+ static {
1408
+ this.ID = "workbench.contrib.toolReferenceNames";
1409
+ }
1175
1410
  constructor(_languageModelToolsService) {
1176
1411
  super();
1177
1412
  this._languageModelToolsService = _languageModelToolsService;
1178
1413
  this._updateToolReferenceNames();
1179
- this._register(this._languageModelToolsService.onDidChangeTools(() => this._updateToolReferenceNames()));
1414
+ this._register(
1415
+ this._languageModelToolsService.onDidChangeTools(() => this._updateToolReferenceNames())
1416
+ );
1180
1417
  }
1181
1418
  _updateToolReferenceNames() {
1182
- const tools = Array.from(this._languageModelToolsService.getTools())
1183
- .filter((tool) => typeof tool.toolReferenceName === 'string')
1184
- .sort((a, b) => a.toolReferenceName.localeCompare(b.toolReferenceName));
1419
+ const tools = Array.from(this._languageModelToolsService.getAllToolsIncludingDisabled()).filter(tool => typeof tool.toolReferenceName === "string").sort((a, b) => a.toolReferenceName.localeCompare(b.toolReferenceName));
1185
1420
  toolReferenceNameEnumValues.length = 0;
1186
1421
  toolReferenceNameEnumDescriptions.length = 0;
1187
1422
  for (const tool of tools) {
1188
1423
  toolReferenceNameEnumValues.push(tool.toolReferenceName);
1189
1424
  toolReferenceNameEnumDescriptions.push(( localize(
1190
- 5095,
1425
+ 5250,
1191
1426
  "{0} - {1}",
1192
1427
  tool.toolReferenceName,
1193
1428
  tool.userDescription || tool.displayName
1194
1429
  )));
1195
1430
  }
1196
1431
  configurationRegistry.notifyConfigurationSchemaUpdated({
1197
- id: 'chatSidebar',
1432
+ id: "chatSidebar",
1198
1433
  properties: {
1199
1434
  [ChatConfiguration.EligibleForAutoApproval]: {}
1200
1435
  }
1201
1436
  });
1202
1437
  }
1203
1438
  };
1204
- ToolReferenceNamesContribution = ( __decorate([
1205
- ( __param(0, ILanguageModelToolsService))
1206
- ], ToolReferenceNamesContribution));
1439
+ ToolReferenceNamesContribution = ( __decorate([( __param(0, ILanguageModelToolsService))], ToolReferenceNamesContribution));
1207
1440
  AccessibleViewRegistry.register(( new ChatTerminalOutputAccessibleView()));
1208
1441
  AccessibleViewRegistry.register(( new ChatResponseAccessibleView()));
1209
1442
  AccessibleViewRegistry.register(( new PanelChatAccessibilityHelp()));
@@ -1212,22 +1445,32 @@ AccessibleViewRegistry.register(( new EditsChatAccessibilityHelp()));
1212
1445
  AccessibleViewRegistry.register(( new AgentChatAccessibilityHelp()));
1213
1446
  registerEditorFeature(ChatInputBoxContentProvider);
1214
1447
  let ChatSlashStaticSlashCommandsContribution = class ChatSlashStaticSlashCommandsContribution extends Disposable {
1215
- static { this.ID = 'workbench.contrib.chatSlashStaticSlashCommands'; }
1216
- constructor(slashCommandService, commandService, chatAgentService, chatWidgetService, instantiationService) {
1448
+ static {
1449
+ this.ID = "workbench.contrib.chatSlashStaticSlashCommands";
1450
+ }
1451
+ constructor(
1452
+ slashCommandService,
1453
+ commandService,
1454
+ chatAgentService,
1455
+ chatWidgetService,
1456
+ instantiationService,
1457
+ agentSessionsService
1458
+ ) {
1217
1459
  super();
1218
1460
  this._store.add(slashCommandService.registerSlashCommand({
1219
- command: 'clear',
1220
- detail: ( localize(5096, "Start a new chat")),
1221
- sortText: 'z2_clear',
1461
+ command: "clear",
1462
+ detail: ( localize(5251, "Start a new chat and archive the current one")),
1463
+ sortText: "z2_clear",
1222
1464
  executeImmediately: true,
1223
1465
  locations: [ChatAgentLocation.Chat]
1224
- }, async () => {
1466
+ }, async (_prompt, _progress, _history, _location, sessionResource) => {
1467
+ agentSessionsService.getSession(sessionResource)?.setArchived(true);
1225
1468
  commandService.executeCommand(ACTION_ID_NEW_CHAT);
1226
1469
  }));
1227
1470
  this._store.add(slashCommandService.registerSlashCommand({
1228
- command: 'help',
1229
- detail: '',
1230
- sortText: 'z1_help',
1471
+ command: "help",
1472
+ detail: "",
1473
+ sortText: "z1_help",
1231
1474
  executeImmediately: true,
1232
1475
  locations: [ChatAgentLocation.Chat],
1233
1476
  modes: [ChatModeKind.Ask]
@@ -1236,84 +1479,214 @@ let ChatSlashStaticSlashCommandsContribution = class ChatSlashStaticSlashCommand
1236
1479
  const agents = chatAgentService.getAgents();
1237
1480
  if (defaultAgent?.metadata.helpTextPrefix) {
1238
1481
  if (isMarkdownString(defaultAgent.metadata.helpTextPrefix)) {
1239
- progress.report({ content: defaultAgent.metadata.helpTextPrefix, kind: 'markdownContent' });
1240
- }
1241
- else {
1242
- progress.report({ content: ( new MarkdownString(defaultAgent.metadata.helpTextPrefix)), kind: 'markdownContent' });
1482
+ progress.report({
1483
+ content: defaultAgent.metadata.helpTextPrefix,
1484
+ kind: "markdownContent"
1485
+ });
1486
+ } else {
1487
+ progress.report({
1488
+ content: ( new MarkdownString(defaultAgent.metadata.helpTextPrefix)),
1489
+ kind: "markdownContent"
1490
+ });
1243
1491
  }
1244
- progress.report({ content: ( new MarkdownString('\n\n')), kind: 'markdownContent' });
1492
+ progress.report({
1493
+ content: ( new MarkdownString("\n\n")),
1494
+ kind: "markdownContent"
1495
+ });
1245
1496
  }
1246
- const agentText = (await Promise.all(( agents
1247
- .filter(a => !a.isDefault && !a.isCore)
1248
- .filter(a => a.locations.includes(ChatAgentLocation.Chat))
1249
- .map(async (a) => {
1250
- const description = a.description ? `- ${a.description}` : '';
1497
+ const agentText = (await Promise.all(( agents.filter(a => !a.isDefault && !a.isCore).filter(a => a.locations.includes(ChatAgentLocation.Chat)).map(async a => {
1498
+ const description = a.description ? `- ${a.description}` : "";
1251
1499
  const agentMarkdown = instantiationService.invokeFunction(accessor => agentToMarkdown(a, sessionResource, true, accessor));
1252
1500
  const agentLine = `- ${agentMarkdown} ${description}`;
1253
1501
  const commandText = ( a.slashCommands.map(c => {
1254
- const description = c.description ? `- ${c.description}` : '';
1502
+ const description = c.description ? `- ${c.description}` : "";
1255
1503
  return `\t* ${agentSlashCommandToMarkdown(a, c, sessionResource)} ${description}`;
1256
- })).join('\n');
1257
- return (agentLine + '\n' + commandText).trim();
1258
- })))).join('\n');
1259
- progress.report({ content: ( new MarkdownString(agentText, { isTrusted: { enabledCommands: [ChatSubmitAction.ID] } })), kind: 'markdownContent' });
1504
+ })).join("\n");
1505
+ return (agentLine + "\n" + commandText).trim();
1506
+ })))).join("\n");
1507
+ progress.report({
1508
+ content: ( new MarkdownString(agentText, {
1509
+ isTrusted: {
1510
+ enabledCommands: [ChatSubmitAction.ID]
1511
+ }
1512
+ })),
1513
+ kind: "markdownContent"
1514
+ });
1260
1515
  if (defaultAgent?.metadata.helpTextPostfix) {
1261
- progress.report({ content: ( new MarkdownString('\n\n')), kind: 'markdownContent' });
1516
+ progress.report({
1517
+ content: ( new MarkdownString("\n\n")),
1518
+ kind: "markdownContent"
1519
+ });
1262
1520
  if (isMarkdownString(defaultAgent.metadata.helpTextPostfix)) {
1263
- progress.report({ content: defaultAgent.metadata.helpTextPostfix, kind: 'markdownContent' });
1264
- }
1265
- else {
1266
- progress.report({ content: ( new MarkdownString(defaultAgent.metadata.helpTextPostfix)), kind: 'markdownContent' });
1521
+ progress.report({
1522
+ content: defaultAgent.metadata.helpTextPostfix,
1523
+ kind: "markdownContent"
1524
+ });
1525
+ } else {
1526
+ progress.report({
1527
+ content: ( new MarkdownString(defaultAgent.metadata.helpTextPostfix)),
1528
+ kind: "markdownContent"
1529
+ });
1267
1530
  }
1268
1531
  }
1269
1532
  await timeout(200);
1270
1533
  }));
1271
1534
  }
1272
1535
  };
1273
- ChatSlashStaticSlashCommandsContribution = ( __decorate([
1274
- ( __param(0, IChatSlashCommandService)),
1275
- ( __param(1, ICommandService)),
1276
- ( __param(2, IChatAgentService)),
1277
- ( __param(3, IChatWidgetService)),
1278
- ( __param(4, IInstantiationService))
1279
- ], ChatSlashStaticSlashCommandsContribution));
1536
+ ChatSlashStaticSlashCommandsContribution = ( __decorate([( __param(0, IChatSlashCommandService)), ( __param(1, ICommandService)), ( __param(2, IChatAgentService)), ( __param(3, IChatWidgetService)), ( __param(4, IInstantiationService)), ( __param(5, IAgentSessionsService))], ChatSlashStaticSlashCommandsContribution));
1280
1537
  ( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(ChatEditorInput.TypeID, ChatEditorInputSerializer);
1281
- registerWorkbenchContribution2(ChatResolverContribution.ID, ChatResolverContribution, WorkbenchPhase.BlockStartup);
1282
- registerWorkbenchContribution2(ChatSlashStaticSlashCommandsContribution.ID, ChatSlashStaticSlashCommandsContribution, WorkbenchPhase.Eventually);
1283
- registerWorkbenchContribution2(ChatExtensionPointHandler.ID, ChatExtensionPointHandler, WorkbenchPhase.BlockStartup);
1284
- registerWorkbenchContribution2(LanguageModelToolsExtensionPointHandler.ID, LanguageModelToolsExtensionPointHandler, WorkbenchPhase.BlockRestore);
1285
- registerWorkbenchContribution2(ChatPromptFilesExtensionPointHandler.ID, ChatPromptFilesExtensionPointHandler, WorkbenchPhase.BlockRestore);
1286
- registerWorkbenchContribution2(ChatCompatibilityNotifier.ID, ChatCompatibilityNotifier, WorkbenchPhase.Eventually);
1287
- registerWorkbenchContribution2(CopilotTitleBarMenuRendering.ID, CopilotTitleBarMenuRendering, WorkbenchPhase.BlockRestore);
1288
- registerWorkbenchContribution2(CodeBlockActionRendering.ID, CodeBlockActionRendering, WorkbenchPhase.BlockRestore);
1289
- registerWorkbenchContribution2(ContinueChatInSessionActionRendering.ID, ContinueChatInSessionActionRendering, WorkbenchPhase.BlockRestore);
1290
- registerWorkbenchContribution2(ChatImplicitContextContribution.ID, ChatImplicitContextContribution, WorkbenchPhase.Eventually);
1291
- registerWorkbenchContribution2(ChatRelatedFilesContribution.ID, ChatRelatedFilesContribution, WorkbenchPhase.Eventually);
1292
- registerWorkbenchContribution2(ChatViewsWelcomeHandler.ID, ChatViewsWelcomeHandler, WorkbenchPhase.BlockStartup);
1293
- registerWorkbenchContribution2(ChatGettingStartedContribution.ID, ChatGettingStartedContribution, WorkbenchPhase.Eventually);
1294
- registerWorkbenchContribution2(ChatSetupContribution.ID, ChatSetupContribution, WorkbenchPhase.BlockRestore);
1295
- registerWorkbenchContribution2(ChatTeardownContribution.ID, ChatTeardownContribution, WorkbenchPhase.AfterRestored);
1538
+ registerWorkbenchContribution2(
1539
+ ChatResolverContribution.ID,
1540
+ ChatResolverContribution,
1541
+ WorkbenchPhase.BlockStartup
1542
+ );
1543
+ registerWorkbenchContribution2(
1544
+ ChatLanguageModelsDataContribution.ID,
1545
+ ChatLanguageModelsDataContribution,
1546
+ WorkbenchPhase.BlockRestore
1547
+ );
1548
+ registerWorkbenchContribution2(
1549
+ ChatSlashStaticSlashCommandsContribution.ID,
1550
+ ChatSlashStaticSlashCommandsContribution,
1551
+ WorkbenchPhase.Eventually
1552
+ );
1553
+ registerWorkbenchContribution2(
1554
+ ChatExtensionPointHandler.ID,
1555
+ ChatExtensionPointHandler,
1556
+ WorkbenchPhase.BlockStartup
1557
+ );
1558
+ registerWorkbenchContribution2(
1559
+ LanguageModelToolsExtensionPointHandler.ID,
1560
+ LanguageModelToolsExtensionPointHandler,
1561
+ WorkbenchPhase.BlockRestore
1562
+ );
1563
+ registerWorkbenchContribution2(
1564
+ ChatPromptFilesExtensionPointHandler.ID,
1565
+ ChatPromptFilesExtensionPointHandler,
1566
+ WorkbenchPhase.BlockRestore
1567
+ );
1568
+ registerWorkbenchContribution2(
1569
+ ChatCompatibilityNotifier.ID,
1570
+ ChatCompatibilityNotifier,
1571
+ WorkbenchPhase.Eventually
1572
+ );
1573
+ registerWorkbenchContribution2(
1574
+ CodeBlockActionRendering.ID,
1575
+ CodeBlockActionRendering,
1576
+ WorkbenchPhase.BlockRestore
1577
+ );
1578
+ registerWorkbenchContribution2(
1579
+ ChatImplicitContextContribution.ID,
1580
+ ChatImplicitContextContribution,
1581
+ WorkbenchPhase.Eventually
1582
+ );
1583
+ registerWorkbenchContribution2(
1584
+ ChatViewsWelcomeHandler.ID,
1585
+ ChatViewsWelcomeHandler,
1586
+ WorkbenchPhase.BlockStartup
1587
+ );
1588
+ registerWorkbenchContribution2(
1589
+ ChatGettingStartedContribution.ID,
1590
+ ChatGettingStartedContribution,
1591
+ WorkbenchPhase.Eventually
1592
+ );
1593
+ registerWorkbenchContribution2(
1594
+ ChatSetupContribution.ID,
1595
+ ChatSetupContribution,
1596
+ WorkbenchPhase.BlockRestore
1597
+ );
1598
+ registerWorkbenchContribution2(
1599
+ ChatTeardownContribution.ID,
1600
+ ChatTeardownContribution,
1601
+ WorkbenchPhase.AfterRestored
1602
+ );
1296
1603
  registerWorkbenchContribution2(ChatStatusBarEntry.ID, ChatStatusBarEntry, WorkbenchPhase.BlockRestore);
1297
- registerWorkbenchContribution2(BuiltinToolsContribution.ID, BuiltinToolsContribution, WorkbenchPhase.Eventually);
1298
- registerWorkbenchContribution2(ChatAgentSettingContribution.ID, ChatAgentSettingContribution, WorkbenchPhase.AfterRestored);
1299
- registerWorkbenchContribution2(ChatAgentActionsContribution.ID, ChatAgentActionsContribution, WorkbenchPhase.Eventually);
1300
- registerWorkbenchContribution2(ToolReferenceNamesContribution.ID, ToolReferenceNamesContribution, WorkbenchPhase.AfterRestored);
1301
- registerWorkbenchContribution2(ChatAgentRecommendation.ID, ChatAgentRecommendation, WorkbenchPhase.Eventually);
1302
- registerWorkbenchContribution2(ChatEditingEditorAccessibility.ID, ChatEditingEditorAccessibility, WorkbenchPhase.AfterRestored);
1303
- registerWorkbenchContribution2(ChatEditingEditorOverlay.ID, ChatEditingEditorOverlay, WorkbenchPhase.AfterRestored);
1304
- registerWorkbenchContribution2(SimpleBrowserOverlay.ID, SimpleBrowserOverlay, WorkbenchPhase.AfterRestored);
1305
- registerWorkbenchContribution2(ChatEditingEditorContextKeys.ID, ChatEditingEditorContextKeys, WorkbenchPhase.AfterRestored);
1306
- registerWorkbenchContribution2(ChatTransferContribution.ID, ChatTransferContribution, WorkbenchPhase.BlockRestore);
1307
- registerWorkbenchContribution2(ChatContextContributions.ID, ChatContextContributions, WorkbenchPhase.AfterRestored);
1308
- registerWorkbenchContribution2(ChatResponseResourceFileSystemProvider.ID, ChatResponseResourceFileSystemProvider, WorkbenchPhase.AfterRestored);
1604
+ registerWorkbenchContribution2(
1605
+ BuiltinToolsContribution.ID,
1606
+ BuiltinToolsContribution,
1607
+ WorkbenchPhase.Eventually
1608
+ );
1609
+ registerWorkbenchContribution2(
1610
+ ChatAgentSettingContribution.ID,
1611
+ ChatAgentSettingContribution,
1612
+ WorkbenchPhase.AfterRestored
1613
+ );
1614
+ registerWorkbenchContribution2(
1615
+ ChatAgentActionsContribution.ID,
1616
+ ChatAgentActionsContribution,
1617
+ WorkbenchPhase.Eventually
1618
+ );
1619
+ registerWorkbenchContribution2(
1620
+ ToolReferenceNamesContribution.ID,
1621
+ ToolReferenceNamesContribution,
1622
+ WorkbenchPhase.AfterRestored
1623
+ );
1624
+ registerWorkbenchContribution2(
1625
+ ChatAgentRecommendation.ID,
1626
+ ChatAgentRecommendation,
1627
+ WorkbenchPhase.Eventually
1628
+ );
1629
+ registerWorkbenchContribution2(
1630
+ ChatEditingEditorAccessibility.ID,
1631
+ ChatEditingEditorAccessibility,
1632
+ WorkbenchPhase.AfterRestored
1633
+ );
1634
+ registerWorkbenchContribution2(
1635
+ ChatEditingEditorOverlay.ID,
1636
+ ChatEditingEditorOverlay,
1637
+ WorkbenchPhase.AfterRestored
1638
+ );
1639
+ registerWorkbenchContribution2(
1640
+ SimpleBrowserOverlay.ID,
1641
+ SimpleBrowserOverlay,
1642
+ WorkbenchPhase.AfterRestored
1643
+ );
1644
+ registerWorkbenchContribution2(
1645
+ ChatEditingEditorContextKeys.ID,
1646
+ ChatEditingEditorContextKeys,
1647
+ WorkbenchPhase.AfterRestored
1648
+ );
1649
+ registerWorkbenchContribution2(
1650
+ ChatTransferContribution.ID,
1651
+ ChatTransferContribution,
1652
+ WorkbenchPhase.BlockRestore
1653
+ );
1654
+ registerWorkbenchContribution2(
1655
+ ChatContextContributions.ID,
1656
+ ChatContextContributions,
1657
+ WorkbenchPhase.AfterRestored
1658
+ );
1659
+ registerWorkbenchContribution2(
1660
+ ChatResponseResourceFileSystemProvider.ID,
1661
+ ChatResponseResourceFileSystemProvider,
1662
+ WorkbenchPhase.AfterRestored
1663
+ );
1309
1664
  registerWorkbenchContribution2(PromptUrlHandler.ID, PromptUrlHandler, WorkbenchPhase.BlockRestore);
1310
- registerWorkbenchContribution2(ChatEditingNotebookFileSystemProviderContrib.ID, ChatEditingNotebookFileSystemProviderContrib, WorkbenchPhase.BlockStartup);
1311
- registerWorkbenchContribution2(UserToolSetsContributions.ID, UserToolSetsContributions, WorkbenchPhase.Eventually);
1312
- registerWorkbenchContribution2(PromptLanguageFeaturesProvider.ID, PromptLanguageFeaturesProvider, WorkbenchPhase.Eventually);
1665
+ registerWorkbenchContribution2(
1666
+ ChatEditingNotebookFileSystemProviderContrib.ID,
1667
+ ChatEditingNotebookFileSystemProviderContrib,
1668
+ WorkbenchPhase.BlockStartup
1669
+ );
1670
+ registerWorkbenchContribution2(
1671
+ UserToolSetsContributions.ID,
1672
+ UserToolSetsContributions,
1673
+ WorkbenchPhase.Eventually
1674
+ );
1675
+ registerWorkbenchContribution2(
1676
+ PromptLanguageFeaturesProvider.ID,
1677
+ PromptLanguageFeaturesProvider,
1678
+ WorkbenchPhase.Eventually
1679
+ );
1313
1680
  registerWorkbenchContribution2(ChatWindowNotifier.ID, ChatWindowNotifier, WorkbenchPhase.AfterRestored);
1681
+ registerWorkbenchContribution2(
1682
+ ChatRepoInfoContribution.ID,
1683
+ ChatRepoInfoContribution,
1684
+ WorkbenchPhase.Eventually
1685
+ );
1314
1686
  registerChatActions();
1315
1687
  registerChatAccessibilityActions();
1316
1688
  registerChatCopyActions();
1689
+ registerChatCustomizationDiagnosticsAction();
1317
1690
  registerChatCodeBlockActions();
1318
1691
  registerChatCodeCompareBlockActions();
1319
1692
  registerChatFileTreeActions();