@codingame/monaco-vscode-chat-service-override 27.0.0 → 28.0.1

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 (251) hide show
  1. package/index.js +5 -2
  2. package/package.json +5 -5
  3. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +54 -4
  4. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +179 -11
  5. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +5 -1
  6. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +6 -1
  7. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +25 -10
  8. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +67 -0
  9. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +263 -0
  10. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +6 -0
  11. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +25 -6
  12. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  13. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +15 -15
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +13 -5
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +5 -5
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +5 -4
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +7 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +2 -2
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +13 -13
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +12 -12
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +49 -13
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +58 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +537 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.d.ts +17 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +55 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +26 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.js +9 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/media/agentPluginEditor.css +32 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +17 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +89 -11
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +4 -26
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +146 -53
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +56 -54
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +25 -25
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +13 -12
  60. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -9
  61. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +189 -145
  62. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +42 -44
  63. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +3 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -8
  66. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +210 -59
  67. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +14 -3
  69. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -3
  70. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +122 -53
  71. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +87 -9
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +62 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +702 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +279 -214
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +12 -3
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +12 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +63 -4
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +18 -18
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +6 -6
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +4 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +62 -24
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +9 -9
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +2 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +7 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +2 -5
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +32 -36
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +2 -2
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +49 -49
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +9 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +14 -14
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +13 -13
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +3 -1
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +103 -60
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +61 -61
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +66 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +245 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +78 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.js +234 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +31 -126
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +229 -524
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.d.ts +41 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.js +22 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +4 -3
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +54 -20
  137. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  138. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +11 -12
  139. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +112 -39
  140. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +99 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +489 -0
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +6 -3
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +348 -285
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +18 -1
  146. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +107 -5
  147. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  148. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +4 -4
  149. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  150. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  151. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  152. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  153. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +2 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +55 -38
  155. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +20 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +148 -60
  157. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
  158. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  159. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
  160. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +29 -14
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +72 -14
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +5 -3
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +5 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +11 -10
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +1 -0
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +8 -0
  175. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +20 -0
  176. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +72 -23
  178. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +19 -1
  179. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +5 -1
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -1
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +37 -8
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +36 -3
  183. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +4 -4
  184. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +2 -2
  185. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +6 -1
  186. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +71 -25
  187. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +217 -91
  188. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +85 -3
  189. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +257 -63
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +3 -16
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +7 -50
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +2 -1
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +32 -3
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +1 -1
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +3 -1
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +7 -6
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +26 -1
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +287 -88
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +10 -1
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +75 -20
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +121 -0
  205. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +1422 -0
  206. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  207. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +5 -1
  208. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +81 -41
  209. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -1
  210. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +8 -6
  211. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  212. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.d.ts +14 -2
  213. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +54 -5
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +6 -5
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +4 -4
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +38 -22
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +8 -8
  219. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  220. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  221. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  222. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  223. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  224. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +8 -0
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +36 -18
  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/runInTerminalTool.d.ts +6 -0
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +27 -13
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +1 -1
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -0
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +8 -1
  250. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.d.ts +0 -12
  251. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +0 -67
