@codingame/monaco-vscode-chat-service-override 20.4.1 → 21.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 (200) hide show
  1. package/index.js +15 -7
  2. package/package.json +38 -36
  3. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +2 -0
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +60 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +56 -46
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +18 -16
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +52 -11
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +28 -26
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +19 -13
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +2 -2
  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 +2 -2
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +15 -12
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +11 -11
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +10 -10
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +68 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +433 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -18
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +7 -3
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +205 -551
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +7 -5
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +52 -29
  24. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -163
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +1 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +20 -5
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +17 -17
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +11 -14
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +32 -6
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +22 -3
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +22 -9
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +6 -8
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +1 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +47 -15
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +12 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +8 -2
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +33 -8
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +3 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +3 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +74 -19
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +2 -2
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +3 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -19
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.d.ts +12 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.js +36 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +36 -35
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +6 -6
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +2 -2
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +1 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +37 -9
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +238 -52
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +23 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +257 -148
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +3 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +126 -77
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -3
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +3 -13
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +4 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +55 -45
  67. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +6 -3
  68. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
  69. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +13 -7
  70. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +130 -47
  71. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-dark.svg +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-light.svg +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +5 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +6 -6
  75. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +9 -9
  76. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +39 -35
  78. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +9 -9
  79. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +18 -18
  80. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +12 -12
  81. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  82. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  84. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  85. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +2 -2
  86. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +14 -14
  87. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  88. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +5 -4
  89. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +7 -4
  90. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +4 -8
  91. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +153 -168
  92. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +127 -1
  93. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +111 -1
  94. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
  95. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +2 -1
  96. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +6 -3
  97. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.d.ts +20 -0
  98. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +66 -0
  99. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +38 -0
  100. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +143 -0
  101. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +3 -1
  102. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +12 -3
  103. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.d.ts +8 -3
  104. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +41 -8
  105. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.d.ts +4 -1
  106. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +55 -22
  107. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
  110. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.d.ts +2 -0
  112. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +5 -2
  113. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.d.ts +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.js +3 -4
  115. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
  116. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +0 -5
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +8 -23
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +4 -5
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +11 -5
  121. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +28 -28
  122. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  123. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +12 -0
  124. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +54 -0
  125. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  126. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +33 -31
  127. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +9 -9
  128. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.d.ts +1 -3
  129. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +9 -13
  130. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  131. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -18
  132. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +2 -1
  133. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +11 -4
  134. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  135. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +1 -2
  136. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +1 -6
  137. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.d.ts +16 -1
  138. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +84 -25
  139. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +10 -0
  140. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +55 -0
  141. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +8 -2
  142. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +15 -7
  143. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +23 -0
  144. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +72 -1
  145. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +8 -2
  146. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +19 -9
  147. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +5 -0
  148. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -5
  149. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +12 -8
  150. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +6 -0
  151. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +85 -1
  152. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +35 -0
  153. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +448 -0
  154. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -1
  155. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +30 -77
  156. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +62 -0
  157. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +174 -0
  158. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +75 -10
  159. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +15 -2
  160. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +81 -38
  161. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.d.ts +11 -0
  162. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +106 -0
  163. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.js → tools/getTerminalOutputTool.js} +5 -3
  164. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.d.ts +11 -0
  165. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +59 -0
  166. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +57 -0
  167. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +452 -0
  168. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +45 -0
  169. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +2 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +31 -0
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.d.ts → tools/runInTerminalTool.d.ts} +11 -13
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.js → tools/runInTerminalTool.js} +282 -133
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.d.ts +5 -5
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.js +51 -50
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/getTaskOutputTool.d.ts +6 -1
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +117 -0
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.d.ts +3 -5
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.js +54 -50
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +19 -0
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +36 -0
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.d.ts +3 -0
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.js +8 -0
  184. package/vscode/src/vs/base/common/policy.d.ts +0 -41
  185. package/vscode/src/vs/base/common/policy.js +0 -11
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.d.ts +0 -12
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +0 -738
  188. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +0 -42
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.d.ts +0 -67
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.js +0 -167
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.d.ts +0 -23
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +0 -63
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +0 -55
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +0 -163
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +0 -88
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +0 -35
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.js +0 -80
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.d.ts +0 -1
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +0 -40
  200. /package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.d.ts → tools/getTerminalOutputTool.d.ts} +0 -0
@@ -14,7 +14,6 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/in
14
14
  import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
