@codingame/monaco-vscode-chat-service-override 22.1.8 → 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 (276) hide show
  1. package/index.js +16 -7
  2. package/package.json +43 -41
  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 +18 -18
  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 +33 -32
  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 +12 -14
  184. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  185. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +1 -1
  186. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +18 -30
  187. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +62 -139
  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 +16 -15
  190. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  191. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  192. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +3 -0
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +119 -15
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +6 -4
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +47 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +192 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -5
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +21 -16
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +8 -3
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -2
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +18 -27
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +5 -2
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +3 -1
  206. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +1 -1
  207. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -25
  208. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -2
  209. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +18 -27
  210. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +12 -0
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +31 -0
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +3 -0
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +24 -8
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +8 -0
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +33 -4
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +42 -13
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +14 -21
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +23 -0
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +18 -0
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +227 -0
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +17 -0
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +133 -0
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +36 -0
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +17 -0
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +5 -1
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +75 -37
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -0
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +8 -0
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +71 -0
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +28 -15
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +366 -363
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +18 -18
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +9 -9
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +16 -16
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +19 -0
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +123 -0
  245. package/vscode/src/vs/base/common/yaml.d.ts +0 -74
  246. package/vscode/src/vs/base/common/yaml.js +0 -597
  247. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +0 -8
  248. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +0 -239
  249. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +0 -102
  250. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +0 -435
  251. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.d.ts +0 -14
  252. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.js +0 -67
  253. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +0 -49
  254. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +0 -380
  255. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.d.ts +0 -37
  256. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.js +0 -137
  257. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +0 -44
  258. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +0 -176
  259. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.d.ts +0 -4
  260. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +0 -206
  261. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +0 -7
  262. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +0 -79
  263. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +0 -8
  264. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +0 -145
  265. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +0 -65
  266. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +0 -306
  267. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +0 -12
  268. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +0 -102
  269. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.d.ts +0 -97
  270. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.js +0 -247
  271. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +0 -118
  272. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +0 -10
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +0 -10
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +0 -55
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -2
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +0 -66
@@ -1,176 +0,0 @@
1
-
2
- import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { showChatView, ChatViewId } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
4
- import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
5
- import { CHAT_CATEGORY, CHAT_CONFIG_MENU_ID } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
6
- import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
- import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
8
- import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
9
- import { PromptsConfig } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
10
- import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
11
- import { PromptFilePickers } from './pickers/promptFilePickers.js';
12
- import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
13
- import { Action2, MenuId, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
14
- import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
15
- import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
16
- import { getCleanPromptName } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
17
- import { PromptsType, INSTRUCTIONS_LANGUAGE_ID } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
18
- import { compare } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
19
- import { toPromptFileVariableEntry, PromptFileVariableKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatVariableEntries';
20
- import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
21
- import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
22
- import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service';
23
- import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
24
- import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
25
- import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
26
-
27
- const ATTACH_INSTRUCTIONS_ACTION_ID = 'workbench.action.chat.attach.instructions';
28
- const CONFIGURE_INSTRUCTIONS_ACTION_ID = 'workbench.action.chat.configure.instructions';
29
- class AttachInstructionsAction extends Action2 {
30
- constructor() {
31
- super({
32
- id: ATTACH_INSTRUCTIONS_ACTION_ID,
33
- title: ( localize2(5427, "Attach Instructions...")),
34
- f1: false,
35
- precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
36
- category: CHAT_CATEGORY,
37
- keybinding: {
38
- primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.Slash,
39
- weight: KeybindingWeight.WorkbenchContrib
40
- },
41
- menu: {
42
- id: MenuId.CommandPalette,
43
- when: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled))
44
- }
45
- });
46
- }
47
- async run(accessor, options) {
48
- const viewsService = accessor.get(IViewsService);
49
- const instaService = accessor.get(IInstantiationService);
50
- if (!options) {
51
- options = {
52
- resource: getActiveInstructionsFileUri(accessor),
53
- widget: getFocusedChatWidget(accessor),
54
- };
55
- }
56
- const pickers = instaService.createInstance(PromptFilePickers);
57
- const { skipSelectionDialog, resource } = options;
58
- const widget = options.widget ?? (await showChatView(viewsService));
59
- if (!widget) {
60
- return;
61
- }
62
- if (skipSelectionDialog && resource) {
63
- widget.attachmentModel.addContext(toPromptFileVariableEntry(resource, PromptFileVariableKind.Instruction));
64
- widget.focusInput();
65
- return;
66
- }
67
- const placeholder = ( localize(5428, 'Select instructions files to attach'));
68
- const result = await pickers.selectPromptFile({ resource, placeholder, type: PromptsType.instructions });
69
- if (result !== undefined) {
70
- widget.attachmentModel.addContext(toPromptFileVariableEntry(result.promptFile, PromptFileVariableKind.Instruction));
71
- widget.focusInput();
72
- }
73
- }
74
- }
75
- class ManageInstructionsFilesAction extends Action2 {
76
- constructor() {
77
- super({
78
- id: CONFIGURE_INSTRUCTIONS_ACTION_ID,
79
- title: ( localize2(5429, "Configure Instructions...")),
80
- shortTitle: ( localize2(5430, "Instructions")),
81
- icon: Codicon.bookmark,
82
- f1: true,
83
- precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
84
- category: CHAT_CATEGORY,
85
- menu: {
86
- id: CHAT_CONFIG_MENU_ID,
87
- when: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled, ( ContextKeyExpr.equals('view', ChatViewId)))),
88
- order: 11,
89
- group: '0_level'
90
- }
91
- });
92
- }
93
- async run(accessor) {
94
- const openerService = accessor.get(IOpenerService);
95
- const instaService = accessor.get(IInstantiationService);
96
- const pickers = instaService.createInstance(PromptFilePickers);
97
- const placeholder = ( localize(5431, 'Select the instructions file to open'));
98
- const result = await pickers.selectPromptFile({ placeholder, type: PromptsType.instructions, optionEdit: false });
99
- if (result !== undefined) {
100
- await openerService.open(result.promptFile);
101
- }
102
- }
103
- }
104
- function getFocusedChatWidget(accessor) {
105
- const chatWidgetService = accessor.get(IChatWidgetService);
106
- const { lastFocusedWidget } = chatWidgetService;
107
- if (!lastFocusedWidget) {
108
- return undefined;
109
- }
110
- if (!lastFocusedWidget.hasInputFocus()) {
111
- return undefined;
112
- }
113
- return lastFocusedWidget;
114
- }
115
- function getActiveInstructionsFileUri(accessor) {
116
- const codeEditorService = accessor.get(ICodeEditorService);
117
- const model = codeEditorService.getActiveCodeEditor()?.getModel();
118
- if (model?.getLanguageId() === INSTRUCTIONS_LANGUAGE_ID) {
119
- return model.uri;
120
- }
121
- return undefined;
122
- }
123
- function registerAttachPromptActions() {
124
- registerAction2(AttachInstructionsAction);
125
- registerAction2(ManageInstructionsFilesAction);
126
- }
127
- let ChatInstructionsPickerPick = class ChatInstructionsPickerPick {
128
- constructor(promptsService, configurationService) {
129
- this.promptsService = promptsService;
130
- this.configurationService = configurationService;
131
- this.type = 'pickerPick';
132
- this.label = ( localize(5432, 'Instructions...'));
133
- this.icon = Codicon.bookmark;
134
- this.commandId = ATTACH_INSTRUCTIONS_ACTION_ID;
135
- }
136
- isEnabled(widget) {
137
- return PromptsConfig.enabled(this.configurationService);
138
- }
139
- asPicker() {
140
- const picks = this.promptsService.listPromptFiles(PromptsType.instructions, CancellationToken.None).then(value => {
141
- const result = [];
142
- value = value.slice(0).sort((a, b) => compare(a.storage, b.storage));
143
- let storageType;
144
- for (const promptsPath of value) {
145
- if (storageType !== promptsPath.storage) {
146
- storageType = promptsPath.storage;
147
- result.push({
148
- type: 'separator',
149
- label: this.promptsService.getPromptLocationLabel(promptsPath)
150
- });
151
- }
152
- result.push({
153
- label: promptsPath.name ?? getCleanPromptName(promptsPath.uri),
154
- asAttachment: () => {
155
- return toPromptFileVariableEntry(promptsPath.uri, PromptFileVariableKind.Instruction);
156
- }
157
- });
158
- }
159
- return result;
160
- });
161
- return {
162
- placeholder: ( localize(5433, 'Select instructions files to attach')),
163
- picks,
164
- configure: {
165
- label: ( localize(5434, 'Configure Instructions...')),
166
- commandId: CONFIGURE_INSTRUCTIONS_ACTION_ID
167
- }
168
- };
169
- }
170
- };
171
- ChatInstructionsPickerPick = ( __decorate([
172
- ( __param(0, IPromptsService)),
173
- ( __param(1, IConfigurationService))
174
- ], ChatInstructionsPickerPick));
175
-
176
- export { ChatInstructionsPickerPick, registerAttachPromptActions };
@@ -1,4 +0,0 @@
1
- export declare const NEW_PROMPT_COMMAND_ID = "workbench.command.new.prompt";
2
- export declare const NEW_INSTRUCTIONS_COMMAND_ID = "workbench.command.new.instructions";
3
- export declare const NEW_MODE_COMMAND_ID = "workbench.command.new.mode";
4
- export declare function registerNewPromptFileActions(): void;
@@ -1,206 +0,0 @@
1
-
2
- import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
3
- import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
- import { getCodeEditor } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorBrowser';
5
- import { SnippetController2 } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/snippet/browser/snippetController2';
6
- import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
- import { Action2, MenuId, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
8
- import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
9
- import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
10
- import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
11
- import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
12
- import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
13
- import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
14
- import { NeverShowAgainScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification';
15
- import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
16
- import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
17
- import { PromptsConfig } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
18
- import { PromptsType, getLanguageIdForPromptsType } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
19
- import { SyncResource } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync';
20
- import { IUserDataSyncEnablementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync.service';
21
- import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
22
- import { CONFIGURE_SYNC_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataSync/common/userDataSync';
23
- import { ISnippetsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/snippets/browser/snippets.service';
24
- import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
25
- import { CHAT_CATEGORY } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
26
- import { askForPromptFileName } from './pickers/askForPromptName.js';
27
- import { askForPromptSourceFolder } from './pickers/askForPromptSourceFolder.js';
28
- import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
29
- import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
30
-
31
- class AbstractNewPromptFileAction extends Action2 {
32
- constructor(id, title, type) {
33
- super({
34
- id,
35
- title,
36
- f1: false,
37
- precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
38
- category: CHAT_CATEGORY,
39
- keybinding: {
40
- weight: KeybindingWeight.WorkbenchContrib
41
- },
42
- menu: {
43
- id: MenuId.CommandPalette,
44
- when: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled))
45
- }
46
- });
47
- this.type = type;
48
- }
49
- async run(accessor) {
50
- const logService = accessor.get(ILogService);
51
- const openerService = accessor.get(IOpenerService);
52
- const commandService = accessor.get(ICommandService);
53
- const notificationService = accessor.get(INotificationService);
54
- const userDataSyncEnablementService = accessor.get(IUserDataSyncEnablementService);
55
- const editorService = accessor.get(IEditorService);
56
- const fileService = accessor.get(IFileService);
57
- const instaService = accessor.get(IInstantiationService);
58
- const chatModeService = accessor.get(IChatModeService);
59
- const selectedFolder = await instaService.invokeFunction(askForPromptSourceFolder, this.type);
60
- if (!selectedFolder) {
61
- return;
62
- }
63
- const fileName = await instaService.invokeFunction(askForPromptFileName, this.type, selectedFolder.uri);
64
- if (!fileName) {
65
- return;
66
- }
67
- await fileService.createFolder(selectedFolder.uri);
68
- const promptUri = URI.joinPath(selectedFolder.uri, fileName);
69
- await fileService.createFile(promptUri);
70
- await openerService.open(promptUri);
71
- const editor = getCodeEditor(editorService.activeTextEditorControl);
72
- if (editor && editor.hasModel() && isEqual(editor.getModel().uri, promptUri)) {
73
- SnippetController2.get(editor)?.apply([{
74
- range: editor.getModel().getFullModelRange(),
75
- template: this.getDefaultContentSnippet(this.type, chatModeService),
76
- }]);
77
- }
78
- if (selectedFolder.storage !== 'user') {
79
- return;
80
- }
81
- const isConfigured = userDataSyncEnablementService
82
- .isResourceEnablementConfigured(SyncResource.Prompts);
83
- const isSettingsSyncEnabled = userDataSyncEnablementService.isEnabled();
84
- if ((isConfigured === true) || (isSettingsSyncEnabled === false)) {
85
- return;
86
- }
87
- notificationService.prompt(Severity.Info, ( localize(
88
- 5439,
89
- "Do you want to backup and sync your user prompt, instruction and mode files with Setting Sync?'"
90
- )), [
91
- {
92
- label: ( localize(5440, "Enable")),
93
- run: () => {
94
- commandService.executeCommand(CONFIGURE_SYNC_COMMAND_ID)
95
- .catch((error) => {
96
- logService.error(`Failed to run '${CONFIGURE_SYNC_COMMAND_ID}' command: ${error}.`);
97
- });
98
- },
99
- },
100
- {
101
- label: ( localize(5441, "Learn More")),
102
- run: () => {
103
- openerService.open(( URI.parse('https://aka.ms/vscode-settings-sync-help')));
104
- },
105
- },
106
- ], {
107
- neverShowAgain: {
108
- id: 'workbench.command.prompts.create.user.enable-sync-notification',
109
- scope: NeverShowAgainScope.PROFILE,
110
- },
111
- });
112
- }
113
- getDefaultContentSnippet(promptType, chatModeService) {
114
- const modes = chatModeService.getModes();
115
- const modeNames = ( modes.builtin.map(mode => mode.name)).join(',') + (modes.custom.length ? (',' + ( modes.custom.map(mode => mode.name)).join(',')) : '');
116
- switch (promptType) {
117
- case PromptsType.prompt:
118
- return [
119
- `---`,
120
- `mode: \${1|${modeNames}|}`,
121
- `---`,
122
- `\${2:Define the task to achieve, including specific requirements, constraints, and success criteria.}`,
123
- ].join('\n');
124
- case PromptsType.instructions:
125
- return [
126
- `---`,
127
- `applyTo: '\${1|**,**/*.ts|}'`,
128
- `---`,
129
- `\${2:Provide project context and coding guidelines that AI should follow when generating code, answering questions, or reviewing changes.}`,
130
- ].join('\n');
131
- case PromptsType.mode:
132
- return [
133
- `---`,
134
- `description: '\${1:Description of the custom chat mode.}'`,
135
- `tools: []`,
136
- `---`,
137
- `\${2:Define the purpose of this chat mode and how AI should behave: response style, available tools, focus areas, and any mode-specific instructions or constraints.}`,
138
- ].join('\n');
139
- default:
140
- throw ( new Error(`Unknown prompt type: ${promptType}`));
141
- }
142
- }
143
- }
144
- const NEW_PROMPT_COMMAND_ID = 'workbench.command.new.prompt';
145
- const NEW_INSTRUCTIONS_COMMAND_ID = 'workbench.command.new.instructions';
146
- const NEW_MODE_COMMAND_ID = 'workbench.command.new.mode';
147
- class NewPromptFileAction extends AbstractNewPromptFileAction {
148
- constructor() {
149
- super(NEW_PROMPT_COMMAND_ID, ( localize(5442, "New Prompt File...")), PromptsType.prompt);
150
- }
151
- }
152
- class NewInstructionsFileAction extends AbstractNewPromptFileAction {
153
- constructor() {
154
- super(NEW_INSTRUCTIONS_COMMAND_ID, ( localize(5443, "New Instructions File...")), PromptsType.instructions);
155
- }
156
- }
157
- class NewModeFileAction extends AbstractNewPromptFileAction {
158
- constructor() {
159
- super(NEW_MODE_COMMAND_ID, ( localize(5444, "New Mode File...")), PromptsType.mode);
160
- }
161
- }
162
- class NewUntitledPromptFileAction extends Action2 {
163
- constructor() {
164
- super({
165
- id: 'workbench.command.new.untitled.prompt',
166
- title: ( localize2(5445, "New Untitled Prompt File")),
167
- f1: true,
168
- precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
169
- category: CHAT_CATEGORY,
170
- keybinding: {
171
- weight: KeybindingWeight.WorkbenchContrib
172
- },
173
- });
174
- }
175
- async run(accessor) {
176
- const editorService = accessor.get(IEditorService);
177
- const snippetService = accessor.get(ISnippetsService);
178
- const languageId = getLanguageIdForPromptsType(PromptsType.prompt);
179
- const input = await editorService.openEditor({
180
- resource: undefined,
181
- languageId,
182
- options: {
183
- pinned: true
184
- }
185
- });
186
- const editor = getCodeEditor(editorService.activeTextEditorControl);
187
- if (editor && editor.hasModel()) {
188
- const snippets = await snippetService.getSnippets(languageId, { fileTemplateSnippets: true, noRecencySort: true, includeNoPrefixSnippets: true });
189
- if (snippets.length > 0) {
190
- SnippetController2.get(editor)?.apply([{
191
- range: editor.getModel().getFullModelRange(),
192
- template: snippets[0].body
193
- }]);
194
- }
195
- }
196
- return input;
197
- }
198
- }
199
- function registerNewPromptFileActions() {
200
- registerAction2(NewPromptFileAction);
201
- registerAction2(NewInstructionsFileAction);
202
- registerAction2(NewModeFileAction);
203
- registerAction2(NewUntitledPromptFileAction);
204
- }
205
-
206
- export { NEW_INSTRUCTIONS_COMMAND_ID, NEW_MODE_COMMAND_ID, NEW_PROMPT_COMMAND_ID, registerNewPromptFileActions };
@@ -1,7 +0,0 @@
1
- import { PromptsType } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
2
- import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
3
- import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions";
4
- /**
5
- * Asks the user for a file name.
6
- */
7
- export declare function askForPromptFileName(accessor: ServicesAccessor, type: PromptsType, selectedFolder: URI, existingFileName?: string): Promise<string | undefined>;
@@ -1,79 +0,0 @@
1
-
2
- import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
3
- import { getPromptFileExtension } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
4
- import { PromptsType } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
5
- import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
6
- import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
7
- import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
8
- import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
9
- import { isValidBasename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/extpath';
10
-
11
- async function askForPromptFileName(accessor, type, selectedFolder, existingFileName) {
12
- const quickInputService = accessor.get(IQuickInputService);
13
- const fileService = accessor.get(IFileService);
14
- const sanitizeInput = (input) => {
15
- const trimmedName = input.trim();
16
- if (!trimmedName) {
17
- return undefined;
18
- }
19
- const fileExtension = getPromptFileExtension(type);
20
- return (trimmedName.endsWith(fileExtension))
21
- ? trimmedName
22
- : `${trimmedName}${fileExtension}`;
23
- };
24
- const validateInput = async (value) => {
25
- const fileName = sanitizeInput(value);
26
- if (!fileName) {
27
- return {
28
- content: ( localize(5446, "Please enter a name.")),
29
- severity: Severity.Warning
30
- };
31
- }
32
- if (!isValidBasename(fileName)) {
33
- return {
34
- content: ( localize(5447, "The name contains invalid characters.")),
35
- severity: Severity.Error
36
- };
37
- }
38
- const fileUri = URI.joinPath(selectedFolder, fileName);
39
- if (await fileService.exists(fileUri)) {
40
- return {
41
- content: ( localize(5448, "A file for the given name already exists.")),
42
- severity: Severity.Error
43
- };
44
- }
45
- return undefined;
46
- };
47
- const placeHolder = existingFileName ? getPlaceholderStringForRename(type) : getPlaceholderStringForNew(type);
48
- const result = await quickInputService.input({ placeHolder, validateInput, value: existingFileName });
49
- if (!result) {
50
- return undefined;
51
- }
52
- return sanitizeInput(result);
53
- }
54
- function getPlaceholderStringForNew(type) {
55
- switch (type) {
56
- case PromptsType.instructions:
57
- return localize(5449, "Enter the name of the instructions file");
58
- case PromptsType.prompt:
59
- return localize(5450, "Enter the name of the prompt file");
60
- case PromptsType.mode:
61
- return localize(5451, "Enter the name of the custom chat mode file");
62
- default:
63
- throw ( new Error('Unknown prompt type'));
64
- }
65
- }
66
- function getPlaceholderStringForRename(type) {
67
- switch (type) {
68
- case PromptsType.instructions:
69
- return localize(5452, "Enter a new name of the instructions file");
70
- case PromptsType.prompt:
71
- return localize(5453, "Enter a new name of the prompt file");
72
- case PromptsType.mode:
73
- return localize(5454, "Enter a new name of the custom chat mode file");
74
- default:
75
- throw ( new Error('Unknown prompt type'));
76
- }
77
- }
78
-
79
- export { askForPromptFileName };
@@ -1,8 +0,0 @@
1
- import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
2
- import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions";
3
- import { PromptsType } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
4
- import { IPromptPath } from "../../../common/promptSyntax/service/promptsService.js";
5
- /**
6
- * Asks the user for a specific prompt folder, if multiple folders provided.
7
- */
8
- export declare function askForPromptSourceFolder(accessor: ServicesAccessor, type: PromptsType, existingFolder?: URI | undefined, isMove?: boolean): Promise<IPromptPath | undefined>;
@@ -1,145 +0,0 @@
1
-
2
- import { isEqual, extUri } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
3
- import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
- import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
- import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
6
- import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
7
- import { PromptsType, PROMPT_DOCUMENTATION_URL } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
8
- import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
9
- import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
10
- import { PromptsStorage } from '../../../common/promptSyntax/service/promptsService.js';
11
- import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
12
-
13
- async function askForPromptSourceFolder(accessor, type, existingFolder, isMove = false) {
14
- const quickInputService = accessor.get(IQuickInputService);
15
- const promptsService = accessor.get(IPromptsService);
16
- const labelService = accessor.get(ILabelService);
17
- const workspaceService = accessor.get(IWorkspaceContextService);
18
- const folders = promptsService.getSourceFolders(type);
19
- if (folders.length === 0) {
20
- await showNoFoldersDialog(accessor, type);
21
- return;
22
- }
23
- const pickOptions = {
24
- placeHolder: existingFolder ? getPlaceholderStringforMove(type, isMove) : getPlaceholderStringforNew(type),
25
- canPickMany: false,
26
- matchOnDescription: true,
27
- };
28
- const foldersList = ( folders.map(folder => {
29
- const uri = folder.uri;
30
- const detail = (existingFolder && isEqual(uri, existingFolder)) ? ( localize(5455, "Current Location")) : undefined;
31
- if (folder.storage !== PromptsStorage.local) {
32
- return {
33
- type: 'item',
34
- label: promptsService.getPromptLocationLabel(folder),
35
- detail,
36
- tooltip: labelService.getUriLabel(uri),
37
- folder
38
- };
39
- }
40
- const { folders } = workspaceService.getWorkspace();
41
- const isMultirootWorkspace = (folders.length > 1);
42
- const firstFolder = folders[0];
43
- if (isMultirootWorkspace || !firstFolder || !extUri.isEqual(firstFolder.uri, uri)) {
44
- return {
45
- type: 'item',
46
- label: labelService.getUriLabel(uri, { relative: true }),
47
- detail,
48
- tooltip: labelService.getUriLabel(uri),
49
- folder,
50
- };
51
- }
52
- return {
53
- type: 'item',
54
- label: ( localize(5456, "Current Workspace")),
55
- detail,
56
- tooltip: labelService.getUriLabel(uri),
57
- folder,
58
- };
59
- }));
60
- const answer = await quickInputService.pick(foldersList, pickOptions);
61
- if (!answer) {
62
- return;
63
- }
64
- return answer.folder;
65
- }
66
- function getPlaceholderStringforNew(type) {
67
- switch (type) {
68
- case PromptsType.instructions:
69
- return localize(5457, "Select a location to create the instructions file in...");
70
- case PromptsType.prompt:
71
- return localize(5458, "Select a location to create the prompt file in...");
72
- case PromptsType.mode:
73
- return localize(5459, "Select a location to create the mode file in...");
74
- default:
75
- throw ( new Error('Unknown prompt type'));
76
- }
77
- }
78
- function getPlaceholderStringforMove(type, isMove) {
79
- if (isMove) {
80
- switch (type) {
81
- case PromptsType.instructions:
82
- return localize(5460, "Select a location to move the instructions file to...");
83
- case PromptsType.prompt:
84
- return localize(5461, "Select a location to move the prompt file to...");
85
- case PromptsType.mode:
86
- return localize(5462, "Select a location to move the mode file to...");
87
- default:
88
- throw ( new Error('Unknown prompt type'));
89
- }
90
- }
91
- switch (type) {
92
- case PromptsType.instructions:
93
- return localize(5463, "Select a location to copy the instructions file to...");
94
- case PromptsType.prompt:
95
- return localize(5464, "Select a location to copy the prompt file to...");
96
- case PromptsType.mode:
97
- return localize(5465, "Select a location to copy the mode file to...");
98
- default:
99
- throw ( new Error('Unknown prompt type'));
100
- }
101
- }
102
- async function showNoFoldersDialog(accessor, type) {
103
- const quickInputService = accessor.get(IQuickInputService);
104
- const openerService = accessor.get(IOpenerService);
105
- const docsQuickPick = {
106
- type: 'item',
107
- label: getLearnLabel(type),
108
- description: PROMPT_DOCUMENTATION_URL,
109
- tooltip: PROMPT_DOCUMENTATION_URL,
110
- value: ( URI.parse(PROMPT_DOCUMENTATION_URL)),
111
- };
112
- const result = await quickInputService.pick([docsQuickPick], {
113
- placeHolder: getMissingSourceFolderString(type),
114
- canPickMany: false,
115
- });
116
- if (result) {
117
- await openerService.open(result.value);
118
- }
119
- }
120
- function getLearnLabel(type) {
121
- switch (type) {
122
- case PromptsType.prompt:
123
- return localize(5466, 'Learn how to configure reusable prompts');
124
- case PromptsType.instructions:
125
- return localize(5467, 'Learn how to configure reusable instructions');
126
- case PromptsType.mode:
127
- return localize(5468, 'Learn how to configure custom chat modes');
128
- default:
129
- throw ( new Error('Unknown prompt type'));
130
- }
131
- }
132
- function getMissingSourceFolderString(type) {
133
- switch (type) {
134
- case PromptsType.instructions:
135
- return localize(5469, 'No instruction source folders found.');
136
- case PromptsType.prompt:
137
- return localize(5470, 'No prompt source folders found.');
138
- case PromptsType.mode:
139
- return localize(5471, 'No custom chat mode source folders found.');
140
- default:
141
- throw ( new Error('Unknown prompt type'));
142
- }
143
- }
144
-
145
- export { askForPromptSourceFolder };