@codingame/monaco-vscode-chat-service-override 23.3.0 → 24.1.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 (273) hide show
  1. package/index.js +13 -10
  2. package/package.json +5 -41
  3. package/vscode/src/vs/platform/domWidget/browser/domWidget.d.ts +52 -0
  4. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +53 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +10 -10
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +61 -50
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.d.ts +18 -0
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +152 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +14 -14
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +37 -28
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +9 -9
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -5
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +7 -11
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +10 -10
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +12 -14
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +21 -18
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +27 -18
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +6 -27
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +44 -208
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -17
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +17 -17
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +23 -24
  30. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +140 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +85 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +358 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +55 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +222 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +37 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +241 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +13 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +27 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +11 -19
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +67 -230
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +65 -33
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +186 -62
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +23 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +140 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +2 -7
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +115 -29
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +389 -166
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +9 -6
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +22 -16
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +8 -8
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.d.ts +10 -3
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +63 -3
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +7 -3
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +14 -5
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +173 -32
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +1 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +66 -17
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +32 -29
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +12 -12
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -2
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +9 -6
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +2 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +6 -4
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +4 -4
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +8 -18
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +1 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +5 -6
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +15 -24
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +13 -11
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +66 -50
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +3 -2
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +6 -5
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +3 -1
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +7 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +2 -2
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +6 -7
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +3 -3
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +4 -4
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +2 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +1 -1
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +15 -4
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +3 -4
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +30 -37
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +13 -10
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -32
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -9
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +20 -19
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +47 -15
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +270 -143
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +3 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +310 -170
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +10 -10
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +12 -2
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +42 -42
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +3 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +35 -25
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +4 -4
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +1 -4
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +22 -26
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +18 -14
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +80 -72
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +2 -8
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +48 -77
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +16 -17
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +257 -77
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +55 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +34 -0
  119. package/vscode/src/vs/workbench/contrib/chat/browser/{chatSetup.d.ts → chatSetup/chatSetupContributions.d.ts} +4 -11
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +622 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +53 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +359 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +89 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +667 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +37 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +260 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/chatSetup.css +4 -6
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +4 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +21 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +55 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.js → chatStatus/chatStatusDashboard.js} +193 -325
  132. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.d.ts → chatStatus/chatStatusEntry.d.ts} +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +190 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.d.ts → chatStatus/chatStatusItemService.d.ts} +1 -1
  135. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatStatus/media}/chatStatus.css +22 -1
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.d.ts +25 -0
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.js +108 -0
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.d.ts +10 -0
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.js +34 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +57 -18
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +478 -146
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.d.ts +43 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.js +204 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.d.ts +44 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.js +187 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  148. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +108 -62
  149. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
  150. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
  151. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.d.ts +1 -1
  152. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +37 -32
  153. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +37 -20
  154. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +232 -97
  155. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatusWidget.css +57 -0
  156. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css +142 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewTitleControl.css +39 -0
  158. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +51 -35
  159. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
  160. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +5 -4
  161. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +5 -5
  163. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +12 -12
  164. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +19 -21
  165. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +1 -1
  166. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +8 -8
  167. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
  168. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +6 -6
  169. package/vscode/src/vs/workbench/contrib/chat/common/chatCodeMapperService.d.ts +1 -1
  170. package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.d.ts +49 -0
  171. package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.js +100 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +2 -1
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +3 -4
  175. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +41 -15
  176. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +208 -162
  177. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +3 -3
  178. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +15 -7
  179. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +61 -7
  180. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +3 -2
  181. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +2 -2
  182. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +10 -10
  184. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +2 -2
  185. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +3 -3
  186. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +5 -1
  187. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +60 -43
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +27 -4
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +37 -47
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -3
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +120 -87
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +49 -42
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +293 -187
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +17 -5
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +43 -9
  198. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +2 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +48 -29
  200. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
  201. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
  202. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -13
  203. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  204. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +2 -2
  205. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +3 -3
  206. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +36 -41
  207. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +3 -3
  208. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +2 -2
  209. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  210. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +1 -1
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +18 -18
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +142 -38
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +1 -1
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +3 -7
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +19 -2
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +78 -6
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -11
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +26 -44
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +3 -3
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +1 -1
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +9 -0
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -1
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +23 -17
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +1 -1
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +4 -2
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +2 -0
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +26 -5
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +3 -1
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +32 -4
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +15 -29
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +10 -7
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +12 -0
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +3 -1
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +38 -19
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +1 -0
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +32 -7
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +5 -4
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +4 -3
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +4 -3
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -0
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +128 -62
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +2 -2
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +12 -2
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +5 -2
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +68 -22
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +20 -22
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +13 -12
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +20 -19
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +12 -0
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +72 -0
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +1 -2
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +5 -17
  258. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +0 -53
  259. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +0 -154
  260. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +0 -7
  261. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +0 -13
  262. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +0 -25
  263. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +0 -135
  264. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +0 -35
  265. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +0 -216
  266. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +0 -1617
  267. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +0 -44
  268. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +0 -313
  269. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-dark.svg +0 -0
  270. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-light.svg +0 -0
  271. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/github.svg +0 -0
  272. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/google.svg +0 -0
  273. /package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.js → chatStatus/chatStatusItemService.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
