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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/index.js +31 -1
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +15 -0
  4. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +53 -0
  5. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +219 -0
  6. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +39 -0
  7. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +83 -0
  8. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +123 -0
  9. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +274 -0
  10. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +71 -0
  11. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +284 -0
  12. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +79 -0
  13. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +378 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -2
  15. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +27 -40
  16. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +9 -3
  17. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +74 -18
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +1 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +54 -8
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +87 -53
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +71 -15
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +43 -21
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +22 -3
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +1 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +154 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -8
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +53 -43
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +4 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +84 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +1 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +33 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -29
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +13 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +16 -16
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +12 -12
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +33 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +204 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +77 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +541 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +10 -11
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -65
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +7 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +27 -18
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.d.ts +1 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +4 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +2 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +90 -51
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +20 -5
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +43 -27
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +7 -2
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +3 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +84 -22
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.d.ts → localAgentSessionsController.d.ts} +7 -4
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.js → localAgentSessionsController.js} +24 -17
  67. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +23 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +171 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +48 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +19 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +181 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +943 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.d.ts +1 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +248 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +57 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +27 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +118 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +727 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +22 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +38 -0
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +1 -0
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +72 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +45 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +165 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +75 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +623 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +858 -0
  88. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +2 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +30 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.d.ts +32 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.js +26 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +19 -3
  93. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +36 -26
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +529 -363
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +18 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +419 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +12 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +46 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +34 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +198 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +55 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +305 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.d.ts +23 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +64 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +5 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +84 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +27 -0
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +110 -0
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +34 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +111 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +71 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +611 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +125 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +504 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.d.ts +10 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +914 -0
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +19 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +128 -0
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +58 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +429 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +31 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +113 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +14 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +126 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +38 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +279 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +18 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +122 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +45 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.js +85 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +781 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +5 -22
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +2 -1
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +12 -12
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +16 -15
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +63 -76
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +26 -15
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +2 -2
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +15 -7
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +40 -413
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +10 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +38 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +5 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +56 -46
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +15 -11
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +52 -0
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +138 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +11 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +166 -41
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +6 -0
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +37 -23
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +15 -0
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +351 -0
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +118 -63
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +28 -0
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +182 -13
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +892 -41
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +5 -1
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +55 -25
  174. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +28 -19
  175. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.d.ts +14 -0
  176. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.js +62 -0
  177. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +36 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +110 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.d.ts +10 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.js +39 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +3 -3
  182. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +6 -6
  183. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.d.ts +10 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.js +39 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +27 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +102 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  188. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +16 -1
  189. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +69 -47
  190. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +2 -41
  191. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +7 -7
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.d.ts +4 -0
  195. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +8 -8
  196. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  197. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +4 -4
  199. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +22 -0
  200. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +76 -0
  201. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +5 -0
  202. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +30 -0
  203. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +43 -31
  204. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +67 -42
  205. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +31 -0
  206. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +242 -0
  207. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +34 -0
  208. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +45 -0
  209. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  210. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +33 -0
  211. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +311 -0
  212. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.d.ts +4 -0
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +10 -1
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +10 -10
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +8 -9
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +64 -26
  218. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +4 -2
  219. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +2 -2
  221. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.d.ts +15 -4
  222. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +42 -8
  223. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +8 -1
  224. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +58 -31
  225. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +6 -5
  226. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -20
  227. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +15 -6
  228. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +39 -0
  229. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +27 -0
  230. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +190 -0
  231. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +11 -0
  232. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +36 -0
  233. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +188 -0
  234. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +18 -8
  235. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +192 -85
  236. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +2 -1
  237. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +2 -1
  238. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -6
  239. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +16 -8
  240. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +8 -4
  241. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +111 -7
  242. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +2 -0
  243. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +52 -0
  244. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +29 -0
  245. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +73 -0
  246. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +622 -0
  247. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +64 -0
  248. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +478 -0
  249. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +35 -16
  250. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +1 -30
  251. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +0 -5
  252. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +2 -8
  253. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
  254. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +8 -8
  255. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +9 -9
  256. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +23 -22
  257. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +44 -14
  258. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +345 -113
  259. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +14 -1
  260. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +34 -24
  261. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +3 -0
  262. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +13 -0
  263. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  264. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +11 -5
  265. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +23 -0
  266. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +248 -24
  267. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +6 -11
  268. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +18 -81
  269. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +2 -3
  270. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +10 -10
  271. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  272. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  273. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  274. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
  275. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  276. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +6 -2
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +35 -26
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +0 -1
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +1 -5
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +3 -3
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +4 -1
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +13 -11
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +3 -1
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +9 -0
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +280 -65
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +3 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +8 -0
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -10
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +1 -0
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +47 -19
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +8 -0
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +31 -0
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +6 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +38 -16
  311. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +0 -72
  312. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +0 -587
  313. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +0 -71
  314. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +0 -293
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +0 -2
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +0 -31
@@ -39,7 +39,7 @@ import { toToolSetVariableEntry, toToolVariableEntry } from '@codingame/monaco-v
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
41
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
42
- import { ChatToolInvocation } from '../../common/model/chatProgressTypes/chatToolInvocation.js';
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
44
  import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
