@codingame/monaco-vscode-chat-service-override 32.0.2 → 33.0.5

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 (257) hide show
  1. package/index.d.ts +1 -1
  2. package/index.js +15 -5
  3. package/package.json +5 -5
  4. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +170 -24
  5. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +372 -66
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +18 -1
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +160 -31
  8. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.d.ts +8 -0
  9. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +19 -0
  10. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +134 -0
  11. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +257 -0
  12. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +84 -3
  13. package/vscode/src/vs/platform/agentHost/common/agentService.js +9 -1
  14. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +61 -1
  15. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +61 -1
  16. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.js +3 -1
  17. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +1 -1
  18. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +1 -1
  19. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +1 -1
  20. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +4 -4
  21. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +1 -1
  22. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +2 -7
  23. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +8 -29
  24. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  25. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +60 -60
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +10 -6
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +10 -1
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +180 -174
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +12 -12
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +12 -12
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
  44. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  45. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  46. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
  47. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +64 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +330 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.d.ts +24 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +77 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +6 -6
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +51 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +267 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +4 -3
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +53 -53
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +5 -4
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +30 -28
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +26 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -6
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +150 -119
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +45 -44
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +0 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +58 -76
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +2 -2
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +2 -6
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +88 -70
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +82 -56
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +10 -8
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +2 -6
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +89 -71
  89. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.d.ts +1 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +2 -2843
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.d.ts +1 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +2934 -0
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -4
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +53 -20
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +131 -61
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +23 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +91 -15
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -21
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -28
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +14 -14
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +15 -4
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +203 -163
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +1 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +31 -54
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.d.ts +1 -0
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +88 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  146. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +17 -4
  147. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.d.ts +8 -0
  148. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +91 -0
  149. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +52 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +82 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +21 -1
  152. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +55 -18
  153. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  154. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  155. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.d.ts +51 -0
  156. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.js +106 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +4 -2
  158. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  159. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  160. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +38 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +59 -0
  162. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  163. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +25 -25
  164. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
  165. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
  166. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  167. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  168. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  169. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  170. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileContributions.js +4 -6
  171. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  172. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  173. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  174. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  175. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  176. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  177. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  178. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +1 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +38 -28
  180. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -7
  181. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.d.ts +5 -1
  182. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.js +106 -7
  183. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -8
  184. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.d.ts +28 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +75 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  187. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.d.ts → chatOutputPartStateCache.d.ts} +5 -6
  188. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.js → chatOutputPartStateCache.js} +19 -11
  189. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  190. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +58 -26
  191. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +9 -9
  192. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
  193. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  194. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  196. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +18 -9
  197. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  198. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +13 -5
  199. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +6 -2
  200. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
  201. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +19 -18
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -2
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  205. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +6 -7
  206. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +14 -15
  207. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +155 -156
  208. package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.d.ts +6 -0
  209. package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.js +12 -0
  210. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.d.ts +88 -0
  211. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.js +25 -0
  212. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  213. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.d.ts +1 -0
  214. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +237 -0
  215. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.d.ts +66 -0
  216. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +600 -0
  217. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.d.ts +18 -0
  218. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +47 -0
  219. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.d.ts +22 -0
  220. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.js +7 -0
  221. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/media/imageCarousel.css +298 -0
  222. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  223. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  224. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  225. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  230. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +12 -1
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +78 -7
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +15 -11
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -9
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -16
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.d.ts +60 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.js +286 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.d.ts +24 -0
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.js +285 -0
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.d.ts +19 -12
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.js +415 -47
  252. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.d.ts +2 -7
  253. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.js +1 -1
  254. package/vscode/src/vs/base/common/defaultAccount.d.ts +0 -69
  255. package/vscode/src/vs/base/common/defaultAccount.js +0 -12
  256. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +0 -15
  257. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +0 -85
@@ -1,2846 +1,5 @@
1
1
 
