@codingame/monaco-vscode-chat-service-override 22.1.9 → 23.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/index.js +17 -8
  2. package/package.json +43 -40
  3. package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +1 -1
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +6 -6
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +57 -48
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +19 -19
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +1 -1
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +26 -17
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +51 -5
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +2 -2
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +7 -7
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +19 -19
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.d.ts → chatNewActions.d.ts} +2 -1
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.js → chatNewActions.js} +32 -32
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +9 -9
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +9 -9
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +101 -98
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +35 -24
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +43 -25
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +34 -33
  27. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +53 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +154 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +7 -0
  30. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +13 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +44 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +347 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +85 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +250 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +24 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +97 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +290 -231
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +2 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +7 -10
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +6 -6
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.d.ts +24 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +113 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +31 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +102 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +646 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +2 -3
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +46 -26
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +17 -4
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +44 -34
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +14 -14
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +25 -6
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +46 -10
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +45 -6
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +30 -10
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +10 -3
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +60 -9
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +117 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +6 -4
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +60 -55
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +29 -16
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +365 -143
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +2 -3
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +3 -30
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +7 -3
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +58 -22
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +1 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +5 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +3 -3
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +3 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +5 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +6 -18
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.d.ts +1 -3
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +7 -11
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +13 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +38 -33
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +11 -6
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +83 -24
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.d.ts +1 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +91 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +64 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +370 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +25 -0
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +56 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +61 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +349 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +43 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +787 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.d.ts +17 -0
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +109 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +122 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +211 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatUsageWidget.css +69 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +21 -20
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +54 -54
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +31 -22
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +16 -6
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +6 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +29 -21
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +5 -2
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +37 -33
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +15 -12
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +96 -131
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +12 -7
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +66 -34
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +5 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +77 -71
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +91 -18
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +458 -138
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +3 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +212 -150
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +96 -89
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +3 -2
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +5 -5
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +3 -4
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +15 -16
  124. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +33 -17
  126. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
  127. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.d.ts +27 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +688 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +15 -10
  131. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +126 -135
  132. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +6 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditorController.css +2 -1
  134. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +38 -1
  135. package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +14 -14
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.d.ts +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +28 -26
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +3 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +9 -6
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +24 -13
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +15 -14
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +25 -23
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +21 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +89 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
  147. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +30 -29
  148. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +10 -19
  149. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +61 -43
  150. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +7 -4
  151. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +28 -28
  152. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +254 -165
  153. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +4 -4
  154. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +2 -2
  155. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +1 -1
  156. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +4 -6
  157. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +10 -6
  158. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +20 -12
  159. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +13 -17
  160. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +9 -8
  161. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +1 -0
  162. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +51 -21
  163. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +7 -3
  164. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +74 -20
  165. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +11 -6
  166. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -2
  167. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +83 -53
  168. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +2 -1
  169. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +136 -78
  170. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +4 -4
  171. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +18 -10
  172. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +357 -157
  173. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  174. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +55 -28
  175. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +235 -108
  176. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +12 -2
  177. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +50 -4
  178. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
  179. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
  180. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
  181. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +3 -1
  182. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +11 -7
  183. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +13 -15
  184. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  185. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +2 -2
  186. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +20 -32
  187. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +63 -140
  188. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +1 -1
  189. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +17 -16
  190. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
  191. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  192. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  193. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +3 -0
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +119 -15
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +6 -4
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +47 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +192 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -5
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +21 -16
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +8 -3
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -2
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +18 -27
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +5 -2
  206. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +3 -1
  207. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +1 -1
  208. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -25
  209. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -2
  210. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +18 -27
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +12 -0
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +31 -0
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +3 -0
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +24 -8
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +8 -0
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +33 -4
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +42 -13
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +14 -21
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +23 -0
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +18 -0
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +227 -0
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +17 -0
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +133 -0
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +36 -0
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +17 -0
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +5 -1
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +75 -37
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -0
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +8 -0
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +71 -0
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +28 -15
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +366 -363
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +18 -18
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +9 -9
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +16 -16
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +19 -0
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +123 -0
  246. package/vscode/src/vs/base/common/yaml.d.ts +0 -74
  247. package/vscode/src/vs/base/common/yaml.js +0 -597
  248. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +0 -8
  249. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +0 -239
  250. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +0 -102
  251. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +0 -435
  252. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.d.ts +0 -14
  253. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.js +0 -67
  254. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +0 -49
  255. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +0 -380
  256. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.d.ts +0 -37
  257. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.js +0 -137
  258. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +0 -44
  259. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +0 -176
  260. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.d.ts +0 -4
  261. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +0 -206
  262. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +0 -7
  263. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +0 -79
  264. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +0 -8
  265. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +0 -145
  266. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +0 -65
  267. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +0 -306
  268. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +0 -12
  269. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +0 -102
  270. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.d.ts +0 -97
  271. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.js +0 -247
  272. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +0 -118
  273. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +0 -10
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +0 -10
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +0 -55
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -2
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +0 -66
@@ -1,7 +1,8 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
3
+ import { getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/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
+ import { isGithubTarget } from './promptValidator.js';
5
6
 
6
7
  let PromptDocumentSemanticTokensProvider = class PromptDocumentSemanticTokensProvider {
7
8
  constructor(promptsService) {
@@ -13,11 +14,14 @@ let PromptDocumentSemanticTokensProvider = class PromptDocumentSemanticTokensPro
13
14
  if (!promptType) {
14
15
  return undefined;
15
16
  }
16
- const parser = this.promptsService.getParsedPromptFile(model);
17
- if (!parser.body) {
17
+ const promptAST = this.promptsService.getParsedPromptFile(model);
18
+ if (!promptAST.body) {
18
19
  return undefined;
19
20
  }
20
- const variableReferences = parser.body.variableReferences;
21
+ if (isGithubTarget(promptType, promptAST.header?.target)) {
22
+ return undefined;
23
+ }
24
+ const variableReferences = promptAST.body.variableReferences;
21
25
  if (!variableReferences.length) {
22
26
  return undefined;
23
27
  }
@@ -28,9 +32,10 @@ let PromptDocumentSemanticTokensProvider = class PromptDocumentSemanticTokensPro
28
32
  ? a.range.startColumn - b.range.startColumn
29
33
  : a.range.startLineNumber - b.range.startLineNumber);
30
34
  for (const ref of ordered) {
35
+ const extraCharCount = '#tool:'.length;
31
36
  const line = ref.range.startLineNumber - 1;
32
- const char = ref.range.startColumn - 2;
33
- const length = ref.range.endColumn - ref.range.startColumn + 1;
37
+ const char = ref.range.startColumn - extraCharCount - 1;
38
+ const length = ref.range.endColumn - ref.range.startColumn + extraCharCount;
34
39
  const deltaLine = line - lastLine;
35
40
  const deltaChar = deltaLine === 0 ? char - lastChar : char;
36
41
  data.push(deltaLine, deltaChar, length, 0 , 0 );
@@ -25,9 +25,8 @@ export declare class PromptHeaderAutocompletion implements CompletionItemProvide
25
25
  * completion items based on the provided arguments.
26
26
  */
27
27
  provideCompletionItems(model: ITextModel, position: Position, context: CompletionContext, token: CancellationToken): Promise<CompletionList | undefined>;
28
- private providePropertyCompletions;
28
+ private provideAttributeNameCompletions;
29
29
  private provideValueCompletions;
30
- private removeUsedProperties;
31
30
  private getValueSuggestions;
32
31
  private getModelNames;
33
32
  private provideToolCompletions;
@@ -8,10 +8,12 @@ import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/
8
8
  import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
9
9
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
10
10
  import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
11
- import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
11
+ import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
12
12
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
13
13
  import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
14
- import { getValidAttributeNames } from './promptValidator.js';
14
+ import { PromptHeaderAttributes } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
15
+ import { isGithubTarget, getValidAttributeNames, knownGithubCopilotTools } from './promptValidator.js';
16
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
15
17
 
16
18
  let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
17
19
  constructor(promptsService, languageModelsService, languageModelToolsService, chatModeService) {
@@ -27,12 +29,12 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
27
29
  if (!promptType) {
28
30
  return undefined;
29
31
  }
30
- const parser = this.promptsService.getParsedPromptFile(model);
31
- const header = parser.header;
32
+ const parsedAST = this.promptsService.getParsedPromptFile(model);
33
+ const header = parsedAST.header;
32
34
  if (!header) {
33
35
  return undefined;
34
36
  }
35
- const headerRange = parser.header.range;
37
+ const headerRange = parsedAST.header.range;
36
38
  if (position.lineNumber < headerRange.startLineNumber || position.lineNumber >= headerRange.endLineNumber) {
37
39
  return undefined;
38
40
  }
@@ -40,34 +42,37 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
40
42
  const colonIndex = lineText.indexOf(':');
41
43
  const colonPosition = colonIndex !== -1 ? ( new Position(position.lineNumber, colonIndex + 1)) : undefined;
42
44
  if (!colonPosition || position.isBeforeOrEqual(colonPosition)) {
43
- return this.providePropertyCompletions(model, position, headerRange, colonPosition, promptType);
45
+ return this.provideAttributeNameCompletions(model, position, header, colonPosition, promptType);
44
46
  }
45
47
  else if (colonPosition && colonPosition.isBefore(position)) {
46
48
  return this.provideValueCompletions(model, position, header, colonPosition, promptType);
47
49
  }
48
50
  return undefined;
49
51
  }
50
- async providePropertyCompletions(model, position, headerRange, colonPosition, promptType) {
52
+ async provideAttributeNameCompletions(model, position, header, colonPosition, promptType) {
51
53
  const suggestions = [];
52
- const supportedProperties = ( new Set(getValidAttributeNames(promptType, false)));
53
- this.removeUsedProperties(supportedProperties, model, headerRange, position);
54
- const getInsertText = (property) => {
54
+ const isGitHubTarget = isGithubTarget(promptType, header.target);
55
+ const attributesToPropose = ( new Set(getValidAttributeNames(promptType, false, isGitHubTarget)));
56
+ for (const attr of header.attributes) {
57
+ attributesToPropose.delete(attr.key);
58
+ }
59
+ const getInsertText = (key) => {
55
60
  if (colonPosition) {
56
- return property;
61
+ return key;
57
62
  }
58
- const valueSuggestions = this.getValueSuggestions(promptType, property);
63
+ const valueSuggestions = this.getValueSuggestions(promptType, key);
59
64
  if (valueSuggestions.length > 0) {
60
- return `${property}: \${0:${valueSuggestions[0]}}`;
65
+ return `${key}: \${0:${valueSuggestions[0]}}`;
61
66
  }
62
67
  else {
63
- return `${property}: \$0`;
68
+ return `${key}: \$0`;
64
69
  }
65
70
  };
66
- for (const property of supportedProperties) {
71
+ for (const attribute of attributesToPropose) {
67
72
  const item = {
68
- label: property,
73
+ label: attribute,
69
74
  kind: CompletionItemKind.Property,
70
- insertText: getInsertText(property),
75
+ insertText: getInsertText(attribute),
71
76
  insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,
72
77
  range: ( new Range(
73
78
  position.lineNumber,
@@ -83,12 +88,13 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
83
88
  async provideValueCompletions(model, position, header, colonPosition, promptType) {
84
89
  const suggestions = [];
85
90
  const lineContent = model.getLineContent(position.lineNumber);
86
- const property = lineContent.substring(0, colonPosition.column - 1).trim();
87
- if (!getValidAttributeNames(promptType, true).includes(property)) {
91
+ const attribute = lineContent.substring(0, colonPosition.column - 1).trim();
92
+ const isGitHubTarget = isGithubTarget(promptType, header.target);
93
+ if (!getValidAttributeNames(promptType, true, isGitHubTarget).includes(attribute)) {
88
94
  return undefined;
89
95
  }
90
- if (promptType === PromptsType.prompt || promptType === PromptsType.mode) {
91
- const result = this.provideToolCompletions(model, position, header);
96
+ if (promptType === PromptsType.prompt || promptType === PromptsType.agent) {
97
+ const result = this.provideToolCompletions(model, position, header, isGitHubTarget);
92
98
  if (result) {
93
99
  return result;
94
100
  }
@@ -98,7 +104,7 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
98
104
  return undefined;
99
105
  }
100
106
  const whilespaceAfterColon = (lineContent.substring(colonPosition.column).match(/^\s*/)?.[0].length) ?? 0;
101
- const values = this.getValueSuggestions(promptType, property);
107
+ const values = this.getValueSuggestions(promptType, attribute);
102
108
  for (const value of values) {
103
109
  const item = {
104
110
  label: value,
@@ -113,37 +119,60 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
113
119
  };
114
120
  suggestions.push(item);
115
121
  }
122
+ if (attribute === PromptHeaderAttributes.handOffs && (promptType === PromptsType.agent)) {
123
+ const value = [
124
+ '',
125
+ ' - label: Start Implementation',
126
+ ' agent: agent',
127
+ ' prompt: Implement the plan',
128
+ ' send: true'
129
+ ].join('\n');
130
+ const item = {
131
+ label: ( localize(5844, "Handoff Example")),
132
+ kind: CompletionItemKind.Value,
133
+ insertText: whilespaceAfterColon === 0 ? ` ${value}` : value,
134
+ range: ( new Range(
135
+ position.lineNumber,
136
+ colonPosition.column + whilespaceAfterColon + 1,
137
+ position.lineNumber,
138
+ model.getLineMaxColumn(position.lineNumber)
139
+ )),
140
+ };
141
+ suggestions.push(item);
142
+ }
116
143
  return { suggestions };
117
144
  }
118
- removeUsedProperties(properties, model, headerRange, position) {
119
- for (let i = headerRange.startLineNumber; i <= headerRange.endLineNumber; i++) {
120
- if (i !== position.lineNumber) {
121
- const lineText = model.getLineContent(i);
122
- const colonIndex = lineText.indexOf(':');
123
- if (colonIndex !== -1) {
124
- const property = lineText.substring(0, colonIndex).trim();
125
- properties.delete(property);
145
+ getValueSuggestions(promptType, attribute) {
146
+ switch (attribute) {
147
+ case PromptHeaderAttributes.applyTo:
148
+ if (promptType === PromptsType.instructions) {
149
+ return [`'**'`, `'**/*.ts, **/*.js'`, `'**/*.php'`, `'**/*.py'`];
150
+ }
151
+ break;
152
+ case PromptHeaderAttributes.agent:
153
+ case PromptHeaderAttributes.mode:
154
+ if (promptType === PromptsType.prompt) {
155
+ const agents = this.chatModeService.getModes();
156
+ const suggestions = [];
157
+ for (const agent of Iterable.concat(agents.builtin, agents.custom)) {
158
+ suggestions.push(agent.name.get());
159
+ }
160
+ return suggestions;
161
+ }
162
+ case PromptHeaderAttributes.target:
163
+ if (promptType === PromptsType.agent) {
164
+ return ['vscode', 'github-copilot'];
165
+ }
166
+ break;
167
+ case PromptHeaderAttributes.tools:
168
+ if (promptType === PromptsType.prompt || promptType === PromptsType.agent) {
169
+ return ['[]', `['search', 'edit', 'fetch']`];
170
+ }
171
+ break;
172
+ case PromptHeaderAttributes.model:
173
+ if (promptType === PromptsType.prompt || promptType === PromptsType.agent) {
174
+ return this.getModelNames(promptType === PromptsType.agent);
126
175
  }
127
- }
128
- }
129
- }
130
- getValueSuggestions(promptType, property) {
131
- if (promptType === PromptsType.instructions && property === 'applyTo') {
132
- return [`'**'`, `'**/*.ts, **/*.js'`, `'**/*.php'`, `'**/*.py'`];
133
- }
134
- if (promptType === PromptsType.prompt && property === 'mode') {
135
- const modes = this.chatModeService.getModes();
136
- const suggestions = [];
137
- for (const mode of Iterable.concat(modes.builtin, modes.custom)) {
138
- suggestions.push(mode.name);
139
- }
140
- return suggestions;
141
- }
142
- if (property === 'tools' && (promptType === PromptsType.prompt || promptType === PromptsType.mode)) {
143
- return ['[]', `['search', 'edit', 'fetch']`];
144
- }
145
- if (property === 'model' && (promptType === PromptsType.prompt || promptType === PromptsType.mode)) {
146
- return this.getModelNames(promptType === PromptsType.mode);
147
176
  }
148
177
  return [];
149
178
  }
@@ -159,14 +188,15 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
159
188
  }
160
189
  return result;
161
190
  }
162
- provideToolCompletions(model, position, header) {
163
- const toolsAttr = header.getAttribute('tools');
191
+ provideToolCompletions(model, position, header, isGitHubTarget) {
192
+ const toolsAttr = header.getAttribute(PromptHeaderAttributes.tools);
164
193
  if (!toolsAttr || toolsAttr.value.type !== 'array' || !toolsAttr.range.containsPosition(position)) {
165
194
  return undefined;
166
195
  }
167
196
  const getSuggestions = (toolRange) => {
168
197
  const suggestions = [];
169
- for (const toolName of this.languageModelToolsService.getQualifiedToolNames()) {
198
+ const toolNames = isGitHubTarget ? ( Object.keys(knownGithubCopilotTools)) : this.languageModelToolsService.getQualifiedToolNames();
199
+ for (const toolName of toolNames) {
170
200
  let insertText;
171
201
  if (!toolRange.isEmpty()) {
172
202
  const firstChar = model.getValueInRange(toolRange).charCodeAt(0);
@@ -24,5 +24,6 @@ export declare class PromptHoverProvider implements HoverProvider {
24
24
  private getToolHoverByName;
25
25
  private getToolsetHover;
26
26
  private getModelHover;
27
- private getModeHover;
27
+ private getAgentHover;
28
+ private getHandsOffHover;
28
29
  }
@@ -6,10 +6,12 @@ import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/
6
6
  import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
7
7
  import { ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
8
8
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
9
- import { isBuiltinChatMode } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModes';
9
+ import { isBuiltinChatMode } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatModes';
10
10
  import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
11
- import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
11
+ import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
12
12
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
13
+ import { PromptHeaderAttributes, Target } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
14
+ import { isGithubTarget, knownGithubCopilotTools } from './promptValidator.js';
13
15
 
14
16
  let PromptHoverProvider = class PromptHoverProvider {
15
17
  constructor(promptsService, languageModelToolsService, languageModelsService, chatModeService) {
@@ -30,12 +32,12 @@ let PromptHoverProvider = class PromptHoverProvider {
30
32
  if (!promptType) {
31
33
  return undefined;
32
34
  }
33
- const parser = this.promptsService.getParsedPromptFile(model);
34
- if (parser.header?.range.containsPosition(position)) {
35
- return this.provideHeaderHover(position, promptType, parser.header);
35
+ const promptAST = this.promptsService.getParsedPromptFile(model);
36
+ if (promptAST.header?.range.containsPosition(position)) {
37
+ return this.provideHeaderHover(position, promptType, promptAST.header);
36
38
  }
37
- if (parser.body?.range.containsPosition(position)) {
38
- return this.provideBodyHover(position, parser.body);
39
+ if (promptAST.body?.range.containsPosition(position)) {
40
+ return this.provideBodyHover(position, promptAST.body);
39
41
  }
40
42
  return undefined;
41
43
  }
@@ -50,66 +52,112 @@ let PromptHoverProvider = class PromptHoverProvider {
50
52
  }
51
53
  async provideHeaderHover(position, promptType, header) {
52
54
  if (promptType === PromptsType.instructions) {
53
- const descriptionRange = header.getAttribute('description')?.range;
54
- if (descriptionRange?.containsPosition(position)) {
55
- return this.createHover(( localize(
56
- 5638,
57
- 'The description of the instruction file. It can be used to provide additional context or information about the instructions and is passed to the language model as part of the prompt.'
58
- )), descriptionRange);
59
- }
60
- const applyToRange = header.getAttribute('applyTo')?.range;
61
- if (applyToRange?.containsPosition(position)) {
62
- return this.createHover(( localize(
63
- 5639,
64
- 'One or more glob pattern (separated by comma) that describe for which files the instructions apply to. Based on these patterns, the file is automatically included in the prompt, when the context contains a file that matches one or more of these patterns. Use `**` when you want this file to always be added.\nExample: `**/*.ts`, `**/*.js`, `client/**`'
65
- )), applyToRange);
55
+ for (const attribute of header.attributes) {
56
+ if (attribute.range.containsPosition(position)) {
57
+ switch (attribute.key) {
58
+ case PromptHeaderAttributes.name:
59
+ return this.createHover(( localize(
60
+ 5845,
61
+ 'The name of the instruction file as shown in the UI. If not set, the name is derived from the file name.'
62
+ )), attribute.range);
63
+ case PromptHeaderAttributes.description:
64
+ return this.createHover(( localize(
65
+ 5846,
66
+ 'The description of the instruction file. It can be used to provide additional context or information about the instructions and is passed to the language model as part of the prompt.'
67
+ )), attribute.range);
68
+ case PromptHeaderAttributes.applyTo:
69
+ return this.createHover(( localize(
70
+ 5847,
71
+ 'One or more glob pattern (separated by comma) that describe for which files the instructions apply to. Based on these patterns, the file is automatically included in the prompt, when the context contains a file that matches one or more of these patterns. Use `**` when you want this file to always be added.\nExample: `**/*.ts`, `**/*.js`, `client/**`'
72
+ )), attribute.range);
73
+ }
74
+ }
66
75
  }
67
76
  }
68
- else if (promptType === PromptsType.mode) {
69
- const descriptionRange = header.getAttribute('description')?.range;
70
- if (descriptionRange?.containsPosition(position)) {
71
- return this.createHover(( localize(
72
- 5640,
73
- 'The description of the mode file. It can be used to provide additional context or information about the mode to the mode author.'
74
- )), descriptionRange);
75
- }
76
- const model = header.getAttribute('model');
77
- if (model?.range.containsPosition(position)) {
78
- return this.getModelHover(model, model.range, ( localize(5641, 'The model to use in this mode.')));
79
- }
80
- const tools = header.getAttribute('tools');
81
- if (tools?.range.containsPosition(position)) {
82
- return this.getToolHover(tools, position, ( localize(5642, 'The tools to use in this mode.')));
77
+ else if (promptType === PromptsType.agent) {
78
+ const isGitHubTarget = isGithubTarget(promptType, header.target);
79
+ for (const attribute of header.attributes) {
80
+ if (attribute.range.containsPosition(position)) {
81
+ switch (attribute.key) {
82
+ case PromptHeaderAttributes.name:
83
+ return this.createHover(( localize(5848, 'The name of the agent as shown in the UI.')), attribute.range);
84
+ case PromptHeaderAttributes.description:
85
+ return this.createHover(( localize(
86
+ 5849,
87
+ 'The description of the custom agent, what it does and when to use it.'
88
+ )), attribute.range);
89
+ case PromptHeaderAttributes.argumentHint:
90
+ return this.createHover(( localize(
91
+ 5850,
92
+ 'The argument-hint describes what inputs the custom agent expects or supports.'
93
+ )), attribute.range);
94
+ case PromptHeaderAttributes.model:
95
+ return this.getModelHover(attribute, attribute.range, ( localize(5851, 'Specify the model that runs this custom agent.')), isGitHubTarget);
96
+ case PromptHeaderAttributes.tools:
97
+ return this.getToolHover(attribute, position, ( localize(5852, 'The set of tools that the custom agent has access to.')), header.target);
98
+ case PromptHeaderAttributes.handOffs:
99
+ return this.getHandsOffHover(attribute, position, isGitHubTarget);
100
+ case PromptHeaderAttributes.target:
101
+ return this.createHover(( localize(
102
+ 5853,
103
+ 'The target to which the header attributes like tools apply to. Possible values are `github-copilot` and `vscode`.'
104
+ )), attribute.range);
105
+ }
106
+ }
83
107
  }
84
108
  }
85
109
  else {
86
- const descriptionRange = header.getAttribute('description')?.range;
87
- if (descriptionRange?.containsPosition(position)) {
88
- return this.createHover(( localize(
89
- 5643,
90
- 'The description of the prompt file. It can be used to provide additional context or information about the prompt to the prompt author.'
91
- )), descriptionRange);
92
- }
93
- const model = header.getAttribute('model');
94
- if (model?.range.containsPosition(position)) {
95
- return this.getModelHover(model, model.range, ( localize(5644, 'The model to use in this prompt.')));
96
- }
97
- const tools = header.getAttribute('tools');
98
- if (tools?.range.containsPosition(position)) {
99
- return this.getToolHover(tools, position, ( localize(5645, 'The tools to use in this prompt.')));
100
- }
101
- const mode = header.getAttribute('mode');
102
- if (mode?.range.containsPosition(position)) {
103
- return this.getModeHover(mode, position, ( localize(5646, 'The mode to use in this prompt.')));
110
+ for (const attribute of header.attributes) {
111
+ if (attribute.range.containsPosition(position)) {
112
+ switch (attribute.key) {
113
+ case PromptHeaderAttributes.name:
114
+ return this.createHover(( localize(
115
+ 5854,
116
+ 'The name of the prompt. This is also the name of the slash command that will run this prompt.'
117
+ )), attribute.range);
118
+ case PromptHeaderAttributes.description:
119
+ return this.createHover(( localize(
120
+ 5855,
121
+ 'The description of the reusable prompt, what it does and when to use it.'
122
+ )), attribute.range);
123
+ case PromptHeaderAttributes.argumentHint:
124
+ return this.createHover(( localize(
125
+ 5856,
126
+ 'The argument-hint describes what inputs the prompt expects or supports.'
127
+ )), attribute.range);
128
+ case PromptHeaderAttributes.model:
129
+ return this.getModelHover(attribute, attribute.range, ( localize(5857, 'The model to use in this prompt.')), false);
130
+ case PromptHeaderAttributes.tools:
131
+ return this.getToolHover(attribute, position, ( localize(5858, 'The tools to use in this prompt.')), Target.VSCode);
132
+ case PromptHeaderAttributes.agent:
133
+ case PromptHeaderAttributes.mode:
134
+ return this.getAgentHover(attribute, position);
135
+ }
136
+ }
104
137
  }
105
138
  }
106
139
  return undefined;
107
140
  }
108
- getToolHover(node, position, baseMessage) {
141
+ getToolHover(node, position, baseMessage, target) {
109
142
  if (node.value.type === 'array') {
110
143
  for (const toolName of node.value.items) {
111
144
  if (toolName.type === 'string' && toolName.range.containsPosition(position)) {
112
- return this.getToolHoverByName(toolName.value, toolName.range);
145
+ let toolNameValue = toolName.value;
146
+ if (target === undefined) {
147
+ toolNameValue = this.languageModelToolsService.mapGithubToolName(toolNameValue);
148
+ }
149
+ if (target === Target.VSCode || target === undefined) {
150
+ const description = this.getToolHoverByName(toolNameValue, toolName.range);
151
+ if (description) {
152
+ return description;
153
+ }
154
+ }
155
+ if (target === Target.GitHubCopilot || target === undefined) {
156
+ const description = knownGithubCopilotTools[toolNameValue];
157
+ if (description) {
158
+ return this.createHover(description, toolName.range);
159
+ }
160
+ }
113
161
  }
114
162
  }
115
163
  }
@@ -122,14 +170,14 @@ let PromptHoverProvider = class PromptHoverProvider {
122
170
  return this.getToolsetHover(tool, range);
123
171
  }
124
172
  else {
125
- return this.createHover(tool.modelDescription, range);
173
+ return this.createHover(tool.userDescription ?? tool.modelDescription, range);
126
174
  }
127
175
  }
128
176
  return undefined;
129
177
  }
130
178
  getToolsetHover(toolSet, range) {
131
179
  const lines = [];
132
- lines.push(( localize(5647, 'ToolSet: {0}\n\n', toolSet.referenceName)));
180
+ lines.push(( localize(5859, 'ToolSet: {0}\n\n', toolSet.referenceName)));
133
181
  if (toolSet.description) {
134
182
  lines.push(toolSet.description);
135
183
  }
@@ -138,16 +186,19 @@ let PromptHoverProvider = class PromptHoverProvider {
138
186
  }
139
187
  return this.createHover(lines.join('\n'), range);
140
188
  }
141
- getModelHover(node, range, baseMessage) {
189
+ getModelHover(node, range, baseMessage, isGitHubTarget) {
190
+ if (isGitHubTarget) {
191
+ return this.createHover(baseMessage + '\n\n' + ( localize(5860, 'Note: This attribute is not used when target is github-copilot.')), range);
192
+ }
142
193
  if (node.value.type === 'string') {
143
194
  for (const id of this.languageModelsService.getLanguageModelIds()) {
144
195
  const meta = this.languageModelsService.lookupLanguageModel(id);
145
196
  if (meta && ILanguageModelChatMetadata.matchesQualifiedName(node.value.value, meta)) {
146
197
  const lines = [];
147
198
  lines.push(baseMessage + '\n');
148
- lines.push(( localize(5648, '- Name: {0}', meta.name)));
149
- lines.push(( localize(5649, '- Family: {0}', meta.family)));
150
- lines.push(( localize(5650, '- Vendor: {0}', meta.vendor)));
199
+ lines.push(( localize(5861, '- Name: {0}', meta.name)));
200
+ lines.push(( localize(5862, '- Family: {0}', meta.family)));
201
+ lines.push(( localize(5863, '- Vendor: {0}', meta.vendor)));
151
202
  if (meta.tooltip) {
152
203
  lines.push('', '', meta.tooltip);
153
204
  }
@@ -157,34 +208,41 @@ let PromptHoverProvider = class PromptHoverProvider {
157
208
  }
158
209
  return this.createHover(baseMessage, range);
159
210
  }
160
- getModeHover(mode, position, baseMessage) {
211
+ getAgentHover(agentAttribute, position) {
161
212
  const lines = [];
162
- const value = mode.value;
213
+ const value = agentAttribute.value;
163
214
  if (value.type === 'string' && value.range.containsPosition(position)) {
164
- const mode = this.chatModeService.findModeByName(value.value);
165
- if (mode) {
166
- const description = mode.description.get() || (isBuiltinChatMode(mode) ? ( localize(5651, 'Built-in chat mode')) : ( localize(5652, 'Custom chat mode')));
167
- lines.push(`\`${mode.name}\`: ${description}`);
215
+ const agent = this.chatModeService.findModeByName(value.value);
216
+ if (agent) {
217
+ const description = agent.description.get() || (isBuiltinChatMode(agent) ? ( localize(5864, 'Built-in agent')) : ( localize(5865, 'Custom agent')));
218
+ lines.push(`\`${agent.name.get()}\`: ${description}`);
168
219
  }
169
220
  }
170
221
  else {
171
- const modes = this.chatModeService.getModes();
172
- lines.push(( localize(5653, 'The chat mode to use when running this prompt.')));
222
+ const agents = this.chatModeService.getModes();
223
+ lines.push(( localize(5866, 'The agent to use when running this prompt.')));
173
224
  lines.push('');
174
- lines.push(( localize(5654, '**Built-in modes:**')));
175
- for (const mode of modes.builtin) {
176
- lines.push(`- \`${mode.name}\`: ${mode.description.get() || mode.label}`);
225
+ lines.push(( localize(5867, '**Built-in agents:**')));
226
+ for (const agent of agents.builtin) {
227
+ lines.push(`- \`${agent.name.get()}\`: ${agent.description.get() || agent.label.get()}`);
177
228
  }
178
- if (modes.custom.length > 0) {
229
+ if (agents.custom.length > 0) {
179
230
  lines.push('');
180
- lines.push(( localize(5655, '**Custom modes:**')));
181
- for (const mode of modes.custom) {
182
- const description = mode.description.get();
183
- lines.push(`- \`${mode.name}\`: ${description || ( localize(5652, 'Custom chat mode'))}`);
231
+ lines.push(( localize(5868, '**Custom agents:**')));
232
+ for (const agent of agents.custom) {
233
+ const description = agent.description.get();
234
+ lines.push(`- \`${agent.name.get()}\`: ${description || ( localize(5865, 'Custom agent'))}`);
184
235
  }
185
236
  }
186
237
  }
187
- return this.createHover(lines.join('\n'), mode.range);
238
+ return this.createHover(lines.join('\n'), agentAttribute.range);
239
+ }
240
+ getHandsOffHover(attribute, position, isGitHubTarget) {
241
+ const handoffsBaseMessage = ( localize(5869, 'Possible handoff actions when the agent has completed its task.'));
242
+ if (isGitHubTarget) {
243
+ return this.createHover(handoffsBaseMessage + '\n\n' + ( localize(5870, 'Note: This attribute is not used when target is github-copilot.')), attribute.range);
244
+ }
245
+ return this.createHover(handoffsBaseMessage, attribute.range);
188
246
  }
189
247
  };
190
248
  PromptHoverProvider = ( __decorate([
@@ -7,14 +7,14 @@ let PromptLinkProvider = class PromptLinkProvider {
7
7
  this.promptsService = promptsService;
8
8
  }
9
9
  async provideLinks(model, token) {
10
- const parser = this.promptsService.getParsedPromptFile(model);
11
- if (!parser.body) {
10
+ const promptAST = this.promptsService.getParsedPromptFile(model);
11
+ if (!promptAST.body) {
12
12
  return;
13
13
  }
14
14
  const links = [];
15
- for (const ref of parser.body.fileReferences) {
15
+ for (const ref of promptAST.body.fileReferences) {
16
16
  if (!ref.isMarkdownLink) {
17
- const url = parser.body.resolveFilePath(ref.content);
17
+ const url = promptAST.body.resolveFilePath(ref.content);
18
18
  if (url) {
19
19
  links.push({ range: ref.range, url });
20
20
  }