45
45
  import { ILanguageModelToolsConfirmationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsConfirmationService.service';
@@ -58,9 +58,10 @@ var AutoApproveStorageKeys;
58
58
  AutoApproveStorageKeys["GlobalAutoApproveOptIn"] = "chat.tools.global.autoApprove.optIn";
59
59
  })(AutoApproveStorageKeys || (AutoApproveStorageKeys = {}));
60
60
  const SkipAutoApproveConfirmationKey = "vscode.chat.tools.global.autoApprove.testMode";
61
+ const toolIdThatCannotBeAutoApproved = "vscode_get_confirmation_with_options";
61
62
  const globalAutoApproveDescription = ( localize2(
62
- 5852,
63
- "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.**"
63
+ 6345,
64
+ "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."
64
65
  ));
65
66
  let LanguageModelToolsService = class LanguageModelToolsService extends Disposable {
66
67
  static {
@@ -101,7 +102,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
101
102
  this.onDidPrepareToolCallBecomeUnresponsive = this._onDidPrepareToolCallBecomeUnresponsive.event;
102
103
  this._onDidInvokeTool = this._register(( new Emitter()));
103
104
  this.onDidInvokeTool = this._onDidInvokeTool.event;
104
- this._onDidChangeToolsScheduler = ( new RunOnceScheduler(() => this._onDidChangeTools.fire(), 750));
105
+ this._onDidChangeToolsScheduler = this._register(( new RunOnceScheduler(() => this._onDidChangeTools.fire(), 750)));
105
106
  this._tools = ( new Map());
106
107
  this._toolContextKeys = ( new Set());
107
108
  this._callsByRequestId = ( new Map());
@@ -160,25 +161,25 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
160
161
  this.vscodeToolSet = this._register(
161
162
  this.createToolSet(ToolDataSource.Internal, "vscode", VSCodeToolReference.vscode, {
162
163
  icon: ThemeIcon.fromId(Codicon.vscode.id),
163
- description: ( localize(5853, "Use VS Code features"))
164
+ description: ( localize(6346, "Use VS Code features"))
164
165
  })
165
166
  );
166
167
  this.executeToolSet = this._register(
167
168
  this.createToolSet(ToolDataSource.Internal, "execute", SpecedToolAliases.execute, {
168
169
  icon: ThemeIcon.fromId(Codicon.terminal.id),
169
- description: ( localize(5854, "Execute code and applications on your machine"))
170
+ description: ( localize(6347, "Execute code and applications on your machine"))
170
171
  })
171
172
  );
172
173
  this.readToolSet = this._register(
173
174
  this.createToolSet(ToolDataSource.Internal, "read", SpecedToolAliases.read, {
174
175
  icon: ThemeIcon.fromId(Codicon.book.id),
175
- description: ( localize(5855, "Read files in your workspace"))
176
+ description: ( localize(6348, "Read files in your workspace"))
176
177
  })
177
178
  );
178
179
  this.agentToolSet = this._register(
179
180
  this.createToolSet(ToolDataSource.Internal, "agent", SpecedToolAliases.agent, {
180
181
  icon: ThemeIcon.fromId(Codicon.agent.id),
181
- description: ( localize(5856, "Delegate tasks to other agents"))
182
+ description: ( localize(6349, "Delegate tasks to other agents"))
182
183
  })
183
184
  );
184
185
  }
@@ -187,6 +188,9 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
187
188
  if (agentModeEnabled !== false) {
188
189
  return true;
189
190
  }
191
+ if (!isToolSet(toolOrToolSet) && toolOrToolSet.canBeReferencedInPrompt === false && toolOrToolSet.source.type === "internal") {
192
+ return true;
193
+ }
190
194
  const permittedInternalToolSetIds = [SpecedToolAliases.read, SpecedToolAliases.search, SpecedToolAliases.web];
191
195
  if (isToolSet(toolOrToolSet)) {
192
196
  const permitted = toolOrToolSet.source.type === "internal" && permittedInternalToolSetIds.includes(toolOrToolSet.referenceName);
@@ -329,8 +333,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
329
333
  return undefined;
330
334
  }
331
335
  _handlePreToolUseDenial(dto, hookResult, toolData, pendingInvocation, request) {
332
- const hookReason = hookResult.permissionDecisionReason ?? ( localize(5857, "Hook denied tool execution"));
333
- const reason = ( localize(5858, "Denied by {0} hook: {1}", HookType.PreToolUse, hookReason));
336
+ const hookReason = hookResult.permissionDecisionReason ?? ( localize(6350, "Hook denied tool execution"));
337
+ const reason = ( localize(6351, "Denied by {0} hook: {1}", HookType.PreToolUse, hookReason));
334
338
  this._logService.debug(
335
339
  `[LanguageModelToolsService#invokeTool] Tool ${dto.toolId} denied by preToolUse hook: ${hookReason}`
336
340
  );
@@ -386,6 +390,12 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
386
390
  if (dto.context?.sessionResource) {
387
391
  model = this._chatService.getSession(dto.context.sessionResource);
388
392
  request = model?.getRequests().at(-1);
393
+ if (request?.response?.isCanceled || request?.response?.isComplete) {
394
+ this._logService.debug(
395
+ `[LanguageModelToolsService#invokeTool] Ignoring tool ${dto.toolId} for cancelled/complete request ${request.id}`
396
+ );
397
+ throw ( new CancellationError());
398
+ }
389
399
  }
390
400
  let pendingToolCallKey;
391
401
  let toolInvocation;
@@ -530,6 +540,9 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
530
540
  };
531
541
  return toolResult;
532
542
  }