2
- import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
4
- import { Disposable, DisposableMap, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
- import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
6
- import { isMacintosh } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
7
- import { PolicyCategory } from '@codingame/monaco-vscode-api/vscode/vs/base/common/policy';
8
- import { CopilotSessionSearchPolicy } from '../../../../base/common/defaultAccount.js';
9
- import { AgentHostAhpJsonlLoggingSettingId, AgentHostIpcLoggingSettingId, AgentHostClaudeAgentSdkPathSettingId, AgentHostEnabledSettingId } from '../../../../platform/agentHost/common/agentService.js';
10
- import '../../../../platform/networkFilter/common/networkFilterService.js';
11
- import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
12
- import { AgentNetworkDomainSettingId } from '@codingame/monaco-vscode-katex-common/vscode/vs/platform/networkFilter/common/settings';
13
- import { AgentSandboxSettingId, AgentSandboxEnabledValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/settings';
14
- import { registerEditorFeature } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/editorFeatures';
15
- import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
16
- import { AccessibleViewRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/browser/accessibleViewRegistry';
17
2
  import { registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
18
- import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands';
19
- import { Extensions as Extensions$1, ConfigurationScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
20
- import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
21
- import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
22
- import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
23
- import { mcpGalleryServiceUrlConfig, mcpGalleryServiceEnablementConfig, mcpAppsEnabledConfig, mcpAutoStartConfig, McpAutoStartValue, mcpAccessConfig, McpAccessValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/mcpManagement';
24
- import product from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/product';
25
- import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
26
- import { EditorPaneDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/editor';
27
- import { Extensions as Extensions$2 } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/configuration';
28
- import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
29
- import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
30
- import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
31
- import { IWorkbenchAssignmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service';
32
- import { ChatEntitlement } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
33
- import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
34
- import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
35
- import { RegisteredEditorPriority } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorResolverService';
36
- import { IEditorResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorResolverService.service';
37
- import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
38
- import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
39
- import { AssistedTypes, AddConfigurationType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration';
40
- import { mcpDiscoverySection, allDiscoverySources, discoverySourceSettingsLabel, mcpServerSamplingSection, mcpServerCollisionBehaviorSection, McpCollisionBehavior } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpConfiguration';
41
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents';
42
- import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/common/widget/chatColors';
43
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
44
- import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
45
- import { ChatResponseResourceWorkbenchContribution } from '../common/widget/chatResponseResourceFileSystemProvider.js';
46
- import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
47
- import '../common/chatService/chatServiceImpl.js';
48
- import { SessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
49
- import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
50
- import '../common/participants/chatSlashCommands.js';
51
- import '../common/tools/chatArtifactsService.js';
52
- import '../common/tools/chatTodoListService.js';
53
- import '../common/model/chatTransferService.js';
54
- import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService';
55
- import { ChatConfiguration, ChatPermissionLevel, ChatNotificationMode, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
56
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
57
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelStats';
58
- import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
59
- import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService';
60
- import { agentPluginDiscoveryRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService';
61
- import { ChatPromptFilesExtensionPointHandler } from '../common/promptSyntax/chatPromptFilesContribution.js';
62
- import { PromptsConfig, isTildePath } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
63
- import { DEFAULT_HOOK_FILE_PATHS, DEFAULT_SKILL_SOURCE_FOLDERS, SKILL_FILENAME, AGENTS_SOURCE_FOLDER, COPILOT_USER_AGENTS_SOURCE_FOLDER, CLAUDE_AGENTS_SOURCE_FOLDER, AGENT_FILE_EXTENSION, LEGACY_MODE_DEFAULT_SOURCE_FOLDER, LEGACY_MODE_FILE_EXTENSION, PROMPT_DEFAULT_SOURCE_FOLDER, PROMPT_FILE_EXTENSION, DEFAULT_INSTRUCTIONS_SOURCE_FOLDERS, INSTRUCTIONS_DEFAULT_SOURCE_FOLDER, INSTRUCTION_FILE_EXTENSION } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
64
- import { PromptLanguageFeaturesProvider } from './promptSyntax/promptFileContributions.js';
65
- import { HOOK_DOCUMENTATION_URL, SKILL_DOCUMENTATION_URL, AGENT_DOCUMENTATION_URL, PROMPT_DOCUMENTATION_URL, INSTRUCTIONS_DOCUMENTATION_URL, PromptsType, PromptFileSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
66
- import { HOOK_SCHEMA_URI, hookFileSchema } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
67
- import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
68
- import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/jsonschemas/common/jsonContributionRegistry';
69
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl';
70
- import { LanguageModelToolsExtensionPointHandler } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution';
71
- import './telemetry/chatModelCountTelemetry.js';
72
- import { BuiltinToolsContribution } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/builtinTools/tools';
73
- import { RenameToolContribution } from './tools/renameTool.js';
74
- import { UsagesToolContribution } from './tools/usagesTool.js';
75
- import '../common/voiceChatService.js';
76
- import { registerChatAccessibilityActions } from './actions/chatAccessibilityActions.js';
77
- import { PanelChatAccessibilityHelp, QuickChatAccessibilityHelp, EditsChatAccessibilityHelp, AgentChatAccessibilityHelp } from './actions/chatAccessibilityHelp.js';
78
- import { ModeOpenChatGlobalAction, registerChatActions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
79
- import { CodeBlockActionRendering, registerChatCodeBlockActions, registerChatCodeCompareBlockActions } from './actions/chatCodeblockActions.js';
80
- import { ChatContextContributions } from '@codingame/monaco-vscode-xterm-addons-common/vscode/vs/workbench/contrib/chat/browser/actions/chatContext';
81
- import { registerChatContextActions } from './actions/chatContextActions.js';
82
- import { ChatCopyActionRendering, registerChatCopyActions } from './actions/chatCopyActions.js';
83
- import { registerChatDeveloperActions } from './actions/chatDeveloperActions.js';
84
- import { registerChatExecuteActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatExecuteActions';
85
- import { registerChatFileTreeActions } from './actions/chatFileTreeActions.js';
86
- import { ChatGettingStartedContribution } from './actions/chatGettingStarted.js';
87
- import { registerChatForkActions } from './actions/chatForkActions.js';
88
- import { registerChatExportActions } from './actions/chatImportExport.js';
89
- import { registerLanguageModelActions } from './actions/chatLanguageModelActions.js';
90
- import { registerChatPluginActions } from './actions/chatPluginActions.js';
91
- import { registerMoveActions } from './actions/chatMoveActions.js';
92
- import { registerNewChatActions } from './actions/chatNewActions.js';
93
- import { registerChatPromptNavigationActions } from './actions/chatPromptNavigationActions.js';
94
- import { registerChatQueueActions } from './actions/chatQueueActions.js';
95
- import { registerQuickChatActions } from './actions/chatQuickInputActions.js';
96
- import { ChatAgentRecommendation } from './actions/chatAgentRecommendationActions.js';
97
- import { registerChatTitleActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatTitleActions';
98
- import { registerChatElicitationActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatElicitationActions';
99
- import { registerChatToolActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatToolActions';
100
- import { ChatTransferContribution } from './actions/chatTransfer.js';
101
- import { registerChatOpenAgentDebugPanelAction } from './actions/chatOpenAgentDebugPanelAction.js';
102
- import '../common/chatDebugServiceImpl.js';
103
- import { ChatDebugEditor } from './chatDebug/chatDebugEditor.js';
104
- import { PromptsDebugContribution } from './promptsDebugContribution.js';
105
- import { ChatDebugEditorInput, ChatDebugEditorInputSerializer } from './chatDebug/chatDebugEditorInput.js';
106
- import './agentSessions/agentSessions.contribution.js';
107
- import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
108
- import { ChatViewId, isIChatViewViewContext, isIChatResourceViewContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
109
- import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
110
- import './accessibility/chatAccessibilityService.js';
111
- import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel';
112
- import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService';
113
- import './attachments/chatAttachmentResolveService.js';
114
- import '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
115
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
116
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
117
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
118
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
119
- import { ChatInputBoxContentProvider } from './widget/input/editor/chatEditorInputContentProvider.js';
120
- import { ChatEditingEditorAccessibility } from './chatEditing/chatEditingEditorAccessibility.js';
121
- import { registerChatEditorActions } from './chatEditing/chatEditingEditorActions.js';
122
- import { ChatEditingEditorContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys';
123
- import { ChatEditingEditorOverlay } from './chatEditing/chatEditingEditorOverlay.js';
124
- import './chatEditing/chatEditingServiceImpl.js';
125
- import { ChatEditingNotebookFileSystemProviderContrib } from './chatEditing/notebook/chatEditingNotebookFileSystemProvider.js';
126
- import { ChatEditor } from './widgetHosts/editor/chatEditor.js';
127
- import { ChatEditorInput, ChatEditorInputSerializer } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput';
128
- import './widget/chatLayoutService.js';
129
- import { ChatLanguageModelsDataContribution } from './languageModelsConfigurationService.js';
130
- import './chatManagement/chatManagement.contribution.js';
131
- import './aiCustomization/aiCustomizationWorkspaceService.js';
132
- import './aiCustomization/customizationHarnessService.js';
133
- import './aiCustomization/aiCustomizationManagement.contribution.js';
134
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
135
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
136
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
137
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
138
- import '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
139
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
140
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
141
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility';
142
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes';
143
- import './aiCustomization/aiCustomizationIcons.js';
144
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement';
145
- import './chatOutputItemRenderer.js';
146
- import { ChatExtensionPointHandler, ChatCompatibilityNotifier } from './chatParticipant.contribution.js';
147
- import { ChatPasteProvidersFeature } from '@codingame/monaco-vscode-xterm-addons-common/vscode/vs/workbench/contrib/chat/browser/widget/input/editor/chatPasteProviders';
148
- import './widgetHosts/chatQuick.js';
149
- import { ChatResponseAccessibleView } from './accessibility/chatResponseAccessibleView.js';
150
- import { ChatTerminalOutputAccessibleView } from './accessibility/chatTerminalOutputAccessibleView.js';
151
- import { ChatSetupContribution, ChatTeardownContribution } from './chatSetup/chatSetupContributions.js';
152
- import { ChatStatusBarEntry } from './chatStatus/chatStatusEntry.js';
153
- import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatVariables';
154
- import { ChatWidget } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/widget/chatWidget';
155
- import { ChatDynamicVariableModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables';
156
- import { ChatImplicitContextContribution } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext';
157
- import './widget/input/editor/chatInputCompletions.js';
158
- import './widget/input/editor/agentHostInputCompletions.js';
159
- import './widget/input/editor/chatInputEditorContrib.js';
160
- import './widget/input/editor/chatInputEditorHover.js';
161
- import './tools/languageModelToolsConfirmationService.js';
162
- import { globalAutoApproveDescription } from './tools/languageModelToolsService.js';
163
- import './tools/toolResultCompressorService.js';
164
- import { ConfiguredAgentPluginDiscovery, MarketplaceAgentPluginDiscovery, ExtensionAgentPluginDiscovery, CopilotCliAgentPluginDiscovery } from '../common/plugins/agentPluginServiceImpl.js';
165
- import '../common/plugins/pluginMarketplaceService.js';
166
- import '../common/plugins/workspacePluginSettingsService.js';
167
- import { AgentPluginRecommendations } from './claudePluginRecommendations.js';
168
- import { AgentPluginEditor } from './agentPluginEditor/agentPluginEditor.js';
169
- import { AgentPluginEditorInput } from './agentPluginEditor/agentPluginEditorInput.js';
170
- import './agentPluginRepositoryService.js';
171
- import './pluginGitCommandService.js';
172
- import './pluginInstallService.js';
173
- import './promptSyntax/promptCodingAgentActionContribution.js';
174
- import './promptSyntax/promptToolsCodeLensProvider.js';
175
- import { ChatSlashCommandsContribution, ChatSessionOptionSlashCommandsContribution } from './chatSlashCommands.js';
176
- import './planReviewFeedback/planReviewFeedbackEditorContribution.js';
177
- import { registerPlanReviewFeedbackEditorActions } from './planReviewFeedback/planReviewFeedbackEditorActions.js';
178
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
179
- import { PluginUrlHandler } from './pluginUrlHandler.js';
180
- import { PromptUrlHandler } from './promptSyntax/promptUrlHandler.js';
181
- import { UserToolSetsContributions, ConfigureToolSets } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/tools/toolSetsContribution';
182
- import { ChatViewsWelcomeHandler } from './viewsWelcome/chatViewsWelcomeHandler.js';
183
- import './widget/chatWidgetService.js';
184
- import { ChatWindowNotifier } from './chatWindowNotifier.js';
185
- import { ChatRepoInfoContribution } from './chatRepoInfo.js';
186
- import { VALID_PROMPT_FOLDER_PATTERN } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator';
187
- import './chatTipService.js';
188
- import { ChatQueuePickerRendering } from './widget/input/chatQueuePickerActionItem.js';
189
- import { ExploreAgentDefaultModel } from './exploreAgentDefaultModel.js';
190
- import { PlanAgentDefaultModel } from './planAgentDefaultModel.js';
191
- import './chatImageCarouselService.js';
192
- import '../../notebook/browser/controller/chat/notebook.chat.contribution.js';
193
- import { browserChatToolReferenceNames } from '../../browserView/common/browserChatToolReferenceNames.js';
3
+ import { ForkConversationAction } from './actions/chatForkActions.js';
194
4
 
195
- CommandsRegistry.registerCommand("_chat.notifyQuestionCarouselAnswer", (accessor, resolveId, answers) => {
196
- accessor.get(IChatService).notifyQuestionCarouselAnswer("", resolveId, answers);
197
- });
198
- const toolReferenceNameEnumValues = [];
199
- const toolReferenceNameEnumDescriptions = [];
200
- const jsonContributionRegistry = ( Registry.as(Extensions.JSONContribution));
201
- jsonContributionRegistry.registerSchema(HOOK_SCHEMA_URI, hookFileSchema);
202
- const configurationRegistry = ( Registry.as(Extensions$1.Configuration));
203
- configurationRegistry.registerConfiguration({
204
- id: "chatSidebar",
205
- title: ( localize(5756, "Chat")),
206
- type: "object",
207
- properties: {
208
- "chat.experimentalSessionsWindowOverride": {
209
- type: "boolean",
210
- description: ( localize(
211
- 5757,
212
- "When true, enables sessions-window-specific behavior for extensions."
213
- )),
214
- default: false,
215
- tags: ["experimental"],
216
- agentsWindow: {
217
- default: true
218
- }
219
- },
220
- "chat.fontSize": {
221
- type: "number",
222
- description: ( localize(5758, "Controls the font size in pixels in chat messages.")),
223
- default: 13,
224
- minimum: 6,
225
- maximum: 100
226
- },
227
- "chat.fontFamily": {
228
- type: "string",
229
- description: ( localize(5759, "Controls the font family in chat messages.")),
230
- default: "default"
231
- },
232
- "chat.editor.fontSize": {
233
- type: "number",
234
- description: ( localize(5760, "Controls the font size in pixels in chat codeblocks.")),
235
- default: isMacintosh ? 12 : 14
236
- },
237
- "chat.editor.fontFamily": {
238
- type: "string",
239
- description: ( localize(5761, "Controls the font family in chat codeblocks.")),
240
- default: "default"
241
- },
242
- "chat.editor.fontWeight": {
243
- type: "string",
244
- description: ( localize(5762, "Controls the font weight in chat codeblocks.")),
245
- default: "default"
246
- },
247
- "chat.editor.wordWrap": {
248
- type: "string",
249
- description: ( localize(5763, "Controls whether lines should wrap in chat codeblocks.")),
250
- default: "off",
251
- enum: ["on", "off"]
252
- },
253
- "chat.editor.lineHeight": {
254
- type: "number",
255
- description: ( localize(
256
- 5764,
257
- "Controls the line height in pixels in chat codeblocks. Use 0 to compute the line height from the font size."
258
- )),
259
- default: 0
260
- },
261
- [ChatConfiguration.AgentStatusEnabled]: {
262
- type: "string",
263
- enum: ["hidden", "badge", "compact"],
264
- enumDescriptions: [( localize(5765, "The agent status indicator is hidden from the title bar.")), ( localize(5766, "Shows the agent status as a badge next to the command center.")), ( localize(
265
- 5767,
266
- "Replaces the command center search box with a compact agent status indicator and unified chat widget."
267
- ))],
268
- markdownDescription: ( localize(
269
- 5768,
270
- "Controls how the 'Agent Status' indicator appears in the title bar command center. When set to `hidden`, the indicator is not shown. Other values show the indicator and automatically enable {0}. The unread and in-progress session indicators require {1} to be enabled.",
271
- "`#window.commandCenter#`",
272
- "`#chat.viewSessions.enabled#`"
273
- )),
274
- default: "compact",
275
- tags: ["experimental"]
276
- },
277
- [ChatConfiguration.UnifiedAgentsBar]: {
278
- type: "boolean",
279
- markdownDescription: ( localize(
280
- 5769,
281
- "Replaces the command center search box with a unified chat and search widget."
282
- )),
283
- default: false,
284
- tags: ["experimental"]
285
- },
286
- [ChatConfiguration.AgentSessionProjectionEnabled]: {
287
- type: "boolean",
288
- markdownDescription: ( localize(
289
- 5770,
290
- "Controls whether Agent Session Projection mode is enabled for reviewing agent sessions in a focused workspace."
291
- )),
292
- default: false,
293
- tags: ["experimental"]
294
- },
295
- "chat.implicitContext.enabled": {
296
- type: "object",
297
- description: ( localize(
298
- 5771,
299
- "Enables automatically using the active editor as chat context for specified chat locations."
300
- )),
301
- additionalProperties: {
302
- type: "string",
303
- enum: ["never", "first", "always"],
304
- description: ( localize(5772, "The value for the implicit context.")),
305
- enumDescriptions: [( localize(5773, "Implicit context is never enabled.")), ( localize(5774, "Implicit context is enabled for the first interaction.")), ( localize(5775, "Implicit context is always enabled."))]
306
- },
307
- default: {
308
- "panel": "always"
309
- },
310
- tags: ["experimental"],
311
- experiment: {
312
- mode: "startup"
313
- },
314
- agentsWindow: {
315
- default: {
316
- "panel": "never"
317
- }
318
- }
319
- },
320
- "chat.implicitContext.suggestedContext": {
321
- type: "boolean",
322
- markdownDescription: ( localize(
323
- 5776,
324
- "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."
325
- )),
326
- default: true,
327
- agentsWindow: {
328
- default: false
329
- }
330
- },
331
- "chat.editing.autoAcceptDelay": {
332
- type: "number",
333
- markdownDescription: ( localize(
334
- 5777,
335
- "Delay after which changes made by chat are automatically accepted. Values are in seconds, `0` means disabled and `100` seconds is the maximum."
336
- )),
337
- default: 0,
338
- minimum: 0,
339
- maximum: 100
340
- },
341
- "chat.editing.confirmEditRequestRemoval": {
342
- type: "boolean",
343
- scope: ConfigurationScope.APPLICATION,
344
- markdownDescription: ( localize(
345
- 5778,
346
- "Whether to show a confirmation before removing a request and its associated edits."
347
- )),
348
- default: true
349
- },
350
- "chat.editing.confirmEditRequestRetry": {
351
- type: "boolean",
352
- scope: ConfigurationScope.APPLICATION,
353
- markdownDescription: ( localize(
354
- 5779,
355
- "Whether to show a confirmation before retrying a request and its associated edits."
356
- )),
357
- default: true
358
- },
359
- "chat.editing.explainChanges.enabled": {
360
- type: "boolean",
361
- markdownDescription: ( localize(
362
- 5780,
363
- "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."
364
- )),
365
- default: false,
366
- tags: ["experimental"],
367
- experiment: {
368
- mode: "auto"
369
- }
370
- },
371
- [ChatConfiguration.RevealNextChangeOnResolve]: {
372
- type: "boolean",
373
- markdownDescription: ( localize(
374
- 5781,
375
- "Controls whether the editor automatically reveals the next change after keeping or undoing a chat edit."
376
- )),
377
- default: true
378
- },
379
- "chat.tips.enabled": {
380
- type: "boolean",
381
- scope: ConfigurationScope.APPLICATION,
382
- description: ( localize(
383
- 5782,
384
- "Controls whether tips are shown above user messages in chat. New tips are added frequently, so this is a helpful way to stay up to date with the latest features."
385
- )),
386
- default: true
387
- },
388
- "chat.upvoteAnimation": {
389
- type: "string",
390
- enum: ["off", "confetti", "floatingThumbs", "pulseWave", "radiantLines"],
391
- enumDescriptions: [( localize(5783, "No animation is shown.")), ( localize(5784, "Shows a confetti burst animation around the thumbs up button.")), ( localize(5785, "Shows floating thumbs up icons rising from the button.")), ( localize(5786, "Shows expanding pulse rings from the button.")), ( localize(5787, "Shows radiant lines emanating from the button."))],
392
- description: ( localize(
393
- 5788,
394
- "Controls whether an animation is shown when clicking the thumbs up button on a chat response."
395
- )),
396
- default: "floatingThumbs"
397
- },
398
- "chat.experimental.detectParticipant.enabled": {
399
- type: "boolean",
400
- deprecationMessage: ( localize(
401
- 5789,
402
- "This setting is deprecated. Please use `chat.detectParticipant.enabled` instead."
403
- )),
404
- description: ( localize(5790, "Enables chat participant autodetection for panel chat.")),
405
- default: null
406
- },
407
- [ChatConfiguration.IncrementalRendering]: {
408
- type: "boolean",
409
- description: ( localize(
410
- 5791,
411
- "Enables incremental rendering with optional block-level animation when streaming chat responses."
412
- )),
413
- default: false,
414
- tags: ["experimental"]
415
- },
416
- [ChatConfiguration.IncrementalRenderingStyle]: {
417
- type: "string",
418
- enum: ["none", "fade", "rise", "blur", "scale", "slide", "reveal"],
419
- enumDescriptions: [( localize(5792, "No animation. Content appears instantly.")), ( localize(5793, "Simple opacity fade from 0 to 1.")), ( localize(5794, "Content fades in while rising upward.")), ( localize(5795, "Content fades in from a blurred state.")), ( localize(5796, "Content scales up from slightly smaller.")), ( localize(5797, "Content slides in from the left.")), ( localize(5798, "Content reveals top-to-bottom with a soft gradient edge."))],
420
- description: ( localize(5799, "Controls the animation style for incremental rendering.")),
421
- default: "fade",
422
- tags: ["experimental"]
423
- },
424
- [ChatConfiguration.IncrementalRenderingBuffering]: {
425
- type: "string",
426
- enum: ["off", "word", "paragraph"],
427
- enumDescriptions: [( localize(5800, "Renders content immediately as tokens arrive.")), ( localize(5801, "Reveals content word by word.")), ( localize(5802, "Buffers content until a paragraph break before rendering."))],
428
- description: ( localize(
429
- 5803,
430
- "Controls how content is buffered before rendering during incremental rendering. Lower buffering levels render faster but may show incomplete sentences or partially formed markdown."
431
- )),
432
- default: "word",
433
- tags: ["experimental"]
434
- },
435
- "chat.detectParticipant.enabled": {
436
- type: "boolean",
437
- description: ( localize(5804, "Enables chat participant autodetection for panel chat.")),
438
- default: true
439
- },
440
- [ChatConfiguration.InlineReferencesStyle]: {
441
- type: "string",
442
- enum: ["box", "link"],
443
- enumDescriptions: [( localize(5805, "Display file and symbol references as boxed widgets with icons.")), ( localize(
444
- 5806,
445
- "Display file and symbol references as simple blue links without icons."
446
- ))],
447
- description: ( localize(
448
- 5807,
449
- "Controls how file and symbol references are displayed in chat messages."
450
- )),
451
- default: "box"
452
- },
453
- [ChatConfiguration.EditorAssociations]: {
454
- type: "object",
455
- markdownDescription: ( localize(
456
- 5808,
457
- "Configure [glob patterns](https://aka.ms/vscode-glob-patterns) to editors for opening files from chat (for example `\"*.md\": \"vscode.markdown.preview.editor\"`)."
458
- )),
459
- additionalProperties: {
460
- type: "string"
461
- },
462
- default: {}
463
- },
464
- [ChatConfiguration.NotifyWindowOnConfirmation]: {
465
- type: "string",
466
- enum: ["off", "windowNotFocused", "always"],
467
- enumDescriptions: [( localize(5809, "Never show OS notifications for confirmations.")), ( localize(
468
- 5810,
469
- "Show OS notifications for confirmations when the window is not focused."
470
- )), ( localize(
471
- 5811,
472
- "Always show OS notifications for confirmations, even when the window is focused."
473
- ))],
474
- description: ( localize(
475
- 5812,
476
- "Controls whether a chat session should present the user with an OS notification when a confirmation or question needs input. This includes a window badge as well as notification toast."
477
- )),
478
- default: "windowNotFocused"
479
- },
480
- [ChatConfiguration.AutoReply]: {
481
- default: false,
482
- markdownDescription: ( localize(
483
- 5813,
484
- "Automatically skip question carousels by telling the agent that the user is not available and to use its best judgment. This is an advanced setting and can lead to unintended choices or actions based on incomplete context."
485
- )),
486
- type: "boolean",
487
- scope: ConfigurationScope.APPLICATION_MACHINE,
488
- tags: ["experimental", "advanced"]
489
- },
490
- [ChatConfiguration.AutopilotEnabled]: {
491
- type: "boolean",
492
- markdownDescription: ( localize(
493
- 5814,
494
- "Controls whether the Autopilot mode is available in the permissions picker. When enabled, Autopilot auto-approves all tool calls and continues until the task is done."
495
- )),
496
- default: true,
497
- tags: ["experimental"]
498
- },
499
- [ChatConfiguration.PlanReviewInlineEditorEnabled]: {
500
- type: "boolean",
501
- markdownDescription: ( localize(
502
- 5815,
503
- "When enabled, the plan review widget mounts an editor inline, as opposed to in a separate editor tab."
504
- )),
505
- default: true
506
- },
507
- [ChatConfiguration.DefaultPermissionLevel]: {
508
- type: "string",
509
- enum: [
510
- ChatPermissionLevel.Default,
511
- ChatPermissionLevel.AutoApprove,
512
- ChatPermissionLevel.Autopilot
513
- ],
514
- enumItemLabels: [( localize(5816, "Default Approvals")), ( localize(5817, "Bypass Approvals")), ( localize(5818, "Autopilot (Preview)"))],
515
- enumDescriptions: [( localize(5819, "Start new chat sessions with Default Approvals.")), ( localize(5820, "Start new chat sessions in Bypass Approvals mode.")), ( localize(5821, "Start new chat sessions in Autopilot mode."))],
516
- description: ( localize(
517
- 5822,
518
- "Controls the default permissions picker mode for new chat sessions. You can still change the permission mode per session, and each session remembers the permission mode that was used. If enterprise policy disables auto approval, new sessions use Default Approvals."
519
- )),
520
- default: ChatPermissionLevel.Default,
521
- tags: ["experimental"]
522
- },
523
- [ChatConfiguration.GlobalAutoApprove]: {
524
- default: false,
525
- markdownDescription: globalAutoApproveDescription.value,
526
- type: "boolean",
527
- scope: ConfigurationScope.APPLICATION_MACHINE,
528
- tags: ["experimental"],
529
- policy: {
530
- name: "ChatToolsAutoApprove",
531
- category: PolicyCategory.InteractiveSession,
532
- minimumVersion: "1.99",
533
- value: policyData => policyData.chat_preview_features_enabled === false ? false : undefined,
534
- localization: {
535
- description: {
536
- key: "autoApprove3.description",
537
- value: ( localize(
538
- 5823,
539
- "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.\n\nNote: This setting only controls tool approval and does not prevent the agent from asking questions. To automatically answer agent questions, use the `#chat.autoReply#` setting."
540
- ))
541
- }
542
- }
543
- }
544
- },
545
- [ChatConfiguration.SessionSyncEnabled]: {
546
- default: false,
547
- markdownDescription: ( localize(
548
- 5824,
549
- "Enable session sync to GitHub.com. When enabled, Copilot session data is synced to your GitHub account for cross-device access and richer insights. Requires local session tracking to also be enabled."
550
- )),
551
- type: "boolean",
552
- tags: ["experimental", "advanced"],
553
- policy: {
554
- name: "CopilotSessionSync",
555
- category: PolicyCategory.InteractiveSession,
556
- minimumVersion: "1.119",
557
- value: policyData => policyData.session_search === CopilotSessionSearchPolicy.Disabled ? false : undefined,
558
- localization: {
559
- description: {
560
- key: "chat.sessionSync.enabled.policy",
561
- value: ( localize(
562
- 5825,
563
- "Enable session sync to GitHub.com for cross-device Copilot session history. When disabled by organization policy, session data is kept local only."
564
- ))
565
- }
566
- }
567
- }
568
- },
569
- [ChatConfiguration.SessionSyncExcludeRepositories]: {
570
- type: "array",
571
- items: {
572
- type: "string"
573
- },
574
- default: [],
575
- markdownDescription: ( localize(
576
- 5826,
577
- "Repository patterns to exclude from session sync. Use exact `owner/repo` names or glob patterns like `my-org/*`. Sessions from matching repositories will only be stored locally."
578
- )),
579
- tags: ["experimental", "advanced"]
580
- },
581
- [ChatConfiguration.AutoApproveEdits]: {
582
- default: {
583
- "**/*": true,
584
- "**/.vscode/*.json": false,
585
- "**/.git/**": false,
586
- "**/{package.json,server.xml,build.rs,web.config,.gitattributes,.env}": false,
587
- "**/*.{code-workspace,csproj,fsproj,vbproj,vcxproj,proj,targets,props}": false,
588
- "**/*.lock": false,
589
- "**/*-lock.{yaml,json}": false
590
- },
591
- markdownDescription: ( localize(
592
- 5827,
593
- "Controls whether edits made by the agent 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."
594
- )),
595
- type: "object",
596
- additionalProperties: {
597
- type: "boolean"
598
- }
599
- },
600
- [ChatConfiguration.AutoApprovedUrls]: {
601
- default: {
602
- "https://code.visualstudio.com": true,
603
- "https://github.com/microsoft/vscode/wiki/*": true
604
- },
605
- markdownDescription: ( localize(
606
- 5828,
607
- "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"
608
- )),
609
- type: "object",
610
- additionalProperties: {
611
- oneOf: [{
612
- type: "boolean"
613
- }, {
614
- type: "object",
615
- properties: {
616
- approveRequest: {
617
- type: "boolean"
618
- },
619
- approveResponse: {
620
- type: "boolean"
621
- }
622
- }
623
- }]
624
- }
625
- },
626
- [ChatConfiguration.EligibleForAutoApproval]: {
627
- default: {},
628
- markdownDescription: ( localize(
629
- 5829,
630
- "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."
631
- )),
632
- type: "object",
633
- propertyNames: {
634
- enum: toolReferenceNameEnumValues,
635
- enumDescriptions: toolReferenceNameEnumDescriptions
636
- },
637
- additionalProperties: {
638
- type: "boolean"
639
- },
640
- examples: [{
641
- "fetch": false,
642
- "runTask": false
643
- }],
644
- policy: {
645
- name: "ChatToolsEligibleForAutoApproval",
646
- category: PolicyCategory.InteractiveSession,
647
- minimumVersion: "1.107",
648
- localization: {
649
- description: {
650
- key: "chat.tools.eligibleForAutoApproval",
651
- value: ( localize(
652
- 5829,
653
- "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."
654
- ))
655
- }
656
- }
657
- }
658
- },
659
- "chat.sendElementsToChat.attachImages": {
660
- default: true,
661
- markdownDescription: ( localize(
662
- 5830,
663
- "Controls whether a screenshot of the selected element will be added to the chat."
664
- )),
665
- type: "boolean",
666
- tags: ["experimental"]
667
- },
668
- [ChatConfiguration.ArtifactsEnabled]: {
669
- default: false,
670
- description: ( localize(5831, "Controls whether the artifacts view is available in chat.")),
671
- type: "boolean",
672
- tags: ["experimental"]
673
- },
674
- [ChatConfiguration.ArtifactsRulesByMimeType]: {
675
- default: {
676
- "image/*": {
677
- groupName: "Screenshots",
678
- onlyShowGroup: true
679
- }
680
- },
681
- description: ( localize(
682
- 5832,
683
- "Rules for extracting artifacts from tool results by MIME type. Maps MIME type patterns (e.g. 'image/*') to group configuration."
684
- )),
685
- type: "object",
686
- additionalProperties: {
687
- type: "object",
688
- properties: {
689
- groupName: {
690
- type: "string",
691
- description: ( localize(5833, "Display name for the artifact group."))
692
- },
693
- onlyShowGroup: {
694
- type: "boolean",
695
- description: ( localize(5834, "When true, show only the group header instead of individual items."))
696
- }
697
- },
698
- required: ["groupName"]
699
- },
700
- tags: ["experimental"]
701
- },
702
- [ChatConfiguration.ArtifactsRulesByFilePath]: {
703
- default: {
704
- "**/*plan*.md": {
705
- groupName: "Plans"
706
- }
707
- },
708
- description: ( localize(
709
- 5835,
710
- "Rules for extracting artifacts from written files by file path pattern. Maps glob patterns to group configuration."
711
- )),
712
- type: "object",
713
- additionalProperties: {
714
- type: "object",
715
- properties: {
716
- groupName: {
717
- type: "string",
718
- description: ( localize(5836, "Display name for the artifact group."))
719
- },
720
- onlyShowGroup: {
721
- type: "boolean",
722
- description: ( localize(5837, "When true, show only the group header instead of individual items."))
723
- }
724
- },
725
- required: ["groupName"]
726
- },
727
- tags: ["experimental"]
728
- },
729
- [ChatConfiguration.ArtifactsRulesByMemoryFilePath]: {
730
- default: {
731
- "**/*plan*.md": {
732
- groupName: "Plans"
733
- }
734
- },
735
- description: ( localize(
736
- 5838,
737
- "Rules for extracting artifacts from memory tool calls by memory file path pattern. Maps glob patterns to group configuration."
738
- )),
739
- type: "object",
740
- additionalProperties: {
741
- type: "object",
742
- properties: {
743
- groupName: {
744
- type: "string",
745
- description: ( localize(5839, "Display name for the artifact group."))
746
- },
747
- onlyShowGroup: {
748
- type: "boolean",
749
- description: ( localize(5840, "When true, show only the group header instead of individual items."))
750
- }
751
- },
752
- required: ["groupName"]
753
- },
754
- tags: ["experimental"]
755
- },
756
- "chat.undoRequests.restoreInput": {
757
- default: true,
758
- markdownDescription: ( localize(
759
- 5841,
760
- "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."
761
- )),
762
- type: "boolean"
763
- },
764
- "chat.editRequests": {
765
- markdownDescription: ( localize(
766
- 5842,
767
- "Enables editing of requests in the chat. This allows you to change the request content and resubmit it to the model."
768
- )),
769
- type: "string",
770
- enum: ["inline", "hover", "input", "none"],
771
- default: "inline"
772
- },
773
- [ChatConfiguration.ChatViewSessionsEnabled]: {
774
- type: "boolean",
775
- default: true,
776
- description: ( localize(
777
- 5843,
778
- "Show chat agent sessions when chat is empty or to the side when chat view is wide enough."
779
- )),
780
- agentsWindow: {
781
- default: false
782
- }
783
- },
784
- [ChatConfiguration.ChatViewSessionsOrientation]: {
785
- type: "string",
786
- enum: ["stacked", "sideBySide"],
787
- enumDescriptions: [( localize(
788
- 5844,
789
- "Display chat sessions vertically stacked above the chat input unless a chat session is visible."
790
- )), ( localize(
791
- 5845,
792
- "Display chat sessions side by side if space is sufficient, otherwise fallback to stacked above the chat input unless a chat session is visible."
793
- ))],
794
- default: "sideBySide",
795
- description: ( localize(
796
- 5846,
797
- "Controls the orientation of the chat agent sessions view when it is shown alongside the chat."
798
- ))
799
- },
800
- [ChatConfiguration.ChatViewProgressBadgeEnabled]: {
801
- type: "boolean",
802
- default: false,
803
- description: ( localize(
804
- 5847,
805
- "Show a progress badge on the chat view when an agent session is in progress that is opened in that view."
806
- ))
807
- },
808
- [ChatConfiguration.ChatContextUsageEnabled]: {
809
- type: "boolean",
810
- default: true,
811
- description: ( localize(5848, "Show the context window usage indicator in the chat input."))
812
- },
813
- [ChatConfiguration.ChatPersistentProgressEnabled]: {
814
- type: "boolean",
815
- default: product.quality !== "stable",
816
- description: ( localize(5849, "Always show progress in chat."))
817
- },
818
- [ChatConfiguration.ProgressBorder]: {
819
- type: "boolean",
820
- default: true,
821
- markdownDescription: ( localize(
822
- 5850,
823
- "Show an animated gradient border around the chat input while the agent is working or thinking. When enabled and reduced motion is not enabled, this overrides {0} to be off. Has no effect when reduced motion is enabled.",
824
- "`#chat.persistentProgress.enabled#`"
825
- ))
826
- },
827
- [ChatConfiguration.NotifyWindowOnResponseReceived]: {
828
- type: "string",
829
- enum: ["off", "windowNotFocused", "always"],
830
- enumDescriptions: [( localize(5851, "Never show OS notifications for responses.")), ( localize(
831
- 5852,
832
- "Show OS notifications for responses when the window is not focused."
833
- )), ( localize(
834
- 5853,
835
- "Always show OS notifications for responses, even when the window is focused."
836
- ))],
837
- default: "windowNotFocused",
838
- description: ( localize(
839
- 5854,
840
- "Controls whether a chat session should present the user with an OS notification when a response is received. This includes a window badge as well as notification toast."
841
- ))
842
- },
843
- "chat.checkpoints.enabled": {
844
- type: "boolean",
845
- default: true,
846
- description: ( localize(
847
- 5855,
848
- "Enables checkpoints in chat. Checkpoints allow you to restore the chat to a previous state."
849
- ))
850
- },
851
- "chat.checkpoints.showFileChanges": {
852
- type: "boolean",
853
- description: ( localize(5856, "Controls whether to show chat checkpoint file changes.")),
854
- default: false
855
- },
856
- [mcpAccessConfig]: {
857
- type: "string",
858
- description: ( localize(5857, "Controls access to installed Model Context Protocol servers.")),
859
- enum: [McpAccessValue.None, McpAccessValue.Registry, McpAccessValue.All],
860
- enumDescriptions: [( localize(5858, "No access to MCP servers.")), ( localize(
861
- 5859,
862
- "Allows access to MCP servers installed from the registry that VS Code is connected to."
863
- )), ( localize(5860, "Allow access to any installed MCP server."))],
864
- default: McpAccessValue.All,
865
- policy: {
866
- name: "ChatMCP",
867
- category: PolicyCategory.InteractiveSession,
868
- minimumVersion: "1.99",
869
- value: policyData => {
870
- if (policyData.mcp === false) {
871
- return McpAccessValue.None;
872
- }
873
- if (policyData.mcpAccess === "registry_only") {
874
- return McpAccessValue.Registry;
875
- }
876
- return undefined;
877
- },
878
- localization: {
879
- description: {
880
- key: "chat.mcp.access",
881
- value: ( localize(5857, "Controls access to installed Model Context Protocol servers."))
882
- },
883
- enumDescriptions: [{
884
- key: "chat.mcp.access.none",
885
- value: ( localize(5858, "No access to MCP servers."))
886
- }, {
887
- key: "chat.mcp.access.registry",
888
- value: ( localize(
889
- 5859,
890
- "Allows access to MCP servers installed from the registry that VS Code is connected to."
891
- ))
892
- }, {
893
- key: "chat.mcp.access.any",
894
- value: ( localize(5860, "Allow access to any installed MCP server."))
895
- }]
896
- }
897
- }
898
- },
899
- [mcpAutoStartConfig]: {
900
- type: "string",
901
- description: ( localize(
902
- 5861,
903
- "Controls whether MCP servers should be automatically started when the chat messages are submitted."
904
- )),
905
- default: McpAutoStartValue.NewAndOutdated,
906
- enum: [
907
- McpAutoStartValue.Never,
908
- McpAutoStartValue.OnlyNew,
909
- McpAutoStartValue.NewAndOutdated
910
- ],
911
- enumDescriptions: [( localize(5862, "Never automatically start MCP servers.")), ( localize(5863, "Only automatically start new MCP servers that have never been run.")), ( localize(
912
- 5864,
913
- "Automatically start new and outdated MCP servers that are not yet running."
914
- ))],
915
- tags: ["experimental"]
916
- },
917
- [mcpAppsEnabledConfig]: {
918
- type: "boolean",
919
- description: ( localize(
920
- 5865,
921
- "Controls whether MCP servers can provide custom UI for tool invocations."
922
- )),
923
- default: true,
924
- tags: ["experimental"]
925
- },
926
- [mcpServerCollisionBehaviorSection]: {
927
- type: "string",
928
- description: ( localize(
929
- 5866,
930
- "Controls behavior when multiple MCP servers are discovered with the same name. 'disable' disables lower-priority duplicates. 'suffix' appends numeric suffixes to disambiguate."
931
- )),
932
- enum: [McpCollisionBehavior.Disable, McpCollisionBehavior.Suffix],
933
- enumDescriptions: [( localize(5867, "Disable lower-priority servers with duplicate names.")), ( localize(5868, "Append numeric suffixes to servers with duplicate names."))],
934
- default: McpCollisionBehavior.Disable
935
- },
936
- [mcpServerSamplingSection]: {
937
- type: "object",
938
- description: ( localize(
939
- 5869,
940
- "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.",
941
- "MCP: " + ( localize(5870, "List Servers"))
942
- )),
943
- scope: ConfigurationScope.RESOURCE,
944
- additionalProperties: {
945
- type: "object",
946
- properties: {
947
- allowedDuringChat: {
948
- type: "boolean",
949
- description: ( localize(
950
- 5871,
951
- "Whether this server is allowed to make sampling requests during its tool calls in a chat session."
952
- )),
953
- default: true
954
- },
955
- allowedOutsideChat: {
956
- type: "boolean",
957
- description: ( localize(
958
- 5872,
959
- "Whether this server is allowed to make sampling requests outside of a chat session."
960
- )),
961
- default: false
962
- },
963
- allowedModels: {
964
- type: "array",
965
- items: {
966
- type: "string",
967
- description: ( localize(5873, "A model the MCP server has access to."))
968
- }
969
- }
970
- }
971
- }
972
- },
973
- [AssistedTypes[AddConfigurationType.NuGetPackage].enabledConfigKey]: {
974
- type: "boolean",
975
- description: ( localize(
976
- 5874,
977
- "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)."
978
- )),
979
- default: false,
980
- tags: ["experimental"],
981
- experiment: {
982
- mode: "startup"
983
- }
984
- },
985
- [ChatConfiguration.ExtensionToolsEnabled]: {
986
- type: "boolean",
987
- description: ( localize(5875, "Enable using tools contributed by third-party extensions.")),
988
- default: true,
989
- policy: {
990
- name: "ChatAgentExtensionTools",
991
- category: PolicyCategory.InteractiveSession,
992
- minimumVersion: "1.99",
993
- localization: {
994
- description: {
995
- key: "chat.extensionToolsEnabled",
996
- value: ( localize(5875, "Enable using tools contributed by third-party extensions."))
997
- }
998
- }
999
- }
1000
- },
1001
- [ChatConfiguration.PluginsEnabled]: {
1002
- type: "boolean",
1003
- description: ( localize(5876, "Enable agent plugin integration in chat.")),
1004
- default: true,
1005
- tags: ["preview"],
1006
- policy: {
1007
- name: "ChatPluginsEnabled",
1008
- category: PolicyCategory.InteractiveSession,
1009
- minimumVersion: "1.116",
1010
- localization: {
1011
- description: {
1012
- key: "chat.plugins.enabled",
1013
- value: ( localize(5876, "Enable agent plugin integration in chat."))
1014
- }
1015
- }
1016
- }
1017
- },
1018
- [ChatConfiguration.PluginLocations]: {
1019
- type: "object",
1020
- additionalProperties: {
1021
- type: "boolean"
1022
- },
1023
- restricted: true,
1024
- markdownDescription: ( localize(
1025
- 5877,
1026
- "Plugin directories to discover. Each key is a path that points directly to a plugin folder, and the value enables (`true`) or disables (`false`) it. Paths can be absolute, relative to the workspace root, or start with `~/` for the user's home directory."
1027
- )),
1028
- scope: ConfigurationScope.MACHINE,
1029
- tags: ["experimental"]
1030
- },
1031
- [ChatConfiguration.PluginMarketplaces]: {
1032
- type: "array",
1033
- items: {
1034
- type: "string"
1035
- },
1036
- markdownDescription: ( localize(
1037
- 5878,
1038
- "Plugin marketplaces to query. Entries may be GitHub shorthand (`owner/repo`), direct Git repository URIs (`https://...git`, `ssh://...git`, or `git@host:path.git`), or local repository URIs (`file:///...`). Equivalent GitHub shorthand and URI entries are deduplicated."
1039
- )),
1040
- default: ["github/copilot-plugins", "github/awesome-copilot"],
1041
- scope: ConfigurationScope.APPLICATION,
1042
- tags: ["experimental"]
1043
- },
1044
- [ChatConfiguration.AgentEnabled]: {
1045
- type: "boolean",
1046
- description: ( localize(
1047
- 5879,
1048
- "When enabled, agent mode can be activated from chat and tools in agentic contexts with side effects can be used."
1049
- )),
1050
- default: true,
1051
- order: 1,
1052
- policy: {
1053
- name: "ChatAgentMode",
1054
- category: PolicyCategory.InteractiveSession,
1055
- minimumVersion: "1.99",
1056
- value: policyData => policyData.chat_agent_enabled === false ? false : undefined,
1057
- localization: {
1058
- description: {
1059
- key: "chat.agent.enabled.description",
1060
- value: ( localize(
1061
- 5879,
1062
- "When enabled, agent mode can be activated from chat and tools in agentic contexts with side effects can be used."
1063
- ))
1064
- }
1065
- }
1066
- }
1067
- },
1068
- [AgentNetworkDomainSettingId.NetworkFilter]: {
1069
- markdownDescription: ( localize(
1070
- 5880,
1071
- "When enabled, network access by agent tools (fetch tool, integrated browser) is restricted according to {0} and {1}. Domain filtering is also applied to those tools when {2} is enabled.",
1072
- `\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``,
1073
- `\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``,
1074
- `\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``
1075
- )),
1076
- type: "boolean",
1077
- default: false,
1078
- restricted: true,
1079
- policy: {
1080
- name: "ChatAgentNetworkFilter",
1081
- category: PolicyCategory.InteractiveSession,
1082
- minimumVersion: "1.116",
1083
- localization: {
1084
- description: {
1085
- key: "chat.agent.networkFilter",
1086
- value: ( localize(
1087
- 5880,
1088
- "When enabled, network access by agent tools (fetch tool, integrated browser) is restricted according to {0} and {1}. Domain filtering is also applied to those tools when {2} is enabled.",
1089
- `\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``,
1090
- `\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``,
1091
- `\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``
1092
- ))
1093
- }
1094
- }
1095
- }
1096
- },
1097
- [AgentNetworkDomainSettingId.AllowedNetworkDomains]: {
1098
- markdownDescription: ( localize(
1099
- 5881,
1100
- "Allowed domains for network access by agent tools (fetch tool, integrated browser). Applies when {0} or {1} is enabled. When {1} is set to {2}, all domains are allowed. Supports wildcards like {3}. When both allowed and denied lists are empty, all domains are blocked. Denied domains (see {4}) take precedence.",
1101
- `\`#${AgentNetworkDomainSettingId.NetworkFilter}#\``,
1102
- `\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``,
1103
- `\`${AgentSandboxEnabledValue.AllowNetwork}\``,
1104
- "`*.example.com`",
1105
- `\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``
1106
- )),
1107
- type: "array",
1108
- items: {
1109
- type: "string"
1110
- },
1111
- default: [],
1112
- restricted: true,
1113
- policy: {
1114
- name: "ChatAgentAllowedNetworkDomains",
1115
- category: PolicyCategory.InteractiveSession,
1116
- minimumVersion: "1.116",
1117
- localization: {
1118
- description: {
1119
- key: "chat.agent.allowedNetworkDomains",
1120
- value: ( localize(
1121
- 5881,
1122
- "Allowed domains for network access by agent tools (fetch tool, integrated browser). Applies when {0} or {1} is enabled. When {1} is set to {2}, all domains are allowed. Supports wildcards like {3}. When both allowed and denied lists are empty, all domains are blocked. Denied domains (see {4}) take precedence.",
1123
- `\`#${AgentNetworkDomainSettingId.NetworkFilter}#\``,
1124
- `\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``,
1125
- `\`${AgentSandboxEnabledValue.AllowNetwork}\``,
1126
- "`*.example.com`",
1127
- `\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``
1128
- ))
1129
- }
1130
- }
1131
- }
1132
- },
1133
- [AgentNetworkDomainSettingId.DeniedNetworkDomains]: {
1134
- markdownDescription: ( localize(
1135
- 5882,
1136
- "Denied domains for network access by agent tools (fetch tool, integrated browser). Applies when {0} or {1} is enabled. This does not apply when {1} is set to {2}. Takes precedence over {3}. Supports wildcards like {4}.",
1137
- `\`#${AgentNetworkDomainSettingId.NetworkFilter}#\``,
1138
- `\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``,
1139
- `\`${AgentSandboxEnabledValue.AllowNetwork}\``,
1140
- `\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``,
1141
- "`*.example.com`"
1142
- )),
1143
- type: "array",
1144
- items: {
1145
- type: "string"
1146
- },
1147
- default: [],
1148
- restricted: true,
1149
- policy: {
1150
- name: "ChatAgentDeniedNetworkDomains",
1151
- category: PolicyCategory.InteractiveSession,
1152
- minimumVersion: "1.116",
1153
- localization: {
1154
- description: {
1155
- key: "chat.agent.deniedNetworkDomains",
1156
- value: ( localize(
1157
- 5882,
1158
- "Denied domains for network access by agent tools (fetch tool, integrated browser). Applies when {0} or {1} is enabled. This does not apply when {1} is set to {2}. Takes precedence over {3}. Supports wildcards like {4}.",
1159
- `\`#${AgentNetworkDomainSettingId.NetworkFilter}#\``,
1160
- `\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``,
1161
- `\`${AgentSandboxEnabledValue.AllowNetwork}\``,
1162
- `\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``,
1163
- "`*.example.com`"
1164
- ))
1165
- }
1166
- }
1167
- }
1168
- },
1169
- [AgentNetworkDomainSettingId.DeprecatedOldAllowedNetworkDomains]: {
1170
- type: "array",
1171
- items: {
1172
- type: "string"
1173
- },
1174
- deprecated: true,
1175
- markdownDeprecationMessage: ( localize(
1176
- 5883,
1177
- "Use {0} instead",
1178
- `\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``
1179
- ))
1180
- },
1181
- [AgentNetworkDomainSettingId.DeprecatedOldDeniedNetworkDomains]: {
1182
- type: "array",
1183
- items: {
1184
- type: "string"
1185
- },
1186
- deprecated: true,
1187
- markdownDeprecationMessage: ( localize(
1188
- 5884,
1189
- "Use {0} instead",
1190
- `\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``
1191
- ))
1192
- },
1193
- [AgentNetworkDomainSettingId.DeprecatedSandboxAllowedNetworkDomains]: {
1194
- type: "array",
1195
- items: {
1196
- type: "string"
1197
- },
1198
- deprecated: true,
1199
- markdownDeprecationMessage: ( localize(
1200
- 5885,
1201
- "Use {0} instead",
1202
- `\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``
1203
- ))
1204
- },
1205
- [AgentNetworkDomainSettingId.DeprecatedSandboxDeniedNetworkDomains]: {
1206
- type: "array",
1207
- items: {
1208
- type: "string"
1209
- },
1210
- deprecated: true,
1211
- markdownDeprecationMessage: ( localize(
1212
- 5886,
1213
- "Use {0} instead",
1214
- `\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``
1215
- ))
1216
- },
1217
- [ChatConfiguration.DefaultNewSessionMode]: {
1218
- type: "string",
1219
- description: ( localize(
1220
- 5887,
1221
- "The default mode for new chat sessions. When empty, the chat view's default mode is used."
1222
- )),
1223
- default: ""
1224
- },
1225
- [AgentHostEnabledSettingId]: {
1226
- type: "boolean",
1227
- description: ( localize(5888, "When enabled, some agents run in a separate agent host process.")),
1228
- default: false,
1229
- tags: ["experimental", "advanced"],
1230
- included: product.quality !== "stable"
1231
- },
1232
- [AgentHostClaudeAgentSdkPathSettingId]: {
1233
- type: "string",
1234
- description: ( localize(
1235
- 5889,
1236
- "Experimental, for local testing only. Absolute path to a locally-installed `@anthropic-ai/claude-agent-sdk` package. When set, the Claude agent provider is registered inside the agent host and the SDK is loaded from this path. Requires `#chat.agentHost.enabled#`. The agent host process must be restarted for changes to take effect. This setting will be removed once the SDK is delivered through the Extension Marketplace."
1237
- )),
1238
- default: "",
1239
- tags: ["experimental", "advanced"],
1240
- included: product.quality !== "stable"
1241
- },
1242
- [AgentHostIpcLoggingSettingId]: {
1243
- type: "boolean",
1244
- description: ( localize(
1245
- 5890,
1246
- "When enabled, logs all IPC traffic for each agent host to a dedicated output channel."
1247
- )),
1248
- default: product.quality !== "stable",
1249
- tags: ["experimental", "advanced"],
1250
- included: product.quality !== "stable"
1251
- },
1252
- [AgentHostAhpJsonlLoggingSettingId]: {
1253
- type: "boolean",
1254
- description: ( localize(
1255
- 5891,
1256
- "When enabled, logs all AHP transport messages for agent host connections to JSONL files under the window's log directory."
1257
- )),
1258
- default: product.quality !== "stable",
1259
- tags: ["experimental", "advanced"],
1260
- included: product.quality !== "stable"
1261
- },
1262
- [ChatConfiguration.AgentHostClientTools]: {
1263
- type: "array",
1264
- items: {
1265
- type: "string"
1266
- },
1267
- description: ( localize(
1268
- 5892,
1269
- "Tool reference names to expose as client-provided tools in agent host sessions."
1270
- )),
1271
- default: [
1272
- "runTask",
1273
- "getTaskOutput",
1274
- "problems",
1275
- "runTests",
1276
- ...browserChatToolReferenceNames
1277
- ],
1278
- tags: ["experimental", "advanced"],
1279
- included: product.quality !== "stable"
1280
- },
1281
- [ChatConfiguration.ToolConfirmationCarousel]: {
1282
- type: "boolean",
1283
- description: ( localize(
1284
- 5893,
1285
- "When enabled, multiple tool confirmations are batched into a carousel above the input."
1286
- )),
1287
- default: product.quality !== "stable",
1288
- tags: ["experimental"]
1289
- },
1290
- [ChatConfiguration.ToolRiskAssessmentEnabled]: {
1291
- type: "boolean",
1292
- description: ( localize(
1293
- 5894,
1294
- "When enabled, terminal tool confirmations show an LLM-generated risk level (Safe / Caution / Review carefully) and a short explanation."
1295
- )),
1296
- default: true,
1297
- tags: ["experimental"],
1298
- experiment: {
1299
- mode: "auto"
1300
- }
1301
- },
1302
- [ChatConfiguration.ToolRiskAssessmentModel]: {
1303
- type: "string",
1304
- description: ( localize(
1305
- 5895,
1306
- "The language model id used to generate tool risk assessments. Should be a small, fast model."
1307
- )),
1308
- default: "copilot-fast",
1309
- tags: ["experimental", "advanced"],
1310
- experiment: {
1311
- mode: "auto"
1312
- }
1313
- },
1314
- [ChatConfiguration.PlanAgentDefaultModel]: {
1315
- type: "string",
1316
- description: ( localize(
1317
- 5896,
1318
- "Select the default language model to use for the Plan agent from the available providers."
1319
- )),
1320
- default: "",
1321
- enum: PlanAgentDefaultModel.modelIds,
1322
- enumItemLabels: PlanAgentDefaultModel.modelLabels,
1323
- markdownEnumDescriptions: PlanAgentDefaultModel.modelDescriptions
1324
- },
1325
- [ChatConfiguration.ExploreAgentDefaultModel]: {
1326
- type: "string",
1327
- description: ( localize(
1328
- 5897,
1329
- "Select the default language model to use for the Explore subagent from the available providers."
1330
- )),
1331
- default: "",
1332
- enum: ExploreAgentDefaultModel.modelIds,
1333
- enumItemLabels: ExploreAgentDefaultModel.modelLabels,
1334
- markdownEnumDescriptions: ExploreAgentDefaultModel.modelDescriptions
1335
- },
1336
- [ChatConfiguration.RequestQueueingDefaultAction]: {
1337
- type: "string",
1338
- enum: ["queue", "steer"],
1339
- enumDescriptions: [( localize(5898, "Queue the message to send after the current request completes.")), ( localize(
1340
- 5899,
1341
- "Steer the current request by sending the message immediately, signaling the current request to yield."
1342
- ))],
1343
- description: ( localize(
1344
- 5900,
1345
- "Controls which action is the default for the queue button when a request is in progress."
1346
- )),
1347
- default: "steer"
1348
- },
1349
- [ChatConfiguration.EditModeHidden]: {
1350
- type: "boolean",
1351
- description: ( localize(5901, "When enabled, hides the Edit mode from the chat mode picker.")),
1352
- default: true,
1353
- tags: ["experimental"],
1354
- experiment: {
1355
- mode: "auto"
1356
- },
1357
- policy: {
1358
- name: "DeprecatedEditModeHidden",
1359
- category: PolicyCategory.InteractiveSession,
1360
- minimumVersion: "1.112",
1361
- localization: {
1362
- description: {
1363
- key: "chat.editMode.hidden",
1364
- value: ( localize(5901, "When enabled, hides the Edit mode from the chat mode picker."))
1365
- }
1366
- }
1367
- }
1368
- },
1369
- [ChatConfiguration.EnableMath]: {
1370
- type: "boolean",
1371
- description: ( localize(5902, "Enable math rendering in chat responses using KaTeX.")),
1372
- default: true
1373
- },
1374
- [ChatConfiguration.ShowCodeBlockProgressAnimation]: {
1375
- type: "boolean",
1376
- description: ( localize(
1377
- 5903,
1378
- "When applying edits, show a progress animation in the code block pill. If disabled, shows the progress percentage instead."
1379
- )),
1380
- default: true,
1381
- tags: ["experimental"]
1382
- },
1383
- [mcpDiscoverySection]: {
1384
- type: "object",
1385
- properties: Object.fromEntries(( allDiscoverySources.map(k => [k, {
1386
- type: "boolean",
1387
- description: discoverySourceSettingsLabel[k]
1388
- }]))),
1389
- additionalProperties: false,
1390
- default: Object.fromEntries(( allDiscoverySources.map(k => [k, false]))),
1391
- markdownDescription: ( localize(
1392
- 5904,
1393
- "Configures discovery of Model Context Protocol servers from configuration from various other applications."
1394
- ))
1395
- },
1396
- [mcpGalleryServiceEnablementConfig]: {
1397
- type: "boolean",
1398
- default: false,
1399
- tags: ["preview"],
1400
- description: ( localize(
1401
- 5905,
1402
- "Enables the default Marketplace for Model Context Protocol (MCP) servers."
1403
- )),
1404
- included: product.quality === "stable"
1405
- },
1406
- [mcpGalleryServiceUrlConfig]: {
1407
- type: "string",
1408
- description: ( localize(5906, "Configure the MCP Gallery service URL to connect to")),
1409
- default: "",
1410
- scope: ConfigurationScope.APPLICATION,
1411
- tags: ["usesOnlineServices", "advanced"],
1412
- included: false,
1413
- policy: {
1414
- name: "McpGalleryServiceUrl",
1415
- category: PolicyCategory.InteractiveSession,
1416
- minimumVersion: "1.101",
1417
- value: policyData => policyData.mcpRegistryUrl,
1418
- localization: {
1419
- description: {
1420
- key: "mcp.gallery.serviceUrl",
1421
- value: ( localize(5906, "Configure the MCP Gallery service URL to connect to"))
1422
- }
1423
- }
1424
- }
1425
- },
1426
- [PromptsConfig.INSTRUCTIONS_LOCATION_KEY]: {
1427
- type: "object",
1428
- title: ( localize(5907, "Instructions File Locations")),
1429
- markdownDescription: ( localize(
1430
- 5908,
1431
- "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.",
1432
- INSTRUCTION_FILE_EXTENSION,
1433
- INSTRUCTIONS_DOCUMENTATION_URL
1434
- )),
1435
- default: {
1436
- ...( DEFAULT_INSTRUCTIONS_SOURCE_FOLDERS.map(folder => ({
1437
- [folder.path]: true
1438
- }))).reduce((acc, curr) => ({
1439
- ...acc,
1440
- ...curr
1441
- }), {})
1442
- },
1443
- additionalProperties: {
1444
- type: "boolean"
1445
- },
1446
- propertyNames: {
1447
- pattern: VALID_PROMPT_FOLDER_PATTERN,
1448
- patternErrorMessage: ( localize(
1449
- 5909,
1450
- "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."
1451
- ))
1452
- },
1453
- restricted: true,
1454
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
1455
- examples: [{
1456
- [DEFAULT_INSTRUCTIONS_SOURCE_FOLDERS[0].path]: true
1457
- }, {
1458
- [INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true,
1459
- "/Users/vscode/repos/instructions": true
1460
- }]
1461
- },
1462
- [PromptsConfig.PROMPT_LOCATIONS_KEY]: {
1463
- type: "object",
1464
- title: ( localize(5910, "Prompt File Locations")),
1465
- markdownDescription: ( localize(
1466
- 5911,
1467
- "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.",
1468
- PROMPT_FILE_EXTENSION,
1469
- PROMPT_DOCUMENTATION_URL
1470
- )),
1471
- default: {
1472
- [PROMPT_DEFAULT_SOURCE_FOLDER]: true
1473
- },
1474
- additionalProperties: {
1475
- type: "boolean"
1476
- },
1477
- unevaluatedProperties: {
1478
- type: "boolean"
1479
- },
1480
- propertyNames: {
1481
- pattern: VALID_PROMPT_FOLDER_PATTERN,
1482
- patternErrorMessage: ( localize(
1483
- 5912,
1484
- "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."
1485
- ))
1486
- },
1487
- restricted: true,
1488
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
1489
- examples: [{
1490
- [PROMPT_DEFAULT_SOURCE_FOLDER]: true
1491
- }, {
1492
- [PROMPT_DEFAULT_SOURCE_FOLDER]: true,
1493
- "/Users/vscode/repos/prompts": true
1494
- }]
1495
- },
1496
- [PromptsConfig.MODE_LOCATION_KEY]: {
1497
- type: "object",
1498
- title: ( localize(5913, "Mode File Locations")),
1499
- markdownDescription: ( localize(
1500
- 5914,
1501
- "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.",
1502
- LEGACY_MODE_FILE_EXTENSION,
1503
- AGENT_DOCUMENTATION_URL
1504
- )),
1505
- default: {
1506
- [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true
1507
- },
1508
- deprecationMessage: ( localize(
1509
- 5915,
1510
- "This setting is deprecated and will be removed in future releases. Chat modes are now called custom agents and are located in `.github/agents`"
1511
- )),
1512
- additionalProperties: {
1513
- type: "boolean"
1514
- },
1515
- unevaluatedProperties: {
1516
- type: "boolean"
1517
- },
1518
- restricted: true,
1519
- tags: [
1520
- "experimental",
1521
- "prompts",
1522
- "reusable prompts",
1523
- "prompt snippets",
1524
- "instructions"
1525
- ],
1526
- examples: [{
1527
- [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true
1528
- }, {
1529
- [LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true,
1530
- "/Users/vscode/repos/chatmodes": true
1531
- }]
1532
- },
1533
- [PromptsConfig.AGENTS_LOCATION_KEY]: {
1534
- type: "object",
1535
- title: ( localize(5916, "Agent File Locations")),
1536
- markdownDescription: ( localize(
1537
- 5917,
1538
- "Specify location(s) of custom agent files (`*{0}`). [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
1539
- AGENT_FILE_EXTENSION,
1540
- AGENT_DOCUMENTATION_URL
1541
- )),
1542
- default: {
1543
- [AGENTS_SOURCE_FOLDER]: true,
1544
- [CLAUDE_AGENTS_SOURCE_FOLDER]: true,
1545
- [COPILOT_USER_AGENTS_SOURCE_FOLDER]: true
1546
- },
1547
- additionalProperties: {
1548
- type: "boolean"
1549
- },
1550
- propertyNames: {
1551
- pattern: VALID_PROMPT_FOLDER_PATTERN,
1552
- patternErrorMessage: ( localize(
1553
- 5918,
1554
- "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
1555
- ))
1556
- },
1557
- restricted: true,
1558
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
1559
- examples: [{
1560
- [AGENTS_SOURCE_FOLDER]: true
1561
- }, {
1562
- [AGENTS_SOURCE_FOLDER]: true,
1563
- "my-agents": true,
1564
- "../shared-agents": true,
1565
- "~/.copilot/agents": true
1566
- }]
1567
- },
1568
- [PromptsConfig.USE_AGENT_MD]: {
1569
- type: "boolean",
1570
- title: ( localize(5919, "Use AGENTS.md file")),
1571
- markdownDescription: ( localize(
1572
- 5920,
1573
- "Controls whether instructions from `AGENTS.md` file found in a workspace roots are attached to all chat requests."
1574
- )),
1575
- default: true,
1576
- restricted: true,
1577
- disallowConfigurationDefault: true,
1578
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
1579
- },
1580
- [PromptsConfig.USE_NESTED_AGENT_MD]: {
1581
- type: "boolean",
1582
- title: ( localize(5921, "Use nested AGENTS.md files")),
1583
- markdownDescription: ( localize(
1584
- 5922,
1585
- "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."
1586
- )),
1587
- default: false,
1588
- restricted: true,
1589
- disallowConfigurationDefault: true,
1590
- tags: [
1591
- "experimental",
1592
- "prompts",
1593
- "reusable prompts",
1594
- "prompt snippets",
1595
- "instructions"
1596
- ]
1597
- },
1598
- [PromptsConfig.USE_CLAUDE_MD]: {
1599
- type: "boolean",
1600
- title: ( localize(5923, "Use CLAUDE.md file")),
1601
- markdownDescription: ( localize(
1602
- 5924,
1603
- "Controls whether instructions from `CLAUDE.md` file found in workspace roots, .claude and ~/.claude folder are attached to all chat requests."
1604
- )),
1605
- default: true,
1606
- restricted: true,
1607
- disallowConfigurationDefault: true,
1608
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
1609
- },
1610
- [PromptsConfig.USE_AGENT_SKILLS]: {
1611
- type: "boolean",
1612
- title: ( localize(5925, "Use Agent skills")),
1613
- markdownDescription: ( localize(
1614
- 5926,
1615
- "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)."
1616
- )),
1617
- default: true,
1618
- restricted: true,
1619
- disallowConfigurationDefault: true,
1620
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
1621
- },
1622
- [PromptsConfig.USE_SKILL_ADHERENCE_PROMPT]: {
1623
- type: "boolean",
1624
- title: ( localize(5927, "Use Skill Adherence Prompt")),
1625
- markdownDescription: ( localize(
1626
- 5928,
1627
- "Controls whether a stronger skill adherence prompt is used that encourages the model to immediately invoke skills when relevant rather than just announcing them."
1628
- )),
1629
- default: false,
1630
- restricted: true,
1631
- disallowConfigurationDefault: true,
1632
- tags: [
1633
- "experimental",
1634
- "prompts",
1635
- "reusable prompts",
1636
- "prompt snippets",
1637
- "instructions"
1638
- ],
1639
- experiment: {
1640
- mode: "auto"
1641
- }
1642
- },
1643
- [PromptsConfig.INCLUDE_APPLYING_INSTRUCTIONS]: {
1644
- type: "boolean",
1645
- title: ( localize(5929, "Include Applying Instructions")),
1646
- markdownDescription: ( localize(
1647
- 5930,
1648
- "Controls whether instructions with a matching 'applyTo' attribute are automatically included in chat requests."
1649
- )),
1650
- default: true,
1651
- restricted: true,
1652
- disallowConfigurationDefault: true,
1653
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
1654
- },
1655
- [PromptsConfig.INCLUDE_REFERENCED_INSTRUCTIONS]: {
1656
- type: "boolean",
1657
- title: ( localize(5931, "Include Referenced Instructions")),
1658
- markdownDescription: ( localize(
1659
- 5932,
1660
- "Controls whether referenced instructions are automatically included in chat requests."
1661
- )),
1662
- default: false,
1663
- restricted: true,
1664
- disallowConfigurationDefault: true,
1665
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
1666
- },
1667
- [PromptsConfig.USE_CUSTOMIZATIONS_IN_PARENT_REPOS]: {
1668
- type: "boolean",
1669
- title: ( localize(5933, "Use Customizations in Parent Repositories")),
1670
- markdownDescription: ( localize(
1671
- 5934,
1672
- "Controls whether to use chat customization files in parent repositories."
1673
- )),
1674
- default: false,
1675
- restricted: true,
1676
- disallowConfigurationDefault: true,
1677
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
1678
- },
1679
- [PromptsConfig.SKILLS_LOCATION_KEY]: {
1680
- type: "object",
1681
- title: ( localize(5935, "Agent Skills Locations")),
1682
- markdownDescription: ( localize(
1683
- 5936,
1684
- "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.",
1685
- SKILL_FILENAME,
1686
- SKILL_DOCUMENTATION_URL
1687
- )),
1688
- default: {
1689
- ...( DEFAULT_SKILL_SOURCE_FOLDERS.map(folder => ({
1690
- [folder.path]: true
1691
- }))).reduce((acc, curr) => ({
1692
- ...acc,
1693
- ...curr
1694
- }), {})
1695
- },
1696
- additionalProperties: {
1697
- type: "boolean"
1698
- },
1699
- propertyNames: {
1700
- pattern: VALID_PROMPT_FOLDER_PATTERN,
1701
- patternErrorMessage: ( localize(
1702
- 5937,
1703
- "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
1704
- ))
1705
- },
1706
- restricted: true,
1707
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
1708
- examples: [{
1709
- [DEFAULT_SKILL_SOURCE_FOLDERS[0].path]: true
1710
- }, {
1711
- [DEFAULT_SKILL_SOURCE_FOLDERS[0].path]: true,
1712
- "my-skills": true,
1713
- "../shared-skills": true,
1714
- "~/.custom/skills": true
1715
- }]
1716
- },
1717
- [PromptsConfig.HOOKS_LOCATION_KEY]: {
1718
- type: "object",
1719
- title: ( localize(5938, "Hook File Locations")),
1720
- markdownDescription: ( localize(
1721
- 5939,
1722
- "Specify paths to hook configuration files that define custom shell commands to execute at strategic points in an agent's workflow. [Learn More]({0}).\n\nRelative paths are resolved from the root folder(s) of your workspace. Supports Copilot hooks (`*.json`) and Claude Code hooks (`settings.json`, `settings.local.json`).",
1723
- HOOK_DOCUMENTATION_URL
1724
- )),
1725
- default: {
1726
- ...( DEFAULT_HOOK_FILE_PATHS.map(f => ({
1727
- [f.path]: true
1728
- }))).reduce((acc, curr) => ({
1729
- ...acc,
1730
- ...curr
1731
- }), {})
1732
- },
1733
- additionalProperties: {
1734
- type: "boolean"
1735
- },
1736
- propertyNames: {
1737
- pattern: VALID_PROMPT_FOLDER_PATTERN,
1738
- patternErrorMessage: ( localize(
1739
- 5940,
1740
- "Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
1741
- ))
1742
- },
1743
- restricted: true,
1744
- tags: ["preview", "prompts", "hooks", "agent"],
1745
- examples: [{
1746
- [DEFAULT_HOOK_FILE_PATHS[0].path]: true
1747
- }, {
1748
- [DEFAULT_HOOK_FILE_PATHS[0].path]: true,
1749
- "custom-hooks/hooks.json": true
1750
- }],
1751
- agentsWindow: {
1752
- default: {
1753
- ".claude/settings.local.json": false,
1754
- ".claude/settings.json": false,
1755
- "~/.claude/settings.json": false
1756
- }
1757
- }
1758
- },
1759
- [PromptsConfig.USE_CHAT_HOOKS]: {
1760
- type: "boolean",
1761
- title: ( localize(5941, "Use Chat Hooks")),
1762
- markdownDescription: ( localize(
1763
- 5942,
1764
- "Controls whether chat hooks are executed at strategic points during an agent's workflow. Hooks are loaded from the files configured in `#chat.hookFilesLocations#`."
1765
- )),
1766
- default: true,
1767
- restricted: true,
1768
- disallowConfigurationDefault: true,
1769
- tags: ["preview", "prompts", "hooks", "agent"],
1770
- policy: {
1771
- name: "ChatHooks",
1772
- category: PolicyCategory.InteractiveSession,
1773
- minimumVersion: "1.109",
1774
- value: policyData => policyData.chat_preview_features_enabled === false ? false : undefined,
1775
- localization: {
1776
- description: {
1777
- key: "chat.useHooks.description",
1778
- value: ( localize(
1779
- 5942,
1780
- "Controls whether chat hooks are executed at strategic points during an agent's workflow. Hooks are loaded from the files configured in `#chat.hookFilesLocations#`."
1781
- ))
1782
- }
1783
- }
1784
- }
1785
- },
1786
- [PromptsConfig.USE_CLAUDE_HOOKS]: {
1787
- type: "boolean",
1788
- title: ( localize(5943, "Use Claude Hooks")),
1789
- markdownDescription: ( localize(
1790
- 5944,
1791
- "Controls whether hooks from Claude configuration files can execute. When disabled, only Copilot-format hooks are used. Hooks are loaded from the files configured in `#chat.hookFilesLocations#`."
1792
- )),
1793
- default: false,
1794
- restricted: true,
1795
- disallowConfigurationDefault: true,
1796
- tags: ["preview", "prompts", "hooks", "agent"]
1797
- },
1798
- [PromptsConfig.PROMPT_FILES_SUGGEST_KEY]: {
1799
- type: "object",
1800
- scope: ConfigurationScope.RESOURCE,
1801
- title: ( localize(5945, "Prompt File Recommendations")),
1802
- markdownDescription: ( localize(
1803
- 5946,
1804
- "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`."
1805
- )),
1806
- default: {},
1807
- additionalProperties: {
1808
- oneOf: [{
1809
- type: "boolean"
1810
- }, {
1811
- type: "string"
1812
- }]
1813
- },
1814
- tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
1815
- examples: [{
1816
- "plan": true,
1817
- "a11y-audit": "resourceExtname == .html",
1818
- "document": "resourceLangId == markdown"
1819
- }]
1820
- },
1821
- [ChatConfiguration.TodosShowWidget]: {
1822
- type: "boolean",
1823
- default: true,
1824
- description: ( localize(
1825
- 5947,
1826
- "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."
1827
- ))
1828
- },
1829
- [ChatConfiguration.ThinkingStyle]: {
1830
- type: "string",
1831
- default: "fixedScrolling",
1832
- enum: ["collapsed", "collapsedPreview", "fixedScrolling"],
1833
- enumDescriptions: [( localize(5948, "Thinking parts will be collapsed by default.")), ( localize(
1834
- 5949,
1835
- "Thinking parts will be expanded first, then collapse once we reach a part that is not thinking."
1836
- )), ( localize(
1837
- 5950,
1838
- "Show thinking in a fixed-height streaming panel that auto-scrolls; click header to expand to full height."
1839
- ))],
1840
- description: ( localize(5951, "Controls how thinking is rendered.")),
1841
- tags: ["experimental"]
1842
- },
1843
- [ChatConfiguration.ThinkingGenerateTitles]: {
1844
- type: "boolean",
1845
- default: true,
1846
- description: ( localize(
1847
- 5952,
1848
- "Controls whether to use an LLM to generate summary titles for thinking sections."
1849
- )),
1850
- tags: ["experimental"]
1851
- },
1852
- "chat.agent.thinking.collapsedTools": {
1853
- type: "string",
1854
- default: "always",
1855
- enum: ["off", "withThinking", "always"],
1856
- enumDescriptions: [( localize(5953, "Tool calls are shown separately, not collapsed into thinking.")), ( localize(
1857
- 5954,
1858
- "Tool calls are collapsed into thinking sections when thinking is present."
1859
- )), ( localize(5955, "Tool calls are always collapsed, even without thinking."))],
1860
- markdownDescription: ( localize(
1861
- 5956,
1862
- "Controls how tool calls are displayed in relation to thinking sections."
1863
- )),
1864
- tags: ["experimental"]
1865
- },
1866
- [ChatConfiguration.TerminalToolsInThinking]: {
1867
- type: "boolean",
1868
- default: true,
1869
- markdownDescription: ( localize(
1870
- 5957,
1871
- "When enabled, terminal tool calls are displayed inside the thinking dropdown with a simplified view."
1872
- )),
1873
- tags: ["experimental"]
1874
- },
1875
- [ChatConfiguration.SimpleTerminalCollapsible]: {
1876
- type: "boolean",
1877
- default: true,
1878
- markdownDescription: ( localize(
1879
- 5958,
1880
- "When enabled, terminal tool calls are always displayed in a collapsible container with a simplified view."
1881
- )),
1882
- tags: ["experimental"]
1883
- },
1884
- [ChatConfiguration.CompressOutputEnabled]: {
1885
- type: "boolean",
1886
- default: false,
1887
- markdownDescription: ( localize(
1888
- 5959,
1889
- "Post-process tool output (for example `git diff`, `ls -l`, or `npm install`) to reduce token usage before it is sent to the model."
1890
- )),
1891
- tags: ["preview"],
1892
- experiment: {
1893
- mode: "auto"
1894
- }
1895
- },
1896
- "chat.tools.usagesTool.enabled": {
1897
- type: "boolean",
1898
- default: true,
1899
- markdownDescription: ( localize(
1900
- 5960,
1901
- "Controls whether the usages tool is available for finding references, definitions, and implementations of code symbols."
1902
- )),
1903
- tags: ["preview"],
1904
- experiment: {
1905
- mode: "auto"
1906
- }
1907
- },
1908
- "chat.tools.renameTool.enabled": {
1909
- type: "boolean",
1910
- default: true,
1911
- markdownDescription: ( localize(
1912
- 5961,
1913
- "Controls whether the rename tool is available for renaming code symbols across the workspace."
1914
- )),
1915
- tags: ["preview"],
1916
- experiment: {
1917
- mode: "auto"
1918
- }
1919
- },
1920
- [ChatConfiguration.ThinkingPhrases]: {
1921
- type: "object",
1922
- default: {
1923
- mode: "append",
1924
- phrases: []
1925
- },
1926
- properties: {
1927
- mode: {
1928
- type: "string",
1929
- enum: ["replace", "append"],
1930
- default: "append",
1931
- description: ( localize(
1932
- 5962,
1933
- "'replace' replaces all default phrases entirely; 'append' adds your phrases to all default categories."
1934
- ))
1935
- },
1936
- phrases: {
1937
- type: "array",
1938
- items: {
1939
- type: "string"
1940
- },
1941
- default: [],
1942
- description: ( localize(
1943
- 5963,
1944
- "Custom loading messages to show during thinking, working progress, terminal, and tool operations."
1945
- ))
1946
- }
1947
- },
1948
- additionalProperties: false,
1949
- markdownDescription: ( localize(
1950
- 5964,
1951
- "Customize the loading messages shown during agent thinking and progress indicators. Use `\"mode\": \"replace\"` to use only your phrases, or `\"mode\": \"append\"` to add them to the defaults."
1952
- )),
1953
- tags: ["experimental"]
1954
- },
1955
- [ChatConfiguration.AutoExpandToolFailures]: {
1956
- type: "boolean",
1957
- default: true,
1958
- markdownDescription: ( localize(
1959
- 5965,
1960
- "When enabled, tool failures are automatically expanded in the chat UI to show error details."
1961
- ))
1962
- },
1963
- [ChatConfiguration.AIDisabled]: {
1964
- type: "boolean",
1965
- description: ( localize(
1966
- 5966,
1967
- "Disable and hide built-in AI features provided by GitHub Copilot, including chat and inline suggestions."
1968
- )),
1969
- default: false,
1970
- scope: ConfigurationScope.WINDOW,
1971
- policy: {
1972
- name: "ChatAIFeaturesDisabled",
1973
- category: PolicyCategory.InteractiveSession,
1974
- minimumVersion: "1.111",
1975
- localization: {
1976
- description: {
1977
- key: "chat.disableAIFeatures",
1978
- value: ( localize(
1979
- 5966,
1980
- "Disable and hide built-in AI features provided by GitHub Copilot, including chat and inline suggestions."
1981
- ))
1982
- }
1983
- }
1984
- }
1985
- },
1986
- [ChatConfiguration.TitleBarSignInEnabled]: {
1987
- type: "boolean",
1988
- description: ( localize(
1989
- 5967,
1990
- "Controls whether the Copilot Sign In button is shown in the title bar when signed out. When disabled, the Sign In affordance falls back to the status bar."
1991
- )),
1992
- default: true
1993
- },
1994
- "chat.approvedAccountOrganizations": {
1995
- type: "array",
1996
- items: {
1997
- type: "string"
1998
- },
1999
- description: ( localize(
2000
- 5968,
2001
- "List of GitHub organization logins whose members are permitted to use AI features. When set to a non-empty list, AI features are disabled until the user signs into a GitHub account that belongs to one of the specified organizations and account-level policy data has been resolved. Set to '*' to allow any authenticated GitHub or GitHub Enterprise account."
2002
- )),
2003
- default: [],
2004
- included: false,
2005
- policy: {
2006
- name: "ChatApprovedAccountOrganizations",
2007
- category: PolicyCategory.InteractiveSession,
2008
- minimumVersion: "1.118",
2009
- localization: {
2010
- description: {
2011
- key: "chat.approvedAccountOrganizations.policy.description",
2012
- value: ( localize(
2013
- 5969,
2014
- "Setting this policy to a non-empty list activates the Approved Account gate: all AI features are disabled until the user signs into a GitHub account whose organizations intersect this list AND the account-side policy data has resolved. Comparison is case-insensitive. Use '*' as a wildcard to accept any signed-in GitHub or GHE account (use this for GHE deployments where the organization list is not surfaced)."
2015
- ))
2016
- }
2017
- }
2018
- }
2019
- },
2020
- "chat.allowAnonymousAccess": {
2021
- type: "boolean",
2022
- description: ( localize(5970, "Controls whether anonymous access is allowed in chat.")),
2023
- default: false,
2024
- tags: ["experimental"],
2025
- experiment: {
2026
- mode: "auto"
2027
- }
2028
- },
2029
- [ChatConfiguration.GrowthNotificationEnabled]: {
2030
- type: "boolean",
2031
- description: ( localize(
2032
- 5971,
2033
- "Controls whether to show a growth notification in the agent sessions view to encourage new users to try Copilot."
2034
- )),
2035
- default: false,
2036
- tags: ["experimental"],
2037
- experiment: {
2038
- mode: "auto"
2039
- }
2040
- },
2041
- [ChatConfiguration.RestoreLastPanelSession]: {
2042
- type: "boolean",
2043
- description: ( localize(
2044
- 5972,
2045
- "Controls whether the last session is restored in panel after restart."
2046
- )),
2047
- default: false
2048
- },
2049
- [ChatConfiguration.ExitAfterDelegation]: {
2050
- type: "boolean",
2051
- description: ( localize(
2052
- 5973,
2053
- "Controls whether the chat panel automatically exits after delegating a request to another session."
2054
- )),
2055
- default: false,
2056
- tags: ["preview"]
2057
- },
2058
- "chat.extensionUnification.enabled": {
2059
- type: "boolean",
2060
- description: ( localize(
2061
- 5974,
2062
- "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."
2063
- )),
2064
- default: true,
2065
- tags: ["experimental"],
2066
- experiment: {
2067
- mode: "auto"
2068
- }
2069
- },
2070
- [ChatConfiguration.GeneralPurposeAgentEnabled]: {
2071
- type: "boolean",
2072
- description: ( localize(
2073
- 5975,
2074
- "Controls whether the built-in General Purpose agent is available as a subagent."
2075
- )),
2076
- default: false,
2077
- tags: ["experimental", "advanced"],
2078
- experiment: {
2079
- mode: "auto"
2080
- }
2081
- },
2082
- [ChatConfiguration.SubagentsAllowInvocationsFromSubagents]: {
2083
- type: "boolean",
2084
- description: ( localize(5976, "Allow subagents to invoke subagents.")),
2085
- markdownDescription: ( localize(
2086
- 5977,
2087
- "Controls whether subagents can invoke other subagents. When enabled, nesting is limited to a maximum depth of 5."
2088
- )),
2089
- default: false,
2090
- experiment: {
2091
- mode: "auto"
2092
- }
2093
- },
2094
- [ChatConfiguration.ChatCustomizationHarnessSelectorEnabled]: {
2095
- type: "boolean",
2096
- tags: ["preview"],
2097
- description: ( localize(
2098
- 5978,
2099
- "Controls whether the harness selector is shown in the Chat Customizations editor sidebar. When disabled, the editor always shows all customizations without filtering."
2100
- )),
2101
- default: true
2102
- },
2103
- [ChatConfiguration.ChatCustomizationsStructuredPreviewEnabled]: {
2104
- type: "boolean",
2105
- tags: ["preview"],
2106
- description: ( localize(
2107
- 5979,
2108
- "Controls whether the Chat Customizations editor shows a structured preview for markdown customization files (agents, skills, instructions, prompts). When disabled, the editor always opens the raw markdown in the embedded code editor."
2109
- )),
2110
- default: false
2111
- },
2112
- [ChatConfiguration.UseChatSessionCustomizationsForCustomAgents]: {
2113
- type: "boolean",
2114
- description: ( localize(
2115
- 5980,
2116
- "When enabled, custom agents shown in the chat mode picker are sourced from the customization harness service (scoped per session type) instead of the prompts service."
2117
- )),
2118
- default: false,
2119
- tags: ["experimental", "advanced"],
2120
- experiment: {
2121
- mode: "auto"
2122
- }
2123
- }
2124
- }
2125
- });
2126
- ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
2127
- EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(5981, "Chat"))),
2128
- [( new SyncDescriptor(ChatEditorInput))]
2129
- );
2130
- ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
2131
- EditorPaneDescriptor.create(ChatDebugEditor, ChatDebugEditorInput.ID, ( localize(5982, "Debug View"))),
2132
- [( new SyncDescriptor(ChatDebugEditorInput))]
2133
- );
2134
- ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
2135
- EditorPaneDescriptor.create(AgentPluginEditor, AgentPluginEditor.ID, ( localize(5983, "Agent Plugin"))),
2136
- [( new SyncDescriptor(AgentPluginEditorInput))]
2137
- );
2138
- ( Registry.as(Extensions$2.ConfigurationMigration)).registerConfigurationMigrations([{
2139
- key: "chat.experimental.detectParticipant.enabled",
2140
- migrateFn: (value, _accessor) => ([["chat.experimental.detectParticipant.enabled", {
2141
- value: undefined
2142
- }], ["chat.detectParticipant.enabled", {
2143
- value: value !== false
2144
- }]])
2145
- }, {
2146
- key: "chat.useClaudeSkills",
2147
- migrateFn: (value, _accessor) => ([["chat.useClaudeSkills", {
2148
- value: undefined
2149
- }], ["chat.useAgentSkills", {
2150
- value
2151
- }]])
2152
- }, {
2153
- key: mcpDiscoverySection,
2154
- migrateFn: value => {
2155
- if (typeof value === "boolean") {
2156
- return {
2157
- value: Object.fromEntries(( allDiscoverySources.map(k => [k, value])))
2158
- };
2159
- }
2160
- return {
2161
- value
2162
- };
2163
- }
2164
- }, {
2165
- key: ChatConfiguration.NotifyWindowOnConfirmation,
2166
- migrateFn: value => {
2167
- if (value === true) {
2168
- return {
2169
- value: ChatNotificationMode.WindowNotFocused
2170
- };
2171
- } else if (value === false) {
2172
- return {
2173
- value: ChatNotificationMode.Off
2174
- };
2175
- }
2176
- return [];
2177
- }
2178
- }, {
2179
- key: ChatConfiguration.NotifyWindowOnResponseReceived,
2180
- migrateFn: value => {
2181
- if (value === true) {
2182
- return {
2183
- value: ChatNotificationMode.WindowNotFocused
2184
- };
2185
- } else if (value === false) {
2186
- return {
2187
- value: ChatNotificationMode.Off
2188
- };
2189
- }
2190
- return [];
2191
- }
2192
- }, {
2193
- key: "chat.plugins.paths",
2194
- migrateFn: (value, _accessor) => ([["chat.plugins.paths", {
2195
- value: undefined
2196
- }], [ChatConfiguration.PluginLocations, {
2197
- value
2198
- }]])
2199
- }, {
2200
- key: AgentNetworkDomainSettingId.DeprecatedSandboxAllowedNetworkDomains,
2201
- migrateFn: (value, accessor) => {
2202
- const pairs = [];
2203
- pairs.push([AgentNetworkDomainSettingId.DeprecatedSandboxAllowedNetworkDomains, {
2204
- value: undefined
2205
- }]);
2206
- if (value !== undefined && accessor(AgentNetworkDomainSettingId.AllowedNetworkDomains) === undefined) {
2207
- pairs.push([AgentNetworkDomainSettingId.AllowedNetworkDomains, {
2208
- value
2209
- }]);
2210
- }
2211
- return pairs;
2212
- }
2213
- }, {
2214
- key: AgentNetworkDomainSettingId.DeprecatedSandboxDeniedNetworkDomains,
2215
- migrateFn: (value, accessor) => {
2216
- const pairs = [];
2217
- pairs.push([AgentNetworkDomainSettingId.DeprecatedSandboxDeniedNetworkDomains, {
2218
- value: undefined
2219
- }]);
2220
- if (value !== undefined && accessor(AgentNetworkDomainSettingId.DeniedNetworkDomains) === undefined) {
2221
- pairs.push([AgentNetworkDomainSettingId.DeniedNetworkDomains, {
2222
- value
2223
- }]);
2224
- }
2225
- return pairs;
2226
- }
2227
- }, {
2228
- key: AgentNetworkDomainSettingId.DeprecatedOldAllowedNetworkDomains,
2229
- migrateFn: (value, accessor) => {
2230
- const pairs = [];
2231
- pairs.push([AgentNetworkDomainSettingId.DeprecatedOldAllowedNetworkDomains, {
2232
- value: undefined
2233
- }]);
2234
- if (value !== undefined && accessor(AgentNetworkDomainSettingId.AllowedNetworkDomains) === undefined) {
2235
- pairs.push([AgentNetworkDomainSettingId.AllowedNetworkDomains, {
2236
- value
2237
- }]);
2238
- }
2239
- return pairs;
2240
- }
2241
- }, {
2242
- key: AgentNetworkDomainSettingId.DeprecatedOldDeniedNetworkDomains,
2243
- migrateFn: (value, accessor) => {
2244
- const pairs = [];
2245
- pairs.push([AgentNetworkDomainSettingId.DeprecatedOldDeniedNetworkDomains, {
2246
- value: undefined
2247
- }]);
2248
- if (value !== undefined && accessor(AgentNetworkDomainSettingId.DeniedNetworkDomains) === undefined) {
2249
- pairs.push([AgentNetworkDomainSettingId.DeniedNetworkDomains, {
2250
- value
2251
- }]);
2252
- }
2253
- return pairs;
2254
- }
2255
- }]);
2256
- let ChatResolverContribution = class ChatResolverContribution extends Disposable {
2257
- static {
2258
- this.ID = "workbench.contrib.chatResolver";
2259
- }
2260
- constructor(chatSessionsService, editorResolverService, instantiationService) {
2261
- super();
2262
- this.editorResolverService = editorResolverService;
2263
- this.instantiationService = instantiationService;
2264
- this._editorRegistrations = this._register(( new DisposableMap()));
2265
- this._registerEditor(Schemas.vscodeChatEditor);
2266
- this._registerEditor(Schemas.vscodeLocalChatSession);
2267
- this._register(chatSessionsService.onDidChangeContentProviderSchemes(e => {
2268
- for (const scheme of e.added) {
2269
- this._registerEditor(scheme);
2270
- }
2271
- for (const scheme of e.removed) {
2272
- this._editorRegistrations.deleteAndDispose(scheme);
2273
- }
2274
- }));
2275
- for (const scheme of chatSessionsService.getContentProviderSchemes()) {
2276
- this._registerEditor(scheme);
2277
- }
2278
- }
2279
- _registerEditor(scheme) {
2280
- this._editorRegistrations.set(scheme, this.editorResolverService.registerEditor(`${scheme}:**/**`, {
2281
- id: ChatEditorInput.EditorID,
2282
- label: ( localize(5981, "Chat")),
2283
- priority: RegisteredEditorPriority.builtin
2284
- }, {
2285
- singlePerResource: true,
2286
- canSupportResource: resource => resource.scheme === scheme
2287
- }, {
2288
- createEditorInput: (
2289
- {
2290
- resource,
2291
- options
2292
- }
2293
- ) => {
2294
- return {
2295
- editor: this.instantiationService.createInstance(ChatEditorInput, resource, options),
2296
- options
2297
- };
2298
- }
2299
- }));
2300
- }
2301
- };
2302
- ChatResolverContribution = ( __decorate([( __param(0, IChatSessionsService)), ( __param(1, IEditorResolverService)), ( __param(2, IInstantiationService))], ChatResolverContribution));
2303
- let CopilotTelemetryContribution = class CopilotTelemetryContribution extends Disposable {
2304
- static {
2305
- this.ID = "workbench.contrib.copilotTelemetry";
2306
- }
2307
- constructor(telemetryService, chatEntitlementService) {
2308
- super();
2309
- this.telemetryService = telemetryService;
2310
- this.chatEntitlementService = chatEntitlementService;
2311
- this.updateCopilotTrackingId();
2312
- this._register(this.chatEntitlementService.onDidChangeEntitlement(() => {
2313
- this.updateCopilotTrackingId();
2314
- }));
2315
- }
2316
- updateCopilotTrackingId() {
2317
- const copilotTrackingId = this.chatEntitlementService.copilotTrackingId;
2318
- if (copilotTrackingId) {
2319
- this.telemetryService.setCommonProperty("common.copilotTrackingId", copilotTrackingId);
2320
- }
2321
- }
2322
- };
2323
- CopilotTelemetryContribution = ( __decorate([( __param(0, ITelemetryService)), ( __param(1, IChatEntitlementService))], CopilotTelemetryContribution));
2324
- let ChatDebugResolverContribution = class ChatDebugResolverContribution {
2325
- static {
2326
- this.ID = "workbench.contrib.chatDebugResolver";
2327
- }
2328
- constructor(editorResolverService) {
2329
- editorResolverService.registerEditor(`${ChatDebugEditorInput.RESOURCE.scheme}:**/**`, {
2330
- id: ChatDebugEditorInput.ID,
2331
- label: ( localize(5982, "Debug View")),
2332
- priority: RegisteredEditorPriority.exclusive
2333
- }, {
2334
- singlePerResource: true,
2335
- canSupportResource: resource => resource.scheme === ChatDebugEditorInput.RESOURCE.scheme
2336
- }, {
2337
- createEditorInput: () => {
2338
- return {
2339
- editor: ChatDebugEditorInput.instance,
2340
- options: {
2341
- pinned: true
2342
- }
2343
- };
2344
- }
2345
- });
2346
- }
2347
- };
2348
- ChatDebugResolverContribution = ( __decorate([( __param(0, IEditorResolverService))], ChatDebugResolverContribution));
2349
- let ChatAgentSettingContribution = class ChatAgentSettingContribution extends Disposable {
2350
- static {
2351
- this.ID = "workbench.contrib.chatAgentSetting";
2352
- }
2353
- constructor(experimentService, entitlementService, contextKeyService) {
2354
- super();
2355
- this.experimentService = experimentService;
2356
- this.entitlementService = entitlementService;
2357
- this.contextKeyService = contextKeyService;
2358
- this.newChatButtonExperimentIcon = ChatContextKeys.newChatButtonExperimentIcon.bindTo(this.contextKeyService);
2359
- this.registerMaxRequestsSetting();
2360
- this.registerNewChatButtonIcon();
2361
- this.registerDefaultModeSetting();
2362
- }
2363
- registerMaxRequestsSetting() {
2364
- let lastNode;
2365
- const registerMaxRequestsSetting = () => {
2366
- const treatmentId = this.entitlementService.entitlement === ChatEntitlement.Free ? "chatAgentMaxRequestsFree" : "chatAgentMaxRequestsPro";
2367
- this.experimentService.getTreatment(treatmentId).then(value => {
2368
- const node = {
2369
- id: "chatSidebar",
2370
- title: ( localize(5756, "Chat")),
2371
- type: "object",
2372
- properties: {
2373
- "chat.agent.maxRequests": {
2374
- type: "number",
2375
- markdownDescription: ( localize(
2376
- 5984,
2377
- "The maximum number of requests to allow per-turn when using an agent. When the limit is reached, will ask to confirm to continue."
2378
- )),
2379
- default: value ?? 50,
2380
- order: 2,
2381
- agentsWindow: {
2382
- default: 1000
2383
- }
2384
- }
2385
- }
2386
- };
2387
- configurationRegistry.updateConfigurations({
2388
- remove: lastNode ? [lastNode] : [],
2389
- add: [node]
2390
- });
2391
- lastNode = node;
2392
- });
2393
- };
2394
- this._register(Event.runAndSubscribe(
2395
- Event.debounce(this.entitlementService.onDidChangeEntitlement, () => {}, 1000),
2396
- () => registerMaxRequestsSetting()
2397
- ));
2398
- }
2399
- registerNewChatButtonIcon() {
2400
- this.experimentService.getTreatment("chatNewButtonIcon").then(value => {
2401
- const supportedValues = ["copilot", "new-session", "comment"];
2402
- if (typeof value === "string" && supportedValues.includes(value)) {
2403
- this.newChatButtonExperimentIcon.set(value);
2404
- } else {
2405
- this.newChatButtonExperimentIcon.reset();
2406
- }
2407
- });
2408
- }
2409
- registerDefaultModeSetting() {
2410
- this.experimentService.getTreatment("chatDefaultNewSessionMode").then(value => {
2411
- const node = {
2412
- id: "chatSidebar",
2413
- title: ( localize(5756, "Chat")),
2414
- type: "object",
2415
- properties: {
2416
- [ChatConfiguration.DefaultNewSessionMode]: {
2417
- type: "string",
2418
- description: ( localize(
2419
- 5887,
2420
- "The default mode for new chat sessions. When empty, the chat view's default mode is used."
2421
- )),
2422
- default: typeof value === "string" ? value : ""
2423
- }
2424
- }
2425
- };
2426
- configurationRegistry.updateConfigurations({
2427
- add: [node],
2428
- remove: []
2429
- });
2430
- });
2431
- }
2432
- };
2433
- ChatAgentSettingContribution = ( __decorate([( __param(0, IWorkbenchAssignmentService)), ( __param(1, IChatEntitlementService)), ( __param(2, IContextKeyService))], ChatAgentSettingContribution));
2434
- let ChatForegroundSessionCountContribution = class ChatForegroundSessionCountContribution extends Disposable {
2435
- static {
2436
- this.ID = "workbench.contrib.chatForegroundSessionCount";
2437
- }
2438
- constructor(contextKeyService, chatWidgetService, viewsService, editorService) {
2439
- super();
2440
- this.contextKeyService = contextKeyService;
2441
- this.chatWidgetService = chatWidgetService;
2442
- this.viewsService = viewsService;
2443
- this.editorService = editorService;
2444
- this.foregroundSessionCountContextKey = ChatContextKeys.foregroundSessionCount.bindTo(this.contextKeyService);
2445
- this._register(this.chatWidgetService.onDidAddWidget(() => {
2446
- this.updateForegroundSessionCount();
2447
- }));
2448
- this._register(this.editorService.onDidVisibleEditorsChange(() => {
2449
- this.updateForegroundSessionCount();
2450
- }));
2451
- this._register(
2452
- Event.filter(this.viewsService.onDidChangeViewVisibility, e => e.id === ChatViewId)(() => {
2453
- this.updateForegroundSessionCount();
2454
- })
2455
- );
2456
- this.updateForegroundSessionCount();
2457
- }
2458
- updateForegroundSessionCount() {
2459
- let count = this.viewsService.isViewVisible(ChatViewId) ? 1 : 0;
2460
- for (const widget of this.chatWidgetService.getWidgetsByLocations(ChatAgentLocation.Chat)) {
2461
- if (widget.domNode.offsetParent === null) {
2462
- continue;
2463
- }
2464
- if (isIChatViewViewContext(widget.viewContext)) {
2465
- continue;
2466
- }
2467
- if (isIChatResourceViewContext(widget.viewContext) && widget.viewContext.isQuickChat) {
2468
- continue;
2469
- }
2470
- count++;
2471
- }
2472
- this.foregroundSessionCountContextKey.set(count);
2473
- }
2474
- };
2475
- ChatForegroundSessionCountContribution = ( __decorate([( __param(0, IContextKeyService)), ( __param(1, IChatWidgetService)), ( __param(2, IViewsService)), ( __param(3, IEditorService))], ChatForegroundSessionCountContribution));
2476
- function getCustomModesWithUniqueNames(builtinModes, customModes) {
2477
- const customModeIds = ( new Set());
2478
- const builtinNames = ( new Set(( builtinModes.map(mode => mode.name.get()))));
2479
- const customNameToId = ( new Map());
2480
- for (const mode of customModes) {
2481
- const modeName = mode.name.get();
2482
- if (( builtinNames.has(modeName))) {
2483
- continue;
2484
- }
2485
- const existingId = customNameToId.get(modeName);
2486
- if (existingId) {
2487
- customModeIds.delete(existingId);
2488
- }
2489
- customNameToId.set(modeName, mode.id);
2490
- customModeIds.add(mode.id);
2491
- }
2492
- return customModeIds;
2493
- }
2494
- let ChatAgentActionsContribution = class ChatAgentActionsContribution extends Disposable {
2495
- static {
2496
- this.ID = "workbench.contrib.chatAgentActions";
2497
- }
2498
- constructor(chatModeService) {
2499
- super();
2500
- this.chatModeService = chatModeService;
2501
- this._modeActionDisposables = ( new DisposableMap());
2502
- this._store.add(this._modeActionDisposables);
2503
- const chatModes = this.chatModeService.getModes(SessionType.Local);
2504
- const {
2505
- builtin,
2506
- custom
2507
- } = chatModes;
2508
- const currentModeIds = getCustomModesWithUniqueNames(builtin, custom);
2509
- for (const mode of custom) {
2510
- if (( currentModeIds.has(mode.id))) {
2511
- this._registerModeAction(mode);
2512
- }
2513
- }
2514
- this._register(chatModes.onDidChange(() => {
2515
- const {
2516
- builtin,
2517
- custom
2518
- } = chatModes;
2519
- const currentModeIds = getCustomModesWithUniqueNames(builtin, custom);
2520
- for (const modeId of ( this._modeActionDisposables.keys())) {
2521
- if (!( currentModeIds.has(modeId))) {
2522
- this._modeActionDisposables.deleteAndDispose(modeId);
2523
- }
2524
- }
2525
- for (const mode of custom) {
2526
- if (( currentModeIds.has(mode.id)) && !( this._modeActionDisposables.has(mode.id))) {
2527
- this._registerModeAction(mode);
2528
- }
2529
- }
2530
- }));
2531
- }
2532
- _registerModeAction(mode) {
2533
- const actionClass = class extends ModeOpenChatGlobalAction {
2534
- constructor() {
2535
- super(mode);
2536
- }
2537
- };
2538
- this._modeActionDisposables.set(mode.id, registerAction2(actionClass));
2539
- }
2540
- };
2541
- ChatAgentActionsContribution = ( __decorate([( __param(0, IChatModeService))], ChatAgentActionsContribution));
2542
- let HookSchemaAssociationContribution = class HookSchemaAssociationContribution extends Disposable {
2543
- static {
2544
- this.ID = "workbench.contrib.hookSchemaAssociation";
2545
- }
2546
- constructor(_configurationService, _pathService) {
2547
- super();
2548
- this._configurationService = _configurationService;
2549
- this._pathService = _pathService;
2550
- this._registrations = this._register(( new DisposableStore()));
2551
- this._updateAssociations();
2552
- this._register(this._configurationService.onDidChangeConfiguration(e => {
2553
- if (e.affectsConfiguration(PromptsConfig.HOOKS_LOCATION_KEY)) {
2554
- this._updateAssociations();
2555
- }
2556
- }));
2557
- }
2558
- async _updateAssociations() {
2559
- this._registrations.clear();
2560
- const folders = PromptsConfig.promptSourceFolders(this._configurationService, PromptsType.hook);
2561
- const userHomeUri = await this._pathService.userHome();
2562
- const userHome = userHomeUri.fsPath ?? userHomeUri.path;
2563
- for (const folder of folders) {
2564
- if (folder.source === PromptFileSource.ClaudeWorkspace || folder.source === PromptFileSource.ClaudeWorkspaceLocal || folder.source === PromptFileSource.ClaudePersonal) {
2565
- continue;
2566
- }
2567
- const resolvedPath = isTildePath(folder.path) ? userHome + folder.path.substring(1) : folder.path;
2568
- const glob = resolvedPath.toLowerCase().endsWith(".json") ? resolvedPath : `${resolvedPath}/*.json`;
2569
- this._registrations.add(jsonContributionRegistry.registerSchemaAssociation(HOOK_SCHEMA_URI, glob));
2570
- }
2571
- }
2572
- };
2573
- HookSchemaAssociationContribution = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, IPathService))], HookSchemaAssociationContribution));
2574
- let ToolReferenceNamesContribution = class ToolReferenceNamesContribution extends Disposable {
2575
- static {
2576
- this.ID = "workbench.contrib.toolReferenceNames";
2577
- }
2578
- constructor(_languageModelToolsService) {
2579
- super();
2580
- this._languageModelToolsService = _languageModelToolsService;
2581
- this._updateToolReferenceNames();
2582
- this._register(
2583
- this._languageModelToolsService.onDidChangeTools(() => this._updateToolReferenceNames())
2584
- );
2585
- }
2586
- _updateToolReferenceNames() {
2587
- const tools = Array.from(this._languageModelToolsService.getAllToolsIncludingDisabled()).filter(tool => typeof tool.toolReferenceName === "string").sort((a, b) => a.toolReferenceName.localeCompare(b.toolReferenceName));
2588
- toolReferenceNameEnumValues.length = 0;
2589
- toolReferenceNameEnumDescriptions.length = 0;
2590
- for (const tool of tools) {
2591
- toolReferenceNameEnumValues.push(tool.toolReferenceName);
2592
- toolReferenceNameEnumDescriptions.push(( localize(
2593
- 5985,
2594
- "{0} - {1}",
2595
- tool.toolReferenceName,
2596
- tool.userDescription || tool.displayName
2597
- )));
2598
- }
2599
- configurationRegistry.notifyConfigurationSchemaUpdated({
2600
- id: "chatSidebar",
2601
- properties: {
2602
- [ChatConfiguration.EligibleForAutoApproval]: {}
2603
- }
2604
- });
2605
- }
2606
- };
2607
- ToolReferenceNamesContribution = ( __decorate([( __param(0, ILanguageModelToolsService))], ToolReferenceNamesContribution));
2608
- AccessibleViewRegistry.register(( new ChatTerminalOutputAccessibleView()));
2609
- AccessibleViewRegistry.register(( new ChatResponseAccessibleView()));
2610
- AccessibleViewRegistry.register(( new PanelChatAccessibilityHelp()));
2611
- AccessibleViewRegistry.register(( new QuickChatAccessibilityHelp()));
2612
- AccessibleViewRegistry.register(( new EditsChatAccessibilityHelp()));
2613
- AccessibleViewRegistry.register(( new AgentChatAccessibilityHelp()));
2614
- registerEditorFeature(ChatInputBoxContentProvider);
2615
- ( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(ChatEditorInput.TypeID, ChatEditorInputSerializer);
2616
- ( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(ChatDebugEditorInput.ID, ChatDebugEditorInputSerializer);
2617
- registerWorkbenchContribution2(
2618
- CopilotTelemetryContribution.ID,
2619
- CopilotTelemetryContribution,
2620
- WorkbenchPhase.BlockRestore
2621
- );
2622
- registerWorkbenchContribution2(
2623
- ChatResolverContribution.ID,
2624
- ChatResolverContribution,
2625
- WorkbenchPhase.BlockStartup
2626
- );
2627
- registerWorkbenchContribution2(
2628
- ChatDebugResolverContribution.ID,
2629
- ChatDebugResolverContribution,
2630
- WorkbenchPhase.BlockStartup
2631
- );
2632
- registerWorkbenchContribution2(
2633
- PromptsDebugContribution.ID,
2634
- PromptsDebugContribution,
2635
- WorkbenchPhase.BlockRestore
2636
- );
2637
- registerWorkbenchContribution2(
2638
- ChatLanguageModelsDataContribution.ID,
2639
- ChatLanguageModelsDataContribution,
2640
- WorkbenchPhase.BlockRestore
2641
- );
2642
- registerWorkbenchContribution2(
2643
- ChatSlashCommandsContribution.ID,
2644
- ChatSlashCommandsContribution,
2645
- WorkbenchPhase.Eventually
2646
- );
2647
- registerWorkbenchContribution2(
2648
- ChatSessionOptionSlashCommandsContribution.ID,
2649
- ChatSessionOptionSlashCommandsContribution,
2650
- WorkbenchPhase.Eventually
2651
- );
2652
- registerWorkbenchContribution2(
2653
- ChatExtensionPointHandler.ID,
2654
- ChatExtensionPointHandler,
2655
- WorkbenchPhase.BlockStartup
2656
- );
2657
- registerWorkbenchContribution2(
2658
- LanguageModelToolsExtensionPointHandler.ID,
2659
- LanguageModelToolsExtensionPointHandler,
2660
- WorkbenchPhase.BlockRestore
2661
- );
2662
- registerWorkbenchContribution2(
2663
- ChatPromptFilesExtensionPointHandler.ID,
2664
- ChatPromptFilesExtensionPointHandler,
2665
- WorkbenchPhase.BlockRestore
2666
- );
2667
- registerWorkbenchContribution2(
2668
- ChatCompatibilityNotifier.ID,
2669
- ChatCompatibilityNotifier,
2670
- WorkbenchPhase.Eventually
2671
- );
2672
- registerWorkbenchContribution2(
2673
- CodeBlockActionRendering.ID,
2674
- CodeBlockActionRendering,
2675
- WorkbenchPhase.BlockRestore
2676
- );
2677
- registerWorkbenchContribution2(
2678
- ChatCopyActionRendering.ID,
2679
- ChatCopyActionRendering,
2680
- WorkbenchPhase.BlockRestore
2681
- );
2682
- registerWorkbenchContribution2(
2683
- ChatImplicitContextContribution.ID,
2684
- ChatImplicitContextContribution,
2685
- WorkbenchPhase.Eventually
2686
- );
2687
- registerWorkbenchContribution2(
2688
- ChatViewsWelcomeHandler.ID,
2689
- ChatViewsWelcomeHandler,
2690
- WorkbenchPhase.BlockStartup
2691
- );
2692
- registerWorkbenchContribution2(
2693
- ChatGettingStartedContribution.ID,
2694
- ChatGettingStartedContribution,
2695
- WorkbenchPhase.Eventually
2696
- );
2697
- registerWorkbenchContribution2(
2698
- ChatSetupContribution.ID,
2699
- ChatSetupContribution,
2700
- WorkbenchPhase.BlockRestore
2701
- );
2702
- registerWorkbenchContribution2(
2703
- ChatTeardownContribution.ID,
2704
- ChatTeardownContribution,
2705
- WorkbenchPhase.AfterRestored
2706
- );
2707
- registerWorkbenchContribution2(ChatStatusBarEntry.ID, ChatStatusBarEntry, WorkbenchPhase.BlockRestore);
2708
- registerWorkbenchContribution2(
2709
- BuiltinToolsContribution.ID,
2710
- BuiltinToolsContribution,
2711
- WorkbenchPhase.Eventually
2712
- );
2713
- registerWorkbenchContribution2(
2714
- UsagesToolContribution.ID,
2715
- UsagesToolContribution,
2716
- WorkbenchPhase.BlockRestore
2717
- );
2718
- registerWorkbenchContribution2(
2719
- RenameToolContribution.ID,
2720
- RenameToolContribution,
2721
- WorkbenchPhase.BlockRestore
2722
- );
2723
- registerWorkbenchContribution2(
2724
- ChatAgentSettingContribution.ID,
2725
- ChatAgentSettingContribution,
2726
- WorkbenchPhase.AfterRestored
2727
- );
2728
- registerWorkbenchContribution2(
2729
- ChatForegroundSessionCountContribution.ID,
2730
- ChatForegroundSessionCountContribution,
2731
- WorkbenchPhase.AfterRestored
2732
- );
2733
- registerWorkbenchContribution2(
2734
- ChatAgentActionsContribution.ID,
2735
- ChatAgentActionsContribution,
2736
- WorkbenchPhase.Eventually
2737
- );
2738
- registerWorkbenchContribution2(
2739
- HookSchemaAssociationContribution.ID,
2740
- HookSchemaAssociationContribution,
2741
- WorkbenchPhase.AfterRestored
2742
- );
2743
- registerWorkbenchContribution2(
2744
- ToolReferenceNamesContribution.ID,
2745
- ToolReferenceNamesContribution,
2746
- WorkbenchPhase.AfterRestored
2747
- );
2748
- registerWorkbenchContribution2(
2749
- ChatAgentRecommendation.ID,
2750
- ChatAgentRecommendation,
2751
- WorkbenchPhase.Eventually
2752
- );
2753
- registerWorkbenchContribution2(
2754
- ChatEditingEditorAccessibility.ID,
2755
- ChatEditingEditorAccessibility,
2756
- WorkbenchPhase.AfterRestored
2757
- );
2758
- registerWorkbenchContribution2(
2759
- ChatQueuePickerRendering.ID,
2760
- ChatQueuePickerRendering,
2761
- WorkbenchPhase.BlockRestore
2762
- );
2763
- registerWorkbenchContribution2(
2764
- ChatEditingEditorOverlay.ID,
2765
- ChatEditingEditorOverlay,
2766
- WorkbenchPhase.AfterRestored
2767
- );
2768
- registerWorkbenchContribution2(
2769
- ChatEditingEditorContextKeys.ID,
2770
- ChatEditingEditorContextKeys,
2771
- WorkbenchPhase.AfterRestored
2772
- );
2773
- registerWorkbenchContribution2(
2774
- ChatTransferContribution.ID,
2775
- ChatTransferContribution,
2776
- WorkbenchPhase.BlockRestore
2777
- );
2778
- registerWorkbenchContribution2(
2779
- ChatContextContributions.ID,
2780
- ChatContextContributions,
2781
- WorkbenchPhase.AfterRestored
2782
- );
2783
- registerWorkbenchContribution2(PromptUrlHandler.ID, PromptUrlHandler, WorkbenchPhase.BlockRestore);
2784
- registerWorkbenchContribution2(PluginUrlHandler.ID, PluginUrlHandler, WorkbenchPhase.BlockRestore);
2785
- registerWorkbenchContribution2(
2786
- ChatEditingNotebookFileSystemProviderContrib.ID,
2787
- ChatEditingNotebookFileSystemProviderContrib,
2788
- WorkbenchPhase.BlockStartup
2789
- );
2790
- registerWorkbenchContribution2(
2791
- ChatResponseResourceWorkbenchContribution.ID,
2792
- ChatResponseResourceWorkbenchContribution,
2793
- WorkbenchPhase.AfterRestored
2794
- );
2795
- registerWorkbenchContribution2(
2796
- UserToolSetsContributions.ID,
2797
- UserToolSetsContributions,
2798
- WorkbenchPhase.Eventually
2799
- );
2800
- registerWorkbenchContribution2(
2801
- PromptLanguageFeaturesProvider.ID,
2802
- PromptLanguageFeaturesProvider,
2803
- WorkbenchPhase.Eventually
2804
- );
2805
- registerWorkbenchContribution2(ChatWindowNotifier.ID, ChatWindowNotifier, WorkbenchPhase.AfterRestored);
2806
- registerWorkbenchContribution2(
2807
- ChatRepoInfoContribution.ID,
2808
- ChatRepoInfoContribution,
2809
- WorkbenchPhase.Eventually
2810
- );
2811
- registerWorkbenchContribution2(
2812
- AgentPluginRecommendations.ID,
2813
- AgentPluginRecommendations,
2814
- WorkbenchPhase.Eventually
2815
- );
2816
- registerChatActions();
2817
- registerChatAccessibilityActions();
2818
- registerChatCopyActions();
2819
- registerChatOpenAgentDebugPanelAction();
2820
- registerChatCodeBlockActions();
2821
- registerChatCodeCompareBlockActions();
2822
- registerChatFileTreeActions();
2823
- registerChatPromptNavigationActions();
2824
- registerChatTitleActions();
2825
- registerChatExecuteActions();
2826
- registerChatQueueActions();
2827
- registerQuickChatActions();
2828
- registerChatExportActions();
2829
- registerChatForkActions();
2830
- registerMoveActions();
2831
- registerNewChatActions();
2832
- registerChatContextActions();
2833
- registerChatDeveloperActions();
2834
- registerChatEditorActions();
2835
- registerChatElicitationActions();
2836
- registerChatToolActions();
2837
- registerLanguageModelActions();
2838
- registerChatPluginActions();
2839
- registerPlanReviewFeedbackEditorActions();
2840
- registerAction2(ConfigureToolSets);
2841
- registerEditorFeature(ChatPasteProvidersFeature);
2842
- agentPluginDiscoveryRegistry.register(( new SyncDescriptor(ConfiguredAgentPluginDiscovery)));
2843
- agentPluginDiscoveryRegistry.register(( new SyncDescriptor(MarketplaceAgentPluginDiscovery)));
2844
- agentPluginDiscoveryRegistry.register(( new SyncDescriptor(ExtensionAgentPluginDiscovery)));
2845
- agentPluginDiscoveryRegistry.register(( new SyncDescriptor(CopilotCliAgentPluginDiscovery)));
2846
- ChatWidget.CONTRIBS.push(ChatDynamicVariableModel);
5
+ registerAction2(ForkConversationAction);