@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
@@ -12,16 +12,17 @@ import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workben
12
12
  import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
13
13
  import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
14
14
  import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
15
+ import { SpecedToolAliases } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
15
16
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
16
- import { PromptsType, getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
17
- import { PromptHeaderAttributes, PROMPT_NAME_REGEXP, Target, GithubPromptHeaderAttributes } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
17
+ import { PromptsType, getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
18
+ import { PromptHeaderAttributes, Target, GithubPromptHeaderAttributes } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
18
19
  import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
19
20
  import { Delayer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
20
21
  import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
21
22
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
22
23
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
23
24
  import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
24
- import { LEGACY_MODE_FILE_EXTENSION, AGENTS_SOURCE_FOLDER } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
25
+ import { LEGACY_MODE_FILE_EXTENSION, AGENTS_SOURCE_FOLDER } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
25
26
  import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
26
27
 
27
28
  const MARKERS_OWNER_ID = 'prompts-diagnostics-provider';
@@ -45,14 +46,14 @@ let PromptValidator = class PromptValidator {
45
46
  const location = this.promptsService.getAgentFileURIFromModeFile(promptAST.uri);
46
47
  if (location && (await this.fileService.canCreateFile(location))) {
47
48
  report(toMarker(( localize(
48
- 5894,
49
+ 6016,
49
50
  "Chat modes have been renamed to agents. Please move this file to {0}",
50
51
  (location.toString())
51
52
  )), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
52
53
  }
53
54
  else {
54
55
  report(toMarker(( localize(
55
- 5895,
56
+ 6017,
56
57
  "Chat modes have been renamed to agents. Please move the file to {0}",
57
58
  AGENTS_SOURCE_FOLDER
58
59
  )), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
@@ -68,7 +69,7 @@ let PromptValidator = class PromptValidator {
68
69
  for (const ref of body.fileReferences) {
69
70
  const resolved = body.resolveFilePath(ref.content);
70
71
  if (!resolved) {
71
- report(toMarker(( localize(5896, "Invalid file reference '{0}'.", ref.content)), ref.range, MarkerSeverity.Warning));
72
+ report(toMarker(( localize(6018, "Invalid file reference '{0}'.", ref.content)), ref.range, MarkerSeverity.Warning));
72
73
  continue;
73
74
  }
74
75
  if (promptAST.uri.scheme === resolved.scheme) {
@@ -82,7 +83,7 @@ let PromptValidator = class PromptValidator {
82
83
  catch {
83
84
  }
84
85
  const loc = this.labelService.getUriLabel(resolved);
85
- report(toMarker(( localize(5897, "File '{0}' not found at '{1}'.", ref.content, loc)), ref.range, MarkerSeverity.Warning));
86
+ report(toMarker(( localize(6019, "File '{0}' not found at '{1}'.", ref.content, loc)), ref.range, MarkerSeverity.Warning));
86
87
  })());
87
88
  }
88
89
  }
@@ -91,28 +92,42 @@ let PromptValidator = class PromptValidator {
91
92
  const headerTools = promptAST.header?.tools;
92
93
  const headerTarget = promptAST.header?.target;
93
94
  const headerToolsMap = headerTools ? this.languageModelToolsService.toToolAndToolSetEnablementMap(headerTools, headerTarget) : undefined;
94
- const available = ( new Set(this.languageModelToolsService.getQualifiedToolNames()));
95
- const deprecatedNames = this.languageModelToolsService.getDeprecatedQualifiedToolNames();
95
+ const available = ( new Set(this.languageModelToolsService.getFullReferenceNames()));
96
+ const deprecatedNames = this.languageModelToolsService.getDeprecatedFullReferenceNames();
96
97
  for (const variable of body.variableReferences) {
97
98
  if (!( available.has(variable.name))) {
98
99
  if (( deprecatedNames.has(variable.name))) {
99
- const currentName = deprecatedNames.get(variable.name);
100
- report(toMarker(( localize(
101
- 5898,
102
- "Tool or toolset '{0}' has been renamed, use '{1}' instead.",
103
- variable.name,
104
- currentName
105
- )), variable.range, MarkerSeverity.Info));
100
+ const currentNames = deprecatedNames.get(variable.name);
101
+ if (currentNames && currentNames.size > 0) {
102
+ if (currentNames.size === 1) {
103
+ const newName = Array.from(currentNames)[0];
104
+ report(toMarker(( localize(
105
+ 6020,
106
+ "Tool or toolset '{0}' has been renamed, use '{1}' instead.",
107
+ variable.name,
108
+ newName
109
+ )), variable.range, MarkerSeverity.Info));
110
+ }
111
+ else {
112
+ const newNames = Array.from(currentNames).sort((a, b) => a.localeCompare(b)).join(', ');
113
+ report(toMarker(( localize(
114
+ 6021,
115
+ "Tool or toolset '{0}' has been renamed, use the following tools instead: {1}",
116
+ variable.name,
117
+ newNames
118
+ )), variable.range, MarkerSeverity.Info));
119
+ }
120
+ }
106
121
  }
107
122
  else {
108
- report(toMarker(( localize(5899, "Unknown tool or toolset '{0}'.", variable.name)), variable.range, MarkerSeverity.Warning));
123
+ report(toMarker(( localize(6022, "Unknown tool or toolset '{0}'.", variable.name)), variable.range, MarkerSeverity.Warning));
109
124
  }
110
125
  }
111
126
  else if (headerToolsMap) {
112
- const tool = this.languageModelToolsService.getToolByQualifiedName(variable.name);
127
+ const tool = this.languageModelToolsService.getToolByFullReferenceName(variable.name);
113
128
  if (tool && headerToolsMap.get(tool) === false) {
114
129
  report(toMarker(( localize(
115
- 5900,
130
+ 6023,
116
131
  "Tool or toolset '{0}' also needs to be enabled in the header.",
117
132
  variable.name
118
133
  )), variable.range, MarkerSeverity.Warning));
@@ -146,6 +161,7 @@ let PromptValidator = class PromptValidator {
146
161
  break;
147
162
  case PromptsType.agent: {
148
163
  this.validateTarget(attributes, report);
164
+ this.validateInfer(attributes, report);
149
165
  this.validateTools(attributes, ChatModeKind.Agent, header.target, report);
150
166
  if (!isGitHubTarget) {
151
167
  this.validateModel(attributes, ChatModeKind.Agent, report);
@@ -166,7 +182,7 @@ let PromptValidator = class PromptValidator {
166
182
  switch (promptType) {
167
183
  case PromptsType.prompt:
168
184
  report(toMarker(( localize(
169
- 5901,
185
+ 6024,
170
186
  "Attribute '{0}' is not supported in prompt files. Supported: {1}.",
171
187
  attribute.key,
172
188
  supportedNames.value
@@ -175,7 +191,7 @@ let PromptValidator = class PromptValidator {
175
191
  case PromptsType.agent:
176
192
  if (isGitHubTarget) {
177
193
  report(toMarker(( localize(
178
- 5902,
194
+ 6025,
179
195
  "Attribute '{0}' is not supported in custom GitHub Copilot agent files. Supported: {1}.",
180
196
  attribute.key,
181
197
  supportedNames.value
@@ -184,14 +200,14 @@ let PromptValidator = class PromptValidator {
184
200
  else {
185
201
  if (( validGithubCopilotAttributeNames.value.has(attribute.key))) {
186
202
  report(toMarker(( localize(
187
- 5903,
203
+ 6026,
188
204
  "Attribute '{0}' is ignored when running locally in VS Code.",
189
205
  attribute.key
190
206
  )), attribute.range, MarkerSeverity.Info));
191
207
  }
192
208
  else {
193
209
  report(toMarker(( localize(
194
- 5904,
210
+ 6027,
195
211
  "Attribute '{0}' is not supported in VS Code agent files. Supported: {1}.",
196
212
  attribute.key,
197
213
  supportedNames.value
@@ -201,7 +217,7 @@ let PromptValidator = class PromptValidator {
201
217
  break;
202
218
  case PromptsType.instructions:
203
219
  report(toMarker(( localize(
204
- 5905,
220
+ 6028,
205
221
  "Attribute '{0}' is not supported in instructions files. Supported: {1}.",
206
222
  attribute.key,
207
223
  supportedNames.value
@@ -217,19 +233,13 @@ let PromptValidator = class PromptValidator {
217
233
  return;
218
234
  }
219
235
  if (nameAttribute.value.type !== 'string') {
220
- report(toMarker(( localize(5906, "The 'name' attribute must be a string.")), nameAttribute.range, MarkerSeverity.Error));
236
+ report(toMarker(( localize(6029, "The 'name' attribute must be a string.")), nameAttribute.range, MarkerSeverity.Error));
221
237
  return;
222
238
  }
223
239
  if (nameAttribute.value.value.trim().length === 0) {
224
- report(toMarker(( localize(5907, "The 'name' attribute must not be empty.")), nameAttribute.value.range, MarkerSeverity.Error));
240
+ report(toMarker(( localize(6030, "The 'name' attribute must not be empty.")), nameAttribute.value.range, MarkerSeverity.Error));
225
241
  return;
226
242
  }
227
- if (!PROMPT_NAME_REGEXP.test(nameAttribute.value.value)) {
228
- report(toMarker(( localize(
229
- 5908,
230
- "The 'name' attribute can only consist of letters, digits, underscores, hyphens, and periods."
231
- )), nameAttribute.value.range, MarkerSeverity.Error));
232
- }
233
243
  }
234
244
  validateDescription(attributes, report) {
235
245
  const descriptionAttribute = attributes.find(attr => attr.key === PromptHeaderAttributes.description);
@@ -237,11 +247,11 @@ let PromptValidator = class PromptValidator {
237
247
  return;
238
248
  }
239
249
  if (descriptionAttribute.value.type !== 'string') {
240
- report(toMarker(( localize(5909, "The 'description' attribute must be a string.")), descriptionAttribute.range, MarkerSeverity.Error));
250
+ report(toMarker(( localize(6031, "The 'description' attribute must be a string.")), descriptionAttribute.range, MarkerSeverity.Error));
241
251
  return;
242
252
  }
243
253
  if (descriptionAttribute.value.value.trim().length === 0) {
244
- report(toMarker(( localize(5910, "The 'description' attribute should not be empty.")), descriptionAttribute.value.range, MarkerSeverity.Error));
254
+ report(toMarker(( localize(6032, "The 'description' attribute should not be empty.")), descriptionAttribute.value.range, MarkerSeverity.Error));
245
255
  return;
246
256
  }
247
257
  }
@@ -251,11 +261,11 @@ let PromptValidator = class PromptValidator {
251
261
  return;
252
262
  }
253
263
  if (argumentHintAttribute.value.type !== 'string') {
254
- report(toMarker(( localize(5911, "The 'argument-hint' attribute must be a string.")), argumentHintAttribute.range, MarkerSeverity.Error));
264
+ report(toMarker(( localize(6033, "The 'argument-hint' attribute must be a string.")), argumentHintAttribute.range, MarkerSeverity.Error));
255
265
  return;
256
266
  }
257
267
  if (argumentHintAttribute.value.value.trim().length === 0) {
258
- report(toMarker(( localize(5912, "The 'argument-hint' attribute should not be empty.")), argumentHintAttribute.value.range, MarkerSeverity.Error));
268
+ report(toMarker(( localize(6034, "The 'argument-hint' attribute should not be empty.")), argumentHintAttribute.value.range, MarkerSeverity.Error));
259
269
  return;
260
270
  }
261
271
  }
@@ -265,12 +275,12 @@ let PromptValidator = class PromptValidator {
265
275
  return;
266
276
  }
267
277
  if (attribute.value.type !== 'string') {
268
- report(toMarker(( localize(5913, "The 'model' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
278
+ report(toMarker(( localize(6035, "The 'model' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
269
279
  return;
270
280
  }
271
281
  const modelName = attribute.value.value.trim();
272
282
  if (modelName.length === 0) {
273
- report(toMarker(( localize(5914, "The 'model' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
283
+ report(toMarker(( localize(6036, "The 'model' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
274
284
  return;
275
285
  }
276
286
  const languageModes = this.languageModelsService.getLanguageModelIds();
@@ -279,10 +289,10 @@ let PromptValidator = class PromptValidator {
279
289
  }
280
290
  const modelMetadata = this.findModelByName(languageModes, modelName);
281
291
  if (!modelMetadata) {
282
- report(toMarker(( localize(5915, "Unknown model '{0}'.", modelName)), attribute.value.range, MarkerSeverity.Warning));
292
+ report(toMarker(( localize(6037, "Unknown model '{0}'.", modelName)), attribute.value.range, MarkerSeverity.Warning));
283
293
  }
284
294
  else if (agentKind === ChatModeKind.Agent && !ILanguageModelChatMetadata.suitableForAgentMode(modelMetadata)) {
285
- report(toMarker(( localize(5916, "Model '{0}' is not suited for agent mode.", modelName)), attribute.value.range, MarkerSeverity.Warning));
295
+ report(toMarker(( localize(6038, "Model '{0}' is not suited for agent mode.", modelName)), attribute.value.range, MarkerSeverity.Warning));
286
296
  }
287
297
  }
288
298
  findModelByName(languageModes, modelName) {
@@ -300,13 +310,13 @@ let PromptValidator = class PromptValidator {
300
310
  if (modeAttribute) {
301
311
  if (agentAttribute) {
302
312
  report(toMarker(( localize(
303
- 5917,
313
+ 6039,
304
314
  "The 'mode' attribute has been deprecated. The 'agent' attribute is used instead."
305
315
  )), modeAttribute.range, MarkerSeverity.Warning));
306
316
  }
307
317
  else {
308
318
  report(toMarker(( localize(
309
- 5918,
319
+ 6040,
310
320
  "The 'mode' attribute has been deprecated. Please rename it to 'agent'."
311
321
  )), modeAttribute.range, MarkerSeverity.Error));
312
322
  }
@@ -316,12 +326,12 @@ let PromptValidator = class PromptValidator {
316
326
  return undefined;
317
327
  }
318
328
  if (attribute.value.type !== 'string') {
319
- report(toMarker(( localize(5919, "The '{0}' attribute must be a string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
329
+ report(toMarker(( localize(6041, "The '{0}' attribute must be a string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
320
330
  return undefined;
321
331
  }
322
332
  const agentValue = attribute.value.value;
323
333
  if (agentValue.trim().length === 0) {
324
- report(toMarker(( localize(5920, "The '{0}' attribute must be a non-empty string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
334
+ report(toMarker(( localize(6042, "The '{0}' attribute must be a non-empty string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
325
335
  return undefined;
326
336
  }
327
337
  return this.validateAgentValue(attribute.value, report);
@@ -336,7 +346,7 @@ let PromptValidator = class PromptValidator {
336
346
  availableAgents.push(agent.name.get());
337
347
  }
338
348
  const errorMessage = ( localize(
339
- 5921,
349
+ 6043,
340
350
  "Unknown agent '{0}'. Available agents: {1}.",
341
351
  value.value,
342
352
  availableAgents.join(', ')
@@ -351,7 +361,7 @@ let PromptValidator = class PromptValidator {
351
361
  }
352
362
  if (agentKind !== ChatModeKind.Agent) {
353
363
  report(toMarker(( localize(
354
- 5922,
364
+ 6044,
355
365
  "The 'tools' attribute is only supported when using agents. Attribute will be ignored."
356
366
  )), attribute.range, MarkerSeverity.Warning));
357
367
  }
@@ -363,31 +373,42 @@ let PromptValidator = class PromptValidator {
363
373
  }
364
374
  break;
365
375
  default:
366
- report(toMarker(( localize(5923, "The 'tools' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
376
+ report(toMarker(( localize(6045, "The 'tools' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
367
377
  }
368
378
  }
369
379
  validateVSCodeTools(valueItem, target, report) {
370
380
  if (valueItem.items.length > 0) {
371
- const available = ( new Set(this.languageModelToolsService.getQualifiedToolNames()));
372
- const deprecatedNames = this.languageModelToolsService.getDeprecatedQualifiedToolNames();
381
+ const available = ( new Set(this.languageModelToolsService.getFullReferenceNames()));
382
+ const deprecatedNames = this.languageModelToolsService.getDeprecatedFullReferenceNames();
373
383
  for (const item of valueItem.items) {
374
384
  if (item.type !== 'string') {
375
- report(toMarker(( localize(5924, "Each tool name in the 'tools' attribute must be a string.")), item.range, MarkerSeverity.Error));
385
+ report(toMarker(( localize(6046, "Each tool name in the 'tools' attribute must be a string.")), item.range, MarkerSeverity.Error));
376
386
  }
377
387
  else if (item.value) {
378
- const toolName = target === undefined ? this.languageModelToolsService.mapGithubToolName(item.value) : item.value;
379
- if (!( available.has(toolName))) {
380
- if (( deprecatedNames.has(toolName))) {
381
- const currentName = deprecatedNames.get(toolName);
382
- report(toMarker(( localize(
383
- 5925,
384
- "Tool or toolset '{0}' has been renamed, use '{1}' instead.",
385
- toolName,
386
- currentName
387
- )), item.range, MarkerSeverity.Info));
388
+ if (!( available.has(item.value))) {
389
+ const currentNames = deprecatedNames.get(item.value);
390
+ if (currentNames) {
391
+ if (currentNames?.size === 1) {
392
+ const newName = Array.from(currentNames)[0];
393
+ report(toMarker(( localize(
394
+ 6047,
395
+ "Tool or toolset '{0}' has been renamed, use '{1}' instead.",
396
+ item.value,
397
+ newName
398
+ )), item.range, MarkerSeverity.Info));
399
+ }
400
+ else {
401
+ const newNames = Array.from(currentNames).sort((a, b) => a.localeCompare(b)).join(', ');
402
+ report(toMarker(( localize(
403
+ 6048,
404
+ "Tool or toolset '{0}' has been renamed, use the following tools instead: {1}",
405
+ item.value,
406
+ newNames
407
+ )), item.range, MarkerSeverity.Info));
408
+ }
388
409
  }
389
410
  else {
390
- report(toMarker(( localize(5926, "Unknown tool '{0}'.", toolName)), item.range, MarkerSeverity.Warning));
411
+ report(toMarker(( localize(6049, "Unknown tool '{0}'.", item.value)), item.range, MarkerSeverity.Warning));
391
412
  }
392
413
  }
393
414
  }
@@ -400,26 +421,26 @@ let PromptValidator = class PromptValidator {
400
421
  return;
401
422
  }
402
423
  if (attribute.value.type !== 'string') {
403
- report(toMarker(( localize(5927, "The 'applyTo' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
424
+ report(toMarker(( localize(6050, "The 'applyTo' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
404
425
  return;
405
426
  }
406
427
  const pattern = attribute.value.value;
407
428
  try {
408
429
  const patterns = splitGlobAware(pattern, ',');
409
430
  if (patterns.length === 0) {
410
- report(toMarker(( localize(5928, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
431
+ report(toMarker(( localize(6051, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
411
432
  return;
412
433
  }
413
434
  for (const pattern of patterns) {
414
435
  const globPattern = parse(pattern);
415
436
  if (isEmptyPattern(globPattern)) {
416
- report(toMarker(( localize(5928, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
437
+ report(toMarker(( localize(6051, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
417
438
  return;
418
439
  }
419
440
  }
420
441
  }
421
442
  catch (_error) {
422
- report(toMarker(( localize(5928, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
443
+ report(toMarker(( localize(6051, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
423
444
  }
424
445
  }
425
446
  validateExcludeAgent(attributes, report) {
@@ -428,7 +449,7 @@ let PromptValidator = class PromptValidator {
428
449
  return;
429
450
  }
430
451
  if (attribute.value.type !== 'array') {
431
- report(toMarker(( localize(5929, "The 'excludeAgent' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
452
+ report(toMarker(( localize(6052, "The 'excludeAgent' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
432
453
  return;
433
454
  }
434
455
  }
@@ -438,13 +459,13 @@ let PromptValidator = class PromptValidator {
438
459
  return;
439
460
  }
440
461
  if (attribute.value.type !== 'array') {
441
- report(toMarker(( localize(5930, "The 'handoffs' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
462
+ report(toMarker(( localize(6053, "The 'handoffs' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
442
463
  return;
443
464
  }
444
465
  for (const item of attribute.value.items) {
445
466
  if (item.type !== 'object') {
446
467
  report(toMarker(( localize(
447
- 5931,
468
+ 6054,
448
469
  "Each handoff in the 'handoffs' attribute must be an object with 'label', 'agent', 'prompt' and optional 'send'."
449
470
  )), item.range, MarkerSeverity.Error));
450
471
  continue;
@@ -454,12 +475,12 @@ let PromptValidator = class PromptValidator {
454
475
  switch (prop.key.value) {
455
476
  case 'label':
456
477
  if (prop.value.type !== 'string' || prop.value.value.trim().length === 0) {
457
- report(toMarker(( localize(5932, "The 'label' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
478
+ report(toMarker(( localize(6055, "The 'label' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
458
479
  }
459
480
  break;
460
481
  case 'agent':
461
482
  if (prop.value.type !== 'string' || prop.value.value.trim().length === 0) {
462
- report(toMarker(( localize(5933, "The 'agent' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
483
+ report(toMarker(( localize(6056, "The 'agent' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
463
484
  }
464
485
  else {
465
486
  this.validateAgentValue(prop.value, report);
@@ -467,18 +488,23 @@ let PromptValidator = class PromptValidator {
467
488
  break;
468
489
  case 'prompt':
469
490
  if (prop.value.type !== 'string') {
470
- report(toMarker(( localize(5934, "The 'prompt' property in a handoff must be a string.")), prop.value.range, MarkerSeverity.Error));
491
+ report(toMarker(( localize(6057, "The 'prompt' property in a handoff must be a string.")), prop.value.range, MarkerSeverity.Error));
471
492
  }
472
493
  break;
473
494
  case 'send':
474
495
  if (prop.value.type !== 'boolean') {
475
- report(toMarker(( localize(5935, "The 'send' property in a handoff must be a boolean.")), prop.value.range, MarkerSeverity.Error));
496
+ report(toMarker(( localize(6058, "The 'send' property in a handoff must be a boolean.")), prop.value.range, MarkerSeverity.Error));
497
+ }
498
+ break;
499
+ case 'showContinueOn':
500
+ if (prop.value.type !== 'boolean') {
501
+ report(toMarker(( localize(6059, "The 'showContinueOn' property in a handoff must be a boolean.")), prop.value.range, MarkerSeverity.Error));
476
502
  }
477
503
  break;
478
504
  default:
479
505
  report(toMarker(( localize(
480
- 5936,
481
- "Unknown property '{0}' in handoff object. Supported properties are 'label', 'agent', 'prompt' and optional 'send'.",
506
+ 6060,
507
+ "Unknown property '{0}' in handoff object. Supported properties are 'label', 'agent', 'prompt' and optional 'send', 'showContinueOn'.",
482
508
  prop.key.value
483
509
  )), prop.value.range, MarkerSeverity.Warning));
484
510
  }
@@ -486,31 +512,41 @@ let PromptValidator = class PromptValidator {
486
512
  }
487
513
  if (required.size > 0) {
488
514
  report(toMarker(( localize(
489
- 5937,
515
+ 6061,
490
516
  "Missing required properties {0} in handoff object.",
491
517
  ( Array.from(required).map(s => `'${s}'`)).join(', ')
492
518
  )), item.range, MarkerSeverity.Error));
493
519
  }
494
520
  }
495
521
  }
522
+ validateInfer(attributes, report) {
523
+ const attribute = attributes.find(attr => attr.key === PromptHeaderAttributes.infer);
524
+ if (!attribute) {
525
+ return;
526
+ }
527
+ if (attribute.value.type !== 'boolean') {
528
+ report(toMarker(( localize(6062, "The 'infer' attribute must be a boolean.")), attribute.value.range, MarkerSeverity.Error));
529
+ return;
530
+ }
531
+ }
496
532
  validateTarget(attributes, report) {
497
533
  const attribute = attributes.find(attr => attr.key === PromptHeaderAttributes.target);
498
534
  if (!attribute) {
499
535
  return;
500
536
  }
501
537
  if (attribute.value.type !== 'string') {
502
- report(toMarker(( localize(5938, "The 'target' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
538
+ report(toMarker(( localize(6063, "The 'target' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
503
539
  return;
504
540
  }
505
541
  const targetValue = attribute.value.value.trim();
506
542
  if (targetValue.length === 0) {
507
- report(toMarker(( localize(5939, "The 'target' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
543
+ report(toMarker(( localize(6064, "The 'target' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
508
544
  return;
509
545
  }
510
546
  const validTargets = ['github-copilot', 'vscode'];
511
547
  if (!validTargets.includes(targetValue)) {
512
548
  report(toMarker(( localize(
513
- 5940,
549
+ 6065,
514
550
  "The 'target' attribute must be one of: {0}.",
515
551
  validTargets.join(', ')
516
552
  )), attribute.value.range, MarkerSeverity.Error));
@@ -528,9 +564,9 @@ PromptValidator = ( __decorate([
528
564
  const allAttributeNames = {
529
565
  [PromptsType.prompt]: [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.model, PromptHeaderAttributes.tools, PromptHeaderAttributes.mode, PromptHeaderAttributes.agent, PromptHeaderAttributes.argumentHint],
530
566
  [PromptsType.instructions]: [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.applyTo, PromptHeaderAttributes.excludeAgent],
531
- [PromptsType.agent]: [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.model, PromptHeaderAttributes.tools, PromptHeaderAttributes.advancedOptions, PromptHeaderAttributes.handOffs, PromptHeaderAttributes.argumentHint, PromptHeaderAttributes.target]
567
+ [PromptsType.agent]: [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.model, PromptHeaderAttributes.tools, PromptHeaderAttributes.advancedOptions, PromptHeaderAttributes.handOffs, PromptHeaderAttributes.argumentHint, PromptHeaderAttributes.target, PromptHeaderAttributes.infer]
532
568
  };
533
- const githubCopilotAgentAttributeNames = [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.tools, PromptHeaderAttributes.target, GithubPromptHeaderAttributes.mcpServers];
569
+ const githubCopilotAgentAttributeNames = [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.tools, PromptHeaderAttributes.target, GithubPromptHeaderAttributes.mcpServers, PromptHeaderAttributes.infer];
534
570
  const recommendedAttributeNames = {
535
571
  [PromptsType.prompt]: allAttributeNames[PromptsType.prompt].filter(name => !isNonRecommendedAttribute(name)),
536
572
  [PromptsType.instructions]: allAttributeNames[PromptsType.instructions].filter(name => !isNonRecommendedAttribute(name)),
@@ -545,12 +581,9 @@ function getValidAttributeNames(promptType, includeNonRecommended, isGitHubTarge
545
581
  function isNonRecommendedAttribute(attributeName) {
546
582
  return attributeName === PromptHeaderAttributes.advancedOptions || attributeName === PromptHeaderAttributes.excludeAgent || attributeName === PromptHeaderAttributes.mode;
547
583
  }
548
- const knownGithubCopilotTools = {
549
- 'shell': ( localize(5941, 'Execute shell commands')),
550
- 'edit': ( localize(5942, 'Edit files')),
551
- 'search': ( localize(5943, 'Search in files')),
552
- 'custom-agent': ( localize(5944, 'Call custom agents'))
553
- };
584
+ const knownGithubCopilotTools = [
585
+ SpecedToolAliases.execute, SpecedToolAliases.read, SpecedToolAliases.edit, SpecedToolAliases.search, SpecedToolAliases.agent,
586
+ ];
554
587
  function isGithubTarget(promptType, target) {
555
588
  return promptType === PromptsType.agent && target === Target.GitHubCopilot;
556
589
  }
@@ -653,4 +686,4 @@ ModelTracker = ( __decorate([
653
686
  ( __param(4, IMarkerService))
654
687
  ], ModelTracker));
655
688
 
656
- export { PromptValidator, PromptValidatorContribution, getValidAttributeNames, isGithubTarget, isNonRecommendedAttribute, knownGithubCopilotTools };
689
+ export { MARKERS_OWNER_ID, PromptValidator, PromptValidatorContribution, getValidAttributeNames, isGithubTarget, isNonRecommendedAttribute, knownGithubCopilotTools };
@@ -10,7 +10,7 @@ import { PromptDocumentSemanticTokensProvider } from './languageProviders/prompt
10
10
  import { PromptCodeActionProvider } from './languageProviders/promptCodeActions.js';
11
11
  import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service';
12
12
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
13
- import { ALL_PROMPTS_LANGUAGE_SELECTOR } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
13
+ import { ALL_PROMPTS_LANGUAGE_SELECTOR } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
14
14
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
15
15
 
16
16
  let PromptLanguageFeaturesProvider = class PromptLanguageFeaturesProvider extends Disposable {