2
- import { IChatAgentData } from "@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common/vscode/vs/workbench/contrib/chat/common/chatAgents";
3
- import { ChatRequestModel } from "@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatModel";
4
- import { ChatRequestAgentSubcommandPart, ChatRequestSlashCommandPart } from "@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes";
2
+ import { IChatAgentData } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents";
3
+ import { ChatRequestModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel";
4
+ import { ChatRequestAgentSubcommandPart, ChatRequestSlashCommandPart } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatParserTypes";
5
5
  import { IChatSendRequestOptions, IChatUserActionEvent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService";
6
6
  import { ChatAgentLocation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
7
7
  import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
@@ -8,8 +8,9 @@ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platfo
8
8
  import { IUserDataProfilesService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service";
9
9
  import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
10
10
  import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service";
11
- import { ChatModel, ISerializableChatData, ISerializableChatsData } from "@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatModel";
12
- import { ChatAgentLocation, ChatModeKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
11
+ import { ChatModel, IChatModelInputState, ISerializableChatData, ISerializableChatsData } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel";
12
+ import { IChatSessionStats, ResponseModelState, IChatSessionTiming } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService";
13
+ import { ChatAgentLocation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
13
14
  export declare class ChatSessionStore extends Disposable {
14
15
  private readonly fileService;
15
16
  private readonly environmentService;
@@ -26,7 +27,9 @@ export declare class ChatSessionStore extends Disposable {
26
27
  private shuttingDown;
27
28
  constructor(fileService: IFileService, environmentService: IEnvironmentService, logService: ILogService, workspaceContextService: IWorkspaceContextService, telemetryService: ITelemetryService, storageService: IStorageService, lifecycleService: ILifecycleService, userDataProfilesService: IUserDataProfilesService);
28
29
  storeSessions(sessions: ChatModel[]): Promise<void>;
30
+ storeSessionsMetadataOnly(sessions: ChatModel[]): Promise<void>;
29
31
  private writeSession;
32
+ private writeSessionMetadataOnly;
30
33
  private flushIndex;
31
34
  private getIndexStorageScope;
32
35
  private trimEntries;
@@ -48,31 +51,36 @@ export declare class ChatSessionStore extends Disposable {
48
51
  private getStorageLocation;
49
52
  getChatStorageFolder(): URI;
50
53
  }
51
- interface IChatSessionEntryMetadata {
54
+ export interface IChatSessionEntryMetadata {
52
55
  sessionId: string;
53
56
  title: string;
54
57
  lastMessageDate: number;
55
- isImported?: boolean;
58
+ timing?: IChatSessionTiming;
56
59
  initialLocation?: ChatAgentLocation;
60
+ hasPendingEdits?: boolean;
61
+ stats?: IChatSessionStats;
62
+ lastResponseState?: ResponseModelState;
57
63
  /**
58
64
  * This only exists because the migrated data from the storage service had empty sessions persisted, and it's impossible to know which ones are
59
65
  * currently in use. Now, `clearSession` deletes empty sessions, so old ones shouldn't take up space in the store anymore, but we still need to
60
66
  * filter the old ones out of history.
61
67
  */
62
68
  isEmpty?: boolean;
69
+ /**
70
+ * Whether this session was loaded from an external provider (eg background/cloud sessions).
71
+ */
72
+ isExternal?: boolean;
63
73
  }
64
74
  export type IChatSessionIndex = Record<string, IChatSessionEntryMetadata>;
65
75
  export interface IChatTransfer {
66
76
  toWorkspace: URI;
67
77
  timestampInMilliseconds: number;
68
- inputValue: string;
78
+ inputState: IChatModelInputState | undefined;
69
79
  location: ChatAgentLocation;
70
- mode: ChatModeKind;
71
80
  }
72
81
  export interface IChatTransfer2 extends IChatTransfer {
73
82
  chat: ISerializableChatData;
74
83
  }
75
- export {};
76
84
  /**
77
85
  * Map of destination workspace URI to chat transfer data
78
86
  */
@@ -18,7 +18,11 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
18
18
  import { IUserDataProfilesService } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service';
19
19
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
20
20
  import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
21
- import { normalizeSerializableChatData, ChatModel } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatModel';
21
+ import { awaitStatsForSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chat';
22
+ import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
23
+ import { normalizeSerializableChatData, ChatModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel';
24
+ import { ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService';
25
+ import { LocalChatSessionUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatUri';
22
26
 
23
27
  const maxPersistedSessions = 25;
24
28
  const ChatIndexStorageKey = 'chat.ChatSessionStore.index';
@@ -51,7 +55,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
51
55
  }
52
56
  e.join(this.storeTask, {
53
57
  id: 'join.chatSessionStore',
54
- label: ( localize(5828, "Saving chat history"))
58
+ label: ( localize(5947, "Saving chat history"))
55
59
  });
56
60
  }));
57
61
  }
@@ -76,18 +80,51 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
76
80
  this.storeTask = undefined;
77
81
  }
78
82
  }
83
+ async storeSessionsMetadataOnly(sessions) {
84
+ if (this.shuttingDown) {
85
+ return;
86
+ }
87
+ try {
88
+ this.storeTask = this.storeQueue.queue(async () => {
89
+ try {
90
+ await Promise.all(( sessions.map(session => this.writeSessionMetadataOnly(session))));
91
+ await this.flushIndex();
92
+ }
93
+ catch (e) {
94
+ this.reportError('storeSessions', 'Error storing chat sessions', e);
95
+ }
96
+ });
97
+ await this.storeTask;
98
+ }
99
+ finally {
100
+ this.storeTask = undefined;
101
+ }
102
+ }
79
103
  async writeSession(session) {
80
104
  try {
81
105
  const index = this.internalGetIndex();
82
106
  const storageLocation = this.getStorageLocation(session.sessionId);
83
107
  const content = JSON.stringify(session, undefined, 2);
84
108
  await this.fileService.writeFile(storageLocation, VSBuffer.fromString(content));
85
- index.entries[session.sessionId] = getSessionMetadata(session);
109
+ index.entries[session.sessionId] = await getSessionMetadata(session);
86
110
  }
87
111
  catch (e) {
88
112
  this.reportError('sessionWrite', 'Error writing chat session', e);
89
113
  }
90
114
  }
115
+ async writeSessionMetadataOnly(session) {
116
+ if (LocalChatSessionUri.parseLocalSessionId(session.sessionResource)) {
117
+ return;
118
+ }
119
+ try {
120
+ const index = this.internalGetIndex();
121
+ const externalSessionId = ( session.sessionResource.toString());
122
+ index.entries[externalSessionId] = await getSessionMetadata(session);
123
+ }
124
+ catch (e) {
125
+ this.reportError('sessionMetadataWrite', 'Error writing chat session metadata', e);
126
+ }
127
+ }
91
128
  async flushIndex() {
92
129
  const index = this.internalGetIndex();
93
130
  try {
@@ -105,6 +142,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
105
142
  async trimEntries() {
106
143
  const index = this.internalGetIndex();
107
144
  const entries = ( Object.entries(index.entries)
145
+ .filter(([_id, entry]) => !entry.isExternal)
108
146
  .sort((a, b) => b[1].lastMessageDate - a[1].lastMessageDate)
109
147
  .map(([id]) => id));
110
148
  if (entries.length > maxPersistedSessions) {
@@ -322,15 +360,31 @@ function isChatSessionIndex(data) {
322
360
  }
323
361
  return true;
324
362
  }
325
- function getSessionMetadata(session) {
363
+ async function getSessionMetadata(session) {
326
364
  const title = session.customTitle || (session instanceof ChatModel ? session.title : undefined);
365
+ let stats;
366
+ if (session instanceof ChatModel) {
367
+ stats = await awaitStatsForSession(session);
368
+ }
369
+ const timing = session instanceof ChatModel ?
370
+ session.timing :
371
+ {
372
+ startTime: session.creationDate,
373
+ endTime: session.lastMessageDate
374
+ };
327
375
  return {
328
376
  sessionId: session.sessionId,
329
- title: title || ( localize(5829, "New Chat")),
377
+ title: title || ( localize(5948, "New Chat")),
330
378
  lastMessageDate: session.lastMessageDate,
331
- isImported: session.isImported,
379
+ timing,
332
380
  initialLocation: session.initialLocation,
333
- isEmpty: session instanceof ChatModel ? session.getRequests().length === 0 : session.requests.length === 0
381
+ hasPendingEdits: session instanceof ChatModel ? (session.editingSession?.entries.get().some(e => e.state.get() === ModifiedFileEntryState.Modified)) : false,
382
+ isEmpty: session instanceof ChatModel ? session.getRequests().length === 0 : session.requests.length === 0,
383
+ stats,
384
+ isExternal: session instanceof ChatModel && !LocalChatSessionUri.parseLocalSessionId(session.sessionResource),
385
+ lastResponseState: session instanceof ChatModel ?
386
+ (session.lastRequest?.response?.state ?? ResponseModelState.Complete) :
387
+ ResponseModelState.Complete
334
388
  };
335
389
  }
336
390
 
@@ -6,6 +6,7 @@ import { IChatMessage } from "@codingame/monaco-vscode-api/vscode/vs/workbench/c
6
6
  import { IChatFollowup, IChatProgress, IChatResponseProgressFileTreeData } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService";
7
7
  import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
8
8
  import { ChatAgentLocation, ChatModeKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
9
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
9
10
  import { IChatSlashCommandService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSlashCommands.service";
10
11
  export interface IChatSlashData {
11
12
  command: string;
@@ -33,7 +34,7 @@ export interface IChatSlashFragment {
33
34
  };
34
35
  }
35
36
  export type IChatSlashCallback = {
36
- (prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, token: CancellationToken): Promise<{
37
+ (prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, sessionResource: URI, token: CancellationToken): Promise<{
37
38
  followUp: IChatFollowup[];
38
39
  } | void>;
39
40
  };
@@ -48,7 +49,7 @@ export declare class ChatSlashCommandService extends Disposable implements IChat
48
49
  registerSlashCommand(data: IChatSlashData, command: IChatSlashCallback): IDisposable;
49
50
  getCommands(location: ChatAgentLocation, mode: ChatModeKind): Array<IChatSlashData>;
50
51
  hasCommand(id: string): boolean;
51
- executeCommand(id: string, prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, token: CancellationToken): Promise<{
52
+ executeCommand(id: string, prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, sessionResource: URI, token: CancellationToken): Promise<{
52
53
  followUp: IChatFollowup[];
53
54
  } | void>;
54
55
  }
@@ -36,7 +36,7 @@ let ChatSlashCommandService = class ChatSlashCommandService extends Disposable {
36
36
  hasCommand(id) {
37
37
  return ( this._commands.has(id));
38
38
  }
39
- async executeCommand(id, prompt, progress, history, location, token) {
39
+ async executeCommand(id, prompt, progress, history, location, sessionResource, token) {
40
40
  const data = this._commands.get(id);
41
41
  if (!data) {
42
42
  throw ( new Error('No command with id ${id} NOT registered'));
@@ -47,7 +47,7 @@ let ChatSlashCommandService = class ChatSlashCommandService extends Disposable {
47
47
  if (!data.command) {
48
48
  throw ( new Error(`No command with id ${id} NOT resolved`));
49
49
  }
50
- return await data.command(prompt, progress, history, location, token);
50
+ return await data.command(prompt, progress, history, location, sessionResource, token);
51
51
  }
52
52
  };
53
53
  ChatSlashCommandService = ( __decorate([
@@ -4,7 +4,7 @@ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/even
4
4
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
5
  import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
6
6
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
7
- import { Memento } from '@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common/vscode/vs/workbench/common/memento';
7
+ import { Memento } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/memento';
8
8
  import { chatSessionResourceToId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatUri';
9
9
 
10
10
  let ChatTodoListStorage = class ChatTodoListStorage {
@@ -4,14 +4,14 @@ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
4
4
  import { ExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
5
5
  import { joinPath, isEqualOrParent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
6
6
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
7
- import { PromptsType } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
7
+ import { PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
8
8
  import { DisposableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
9
9
 
10
10
  function registerChatFilesExtensionPoint(point) {
11
11
  return ExtensionsRegistry.registerExtensionPoint({
12
12
  extensionPoint: point,
13
13
  jsonSchema: {
14
- description: ( localize(5847, 'Contributes {0} for chat prompts.', point)),
14
+ description: ( localize(5966, 'Contributes {0} for chat prompts.', point)),
15
15
  type: 'array',
16
16
  items: {
17
17
  additionalProperties: false,
@@ -27,18 +27,18 @@ function registerChatFilesExtensionPoint(point) {
27
27
  properties: {
28
28
  name: {
29
29
  description: ( localize(
30
- 5848,
30
+ 5967,
31
31
  'Identifier for this file. Must be unique within this extension for this contribution point.'
32
32
  )),
33
33
  type: 'string',
34
34
  pattern: '^[\\w.-]+$'
35
35
  },
36
36
  path: {
37
- description: ( localize(5849, 'Path to the file relative to the extension root.')),
37
+ description: ( localize(5968, 'Path to the file relative to the extension root.')),
38
38
  type: 'string'
39
39
  },
40
40
  description: {
41
- description: ( localize(5850, '(Optional) Description of the file.')),
41
+ description: ( localize(5969, '(Optional) Description of the file.')),
42
42
  type: 'string'
43
43
  }
44
44
  }
@@ -75,7 +75,7 @@ let ChatPromptFilesExtensionPointHandler = class ChatPromptFilesExtensionPointHa
75
75
  for (const raw of ext.value) {
76
76
  if (!raw.name || !raw.name.match(/^[\w.-]+$/)) {
77
77
  ext.collector.error(( localize(
78
- 5851,
78
+ 5970,
79
79
  "Extension '{0}' cannot register {1} entry with invalid name '{2}'.",
80
80
  ext.description.identifier.value,
81
81
  contributionPoint,
@@ -85,7 +85,7 @@ let ChatPromptFilesExtensionPointHandler = class ChatPromptFilesExtensionPointHa
85
85
  }
86
86
  if (!raw.path) {
87
87
  ext.collector.error(( localize(
88
- 5852,
88
+ 5971,
89
89
  "Extension '{0}' cannot register {1} entry '{2}' without path.",
90
90
  ext.description.identifier.value,
91
91
  contributionPoint,
@@ -95,7 +95,7 @@ let ChatPromptFilesExtensionPointHandler = class ChatPromptFilesExtensionPointHa
95
95
  }
96
96
  if (!raw.description) {
97
97
  ext.collector.error(( localize(
98
- 5853,
98
+ 5972,
99
99
  "Extension '{0}' cannot register {1} entry '{2}' without description.",
100
100
  ext.description.identifier.value,
101
101
  contributionPoint,
@@ -106,7 +106,7 @@ let ChatPromptFilesExtensionPointHandler = class ChatPromptFilesExtensionPointHa
106
106
  const fileUri = joinPath(ext.description.extensionLocation, raw.path);
107
107
  if (!isEqualOrParent(fileUri, ext.description.extensionLocation)) {
108
108
  ext.collector.error(( localize(
109
- 5854,
109
+ 5973,
110
110
  "Extension '{0}' {1} entry '{2}' path resolves outside the extension.",
111
111
  ext.description.identifier.value,
112
112
  contributionPoint,
@@ -121,7 +121,7 @@ let ChatPromptFilesExtensionPointHandler = class ChatPromptFilesExtensionPointHa
121
121
  catch (e) {
122
122
  const msg = e instanceof Error ? e.message : String(e);
123
123
  ext.collector.error(( localize(
124
- 5855,
124
+ 5974,
125
125
  "Failed to register {0} entry '{1}': {2}",
126
126
  contributionPoint,
127
127
  raw.name,
@@ -2,8 +2,8 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
4
4
  import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
5
- import { getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
6
- import { PromptHeaderAttributes } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
5
+ import { getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
6
+ import { PromptHeaderAttributes } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
7
7
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
8
8
 
9
9
  let PromptHeaderDefinitionProvider = class PromptHeaderDefinitionProvider {
@@ -1,13 +1,13 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { extUri, dirname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
4
- import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
4
+ import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
5
5
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
6
6
  import { CompletionItemKind } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
7
7
  import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
8
8
  import { CharCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/charCode';
9
9
  import { getWordAtText } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/wordHelper';
10
- import { chatVariableLeader } from '@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
10
+ import { chatVariableLeader } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
11
11
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
12
12
 
13
13
  let PromptBodyAutocompletion = class PromptBodyAutocompletion {
@@ -52,7 +52,7 @@ let PromptBodyAutocompletion = class PromptBodyAutocompletion {
52
52
  return { suggestions };
53
53
  }
54
54
  async collectToolCompletions(model, position, toolRange, suggestions) {
55
- for (const toolName of this.languageModelToolsService.getQualifiedToolNames()) {
55
+ for (const toolName of this.languageModelToolsService.getFullReferenceNames()) {
56
56
  suggestions.push({
57
57
  label: toolName,
58
58
  kind: CompletionItemKind.Value,
@@ -6,16 +6,20 @@ import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/
6
6
  import { IPromptsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service";
7
7
  import { Selection } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/selection";
8
8
  import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
9
+ import { IMarkerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/markers/common/markers.service";
9
10
  export declare class PromptCodeActionProvider implements CodeActionProvider {
10
11
  private readonly promptsService;
11
12
  private readonly languageModelToolsService;
12
13
  private readonly fileService;
14
+ private readonly markerService;
13
15
  /**
14
16
  * Debug display name for this provider.
15
17
  */
16
18
  readonly _debugDisplayName: string;
17
- constructor(promptsService: IPromptsService, languageModelToolsService: ILanguageModelToolsService, fileService: IFileService);
19
+ constructor(promptsService: IPromptsService, languageModelToolsService: ILanguageModelToolsService, fileService: IFileService, markerService: IMarkerService);
18
20
  provideCodeActions(model: ITextModel, range: Range | Selection, context: CodeActionContext, token: CancellationToken): Promise<CodeActionList | undefined>;
21
+ private getMarkers;
22
+ private createCodeAction;
19
23
  private getUpdateModeCodeActions;
20
24
  private getMigrateModeFileCodeActions;
21
25
  private getUpdateToolsCodeActions;
@@ -3,19 +3,22 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
3
3
  import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
4
4
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
5
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
6
- import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
6
+ import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
7
7
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
8
- import { PromptHeaderAttributes } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
8
+ import { PromptHeaderAttributes } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
9
9
  import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
10
- import { LEGACY_MODE_FILE_EXTENSION } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
10
+ import { LEGACY_MODE_FILE_EXTENSION } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
11
11
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
12
- import { isGithubTarget } from './promptValidator.js';
12
+ import { MARKERS_OWNER_ID, isGithubTarget } from './promptValidator.js';
13
+ import { IMarkerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markers/common/markers.service';
14
+ import { CodeActionKind } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/codeAction/common/types';
13
15
 
14
16
  let PromptCodeActionProvider = class PromptCodeActionProvider {
15
- constructor(promptsService, languageModelToolsService, fileService) {
17
+ constructor(promptsService, languageModelToolsService, fileService, markerService) {
16
18
  this.promptsService = promptsService;
17
19
  this.languageModelToolsService = languageModelToolsService;
18
20
  this.fileService = fileService;
21
+ this.markerService = markerService;
19
22
  this._debugDisplayName = 'PromptCodeActionProvider';
20
23
  }
21
24
  async provideCodeActions(model, range, context, token) {
@@ -28,7 +31,7 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
28
31
  switch (promptType) {
29
32
  case PromptsType.agent:
30
33
  this.getUpdateToolsCodeActions(promptAST, promptType, model, range, result);
31
- await this.getMigrateModeFileCodeActions(model.uri, result);
34
+ await this.getMigrateModeFileCodeActions(model, result);
32
35
  break;
33
36
  case PromptsType.prompt:
34
37
  this.getUpdateModeCodeActions(promptAST, model, range, result);
@@ -43,6 +46,19 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
43
46
  dispose: () => { }
44
47
  };
45
48
  }
49
+ getMarkers(model, range) {
50
+ const markers = this.markerService.read({ resource: model.uri, owner: MARKERS_OWNER_ID });
51
+ return markers.filter(marker => range.containsRange(marker));
52
+ }
53
+ createCodeAction(model, range, title, edits) {
54
+ return {
55
+ title,
56
+ edit: { edits },
57
+ ranges: [range],
58
+ diagnostics: this.getMarkers(model, range),
59
+ kind: CodeActionKind.QuickFix.value
60
+ };
61
+ }
46
62
  getUpdateModeCodeActions(promptFile, model, range, result) {
47
63
  const modeAttr = promptFile.header?.getAttribute(PromptHeaderAttributes.mode);
48
64
  if (!modeAttr?.range.containsRange(range)) {
@@ -54,24 +70,14 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
54
70
  modeAttr.range.startLineNumber,
55
71
  modeAttr.range.startColumn + modeAttr.key.length
56
72
  ));
57
- result.push({
58
- title: ( localize(5863, "Rename to 'agent'")),
59
- edit: {
60
- edits: [asWorkspaceTextEdit(model, { range: keyRange, text: 'agent' })]
61
- }
62
- });
73
+ result.push(this.createCodeAction(model, keyRange, ( localize(5982, "Rename to 'agent'")), [asWorkspaceTextEdit(model, { range: keyRange, text: 'agent' })]));
63
74
  }
64
- async getMigrateModeFileCodeActions(uri, result) {
65
- if (uri.path.endsWith(LEGACY_MODE_FILE_EXTENSION)) {
66
- const location = this.promptsService.getAgentFileURIFromModeFile(uri);
67
- if (location && (await this.fileService.canMove(uri, location))) {
68
- const edit = { oldResource: uri, newResource: location, options: { overwrite: false, copy: false } };
69
- result.push({
70
- title: ( localize(5864, "Migrate to custom agent file")),
71
- edit: {
72
- edits: [edit]
73
- }
74
- });
75
+ async getMigrateModeFileCodeActions(model, result) {
76
+ if (model.uri.path.endsWith(LEGACY_MODE_FILE_EXTENSION)) {
77
+ const location = this.promptsService.getAgentFileURIFromModeFile(model.uri);
78
+ if (location && (await this.fileService.canMove(model.uri, location))) {
79
+ const edit = { oldResource: model.uri, newResource: location, options: { overwrite: false, copy: false } };
80
+ result.push(this.createCodeAction(model, ( new Range(1, 1, 1, 4)), ( localize(5983, "Migrate to custom agent file")), [edit]));
75
81
  }
76
82
  }
77
83
  }
@@ -84,47 +90,58 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
84
90
  return;
85
91
  }
86
92
  const values = toolsAttr.value.items;
87
- const deprecatedNames = ( new Lazy(() => this.languageModelToolsService.getDeprecatedQualifiedToolNames()));
93
+ const deprecatedNames = ( new Lazy(() => this.languageModelToolsService.getDeprecatedFullReferenceNames()));
88
94
  const edits = [];
89
95
  for (const item of values) {
90
96
  if (item.type !== 'string') {
91
97
  continue;
92
98
  }
93
- const newName = deprecatedNames.value.get(item.value);
94
- if (newName) {
99
+ const newNames = deprecatedNames.value.get(item.value);
100
+ if (newNames && newNames.size > 0) {
95
101
  const quote = model.getValueInRange(( new Range(
96
102
  item.range.startLineNumber,
97
103
  item.range.startColumn,
98
104
  item.range.endLineNumber,
99
105
  item.range.startColumn + 1
100
106
  )));
101
- const text = (quote === `'` || quote === '"') ? (quote + newName + quote) : newName;
102
- const edit = { range: item.range, text };
103
- edits.push(edit);
104
- if (item.range.containsRange(range)) {
105
- result.push({
106
- title: ( localize(5865, "Update to '{0}'", newName)),
107
- edit: {
108
- edits: [asWorkspaceTextEdit(model, edit)]
109
- }
110
- });
107
+ if (newNames.size === 1) {
108
+ const newName = Array.from(newNames)[0];
109
+ const text = (quote === `'` || quote === '"') ? (quote + newName + quote) : newName;
110
+ const edit = { range: item.range, text };
111
+ edits.push(edit);
112
+ if (item.range.containsRange(range)) {
113
+ result.push(this.createCodeAction(model, item.range, ( localize(5984, "Update to '{0}'", newName)), [asWorkspaceTextEdit(model, edit)]));
114
+ }
115
+ }
116
+ else {
117
+ const newNamesArray = Array.from(newNames).sort((a, b) => a.localeCompare(b));
118
+ const separator = model.getValueInRange(( new Range(
119
+ item.range.startLineNumber,
120
+ item.range.endColumn,
121
+ item.range.endLineNumber,
122
+ item.range.endColumn + 2
123
+ )));
124
+ const useCommaSpace = separator.includes(',');
125
+ const delimiterText = useCommaSpace ? ', ' : ',';
126
+ const newNamesText = ( newNamesArray.map(name => (quote === `'` || quote === '"') ? (quote + name + quote) : name)).join(delimiterText);
127
+ const edit = { range: item.range, text: newNamesText };
128
+ edits.push(edit);
129
+ if (item.range.containsRange(range)) {
130
+ result.push(this.createCodeAction(model, item.range, ( localize(5985, "Expand to {0} tools", newNames.size)), [asWorkspaceTextEdit(model, edit)]));
131
+ }
111
132
  }
112
133
  }
113
134
  }
114
135
  if (edits.length && result.length === 0 || edits.length > 1) {
115
- result.push({
116
- title: ( localize(5866, "Update all tool names")),
117
- edit: {
118
- edits: ( edits.map(edit => asWorkspaceTextEdit(model, edit)))
119
- }
120
- });
136
+ result.push(this.createCodeAction(model, toolsAttr.value.range, ( localize(5986, "Update all tool names")), ( edits.map(edit => asWorkspaceTextEdit(model, edit)))));
121
137
  }
122
138
  }
123
139
  };
124
140
  PromptCodeActionProvider = ( __decorate([
125
141
  ( __param(0, IPromptsService)),
126
142
  ( __param(1, ILanguageModelToolsService)),
127
- ( __param(2, IFileService))
143
+ ( __param(2, IFileService)),
144
+ ( __param(3, IMarkerService))
128
145
  ], PromptCodeActionProvider));
129
146
  function asWorkspaceTextEdit(model, textEdit) {
130
147
  return {
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
3
+ import { getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
4
4
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
5
5
  import { isGithubTarget } from './promptValidator.js';
6
6