@@ -23,6 +23,10 @@ import { ILanguageModelChatMetadata } from "@codingame/monaco-vscode-api/vscode/
23
23
  import { ILanguageModelToolsConfirmationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsConfirmationService.service";
24
24
  import { CountTokensCallback, IBeginToolCallOptions, IToolAndToolSetEnablementMap, IToolData, IToolImpl, IToolInvocation, IToolInvokedEvent, IToolResult, IToolSet, ToolDataSource, ToolSet } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
25
25
  import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service";
26
+ import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
27
+ export declare enum AutoApproveStorageKeys {
28
+ GlobalAutoApproveOptIn = "chat.tools.global.autoApprove.optIn"
29
+ }
26
30
  export declare const globalAutoApproveDescription: import("@codingame/monaco-vscode-api/vscode/vs/nls").ILocalizedString;
27
31
  export declare class LanguageModelToolsService extends Disposable implements ILanguageModelToolsService {
28
32
  private readonly _instantiationService;
@@ -38,6 +42,7 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
38
42
  private readonly _storageService;
39
43
  private readonly _confirmationService;
40
44
  private readonly _commandService;
45
+ private readonly _chatWidgetService;
41
46
  _serviceBrand: undefined;
42
47
  readonly vscodeToolSet: ToolSet;
43
48
  readonly executeToolSet: ToolSet;
@@ -60,8 +65,10 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
60
65
  private readonly _callsByRequestId;
61
66
  /** Pending tool calls in the streaming phase, keyed by toolCallId */
62
67
  private readonly _pendingToolCalls;
68
+ /** Deduplicates _checkGlobalAutoApprove calls within this window */
69
+ private _pendingGlobalAutoApproveCheck;
63
70
  private readonly _isAgentModeEnabled;
64
- constructor(_instantiationService: IInstantiationService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _chatService: IChatService, _dialogService: IDialogService, _telemetryService: ITelemetryService, _logService: ILogService, _configurationService: IConfigurationService, _accessibilityService: IAccessibilityService, _accessibilitySignalService: IAccessibilitySignalService, _storageService: IStorageService, _confirmationService: ILanguageModelToolsConfirmationService, _commandService: ICommandService);
71
+ constructor(_instantiationService: IInstantiationService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _chatService: IChatService, _dialogService: IDialogService, _telemetryService: ITelemetryService, _logService: ILogService, _configurationService: IConfigurationService, _accessibilityService: IAccessibilityService, _accessibilitySignalService: IAccessibilitySignalService, _storageService: IStorageService, _confirmationService: ILanguageModelToolsConfirmationService, _commandService: ICommandService, _chatWidgetService: IChatWidgetService);
65
72
  /**
66
73
  * Returns if the given tool or toolset is permitted in the current context.
67
74
  * When agent mode is enabled, all tools are permitted (no restriction)
@@ -106,11 +113,23 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
106
113
  private ensureToolDetails;
107
114
  private formatToolInput;
108
115
  private toolResultToIO;
116
+ /**
117
+ * Returns true if enterprise policy has explicitly disabled the global auto-approve setting.
118
+ * When this is the case, Bypass Approvals and Autopilot permission levels should not auto-approve tools.
119
+ */
120
+ private _isAutoApprovePolicyRestricted;
121
+ /**
122
+ * Returns true if the session's current (live) permission picker level is auto-approve.
123
+ * This checks the widget's current state, not what was stamped on the request,
124
+ * so switching to Autopilot mid-session takes effect immediately.
125
+ */
126
+ private _isSessionLiveAutoApproveLevel;
109
127
  private getEligibleForAutoApprovalSpecialCase;
110
128
  private isToolEligibleForAutoApproval;
111
129
  private shouldAutoConfirm;
112
130
  private shouldAutoConfirmPostExecution;
113
131
  private _checkGlobalAutoApprove;
132
+ private _doCheckGlobalAutoApprove;
114
133
  private cleanupCallDisposables;
115
134
  cancelToolCallsForRequest(requestId: string): void;
116
135
  private static readonly githubMCPServerAliases;
@@ -38,13 +38,14 @@ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbenc
38
38
  import { toToolSetVariableEntry, toToolVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
39
39
  import { ToolConfirmKind, IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
40
40
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
41
- import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
41
+ import { ChatConfiguration, isAutoApproveLevel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
42
42
  import { ChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation';
43
43
  import { chatSessionResourceToId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
44
- import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
44
+ import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes';
45
45
  import { ILanguageModelToolsConfirmationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsConfirmationService.service';
46
46
  import { ToolDataSource, VSCodeToolReference, SpecedToolAliases, isToolSet, createToolSchemaUri, toolMatchesModel, ToolInvocationPresentation, stringifyPromptTsxPart, ToolSetForModel, ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
47
47
  import { getToolConfirmationAlert } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider';
48
+ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
48
49
  import { ObservableSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/set';
49
50
  import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
50
51
  import { observableFromEventOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
@@ -60,7 +61,7 @@ var AutoApproveStorageKeys;
60
61
  const SkipAutoApproveConfirmationKey = "vscode.chat.tools.global.autoApprove.testMode";
61
62
  const toolIdThatCannotBeAutoApproved = "vscode_get_confirmation_with_options";
62
63
  const globalAutoApproveDescription = ( localize2(
63
- 6345,
64
+ 6440,
64
65
  "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](https://github.com/features/codespaces) and [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) have user keys forwarded into the container that could be compromised.\n\n**This feature disables [critical security protections](https://code.visualstudio.com/docs/copilot/security) 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`](command:workbench.action.openSettings?%5B%22chat.autoReply%22%5D) setting."
65
66
  ));
66
67
  let LanguageModelToolsService = class LanguageModelToolsService extends Disposable {
@@ -80,7 +81,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
80
81
  _accessibilitySignalService,
81
82
  _storageService,
82
83
  _confirmationService,
83
- _commandService
84
+ _commandService,
85
+ _chatWidgetService
84
86
  ) {
85
87
  super();
86
88
  this._instantiationService = _instantiationService;
@@ -96,6 +98,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
96
98
  this._storageService = _storageService;
97
99
  this._confirmationService = _confirmationService;
98
100
  this._commandService = _commandService;
101
+ this._chatWidgetService = _chatWidgetService;
99
102
  this._onDidChangeTools = this._register(( new Emitter()));
100
103
  this.onDidChangeTools = this._onDidChangeTools.event;
101
104
  this._onDidPrepareToolCallBecomeUnresponsive = this._register(( new Emitter()));
@@ -161,25 +164,25 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
161
164
  this.vscodeToolSet = this._register(
162
165
  this.createToolSet(ToolDataSource.Internal, "vscode", VSCodeToolReference.vscode, {
163
166
  icon: ThemeIcon.fromId(Codicon.vscode.id),
164
- description: ( localize(6346, "Use VS Code features"))
167
+ description: ( localize(6441, "Use VS Code features"))
165
168
  })
166
169
  );
167
170
  this.executeToolSet = this._register(
168
171
  this.createToolSet(ToolDataSource.Internal, "execute", SpecedToolAliases.execute, {
169
172
  icon: ThemeIcon.fromId(Codicon.terminal.id),
170
- description: ( localize(6347, "Execute code and applications on your machine"))
173
+ description: ( localize(6442, "Execute code and applications on your machine"))
171
174
  })
172
175
  );
173
176
  this.readToolSet = this._register(
174
177
  this.createToolSet(ToolDataSource.Internal, "read", SpecedToolAliases.read, {
175
178
  icon: ThemeIcon.fromId(Codicon.book.id),
176
- description: ( localize(6348, "Read files in your workspace"))
179
+ description: ( localize(6443, "Read files in your workspace"))
177
180
  })
178
181
  );
179
182
  this.agentToolSet = this._register(
180
183
  this.createToolSet(ToolDataSource.Internal, "agent", SpecedToolAliases.agent, {
181
184
  icon: ThemeIcon.fromId(Codicon.agent.id),
182
- description: ( localize(6349, "Delegate tasks to other agents"))
185
+ description: ( localize(6444, "Delegate tasks to other agents"))
183
186
  })
184
187
  );
185
188
  }
@@ -333,8 +336,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
333
336
  return undefined;
334
337
  }
335
338
  _handlePreToolUseDenial(dto, hookResult, toolData, pendingInvocation, request) {
336
- const hookReason = hookResult.permissionDecisionReason ?? ( localize(6350, "Hook denied tool execution"));
337
- const reason = ( localize(6351, "Denied by {0} hook: {1}", HookType.PreToolUse, hookReason));
339
+ const hookReason = hookResult.permissionDecisionReason ?? ( localize(6445, "Hook denied tool execution"));
340
+ const reason = ( localize(6446, "Denied by {0} hook: {1}", HookType.PreToolUse, hookReason));
338
341
  this._logService.debug(
339
342
  `[LanguageModelToolsService#invokeTool] Tool ${dto.toolId} denied by preToolUse hook: ${hookReason}`
340
343
  );
@@ -525,7 +528,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
525
528
  dto.toolSpecificData = toolInvocation?.toolSpecificData;
526
529
  if (preparedInvocation?.confirmationMessages?.title) {
527
530
  if (!IChatToolInvocation.executionConfirmedOrDenied(toolInvocation) && !autoConfirmed) {
528
- this.playAccessibilitySignal([toolInvocation]);
531
+ this.playAccessibilitySignal([toolInvocation], dto.context?.sessionResource);
529
532
  }
530
533
  const userConfirmed = await IChatToolInvocation.awaitConfirmation(toolInvocation, token);
531
534
  if (userConfirmed.type === ToolConfirmKind.Denied) {
@@ -584,7 +587,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
584
587
  tool.data.runsInWorkspace,
585
588
  tool.data.source,
586
589
  dto.parameters,
587
- dto.context?.sessionResource
590
+ dto.context?.sessionResource,
591
+ dto.chatRequestId
588
592
  ));
589
593
  if (toolInvocation && afterExecuteState?.type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
590
594
  const postConfirm = await IChatToolInvocation.awaitPostConfirmation(toolInvocation, token);
@@ -652,7 +656,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
652
656
  async prepareToolInvocationWithHookResult(tool, dto, hookResult, token) {
653
657
  let forceConfirmationReason;
654
658
  if (hookResult?.permissionDecision === "ask") {
655
- const hookMessage = ( localize(6352, "{0} required confirmation", HookType.PreToolUse));
659
+ const hookMessage = ( localize(6447, "{0} required confirmation", HookType.PreToolUse));
656
660
  forceConfirmationReason = hookResult.permissionDecisionReason ? `${hookMessage}: ${hookResult.permissionDecisionReason}` : hookMessage;
657
661
  }
658
662
  return this.prepareToolInvocation(tool, dto, forceConfirmationReason, token);
@@ -665,7 +669,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
665
669
  return {
666
670
  autoConfirmed: {
667
671
  type: ToolConfirmKind.ConfirmationNotNeeded,
668
- reason: ( localize(6353, "Allowed by hook"))
672
+ reason: ( localize(6448, "Allowed by hook"))
669
673
  },
670
674
  preparedInvocation
671
675
  };
@@ -681,14 +685,14 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
681
685
  const fullReferenceName = getToolFullReferenceName(tool.data);
682
686
  const hookReason = hookResult.permissionDecisionReason;
683
687
  const hookNote = hookReason ? ( localize(
684
- 6354,
688
+ 6449,
685
689
  "{0} hook required confirmation: {1}",
686
690
  HookType.PreToolUse,
687
691
  hookReason
688
- )) : ( localize(6355, "{0} hook required confirmation", HookType.PreToolUse));
692
+ )) : ( localize(6450, "{0} hook required confirmation", HookType.PreToolUse));
689
693
  preparedInvocation.confirmationMessages = {
690
694
  ...preparedInvocation.confirmationMessages,
691
- title: ( localize(6356, "Use the '{0}' tool?", fullReferenceName)),
695
+ title: ( localize(6451, "Use the '{0}' tool?", fullReferenceName)),
692
696
  message: ( new MarkdownString(`_${hookNote}_`)),
693
697
  allowAutoConfirm: false
694
698
  };
@@ -699,11 +703,11 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
699
703
  } else {
700
704
  const hookReason = hookResult.permissionDecisionReason;
701
705
  const hookNote = hookReason ? ( localize(
702
- 6357,
706
+ 6452,
703
707
  "{0} hook required confirmation: {1}",
704
708
  HookType.PreToolUse,
705
709
  hookReason
706
- )) : ( localize(6358, "{0} hook required confirmation", HookType.PreToolUse));
710
+ )) : ( localize(6453, "{0} hook required confirmation", HookType.PreToolUse));
707
711
  const existing = preparedInvocation.confirmationMessages;
708
712
  if (preparedInvocation.toolSpecificData?.kind === "terminal") {
709
713
  const existingDisclaimerText = existing.disclaimer ? (typeof existing.disclaimer === "string" ? existing.disclaimer : existing.disclaimer.value) : undefined;
@@ -732,7 +736,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
732
736
  tool.data.runsInWorkspace,
733
737
  tool.data.source,
734
738
  dto.parameters,
735
- sessionResource
739
+ sessionResource,
740
+ dto.chatRequestId
736
741
  );
737
742
  return {
738
743
  autoConfirmed,
@@ -768,10 +773,10 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
768
773
  const fullReferenceName = getToolFullReferenceName(tool.data);
769
774
  prepared.confirmationMessages = {
770
775
  ...prepared.confirmationMessages,
771
- title: ( localize(6359, "Confirm tool execution")),
772
- message: ( localize(6360, "Run the '{0}' tool?", fullReferenceName)),
776
+ title: ( localize(6454, "Confirm tool execution")),
777
+ message: ( localize(6455, "Run the '{0}' tool?", fullReferenceName)),
773
778
  disclaimer: tool.data.id === toolIdThatCannotBeAutoApproved ? undefined : ( new MarkdownString(( localize(
774
- 6361,
779
+ 6456,
775
780
  "Auto approval for '{0}' is restricted via {1}.",
776
781
  getToolFullReferenceName(tool.data),
777
782
  createMarkdownCommandLink({
@@ -787,7 +792,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
787
792
  }
788
793
  if (!isEligibleForAutoApproval && prepared?.confirmationMessages?.title) {
789
794
  prepared.confirmationMessages.disclaimer = tool.data.id === toolIdThatCannotBeAutoApproved ? undefined : ( new MarkdownString(( localize(
790
- 6361,
795
+ 6456,
791
796
  "Auto approval for '{0}' is restricted via {1}.",
792
797
  getToolFullReferenceName(tool.data),
793
798
  createMarkdownCommandLink({
@@ -877,11 +882,18 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
877
882
  await this._callHandleToolStream(toolEntry, invocation, toolCallId, partialInput, token);
878
883
  }
879
884
  }
880
- playAccessibilitySignal(toolInvocations) {
885
+ playAccessibilitySignal(toolInvocations, chatSessionResource) {
881
886
  const autoApproved = this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove);
882
887
  if (autoApproved) {
883
888
  return;
884
889
  }
890
+ if (chatSessionResource) {
891
+ const model = this._chatService.getSession(chatSessionResource);
892
+ const request = model?.getRequests().at(-1);
893
+ if (isAutoApproveLevel(request?.modeInfo?.permissionLevel) || this._isSessionLiveAutoApproveLevel(chatSessionResource)) {
894
+ return;
895
+ }
896
+ }
885
897
  const pendingInvocations = toolInvocations.filter(inv => !IChatToolInvocation.executionConfirmedOrDenied(inv));
886
898
  if (pendingInvocations.length === 0) {
887
899
  return;
@@ -936,6 +948,14 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
936
948
  }
937
949
  }));
938
950
  }
951
+ _isAutoApprovePolicyRestricted() {
952
+ const inspected = this._configurationService.inspect(ChatConfiguration.GlobalAutoApprove);
953
+ return inspected.policyValue === false;
954
+ }
955
+ _isSessionLiveAutoApproveLevel(chatSessionResource) {
956
+ const widget = this._chatWidgetService.getWidgetBySessionResource(chatSessionResource) ?? this._chatWidgetService.lastFocusedWidget;
957
+ return !!widget && isAutoApproveLevel(widget.input.currentModeInfo.permissionLevel);
958
+ }
939
959
  getEligibleForAutoApprovalSpecialCase(toolData) {
940
960
  if (toolData.id === "vscode_fetchWebPage_internal") {
941
961
  return "fetch";
@@ -971,11 +991,28 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
971
991
  }
972
992
  return true;
973
993
  }
974
- async shouldAutoConfirm(toolId, runsInWorkspace, source, parameters, chatSessionResource) {
994
+ async shouldAutoConfirm(
995
+ toolId,
996
+ runsInWorkspace,
997
+ source,
998
+ parameters,
999
+ chatSessionResource,
1000
+ chatRequestId
1001
+ ) {
975
1002
  const tool = this._tools.get(toolId);
976
1003
  if (!tool) {
977
1004
  return undefined;
978
1005
  }
1006
+ if (chatSessionResource && !this._isAutoApprovePolicyRestricted()) {
1007
+ const model = this._chatService.getSession(chatSessionResource);
1008
+ const request = model?.getRequests().at(-1);
1009
+ if (isAutoApproveLevel(request?.modeInfo?.permissionLevel) || this._isSessionLiveAutoApproveLevel(chatSessionResource)) {
1010
+ return {
1011
+ type: ToolConfirmKind.ConfirmationNotNeeded,
1012
+ reason: "auto-approve-all"
1013
+ };
1014
+ }
1015
+ }
979
1016
  if (!this.isToolEligibleForAutoApproval(tool.data)) {
980
1017
  return undefined;
981
1018
  }
@@ -1007,7 +1044,24 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
1007
1044
  }
1008
1045
  return undefined;
1009
1046
  }
1010
- async shouldAutoConfirmPostExecution(toolId, runsInWorkspace, source, parameters, chatSessionResource) {
1047
+ async shouldAutoConfirmPostExecution(
1048
+ toolId,
1049
+ runsInWorkspace,
1050
+ source,
1051
+ parameters,
1052
+ chatSessionResource,
1053
+ chatRequestId
1054
+ ) {
1055
+ if (chatSessionResource && !this._isAutoApprovePolicyRestricted()) {
1056
+ const model = this._chatService.getSession(chatSessionResource);
1057
+ const request = model?.getRequests().at(-1);
1058
+ if (isAutoApproveLevel(request?.modeInfo?.permissionLevel) || this._isSessionLiveAutoApproveLevel(chatSessionResource)) {
1059
+ return {
1060
+ type: ToolConfirmKind.ConfirmationNotNeeded,
1061
+ reason: "auto-approve-all"
1062
+ };
1063
+ }
1064
+ }
1011
1065
  if (this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove) && (await this._checkGlobalAutoApprove())) {
1012
1066
  return {
1013
1067
  type: ToolConfirmKind.Setting,
@@ -1033,38 +1087,73 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
1033
1087
  if (this._contextKeyService.getContextKeyValue(SkipAutoApproveConfirmationKey) === true) {
1034
1088
  return true;
1035
1089
  }
1036
- const promptResult = await this._dialogService.prompt({
1037
- type: Severity.Warning,
1038
- message: ( localize(6362, "Enable global auto approve?")),
1039
- buttons: [{
1040
- label: ( localize(6363, "Enable")),
1041
- run: () => true
1042
- }, {
1043
- label: ( localize(6364, "Disable")),
1044
- run: () => false
1045
- }],
1046
- custom: {
1047
- icon: Codicon.warning,
1048
- markdownDetails: [{
1049
- markdown: ( new MarkdownString(globalAutoApproveDescription.value, {
1050
- isTrusted: {
1051
- enabledCommands: ["workbench.action.openSettings"]
1052
- }
1053
- }))
1054
- }]
1090
+ if (this._pendingGlobalAutoApproveCheck) {
1091
+ return this._pendingGlobalAutoApproveCheck;
1092
+ }
1093
+ this._pendingGlobalAutoApproveCheck = this._doCheckGlobalAutoApprove();
1094
+ try {
1095
+ return await this._pendingGlobalAutoApproveCheck;
1096
+ } finally {
1097
+ this._pendingGlobalAutoApproveCheck = undefined;
1098
+ }
1099
+ }
1100
+ async _doCheckGlobalAutoApprove() {
1101
+ const store = ( new DisposableStore());
1102
+ try {
1103
+ const cts = ( new CancellationTokenSource());
1104
+ store.add(cts);
1105
+ store.add(this._storageService.onDidChangeValue(
1106
+ StorageScope.APPLICATION,
1107
+ AutoApproveStorageKeys.GlobalAutoApproveOptIn,
1108
+ store
1109
+ )(() => {
1110
+ if (this._storageService.getBoolean(
1111
+ AutoApproveStorageKeys.GlobalAutoApproveOptIn,
1112
+ StorageScope.APPLICATION,
1113
+ false
1114
+ )) {
1115
+ cts.cancel();
1116
+ }
1117
+ }));
1118
+ const promptResult = await this._dialogService.prompt({
1119
+ type: Severity.Warning,
1120
+ message: ( localize(6457, "Enable global auto approve?")),
1121
+ buttons: [{
1122
+ label: ( localize(6458, "Enable")),
1123
+ run: () => true
1124
+ }, {
1125
+ label: ( localize(6459, "Disable")),
1126
+ run: () => false
1127
+ }],
1128
+ custom: {
1129
+ icon: Codicon.warning,
1130
+ markdownDetails: [{
1131
+ markdown: ( new MarkdownString(globalAutoApproveDescription.value, {
1132
+ isTrusted: {
1133
+ enabledCommands: ["workbench.action.openSettings"]
1134
+ }
1135
+ }))
1136
+ }]
1137
+ },
1138
+ token: cts.token
1139
+ });
1140
+ if (cts.token.isCancellationRequested) {
1141
+ return true;
1055
1142
  }
1056
- });
1057
- if (promptResult.result !== true) {
1058
- await this._configurationService.updateValue(ChatConfiguration.GlobalAutoApprove, false);
1059
- return false;
1143
+ if (promptResult.result !== true) {
1144
+ await this._configurationService.updateValue(ChatConfiguration.GlobalAutoApprove, false);
1145
+ return false;
1146
+ }
1147
+ this._storageService.store(
1148
+ AutoApproveStorageKeys.GlobalAutoApproveOptIn,
1149
+ true,
1150
+ StorageScope.APPLICATION,
1151
+ StorageTarget.USER
1152
+ );
1153
+ return true;
1154
+ } finally {
1155
+ store.dispose();
1060
1156
  }
1061
- this._storageService.store(
1062
- AutoApproveStorageKeys.GlobalAutoApproveOptIn,
1063
- true,
1064
- StorageScope.APPLICATION,
1065
- StorageTarget.USER
1066
- );
1067
- return true;
1068
1157
  }
1069
1158
  cleanupCallDisposables(requestId, store) {
1070
1159
  if (requestId) {
@@ -1089,7 +1178,6 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
1089
1178
  }
1090
1179
  for (const [toolCallId, invocation] of this._pendingToolCalls) {
1091
1180
  if (invocation.chatRequestId === requestId) {
1092
- invocation.cancelFromStreaming(ToolConfirmKind.Skipped);
1093
1181
  this._pendingToolCalls.delete(toolCallId);
1094
1182
  }
1095
1183
  }
@@ -1360,7 +1448,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
1360
1448
  return getToolFullReferenceName(tool, toolSet);
1361
1449
  }
1362
1450
  };
1363
- LanguageModelToolsService = LanguageModelToolsService_1 = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IExtensionService)), ( __param(2, IContextKeyService)), ( __param(3, IChatService)), ( __param(4, IDialogService)), ( __param(5, ITelemetryService)), ( __param(6, ILogService)), ( __param(7, IConfigurationService)), ( __param(8, IAccessibilityService)), ( __param(9, IAccessibilitySignalService)), ( __param(10, IStorageService)), ( __param(11, ILanguageModelToolsConfirmationService)), ( __param(12, ICommandService))], LanguageModelToolsService));
1451
+ LanguageModelToolsService = LanguageModelToolsService_1 = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IExtensionService)), ( __param(2, IContextKeyService)), ( __param(3, IChatService)), ( __param(4, IDialogService)), ( __param(5, ITelemetryService)), ( __param(6, ILogService)), ( __param(7, IConfigurationService)), ( __param(8, IAccessibilityService)), ( __param(9, IAccessibilitySignalService)), ( __param(10, IStorageService)), ( __param(11, ILanguageModelToolsConfirmationService)), ( __param(12, ICommandService)), ( __param(13, IChatWidgetService))], LanguageModelToolsService));
1364
1452
  function getToolFullReferenceName(tool, toolSet) {
1365
1453
  const toolName = tool.toolReferenceName ?? tool.displayName;
1366
1454
  if (toolSet) {
@@ -1377,4 +1465,4 @@ function getToolSetFullReferenceName(toolSet) {
1377
1465
  return toolSet.referenceName;
1378
1466
  }
1379
1467
 
1380
- export { LanguageModelToolsService, globalAutoApproveDescription };
1468
+ export { AutoApproveStorageKeys, LanguageModelToolsService, globalAutoApproveDescription };
@@ -71,8 +71,8 @@ let RenameTool = class RenameTool extends Disposable {
71
71
  toolReferenceName: "rename",
72
72
  canBeReferencedInPrompt: false,
73
73
  icon: ThemeIcon.fromId(Codicon.rename.id),
74
- displayName: ( localize(6365, "Rename Symbol")),
75
- userDescription: ( localize(6366, "Rename a symbol across the workspace")),
74
+ displayName: ( localize(6460, "Rename Symbol")),
75
+ userDescription: ( localize(6461, "Rename a symbol across the workspace")),
76
76
  modelDescription,
77
77
  source: ToolDataSource.Internal,
78
78
  when: ( ContextKeyExpr.has("config.chat.tools.renameTool.enabled")),
@@ -107,7 +107,7 @@ let RenameTool = class RenameTool extends Disposable {
107
107
  async prepareToolInvocation(context, _token) {
108
108
  const input = context.parameters;
109
109
  return {
110
- invocationMessage: ( localize(6367, "Renaming `{0}` to `{1}`", input.symbol, input.newName))
110
+ invocationMessage: ( localize(6462, "Renaming `{0}` to `{1}`", input.symbol, input.newName))
111
111
  };
112
112
  }
113
113
  async invoke(invocation, _countTokens, _progress, token) {
@@ -195,13 +195,13 @@ let RenameTool = class RenameTool extends Disposable {
195
195
  }
196
196
  _successResult(input, fileCount, editCount) {
197
197
  const text = editCount === 1 ? ( localize(
198
- 6368,
198
+ 6463,
199
199
  "Renamed `{0}` to `{1}` - 1 edit in {2} file.",
200
200
  input.symbol,
201
201
  input.newName,
202
202
  fileCount
203
203
  )) : ( localize(
204
- 6369,
204
+ 6464,
205
205
  "Renamed `{0}` to `{1}` - {2} edits across {3} files.",
206
206
  input.symbol,
207
207
  input.newName,
@@ -44,7 +44,7 @@ const toolSetsSchema = {
44
44
  allowComments: true,
45
45
  allowTrailingCommas: true,
46
46
  defaultSnippets: [{
47
- label: ( localize(6370, "Empty tool set")),
47
+ label: ( localize(6465, "Empty tool set")),
48
48
  body: {
49
49
  "${1:toolSetName}": {
50
50
  "tools": ["${2:someTool}", "${3:anotherTool}"],
@@ -54,7 +54,7 @@ const toolSetsSchema = {
54
54
  }
55
55
  }],
56
56
  type: "object",
57
- description: ( localize(6371, "User tool sets configuration")),
57
+ description: ( localize(6466, "User tool sets configuration")),
58
58
  additionalProperties: {
59
59
  type: "object",
60
60
  required: ["tools"],
@@ -62,7 +62,7 @@ const toolSetsSchema = {
62
62
  properties: {
63
63
  tools: {
64
64
  description: ( localize(
65
- 6372,
65
+ 6467,
66
66
  "A list of tools or tool sets to include in this tool set. Cannot be empty and must reference tools the way they are referenced in prompts."
67
67
  )),
68
68
  type: "array",
@@ -75,7 +75,7 @@ const toolSetsSchema = {
75
75
  },
76
76
  icon: {
77
77
  description: ( localize(
78
- 6373,
78
+ 6468,
79
79
  "Icon to use for this tool set in the UI. Uses the \"\\$(name)\"-syntax, like \"\\$(zap)\""
80
80
  )),
81
81
  type: "string",
@@ -83,7 +83,7 @@ const toolSetsSchema = {
83
83
  markdownEnumDescriptions: Array.from(getAllCodicons(), icon => `$(${icon.id})`)
84
84
  },
85
85
  description: {
86
- description: ( localize(6374, "A short description of this tool set.")),
86
+ description: ( localize(6469, "A short description of this tool set.")),
87
87
  type: "string"
88
88
  }
89
89
  }
@@ -184,7 +184,7 @@ let UserToolSetsContributions = class UserToolSetsContributions extends Disposab
184
184
  });
185
185
  for (const item of data) {
186
186
  toolEnumValues.push(item.name);
187
- toolEnumDescriptions.push(( localize(6375, "{1} ({0})\n\n{2}", item.sourceLabel, item.name, item.description)));
187
+ toolEnumDescriptions.push(( localize(6470, "{1} ({0})\n\n{2}", item.sourceLabel, item.name, item.description)));
188
188
  }
189
189
  store.clear();
190
190
  reg.registerSchema(toolSetSchemaId, toolSetsSchema, store);
@@ -281,8 +281,8 @@ class ConfigureToolSets extends Action2 {
281
281
  constructor() {
282
282
  super({
283
283
  id: ConfigureToolSets.ID,
284
- title: ( localize2(6376, "Configure Tool Sets...")),
285
- shortTitle: ( localize(6377, "Tool Sets")),
284
+ title: ( localize2(6471, "Configure Tool Sets...")),
285
+ shortTitle: ( localize(6472, "Tool Sets")),
286
286
  category: CHAT_CATEGORY,
287
287
  f1: true,
288
288
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ChatContextKeys.Tools.toolsCount.greater(0))),
@@ -303,7 +303,7 @@ class ConfigureToolSets extends Action2 {
303
303
  const textFileService = accessor.get(ITextFileService);
304
304
  const picks = [];
305
305
  picks.push({
306
- label: ( localize(6378, "Create new tool sets file...")),
306
+ label: ( localize(6473, "Create new tool sets file...")),
307
307
  alwaysShow: true,
308
308
  iconClass: ThemeIcon.asClassName(Codicon.plus)
309
309
  });
@@ -320,7 +320,7 @@ class ConfigureToolSets extends Action2 {
320
320
  }
321
321
  const pick = await quickInputService.pick(picks, {
322
322
  canPickMany: false,
323
- placeHolder: ( localize(6379, "Select a tool set to configure"))
323
+ placeHolder: ( localize(6474, "Select a tool set to configure"))
324
324
  });
325
325
  if (!pick) {
326
326
  return;
@@ -328,13 +328,13 @@ class ConfigureToolSets extends Action2 {
328
328
  let resource;
329
329
  if (!pick.toolset) {
330
330
  const name = await quickInputService.input({
331
- placeHolder: ( localize(6380, "Type tool sets file name")),
331
+ placeHolder: ( localize(6475, "Type tool sets file name")),
332
332
  validateInput: async input => {
333
333
  if (!input) {
334
- return localize(6381, "Invalid file name");
334
+ return localize(6476, "Invalid file name");
335
335
  }
336
336
  if (!isValidBasename(input)) {
337
- return localize(6382, "'{0}' is not a valid file name", input);
337
+ return localize(6477, "'{0}' is not a valid file name", input);
338
338
  }
339
339
  return undefined;
340
340
  }
@@ -75,8 +75,8 @@ let UsagesTool = class UsagesTool extends Disposable {
75
75
  toolReferenceName: "usages",
76
76
  canBeReferencedInPrompt: false,
77
77
  icon: ThemeIcon.fromId(Codicon.references.id),
78
- displayName: ( localize(6383, "List Code Usages")),
79
- userDescription: ( localize(6384, "Find references, definitions, and implementations of a symbol")),
78
+ displayName: ( localize(6478, "List Code Usages")),
79
+ userDescription: ( localize(6479, "Find references, definitions, and implementations of a symbol")),
80
80
  modelDescription,
81
81
  source: ToolDataSource.Internal,
82
82
  when: ( ContextKeyExpr.has("config.chat.tools.usagesTool.enabled")),
@@ -107,7 +107,7 @@ let UsagesTool = class UsagesTool extends Disposable {
107
107
  async prepareToolInvocation(context, _token) {
108
108
  const input = context.parameters;
109
109
  return {
110
- invocationMessage: ( localize(6385, "Analyzing usages of `{0}`", input.symbol))
110
+ invocationMessage: ( localize(6480, "Analyzing usages of `{0}`", input.symbol))
111
111
  };
112
112
  }
113
113
  async invoke(invocation, _countTokens, _progress, token) {
@@ -160,7 +160,7 @@ let UsagesTool = class UsagesTool extends Disposable {
160
160
  )]);
161
161
  if (references.length === 0) {
162
162
  const result = createToolSimpleTextResult(`No usages found for \`${input.symbol}\`.`);
163
- result.toolResultMessage = ( new MarkdownString(( localize(6386, "Analyzed usages of `{0}`, no results", input.symbol))));
163
+ result.toolResultMessage = ( new MarkdownString(( localize(6481, "Analyzed usages of `{0}`, no results", input.symbol))));
164
164
  return result;
165
165
  }
166
166
  const previews = await this._getLinePreviews(input.symbol, references, token);
@@ -181,8 +181,8 @@ let UsagesTool = class UsagesTool extends Disposable {
181
181
  }
182
182
  const text = lines.join("\n");
183
183
  const result = createToolSimpleTextResult(text);
184
- result.toolResultMessage = references.length === 1 ? ( new MarkdownString(( localize(6387, "Analyzed usages of `{0}`, 1 result", input.symbol)))) : ( new MarkdownString(( localize(
185
- 6388,
184
+ result.toolResultMessage = references.length === 1 ? ( new MarkdownString(( localize(6482, "Analyzed usages of `{0}`, 1 result", input.symbol)))) : ( new MarkdownString(( localize(
185
+ 6483,
186
186
  "Analyzed usages of `{0}`, {1} results",
187
187
  input.symbol,
188
188
  references.length