543
+ if (userConfirmed.type === ToolConfirmKind.UserAction && userConfirmed.selectedButton) {
544
+ dto.selectedCustomButton = userConfirmed.selectedButton;
545
+ }
533
546
  if (dto.toolSpecificData?.kind === "input") {
534
547
  dto.parameters = dto.toolSpecificData.rawInput;
535
548
  dto.toolSpecificData = undefined;
@@ -566,17 +579,14 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
566
579
  }, token);
567
580
  invocationTimeWatch.stop();
568
581
  this.ensureToolDetails(dto, toolResult, tool.data);
569
- if (toolInvocation?.didExecuteTool(toolResult).type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
570
- const autoConfirmedPost = await this.shouldAutoConfirmPostExecution(
571
- tool.data.id,
572
- tool.data.runsInWorkspace,
573
- tool.data.source,
574
- dto.parameters,
575
- dto.context?.sessionResource
576
- );
577
- if (autoConfirmedPost) {
578
- IChatToolInvocation.confirmWith(toolInvocation, autoConfirmedPost);
579
- }
582
+ const afterExecuteState = await toolInvocation?.didExecuteTool(toolResult, undefined, () => this.shouldAutoConfirmPostExecution(
583
+ tool.data.id,
584
+ tool.data.runsInWorkspace,
585
+ tool.data.source,
586
+ dto.parameters,
587
+ dto.context?.sessionResource
588
+ ));
589
+ if (toolInvocation && afterExecuteState?.type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
580
590
  const postConfirm = await IChatToolInvocation.awaitPostConfirmation(toolInvocation, token);
581
591
  if (postConfirm.type === ToolConfirmKind.Denied) {
582
592
  throw ( new CancellationError());
@@ -604,7 +614,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
604
614
  const result = isCancellationError(err) ? "userCancelled" : "error";
605
615
  this._telemetryService.publicLog2("languageModelToolInvoked", {
606
616
  result,
607
- chatSessionId: dto.context?.sessionId,
617
+ chatSessionId: dto.context?.sessionResource ? chatSessionResourceToId(dto.context.sessionResource) : undefined,
608
618
  toolId: tool.data.id,
609
619
  toolExtensionId: tool.data.source.type === "extension" ? tool.data.source.extensionId.value : undefined,
610
620
  toolSourceKind: tool.data.source.type,
@@ -642,7 +652,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
642
652
  async prepareToolInvocationWithHookResult(tool, dto, hookResult, token) {
643
653
  let forceConfirmationReason;
644
654
  if (hookResult?.permissionDecision === "ask") {
645
- const hookMessage = ( localize(5859, "{0} required confirmation", HookType.PreToolUse));
655
+ const hookMessage = ( localize(6352, "{0} required confirmation", HookType.PreToolUse));
646
656
  forceConfirmationReason = hookResult.permissionDecisionReason ? `${hookMessage}: ${hookResult.permissionDecisionReason}` : hookMessage;
647
657
  }
648
658
  return this.prepareToolInvocation(tool, dto, forceConfirmationReason, token);
@@ -655,7 +665,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
655
665
  return {
656
666
  autoConfirmed: {
657
667
  type: ToolConfirmKind.ConfirmationNotNeeded,
658
- reason: ( localize(5860, "Allowed by hook"))
668
+ reason: ( localize(6353, "Allowed by hook"))
659
669
  },
660
670
  preparedInvocation
661
671
  };
@@ -671,14 +681,14 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
671
681
  const fullReferenceName = getToolFullReferenceName(tool.data);
672
682
  const hookReason = hookResult.permissionDecisionReason;
673
683
  const hookNote = hookReason ? ( localize(
674
- 5861,
684
+ 6354,
675
685
  "{0} hook required confirmation: {1}",
676
686
  HookType.PreToolUse,
677
687
  hookReason
678
- )) : ( localize(5862, "{0} hook required confirmation", HookType.PreToolUse));
688
+ )) : ( localize(6355, "{0} hook required confirmation", HookType.PreToolUse));
679
689
  preparedInvocation.confirmationMessages = {
680
690
  ...preparedInvocation.confirmationMessages,
681
- title: ( localize(5863, "Use the '{0}' tool?", fullReferenceName)),
691
+ title: ( localize(6356, "Use the '{0}' tool?", fullReferenceName)),
682
692
  message: ( new MarkdownString(`_${hookNote}_`)),
683
693
  allowAutoConfirm: false
684
694
  };
@@ -689,11 +699,11 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
689
699
  } else {
690
700
  const hookReason = hookResult.permissionDecisionReason;
691
701
  const hookNote = hookReason ? ( localize(
692
- 5864,
702
+ 6357,
693
703
  "{0} hook required confirmation: {1}",
694
704
  HookType.PreToolUse,
695
705
  hookReason
696
- )) : ( localize(5865, "{0} hook required confirmation", HookType.PreToolUse));
706
+ )) : ( localize(6358, "{0} hook required confirmation", HookType.PreToolUse));
697
707
  const existing = preparedInvocation.confirmationMessages;
698
708
  if (preparedInvocation.toolSpecificData?.kind === "terminal") {
699
709
  const existingDisclaimerText = existing.disclaimer ? (typeof existing.disclaimer === "string" ? existing.disclaimer : existing.disclaimer.value) : undefined;
@@ -736,7 +746,6 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
736
746
  parameters: dto.parameters,
737
747
  toolCallId: dto.callId,
738
748
  chatRequestId: dto.chatRequestId,
739
- chatSessionId: dto.context?.sessionId,
740
749
  chatSessionResource: dto.context?.sessionResource,
741
750
  chatInteractionId: dto.chatInteractionId,
742
751
  modelId: dto.modelId,
@@ -759,10 +768,10 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
759
768
  const fullReferenceName = getToolFullReferenceName(tool.data);
760
769
  prepared.confirmationMessages = {
761
770
  ...prepared.confirmationMessages,
762
- title: ( localize(5866, "Confirm tool execution")),
763
- message: ( localize(5867, "Run the '{0}' tool?", fullReferenceName)),
764
- disclaimer: ( new MarkdownString(( localize(
765
- 5868,
771
+ title: ( localize(6359, "Confirm tool execution")),
772
+ message: ( localize(6360, "Run the '{0}' tool?", fullReferenceName)),
773
+ disclaimer: tool.data.id === toolIdThatCannotBeAutoApproved ? undefined : ( new MarkdownString(( localize(
774
+ 6361,
766
775
  "Auto approval for '{0}' is restricted via {1}.",
767
776
  getToolFullReferenceName(tool.data),
768
777
  createMarkdownCommandLink({
@@ -777,8 +786,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
777
786
  };
778
787
  }
779
788
  if (!isEligibleForAutoApproval && prepared?.confirmationMessages?.title) {
780
- prepared.confirmationMessages.disclaimer = ( new MarkdownString(( localize(
781
- 5868,
789
+ prepared.confirmationMessages.disclaimer = tool.data.id === toolIdThatCannotBeAutoApproved ? undefined : ( new MarkdownString(( localize(
790
+ 6361,
782
791
  "Auto approval for '{0}' is restricted via {1}.",
783
792
  getToolFullReferenceName(tool.data),
784
793
  createMarkdownCommandLink({
@@ -873,6 +882,10 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
873
882
  if (autoApproved) {
874
883
  return;
875
884
  }
885
+ const pendingInvocations = toolInvocations.filter(inv => !IChatToolInvocation.executionConfirmedOrDenied(inv));
886
+ if (pendingInvocations.length === 0) {
887
+ return;
888
+ }
876
889
  const setting = this._configurationService.getValue(AccessibilitySignal.chatUserActionRequired.settingsKey);
877
890
  if (!setting) {
878
891
  return;
@@ -881,7 +894,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
881
894
  const announcementEnabled = this._accessibilityService.isScreenReaderOptimized() && setting.announcement === "auto";
882
895
  if (soundEnabled || announcementEnabled) {
883
896
  this._accessibilitySignalService.playSignal(AccessibilitySignal.chatUserActionRequired, {
884
- customAlertMessage: this._instantiationService.invokeFunction(getToolConfirmationAlert, toolInvocations),
897
+ customAlertMessage: this._instantiationService.invokeFunction(getToolConfirmationAlert, pendingInvocations),
885
898
  userGesture: true,
886
899
  modality: !soundEnabled ? "announcement" : undefined
887
900
  });
@@ -934,6 +947,9 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
934
947
  if (toolData.id === "copilot_fetchWebPage") {
935
948
  return true;
936
949
  }
950
+ if (toolData.id === toolIdThatCannotBeAutoApproved) {
951
+ return false;
952
+ }
937
953
  const eligibilityConfig = this._configurationService.getValue(ChatConfiguration.EligibleForAutoApproval);
938
954
  if (eligibilityConfig && typeof eligibilityConfig === "object" && fullReferenceName) {
939
955
  if (Object.prototype.hasOwnProperty.call(eligibilityConfig, fullReferenceName)) {
@@ -1019,19 +1035,22 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
1019
1035
  }
1020
1036
  const promptResult = await this._dialogService.prompt({
1021
1037
  type: Severity.Warning,
1022
- message: ( localize(5869, "Enable global auto approve?")),
1038
+ message: ( localize(6362, "Enable global auto approve?")),
1023
1039
  buttons: [{
1024
- label: ( localize(5870, "Enable")),
1040
+ label: ( localize(6363, "Enable")),
1025
1041
  run: () => true
1026
1042
  }, {
1027
- label: ( localize(5871, "Disable")),
1043
+ label: ( localize(6364, "Disable")),
1028
1044
  run: () => false
1029
1045
  }],
1030
1046
  custom: {
1031
1047
  icon: Codicon.warning,
1032
- disableCloseAction: true,
1033
1048
  markdownDetails: [{
1034
- markdown: ( new MarkdownString(globalAutoApproveDescription.value))
1049
+ markdown: ( new MarkdownString(globalAutoApproveDescription.value, {
1050
+ isTrusted: {
1051
+ enabledCommands: ["workbench.action.openSettings"]
1052
+ }
1053
+ }))
1035
1054
  }]
1036
1055
  }
1037
1056
  });
@@ -1070,6 +1089,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
1070
1089
  }
1071
1090
  for (const [toolCallId, invocation] of this._pendingToolCalls) {
1072
1091
  if (invocation.chatRequestId === requestId) {
1092
+ invocation.cancelFromStreaming(ToolConfirmKind.Skipped);
1073
1093
  this._pendingToolCalls.delete(toolCallId);
1074
1094
  }
1075
1095
  }
@@ -1303,7 +1323,12 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
1303
1323
  add(alias, fullReferenceName);
1304
1324
  }
1305
1325
  if (tool.legacyToolReferenceFullNames) {
1326
+ const slashIndex = fullReferenceName.lastIndexOf("/");
1327
+ const toolSetPrefix = slashIndex !== -1 ? fullReferenceName.substring(0, slashIndex + 1) : undefined;
1306
1328
  for (const legacyName of tool.legacyToolReferenceFullNames) {
1329
+ if (toolSetPrefix && !legacyName.includes("/")) {
1330
+ add(toolSetPrefix + legacyName, fullReferenceName);
1331
+ }
1307
1332
  if (legacyName.includes("/")) {
1308
1333
  const toolSetFullName = legacyName.substring(0, legacyName.lastIndexOf("/"));
1309
1334
  if (!( knownToolSetNames.has(toolSetFullName))) {
@@ -0,0 +1,31 @@
1
+ import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
3
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
4
+ import { IBulkEditService } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/bulkEditService.service";
5
+ import { ILanguageFeaturesService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service";
6
+ import { ITextModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service";
7
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
8
+ import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
9
+ import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
10
+ import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
11
+ import { CountTokensCallback, IPreparedToolInvocation, IToolData, IToolImpl, IToolInvocation, IToolInvocationPreparationContext, IToolResult, ToolProgress } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
12
+ import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service";
13
+ export declare const RenameToolId = "vscode_renameSymbol";
14
+ export declare class RenameTool extends Disposable implements IToolImpl {
15
+ private readonly _languageFeaturesService;
16
+ private readonly _textModelService;
17
+ private readonly _workspaceContextService;
18
+ private readonly _chatService;
19
+ private readonly _bulkEditService;
20
+ private readonly _onDidUpdateToolData;
21
+ readonly onDidUpdateToolData: Event<void>;
22
+ constructor(_languageFeaturesService: ILanguageFeaturesService, _textModelService: ITextModelService, _workspaceContextService: IWorkspaceContextService, _chatService: IChatService, _bulkEditService: IBulkEditService);
23
+ getToolData(): IToolData;
24
+ prepareToolInvocation(context: IToolInvocationPreparationContext, _token: CancellationToken): Promise<IPreparedToolInvocation | undefined>;
25
+ invoke(invocation: IToolInvocation, _countTokens: CountTokensCallback, _progress: ToolProgress, token: CancellationToken): Promise<IToolResult>;
26
+ private _successResult;
27
+ }
28
+ export declare class RenameToolContribution extends Disposable implements IWorkbenchContribution {
29
+ static readonly ID = "chat.renameTool";
30
+ constructor(toolsService: ILanguageModelToolsService, instantiationService: IInstantiationService);
31
+ }
@@ -0,0 +1,242 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
4
+ import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
5
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
6
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
+ import { ResourceMap, ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
8
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
9
+ import { Position } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/position';
10
+ import { ResourceTextEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/bulkEditService';
11
+ import { IBulkEditService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/bulkEditService.service';
12
+ import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service';
13
+ import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
14
+ import { rename } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/rename/browser/rename';
15
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
16
+ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
17
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
18
+ import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
19
+ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
20
+ import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
21
+ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
22
+ import { createToolSimpleTextResult } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/builtinTools/toolHelpers';
23
+ import { resolveToolUri, errorResult, findLineNumber, findSymbolColumn } from './toolHelpers.js';
24
+
25
+ const RenameToolId = "vscode_renameSymbol";
26
+ const BaseModelDescription = `Rename a code symbol across the workspace using the language server's rename functionality. This performs a precise, semantics-aware rename that updates all references.
27
+
28
+ Input:
29
+ - "symbol": The exact current name of the symbol to rename.
30
+ - "newName": The new name for the symbol.
31
+ - "uri": A full URI (e.g. "file:///path/to/file.ts") of a file where the symbol appears. Provide either "uri" or "filePath".
32
+ - "filePath": A workspace-relative file path (e.g. "src/utils/helpers.ts") of a file where the symbol appears. Provide either "uri" or "filePath".
33
+ - "lineContent": A substring of the line of code where the symbol appears. This is used to locate the exact position in the file. Must be the actual text from the file - do NOT fabricate it.
34
+
35
+ IMPORTANT: The file and line do NOT need to be the definition of the symbol. Any occurrence works - a usage, an import, a call site, etc. You can pick whichever occurrence is most convenient.
36
+
37
+ If the tool returns an error, retry with corrected input - ensure the file path is correct, the line content matches the actual file content, and the symbol name appears in that line.`;
38
+ let RenameTool = class RenameTool extends Disposable {
39
+ constructor(
40
+ _languageFeaturesService,
41
+ _textModelService,
42
+ _workspaceContextService,
43
+ _chatService,
44
+ _bulkEditService
45
+ ) {
46
+ super();
47
+ this._languageFeaturesService = _languageFeaturesService;
48
+ this._textModelService = _textModelService;
49
+ this._workspaceContextService = _workspaceContextService;
50
+ this._chatService = _chatService;
51
+ this._bulkEditService = _bulkEditService;
52
+ this._onDidUpdateToolData = this._store.add(( new Emitter()));
53
+ this.onDidUpdateToolData = this._onDidUpdateToolData.event;
54
+ this._store.add(
55
+ Event.debounce(this._languageFeaturesService.renameProvider.onDidChange, () => {}, 2000)((() => this._onDidUpdateToolData.fire()))
56
+ );
57
+ }
58
+ getToolData() {
59
+ const languageIds = this._languageFeaturesService.renameProvider.registeredLanguageIds;
60
+ let modelDescription = BaseModelDescription;
61
+ if (( languageIds.has("*"))) {
62
+ modelDescription += "\n\nSupported for all languages.";
63
+ } else if (languageIds.size > 0) {
64
+ const sorted = [...languageIds].sort();
65
+ modelDescription += `\n\nCurrently supported for: ${sorted.join(", ")}.`;
66
+ } else {
67
+ modelDescription += "\n\nNo languages currently have rename providers registered.";
68
+ }
69
+ return {
70
+ id: RenameToolId,
71
+ toolReferenceName: "rename",
72
+ canBeReferencedInPrompt: false,
73
+ icon: ThemeIcon.fromId(Codicon.rename.id),
74
+ displayName: ( localize(6365, "Rename Symbol")),
75
+ userDescription: ( localize(6366, "Rename a symbol across the workspace")),
76
+ modelDescription,
77
+ source: ToolDataSource.Internal,
78
+ when: ( ContextKeyExpr.has("config.chat.tools.renameTool.enabled")),
79
+ inputSchema: {
80
+ type: "object",
81
+ properties: {
82
+ symbol: {
83
+ type: "string",
84
+ description: "The exact current name of the symbol to rename."
85
+ },
86
+ newName: {
87
+ type: "string",
88
+ description: "The new name for the symbol."
89
+ },
90
+ uri: {
91
+ type: "string",
92
+ description: "A full URI of a file where the symbol appears (e.g. \"file:///path/to/file.ts\"). Provide either \"uri\" or \"filePath\"."
93
+ },
94
+ filePath: {
95
+ type: "string",
96
+ description: "A workspace-relative file path where the symbol appears (e.g. \"src/utils/helpers.ts\"). Provide either \"uri\" or \"filePath\"."
97
+ },
98
+ lineContent: {
99
+ type: "string",
100
+ description: "A substring of the line of code where the symbol appears. Used to locate the exact position. Must be actual text from the file."
101
+ }
102
+ },
103
+ required: ["symbol", "newName", "lineContent"]
104
+ }
105
+ };
106
+ }
107
+ async prepareToolInvocation(context, _token) {
108
+ const input = context.parameters;
109
+ return {
110
+ invocationMessage: ( localize(6367, "Renaming `{0}` to `{1}`", input.symbol, input.newName))
111
+ };
112
+ }
113
+ async invoke(invocation, _countTokens, _progress, token) {
114
+ const input = invocation.parameters;
115
+ const uri = resolveToolUri(input, this._workspaceContextService);
116
+ if (!uri) {
117
+ return errorResult(
118
+ "Provide either \"uri\" (a full URI) or \"filePath\" (a workspace-relative path) to identify the file."
119
+ );
120
+ }
121
+ const ref = await this._textModelService.createModelReference(uri);
122
+ try {
123
+ const model = ref.object.textEditorModel;
124
+ if (!( this._languageFeaturesService.renameProvider.has(model))) {
125
+ return errorResult(
126
+ `No rename provider available for this file's language. The rename tool may not support this language.`
127
+ );
128
+ }
129
+ const lineNumber = findLineNumber(model, input.lineContent);
130
+ if (lineNumber === undefined) {
131
+ return errorResult(`Could not find line content "${input.lineContent}" in ${( uri.toString())}. Provide the exact text from the line where the symbol appears.`);
132
+ }
133
+ const lineText = model.getLineContent(lineNumber);
134
+ const column = findSymbolColumn(lineText, input.symbol);
135
+ if (column === undefined) {
136
+ return errorResult(
137
+ `Could not find symbol "${input.symbol}" in the matched line. Ensure the symbol name is correct and appears in the provided line content.`
138
+ );
139
+ }
140
+ const position = ( new Position(lineNumber, column));
141
+ const renameResult = await rename(
142
+ this._languageFeaturesService.renameProvider,
143
+ model,
144
+ position,
145
+ input.newName
146
+ );
147
+ if (renameResult.rejectReason) {
148
+ return errorResult(`Rename rejected: ${renameResult.rejectReason}`);
149
+ }
150
+ if (renameResult.edits.length === 0) {
151
+ return errorResult(`Rename produced no edits.`);
152
+ }
153
+ if (invocation.context) {
154
+ const chatModel = this._chatService.getSession(invocation.context.sessionResource);
155
+ const request = chatModel?.getRequests().at(-1);
156
+ if (chatModel && request) {
157
+ const editsByUri = ( new ResourceMap());
158
+ for (const edit of renameResult.edits) {
159
+ if (ResourceTextEdit.is(edit)) {
160
+ let edits = editsByUri.get(edit.resource);
161
+ if (!edits) {
162
+ edits = [];
163
+ editsByUri.set(edit.resource, edits);
164
+ }
165
+ edits.push(edit.textEdit);
166
+ }
167
+ }
168
+ for (const [editUri, edits] of editsByUri) {
169
+ chatModel.acceptResponseProgress(request, {
170
+ kind: "textEdit",
171
+ uri: editUri,
172
+ edits: []
173
+ });
174
+ chatModel.acceptResponseProgress(request, {
175
+ kind: "textEdit",
176
+ uri: editUri,
177
+ edits
178
+ });
179
+ chatModel.acceptResponseProgress(request, {
180
+ kind: "textEdit",
181
+ uri: editUri,
182
+ edits: [],
183
+ done: true
184
+ });
185
+ }
186
+ return this._successResult(input, editsByUri.size, renameResult.edits.length);
187
+ }
188
+ }
189
+ await this._bulkEditService.apply(renameResult);
190
+ const fileCount = ( new ResourceSet(( renameResult.edits.filter(ResourceTextEdit.is).map(e => e.resource)))).size;
191
+ return this._successResult(input, fileCount, renameResult.edits.length);
192
+ } finally {
193
+ ref.dispose();
194
+ }
195
+ }
196
+ _successResult(input, fileCount, editCount) {
197
+ const text = editCount === 1 ? ( localize(
198
+ 6368,
199
+ "Renamed `{0}` to `{1}` - 1 edit in {2} file.",
200
+ input.symbol,
201
+ input.newName,
202
+ fileCount
203
+ )) : ( localize(
204
+ 6369,
205
+ "Renamed `{0}` to `{1}` - {2} edits across {3} files.",
206
+ input.symbol,
207
+ input.newName,
208
+ editCount,
209
+ fileCount
210
+ ));
211
+ const result = createToolSimpleTextResult(text);
212
+ result.toolResultMessage = ( new MarkdownString(text));
213
+ return result;
214
+ }
215
+ };
216
+ RenameTool = ( __decorate([( __param(0, ILanguageFeaturesService)), ( __param(1, ITextModelService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IChatService)), ( __param(4, IBulkEditService))], RenameTool));
217
+ let RenameToolContribution = class RenameToolContribution extends Disposable {
218
+ static {
219
+ this.ID = "chat.renameTool";
220
+ }
221
+ constructor(toolsService, instantiationService) {
222
+ super();
223
+ const renameTool = this._store.add(instantiationService.createInstance(RenameTool));
224
+ let registration;
225
+ const registerRenameTool = () => {
226
+ registration?.dispose();
227
+ toolsService.flushToolUpdates();
228
+ const toolData = renameTool.getToolData();
229
+ registration = toolsService.registerTool(toolData, renameTool);
230
+ };
231
+ registerRenameTool();
232
+ this._store.add(renameTool.onDidUpdateToolData(registerRenameTool));
233
+ this._store.add({
234
+ dispose: () => {
235
+ registration?.dispose();
236
+ }
237
+ });
238
+ }
239
+ };
240
+ RenameToolContribution = ( __decorate([( __param(0, ILanguageModelToolsService)), ( __param(1, IInstantiationService))], RenameToolContribution));
241
+
242
+ export { RenameTool, RenameToolContribution, RenameToolId };
@@ -0,0 +1,34 @@
1
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
2
+ import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model";
3
+ import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
4
+ import { IToolResult } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
5
+ export interface ISymbolToolInput {
6
+ symbol: string;
7
+ uri?: string;
8
+ filePath?: string;
9
+ lineContent: string;
10
+ }
11
+ /**
12
+ * Resolves a URI from tool input. Accepts either a full URI string or a
13
+ * workspace-relative file path.
14
+ */
15
+ export declare function resolveToolUri(input: ISymbolToolInput, workspaceContextService: IWorkspaceContextService): URI | undefined;
16
+ /**
17
+ * Finds the line number in the model that matches the given line content.
18
+ * Whitespace is normalized so that extra spaces in the input still match.
19
+ *
20
+ * @returns The 1-based line number, or `undefined` if not found.
21
+ */
22
+ export declare function findLineNumber(model: ITextModel, lineContent: string): number | undefined;
23
+ /**
24
+ * Finds the 1-based column of a symbol within a line of text using word
25
+ * boundary matching.
26
+ *
27
+ * @returns The 1-based column, or `undefined` if not found.
28
+ */
29
+ export declare function findSymbolColumn(lineText: string, symbol: string): number | undefined;
30
+ /**
31
+ * Creates an error tool result with the given message as both the content
32
+ * and the tool result message.
33
+ */
34
+ export declare function errorResult(message: string): IToolResult;