15
15
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
16
16
  import { OffsetRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/offsetRange';
17
- import { isLocation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
18
17
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
19
18
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
20
19
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
@@ -22,7 +21,6 @@ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log
22
21
  import { Progress } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress';
23
22
  import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
24
23
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
25
- import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
26
24
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
27
25
  import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
28
26
  import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
@@ -30,16 +28,14 @@ import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
30
28
  import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, updateRanges, toChatHistoryContent, ChatRequestModel } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel';
31
29
  import { ChatRequestTextPart, ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader, ChatRequestSlashCommandPart, getPromptText } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
32
30
  import { ChatRequestParser } from '@codingame/monaco-vscode-0af61f78-dfc5-57ba-8d32-66268c8de38d-common/vscode/vs/workbench/contrib/chat/common/chatRequestParser';
33
- import { ChatServiceTelemetry } from './chatServiceTelemetry.js';
31
+ import { ChatServiceTelemetry, ChatRequestTelemetry } from './chatServiceTelemetry.js';
34
32
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
35
33
  import { ChatSessionStore } from './chatSessionStore.js';
36
34
  import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSlashCommands.service';
37
35
  import { IChatTransferService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatTransferService.service';
38
36
  import { ChatSessionUri } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatUri';
39
- import { isImageVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatVariableEntries';
40
37
  import { ChatConfiguration, ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
41
38
  import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
42
- import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
43
39
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
44
40
  import { ObservableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/map';
45
41
  import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
@@ -82,19 +78,17 @@ let ChatService = class ChatService extends Disposable {
82
78
  const workspace = this.workspaceContextService.getWorkspace();
83
79
  return !workspace.configuration && workspace.folders.length === 0;
84
80
  }
85
- constructor(storageService, logService, extensionService, instantiationService, telemetryService, workspaceContextService, chatSlashCommandService, chatAgentService, configurationService, chatTransferService, languageModelsService, chatSessionService, mcpService) {
81
+ constructor(storageService, logService, extensionService, instantiationService, workspaceContextService, chatSlashCommandService, chatAgentService, configurationService, chatTransferService, chatSessionService, mcpService) {
86
82
  super();
87
83
  this.storageService = storageService;
88
84
  this.logService = logService;
89
85
  this.extensionService = extensionService;
90
86
  this.instantiationService = instantiationService;
91
- this.telemetryService = telemetryService;
92
87
  this.workspaceContextService = workspaceContextService;
93
88
  this.chatSlashCommandService = chatSlashCommandService;
94
89
  this.chatAgentService = chatAgentService;
95
90
  this.configurationService = configurationService;
96
91
  this.chatTransferService = chatTransferService;
97
- this.languageModelsService = languageModelsService;
98
92
  this.chatSessionService = chatSessionService;
99
93
  this.mcpService = mcpService;
100
94
  this._sessionModels = ( new ObservableMap());
@@ -135,6 +129,7 @@ let ChatService = class ChatService extends Disposable {
135
129
  this._chatSessionStore = this._register(this.instantiationService.createInstance(ChatSessionStore));
136
130
  if (this.useFileStorage) {
137
131
  this._chatSessionStore.migrateDataIfNeeded(() => this._persistedSessions);
132
+ this.initializePersistedSessionsFromFileStorage();
138
133
  }
139
134
  this._register(storageService.onWillSaveState(() => this.saveState()));
140
135
  this.requestInProgressObs = derived(reader => {
@@ -147,7 +142,7 @@ let ChatService = class ChatService extends Disposable {
147
142
  }
148
143
  saveState() {
149
144
  const liveChats = Array.from(( this._sessionModels.values()))
150
- .filter(session => session.initialLocation === ChatAgentLocation.Panel);
145
+ .filter(session => !session.inputType && (session.initialLocation === ChatAgentLocation.Panel || session.initialLocation === ChatAgentLocation.Editor));
151
146
  if (this.useFileStorage) {
152
147
  this._chatSessionStore.storeSessions(liveChats);
153
148
  }
@@ -224,15 +219,32 @@ let ChatService = class ChatService extends Disposable {
224
219
  const model = this._sessionModels.get(sessionId);
225
220
  if (model) {
226
221
  model.setCustomTitle(title);
227
- return;
228
222
  }
229
223
  if (this.useFileStorage) {
230
224
  await this._chatSessionStore.setSessionTitle(sessionId, title);
231
- return;
225
+ await this.saveState();
232
226
  }
233
- const session = this._persistedSessions[sessionId];
234
- if (session) {
235
- session.customTitle = title;
227
+ else {
228
+ if (this._persistedSessions[sessionId]) {
229
+ this._persistedSessions[sessionId].customTitle = title;
230
+ }
231
+ else {
232
+ this._persistedSessions[sessionId] = {
233
+ version: 3,
234
+ sessionId: sessionId,
235
+ customTitle: title,
236
+ creationDate: Date.now(),
237
+ lastMessageDate: Date.now(),
238
+ isImported: false,
239
+ initialLocation: undefined,
240
+ requests: [],
241
+ requesterUsername: '',
242
+ responderUsername: '',
243
+ requesterAvatarIconUri: undefined,
244
+ responderAvatarIconUri: undefined,
245
+ };
246
+ }
247
+ await this.saveState();
236
248
  }
237
249
  }
238
250
  trace(method, message) {
@@ -289,12 +301,36 @@ let ChatService = class ChatService extends Disposable {
289
301
  this.storageService.store(globalChatKey, JSON.stringify(filtered), StorageScope.PROFILE, StorageTarget.MACHINE);
290
302
  return transferred;
291
303
  }
304
+ async initializePersistedSessionsFromFileStorage() {
305
+ const index = await this._chatSessionStore.getIndex();
306
+ const sessionIds = ( Object.keys(index));
307
+ for (const sessionId of sessionIds) {
308
+ const metadata = index[sessionId];
309
+ if (metadata && !this._persistedSessions[sessionId]) {
310
+ const minimalSession = {
311
+ version: 3,
312
+ sessionId: sessionId,
313
+ customTitle: metadata.title,
314
+ creationDate: Date.now(),
315
+ lastMessageDate: metadata.lastMessageDate,
316
+ isImported: metadata.isImported || false,
317
+ initialLocation: metadata.initialLocation,
318
+ requests: [],
319
+ requesterUsername: '',
320
+ responderUsername: '',
321
+ requesterAvatarIconUri: undefined,
322
+ responderAvatarIconUri: undefined,
323
+ };
324
+ this._persistedSessions[sessionId] = minimalSession;
325
+ }
326
+ }
327
+ }
292
328
  async getHistory() {
293
329
  if (this.useFileStorage) {
294
330
  const liveSessionItems = ( Array.from(( this._sessionModels.values()))
295
- .filter(session => !session.isImported)
331
+ .filter(session => !session.isImported && !session.inputType)
296
332
  .map(session => {
297
- const title = session.title || ( localize(5416, "New Chat"));
333
+ const title = session.title || ( localize(5544, "New Chat"));
298
334
  return {
299
335
  sessionId: session.sessionId,
300
336
  title,
@@ -328,7 +364,7 @@ let ChatService = class ChatService extends Disposable {
328
364
  const liveSessionItems = ( Array.from(( this._sessionModels.values()))
329
365
  .filter(session => !session.isImported)
330
366
  .map(session => {
331
- const title = session.title || ( localize(5416, "New Chat"));
367
+ const title = session.title || ( localize(5544, "New Chat"));
332
368
  return {
333
369
  sessionId: session.sessionId,
334
370
  title,
@@ -358,12 +394,12 @@ let ChatService = class ChatService extends Disposable {
358
394
  this._persistedSessions = {};
359
395
  this.saveState();
360
396
  }
361
- startSession(location, token, isGlobalEditingSession = true) {
397
+ startSession(location, token, isGlobalEditingSession = true, inputType) {
362
398
  this.trace('startSession');
363
- return this._startSession(undefined, location, isGlobalEditingSession, token);
399
+ return this._startSession(undefined, location, isGlobalEditingSession, token, inputType);
364
400
  }
365
- _startSession(someSessionHistory, location, isGlobalEditingSession, token) {
366
- const model = this.instantiationService.createInstance(ChatModel, someSessionHistory, location);
401
+ _startSession(someSessionHistory, location, isGlobalEditingSession, token, inputType) {
402
+ const model = this.instantiationService.createInstance(ChatModel, someSessionHistory, { initialLocation: location, inputType });
367
403
  if (location === ChatAgentLocation.Panel) {
368
404
  model.startEditingSession(isGlobalEditingSession);
369
405
  }
@@ -426,6 +462,24 @@ let ChatService = class ChatService extends Disposable {
426
462
  }
427
463
  return this._chatSessionStore.isSessionEmpty(sessionId);
428
464
  }
465
+ getPersistedSessionTitle(sessionId) {
466
+ const session = this._persistedSessions[sessionId];
467
+ if (session) {
468
+ const title = session.customTitle || ChatModel.getDefaultTitle(session.requests);
469
+ return title;
470
+ }
471
+ if (this.useFileStorage) {
472
+ const internalGetIndex = this._chatSessionStore.internalGetIndex;
473
+ if (typeof internalGetIndex === 'function') {
474
+ const indexData = internalGetIndex.call(this._chatSessionStore);
475
+ const metadata = indexData.entries[sessionId];
476
+ if (metadata && metadata.title) {
477
+ return metadata.title;
478
+ }
479
+ }
480
+ }
481
+ return undefined;
482
+ }
429
483
  loadSessionFromContent(data) {
430
484
  return this._startSession(data, data.initialLocation ?? ChatAgentLocation.Panel, true, CancellationToken.None);
431
485
  }
@@ -438,9 +492,12 @@ let ChatService = class ChatService extends Disposable {
438
492
  if (existing) {
439
493
  return existing.model;
440
494
  }
495
+ if (parsed.chatSessionType === 'local') {
496
+ return this.getOrRestoreSession(parsed.sessionId);
497
+ }
441
498
  const chatSessionType = parsed.chatSessionType;
442
499
  const content = await this.chatSessionService.provideChatSessionContent(chatSessionType, parsed.sessionId, CancellationToken.None);
443
- const model = this._startSession(undefined, location, true, CancellationToken.None);
500
+ const model = this._startSession(undefined, location, true, CancellationToken.None, chatSessionType);
444
501
  if (!( this._contentProviderSessionModels.has(chatSessionType))) {
445
502
  this._contentProviderSessionModels.set(chatSessionType, ( new Map()));
446
503
  }
@@ -453,15 +510,20 @@ let ChatService = class ChatService extends Disposable {
453
510
  let lastRequest;
454
511
  for (const message of content.history) {
455
512
  if (message.type === 'request') {
513
+ if (lastRequest) {
514
+ model.completeResponse(lastRequest);
515
+ }
456
516
  const requestText = message.prompt;
457
517
  const parsedRequest = {
458
518
  text: requestText,
459
519
  parts: [( new ChatRequestTextPart(( new OffsetRange(0, requestText.length)), { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: requestText.length + 1 }, requestText))]
460
520
  };
521
+ const agent = message.participant
522
+ ? this.chatAgentService.getAgent(message.participant)
523
+ : this.chatAgentService.getAgent(chatSessionType);
461
524
  lastRequest = model.addRequest(parsedRequest, { variables: [] },
462
525
  0,
463
- undefined,
464
- undefined,
526
+ undefined, agent, undefined,
465
527
  undefined,
466
528
  undefined,
467
529
  undefined,
@@ -476,7 +538,7 @@ let ChatService = class ChatService extends Disposable {
476
538
  }
477
539
  }
478
540
  }
479
- if (content.progressEvent && lastRequest) {
541
+ if (content.progressObs && lastRequest && content.interruptActiveResponseCallback) {
480
542
  const initialCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined);
481
543
  this._pendingRequests.set(model.sessionId, initialCancellationRequest);
482
544
  const cancellationListener = ( new MutableDisposable());
@@ -493,15 +555,20 @@ let ChatService = class ChatService extends Disposable {
493
555
  };
494
556
  cancellationListener.value = createCancellationListener(initialCancellationRequest.cancellationTokenSource.token);
495
557
  disposables.add(cancellationListener);
496
- disposables.add(content.progressEvent(e => {
497
- for (const progress of e) {
498
- if (progress.kind === 'progressMessage' && progress.content.value === 'Session completed') {
499
- model?.completeResponse(lastRequest);
500
- cancellationListener.clear();
501
- }
502
- else {
558
+ let lastProgressLength = 0;
559
+ disposables.add(autorun(reader => {
560
+ const progressArray = content.progressObs?.read(reader) ?? [];
561
+ const isComplete = content.isCompleteObs?.read(reader) ?? false;
562
+ if (progressArray.length > lastProgressLength) {
563
+ const newProgress = progressArray.slice(lastProgressLength);
564
+ for (const progress of newProgress) {
503
565
  model?.acceptResponseProgress(lastRequest, progress);
504
566
  }
567
+ lastProgressLength = progressArray.length;
568
+ }
569
+ if (isComplete) {
570
+ model?.completeResponse(lastRequest);
571
+ cancellationListener.clear();
505
572
  }
506
573
  }));
507
574
  }
@@ -525,7 +592,7 @@ let ChatService = class ChatService extends Disposable {
525
592
  const location = options?.location ?? model.initialLocation;
526
593
  const attempt = options?.attempt ?? 0;
527
594
  const enableCommandDetection = !options?.noCommandDetection;
528
- const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.mode);
595
+ const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.modeInfo?.kind);
529
596
  model.removeRequest(request.id, ChatRequestRemovalReason.Resend);
530
597
  const resendOptions = {
531
598
  ...options,
@@ -536,7 +603,7 @@ let ChatService = class ChatService extends Disposable {
536
603
  }
537
604
  async sendRequest(sessionId, request, options) {
538
605
  this.trace('sendRequest', `sessionId: ${sessionId}, message: ${request.substring(0, 20)}${request.length > 20 ? '[...]' : ''}}`);
539
- if (!request.trim() && !options?.slashCommand && !options?.agentId) {
606
+ if (!request.trim() && !options?.slashCommand && !options?.agentId && !options?.agentIdSilent) {
540
607
  this.trace('sendRequest', 'Rejected empty message');
541
608
  return;
542
609
  }
@@ -562,12 +629,13 @@ let ChatService = class ChatService extends Disposable {
562
629
  }
563
630
  const location = options?.location ?? model.initialLocation;
564
631
  const attempt = options?.attempt ?? 0;
565
- const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.mode);
632
+ const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.modeInfo?.kind);
566
633
  const parsedRequest = this.parseChatRequest(sessionId, request, location, options);
567
- const agent = parsedRequest.parts.find((r) => r instanceof ChatRequestAgentPart)?.agent ?? defaultAgent;
634
+ const silentAgent = options?.agentIdSilent ? this.chatAgentService.getAgent(options.agentIdSilent) : undefined;
635
+ const agent = silentAgent ?? parsedRequest.parts.find((r) => r instanceof ChatRequestAgentPart)?.agent ?? defaultAgent;
568
636
  const agentSlashCommandPart = parsedRequest.parts.find((r) => r instanceof ChatRequestAgentSubcommandPart);
569
637
  return {
570
- ...this._sendRequestAsync(model, sessionId, parsedRequest, attempt, !options?.noCommandDetection, defaultAgent, location, options),
638
+ ...this._sendRequestAsync(model, sessionId, parsedRequest, attempt, !options?.noCommandDetection, silentAgent ?? defaultAgent, location, options),
571
639
  agent,
572
640
  slashCommand: agentSlashCommandPart?.command,
573
641
  };
@@ -579,7 +647,7 @@ let ChatService = class ChatService extends Disposable {
579
647
  if (!agent) {
580
648
  throw ( new Error(`Unknown agent: ${options.agentId}`));
581
649
  }
582
- parserContext = { selectedAgent: agent, mode: options.mode };
650
+ parserContext = { selectedAgent: agent, mode: options.modeInfo?.kind };
583
651
  const commandPart = options.slashCommand ? ` ${chatSubcommandLeader}${options.slashCommand}` : '';
584
652
  request = `${chatAgentLeader}${agent.name}${commandPart} ${request}`;
585
653
  }
@@ -599,6 +667,15 @@ let ChatService = class ChatService extends Disposable {
599
667
  const agentSlashCommandPart = 'kind' in parsedRequest ? undefined : parsedRequest.parts.find((r) => r instanceof ChatRequestAgentSubcommandPart);
600
668
  const commandPart = 'kind' in parsedRequest ? undefined : parsedRequest.parts.find((r) => r instanceof ChatRequestSlashCommandPart);
601
669
  const requests = [...model.getRequests()];
670
+ const requestTelemetry = this.instantiationService.createInstance(ChatRequestTelemetry, {
671
+ agentPart,
672
+ agentSlashCommandPart,
673
+ commandPart,
674
+ sessionId: model.sessionId,
675
+ location: model.initialLocation,
676
+ options,
677
+ enableCommandDetection
678
+ });
602
679
  let gotProgress = false;
603
680
  const requestType = commandPart ? 'slashCommand' : 'string';
604
681
  const responseCreated = ( new DeferredPromise());
@@ -639,22 +716,13 @@ let ChatService = class ChatService extends Disposable {
639
716
  if (!request) {
640
717
  return;
641
718
  }
642
- this.telemetryService.publicLog2('interactiveSessionProviderInvoked', {
719
+ requestTelemetry.complete({
643
720
  timeToFirstProgress: undefined,
644
- totalTime: stopWatch.elapsed(),
645
721
  result: 'cancelled',
722
+ totalTime: stopWatch.elapsed(),
646
723
  requestType,
647
- agent: detectedAgent?.id ?? agentPart?.agent.id ?? '',
648
- agentExtensionId: detectedAgent?.extensionId.value ?? agentPart?.agent.extensionId.value ?? '',
649
- slashCommand: agentSlashCommandPart ? agentSlashCommandPart.command.name : commandPart?.slashCommand.command,
650
- chatSessionId: model.sessionId,
651
- location,
652
- citations: request?.response?.codeCitations.length ?? 0,
653
- numCodeBlocks: getCodeBlocks(request.response?.response.toString() ?? '').length,
654
- isParticipantDetected: !!detectedAgent,
655
- enableCommandDetection,
656
- attachmentKinds: this.attachmentKindsForTelemetry(request.variableData),
657
- model: this.resolveModelId(options?.userSelectedModelId),
724
+ detectedAgent,
725
+ request,
658
726
  });
659
727
  model.cancelRequest(request);
660
728
  }));
@@ -665,7 +733,7 @@ let ChatService = class ChatService extends Disposable {
665
733
  if (agentPart || (defaultAgent && !commandPart)) {
666
734
  const prepareChatAgentRequest = (agent, command, enableCommandDetection, chatRequest, isParticipantDetected) => {
667
735
  const initVariableData = { variables: [] };
668
- request = chatRequest ?? model.addRequest(parsedRequest, initVariableData, attempt, agent, command, options?.confirmation, options?.locationData, options?.attachedContext, undefined, options?.userSelectedModelId);
736
+ request = chatRequest ?? model.addRequest(parsedRequest, initVariableData, attempt, options?.modeInfo, agent, command, options?.confirmation, options?.locationData, options?.attachedContext, undefined, options?.userSelectedModelId);
669
737
  let variableData;
670
738
  let message;
671
739
  if (chatRequest) {
@@ -687,7 +755,7 @@ let ChatService = class ChatService extends Disposable {
687
755
  return;
688
756
  }
689
757
  if (tools) {
690
- this.chatAgentService.setRequestTools(agent.id, request.id, { userSelectedTools: tools });
758
+ this.chatAgentService.setRequestTools(agent.id, request.id, tools);
691
759
  }
692
760
  }));
693
761
  return {
@@ -706,11 +774,19 @@ let ChatService = class ChatService extends Disposable {
706
774
  rejectedConfirmationData: options?.rejectedConfirmationData,
707
775
  userSelectedModelId: options?.userSelectedModelId,
708
776
  userSelectedTools: options?.userSelectedTools?.get(),
709
- modeInstructions: options?.modeInstructions,
777
+ modeInstructions: options?.modeInfo?.instructions,
710
778
  editedFileEvents: request.editedFileEvents
711
779
  };
712
780
  };
713
- if (this.configurationService.getValue('chat.detectParticipant.enabled') !== false && this.chatAgentService.hasChatParticipantDetectionProviders() && !agentPart && !commandPart && !agentSlashCommandPart && enableCommandDetection && options?.mode !== ChatModeKind.Agent && options?.mode !== ChatModeKind.Edit) {
781
+ if (this.configurationService.getValue('chat.detectParticipant.enabled') !== false &&
782
+ this.chatAgentService.hasChatParticipantDetectionProviders() &&
783
+ !agentPart &&
784
+ !commandPart &&
785
+ !agentSlashCommandPart &&
786
+ enableCommandDetection &&
787
+ options?.modeInfo?.kind !== ChatModeKind.Agent &&
788
+ options?.modeInfo?.kind !== ChatModeKind.Edit &&
789
+ !options?.agentIdSilent) {
714
790
  const defaultAgentHistory = this.getHistoryEntriesFromModel(requests, model.sessionId, location, defaultAgent.id);
715
791
  const chatAgentRequest = prepareChatAgentRequest(defaultAgent, undefined, enableCommandDetection, undefined, false);
716
792
  const result = await this.chatAgentService.detectAgentOrCommand(chatAgentRequest, defaultAgentHistory, { location }, token);
@@ -740,7 +816,7 @@ let ChatService = class ChatService extends Disposable {
740
816
  }
741
817
  else if (commandPart && this.chatSlashCommandService.hasCommand(commandPart.slashCommand.command)) {
742
818
  if (commandPart.slashCommand.silent !== true) {
743
- request = model.addRequest(parsedRequest, { variables: [] }, attempt);
819
+ request = model.addRequest(parsedRequest, { variables: [] }, attempt, options?.modeInfo);
744
820
  completeResponseCreated();
745
821
  }
746
822
  const history = [];
@@ -767,29 +843,19 @@ let ChatService = class ChatService extends Disposable {
767
843
  else {
768
844
  if (!rawResult) {
769
845
  this.trace('sendRequest', `Provider returned no response for session ${model.sessionId}`);
770
- rawResult = { errorDetails: { message: ( localize(5417, "Provider returned null response")) } };
846
+ rawResult = { errorDetails: { message: ( localize(5545, "Provider returned null response")) } };
771
847
  }
772
848
  const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
773
849
  rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
774
850
  rawResult.errorDetails ? 'error' :
775
851
  'success';
776
- const commandForTelemetry = agentSlashCommandPart ? agentSlashCommandPart.command.name : commandPart?.slashCommand.command;
777
- this.telemetryService.publicLog2('interactiveSessionProviderInvoked', {
852
+ requestTelemetry.complete({
778
853
  timeToFirstProgress: rawResult.timings?.firstProgress,
779
854
  totalTime: rawResult.timings?.totalElapsed,
780
855
  result,
781
856
  requestType,
782
- agent: detectedAgent?.id ?? agentPart?.agent.id ?? '',
783
- agentExtensionId: detectedAgent?.extensionId.value ?? agentPart?.agent.extensionId.value ?? '',
784
- slashCommand: commandForTelemetry,
785
- chatSessionId: model.sessionId,
786
- enableCommandDetection,
787
- isParticipantDetected: !!detectedAgent,
788
- location,
789
- citations: request.response?.codeCitations.length ?? 0,
790
- numCodeBlocks: getCodeBlocks(request.response?.response.toString() ?? '').length,
791
- attachmentKinds: this.attachmentKindsForTelemetry(request.variableData),
792
- model: this.resolveModelId(options?.userSelectedModelId),
857
+ detectedAgent,
858
+ request,
793
859
  });
794
860
  model.setResponse(request, rawResult);
795
861
  completeResponseCreated();
@@ -798,6 +864,7 @@ let ChatService = class ChatService extends Disposable {
798
864
  if (agentOrCommandFollowups) {
799
865
  agentOrCommandFollowups.then(followups => {
800
866
  model.setFollowups(request, followups);
867
+ const commandForTelemetry = agentSlashCommandPart ? agentSlashCommandPart.command.name : commandPart?.slashCommand.command;
801
868
  this._chatServiceTelemetry.retrievedFollowups(agentPart?.agent.id ?? '', commandForTelemetry, followups?.length ?? 0);
802
869
  });
803
870
  }
@@ -810,23 +877,13 @@ let ChatService = class ChatService extends Disposable {
810
877
  }
811
878
  catch (err) {
812
879
  this.logService.error(`Error while handling chat request: ${toErrorMessage(err, true)}`);
813
- const result = 'error';
814
- this.telemetryService.publicLog2('interactiveSessionProviderInvoked', {
880
+ requestTelemetry.complete({
815
881
  timeToFirstProgress: undefined,
816
882
  totalTime: undefined,
817
- result,
883
+ result: 'error',
818
884
  requestType,
819
- agent: detectedAgent?.id ?? agentPart?.agent.id ?? '',
820
- agentExtensionId: detectedAgent?.extensionId.value ?? agentPart?.agent.extensionId.value ?? '',
821
- slashCommand: agentSlashCommandPart ? agentSlashCommandPart.command.name : commandPart?.slashCommand.command,
822
- chatSessionId: model.sessionId,
823
- location,
824
- citations: 0,
825
- numCodeBlocks: 0,
826
- enableCommandDetection,
827
- isParticipantDetected: !!detectedAgent,
828
- attachmentKinds: request ? this.attachmentKindsForTelemetry(request.variableData) : [],
829
- model: this.resolveModelId(options?.userSelectedModelId)
885
+ detectedAgent,
886
+ request,
830
887
  });
831
888
  if (request) {
832
889
  const rawResult = { errorDetails: { message: err.message } };
@@ -850,9 +907,6 @@ let ChatService = class ChatService extends Disposable {
850
907
  responseCompletePromise: rawResponsePromise,
851
908
  };
852
909
  }
853
- resolveModelId(userSelectedModelId) {
854
- return userSelectedModelId && this.languageModelsService.lookupLanguageModel(userSelectedModelId)?.id;
855
- }
856
910
  prepareContext(attachedContextVariables) {
857
911
  attachedContextVariables ??= [];
858
912
  attachedContextVariables.sort((a, b) => {
@@ -869,53 +923,6 @@ let ChatService = class ChatService extends Disposable {
869
923
  });
870
924
  return attachedContextVariables;
871
925
  }
872
- attachmentKindsForTelemetry(variableData) {
873
- return ( variableData.variables.map(v => {
874
- if (v.kind === 'implicit') {
875
- return 'implicit';
876
- }
877
- else if (v.range) {
878
- if (v.kind === 'tool') {
879
- return 'toolInPrompt';
880
- }
881
- else if (v.kind === 'toolset') {
882
- return 'toolsetInPrompt';
883
- }
884
- else {
885
- return 'fileInPrompt';
886
- }
887
- }
888
- else if (v.kind === 'command') {
889
- return 'command';
890
- }
891
- else if (v.kind === 'symbol') {
892
- return 'symbol';
893
- }
894
- else if (isImageVariableEntry(v)) {
895
- return 'image';
896
- }
897
- else if (v.kind === 'directory') {
898
- return 'directory';
899
- }
900
- else if (v.kind === 'tool') {
901
- return 'tool';
902
- }
903
- else if (v.kind === 'toolset') {
904
- return 'toolset';
905
- }
906
- else {
907
- if (URI.isUri(v.value)) {
908
- return 'file';
909
- }
910
- else if (isLocation(v.value)) {
911
- return 'location';
912
- }
913
- else {
914
- return 'otherAttachment';
915
- }
916
- }
917
- }));
918
- }
919
926
  getHistoryEntriesFromModel(requests, sessionId, location, forAgentId) {
920
927
  const history = [];
921
928
  const agent = this.chatAgentService.getAgent(forAgentId);
@@ -980,7 +987,7 @@ let ChatService = class ChatService extends Disposable {
980
987
  const parsedRequest = typeof message === 'string' ?
981
988
  this.instantiationService.createInstance(ChatRequestParser).parseChatRequest(sessionId, message) :
982
989
  message;
983
- const request = model.addRequest(parsedRequest, variableData || { variables: [] }, attempt ?? 0, undefined, undefined, undefined, undefined, undefined, true);
990
+ const request = model.addRequest(parsedRequest, variableData || { variables: [] }, attempt ?? 0, undefined, undefined, undefined, undefined, undefined, undefined, true);
984
991
  if (typeof response.message === 'string') {
985
992
  model.acceptResponseProgress(request, { content: ( new MarkdownString(response.message)), kind: 'markdownContent' });
986
993
  }
@@ -1006,9 +1013,10 @@ let ChatService = class ChatService extends Disposable {
1006
1013
  if (!model) {
1007
1014
  throw ( new Error(`Unknown session: ${sessionId}`));
1008
1015
  }
1009
- if (model.initialLocation === ChatAgentLocation.Panel) {
1016
+ this.trace(`Model input type: ${model.inputType}`);
1017
+ if (!model.inputType && (model.initialLocation === ChatAgentLocation.Panel || model.initialLocation === ChatAgentLocation.Editor)) {
1010
1018
  if (this.useFileStorage) {
1011
- if (model.getRequests().length === 0) {
1019
+ if (model.getRequests().length === 0 && !model.customTitle) {
1012
1020
  await this._chatSessionStore.deleteSession(sessionId);
1013
1021
  }
1014
1022
  else {
@@ -1016,7 +1024,7 @@ let ChatService = class ChatService extends Disposable {
1016
1024
  }
1017
1025
  }
1018
1026
  else {
1019
- if (model.getRequests().length === 0) {
1027
+ if (model.getRequests().length === 0 && !model.customTitle) {
1020
1028
  delete this._persistedSessions[sessionId];
1021
1029
  }
1022
1030
  else {
@@ -1075,36 +1083,13 @@ ChatService = ( __decorate([
1075
1083
  ( __param(1, ILogService)),
1076
1084
  ( __param(2, IExtensionService)),
1077
1085
  ( __param(3, IInstantiationService)),
1078
- ( __param(4, ITelemetryService)),
1079
- ( __param(5, IWorkspaceContextService)),
1080
- ( __param(6, IChatSlashCommandService)),
1081
- ( __param(7, IChatAgentService)),
1082
- ( __param(8, IConfigurationService)),
1083
- ( __param(9, IChatTransferService)),
1084
- ( __param(10, ILanguageModelsService)),
1085
- ( __param(11, IChatSessionsService)),
1086
- ( __param(12, IMcpService))
1086
+ ( __param(4, IWorkspaceContextService)),
1087
+ ( __param(5, IChatSlashCommandService)),
1088
+ ( __param(6, IChatAgentService)),
1089
+ ( __param(7, IConfigurationService)),
1090
+ ( __param(8, IChatTransferService)),
1091
+ ( __param(9, IChatSessionsService)),
1092
+ ( __param(10, IMcpService))
1087
1093
  ], ChatService));
1088
- function getCodeBlocks(text) {
1089
- const lines = text.split('\n');
1090
- const codeBlockLanguages = [];
1091
- let codeBlockState;
1092
- for (let i = 0; i < lines.length; i++) {
1093
- const line = lines[i];
1094
- if (codeBlockState) {
1095
- if (( new RegExp(`^\\s*${codeBlockState.delimiter}\\s*$`)).test(line)) {
1096
- codeBlockLanguages.push(codeBlockState.languageId);
1097
- codeBlockState = undefined;
1098
- }
1099
- }
1100
- else {
1101
- const match = line.match(/^(\s*)(`{3,}|~{3,})(\w*)/);
1102
- if (match) {
1103
- codeBlockState = { delimiter: match[2], languageId: match[3] };
1104
- }
1105
- }
1106
- }
1107
- return codeBlockLanguages;
1108
- }
1109
1094
 
1110
1095
  export { ChatService };