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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/index.js +17 -8
  2. package/package.json +43 -40
  3. package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +1 -1
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +6 -6
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +57 -48
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +19 -19
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +1 -1
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +26 -17
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +51 -5
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +2 -2
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +7 -7
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +19 -19
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.d.ts → chatNewActions.d.ts} +2 -1
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.js → chatNewActions.js} +32 -32
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +9 -9
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +9 -9
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +101 -98
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +35 -24
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +43 -25
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +34 -33
  27. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +53 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +154 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +7 -0
  30. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +13 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +44 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +347 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +85 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +250 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +24 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +97 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +290 -231
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +2 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +7 -10
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +6 -6
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.d.ts +24 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +113 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +31 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +102 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +646 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +2 -3
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +46 -26
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +17 -4
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +44 -34
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +14 -14
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +25 -6
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +46 -10
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +45 -6
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +30 -10
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +10 -3
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +60 -9
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +117 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +6 -4
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +60 -55
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +29 -16
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +365 -143
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +2 -3
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +3 -30
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +7 -3
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +58 -22
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +1 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +5 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +3 -3
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +3 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +5 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +6 -18
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.d.ts +1 -3
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +7 -11
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +13 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +38 -33
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +11 -6
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +83 -24
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.d.ts +1 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +91 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +64 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +370 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +25 -0
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +56 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +61 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +349 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +43 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +787 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.d.ts +17 -0
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +109 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +122 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +211 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatUsageWidget.css +69 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +21 -20
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +54 -54
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +31 -22
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +16 -6
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +6 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +29 -21
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +5 -2
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +37 -33
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +15 -12
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +96 -131
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +12 -7
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +66 -34
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +5 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +77 -71
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +91 -18
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +458 -138
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +3 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +212 -150
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +96 -89
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +3 -2
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +5 -5
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +3 -4
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +15 -16
  124. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +33 -17
  126. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
  127. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.d.ts +27 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +688 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +15 -10
  131. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +126 -135
  132. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +6 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditorController.css +2 -1
  134. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +38 -1
  135. package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +14 -14
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.d.ts +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +28 -26
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +3 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +9 -6
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +24 -13
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +15 -14
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +25 -23
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +21 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +89 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
  147. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +30 -29
  148. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +10 -19
  149. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +61 -43
  150. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +7 -4
  151. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +28 -28
  152. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +254 -165
  153. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +4 -4
  154. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +2 -2
  155. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +1 -1
  156. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +4 -6
  157. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +10 -6
  158. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +20 -12
  159. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +13 -17
  160. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +9 -8
  161. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +1 -0
  162. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +51 -21
  163. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +7 -3
  164. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +74 -20
  165. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +11 -6
  166. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -2
  167. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +83 -53
  168. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +2 -1
  169. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +136 -78
  170. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +4 -4
  171. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +18 -10
  172. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +357 -157
  173. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  174. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +55 -28
  175. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +235 -108
  176. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +12 -2
  177. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +50 -4
  178. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
  179. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
  180. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
  181. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +3 -1
  182. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +11 -7
  183. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +13 -15
  184. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  185. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +2 -2
  186. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +20 -32
  187. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +63 -140
  188. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +1 -1
  189. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +17 -16
  190. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
  191. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  192. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  193. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +3 -0
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +119 -15
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +6 -4
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +47 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +192 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -5
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +21 -16
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +8 -3
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -2
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +18 -27
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +5 -2
  206. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +3 -1
  207. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +1 -1
  208. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -25
  209. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -2
  210. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +18 -27
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +12 -0
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +31 -0
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +3 -0
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +24 -8
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +8 -0
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +33 -4
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +42 -13
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +14 -21
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +23 -0
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +18 -0
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +227 -0
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +17 -0
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +133 -0
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +36 -0
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +17 -0
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +5 -1
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +75 -37
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -0
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +8 -0
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +71 -0
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +28 -15
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +366 -363
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +18 -18
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +9 -9
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +16 -16
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +19 -0
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +123 -0
  246. package/vscode/src/vs/base/common/yaml.d.ts +0 -74
  247. package/vscode/src/vs/base/common/yaml.js +0 -597
  248. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +0 -8
  249. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +0 -239
  250. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +0 -102
  251. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +0 -435
  252. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.d.ts +0 -14
  253. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.js +0 -67
  254. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +0 -49
  255. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +0 -380
  256. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.d.ts +0 -37
  257. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.js +0 -137
  258. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +0 -44
  259. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +0 -176
  260. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.d.ts +0 -4
  261. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +0 -206
  262. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +0 -7
  263. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +0 -79
  264. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +0 -8
  265. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +0 -145
  266. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +0 -65
  267. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +0 -306
  268. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +0 -12
  269. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +0 -102
  270. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.d.ts +0 -97
  271. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.js +0 -247
  272. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +0 -118
  273. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +0 -10
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +0 -10
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +0 -55
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -2
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +0 -66
@@ -9,6 +9,7 @@ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/comm
9
9
  import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
10
10
  import { Disposable, DisposableMap, DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
11
11
  import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
12
+ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
12
13
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
13
14
  import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
14
15
  import { isDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
@@ -25,21 +26,22 @@ import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs
25
26
  import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
26
27
  import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
27
28
  import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
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';
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';
30
- import { ChatRequestParser } from '@codingame/monaco-vscode-5084de40-f866-5cb5-9d9b-33a10f6f235d-common/vscode/vs/workbench/contrib/chat/common/chatRequestParser';
29
+ import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, updateRanges, toChatHistoryContent, ChatRequestModel } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatModel';
30
+ import { ChatRequestTextPart, ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader, ChatRequestSlashCommandPart, getPromptText } from '@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
31
+ import { ChatRequestParser } from '@codingame/monaco-vscode-bc6f260d-ec63-5c95-9446-1ca7d0872719-common/vscode/vs/workbench/contrib/chat/common/chatRequestParser';
32
+ import { ChatMcpServersStarting } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService';
31
33
  import { ChatServiceTelemetry, ChatRequestTelemetry } from './chatServiceTelemetry.js';
32
34
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
33
35
  import { ChatSessionStore } from './chatSessionStore.js';
34
36
  import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSlashCommands.service';
35
37
  import { IChatTransferService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatTransferService.service';
36
- import { ChatSessionUri } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatUri';
38
+ import { LocalChatSessionUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatUri';
37
39
  import { ChatConfiguration, ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
38
40
  import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
39
41
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
40
- import { ObservableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/map';
41
42
  import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
42
43
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
44
+ import { ObservableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/map';
43
45
 
44
46
  const serializedChatKey = 'interactive.sessions';
45
47
  const TransferredGlobalChatKey = 'chat.workspaceTransfer';
@@ -63,6 +65,56 @@ let CancellableRequest = class CancellableRequest {
63
65
  CancellableRequest = ( __decorate([
64
66
  ( __param(2, ILanguageModelToolsService))
65
67
  ], CancellableRequest));
68
+ class ChatModelStore {
69
+ constructor() {
70
+ this._models = ( new ObservableMap());
71
+ }
72
+ get observable() {
73
+ return this._models.observable;
74
+ }
75
+ values() {
76
+ return ( this._models.values());
77
+ }
78
+ get(uri) {
79
+ return this._models.get(this.toKey(uri));
80
+ }
81
+ has(uri) {
82
+ return ( this._models.has(this.toKey(uri)));
83
+ }
84
+ set(uri, value) {
85
+ this._models.set(this.toKey(uri), value);
86
+ }
87
+ delete(uri) {
88
+ return this._models.delete(this.toKey(uri));
89
+ }
90
+ toKey(uri) {
91
+ return ( uri.toString());
92
+ }
93
+ }
94
+ class DisposableResourceMap extends Disposable {
95
+ constructor() {
96
+ super(...arguments);
97
+ this._map = this._register(( new DisposableMap()));
98
+ }
99
+ get(sessionResource) {
100
+ return this._map.get(this.toKey(sessionResource));
101
+ }
102
+ set(sessionResource, value) {
103
+ this._map.set(this.toKey(sessionResource), value);
104
+ }
105
+ has(sessionResource) {
106
+ return ( this._map.has(this.toKey(sessionResource)));
107
+ }
108
+ deleteAndLeak(sessionResource) {
109
+ return this._map.deleteAndLeak(this.toKey(sessionResource));
110
+ }
111
+ deleteAndDispose(sessionResource) {
112
+ this._map.deleteAndDispose(this.toKey(sessionResource));
113
+ }
114
+ toKey(uri) {
115
+ return ( uri.toString());
116
+ }
117
+ }
66
118
  let ChatService = class ChatService extends Disposable {
67
119
  get transferredSessionData() {
68
120
  return this._transferredSessionData;
@@ -87,18 +139,16 @@ let ChatService = class ChatService extends Disposable {
87
139
  this.chatTransferService = chatTransferService;
88
140
  this.chatSessionService = chatSessionService;
89
141
  this.mcpService = mcpService;
90
- this._sessionModels = ( new ObservableMap());
91
- this._contentProviderSessionModels = ( new Map());
92
- this._modelToExternalSession = ( new Map());
93
- this._pendingRequests = this._register(( new DisposableMap()));
142
+ this._sessionModels = ( new ChatModelStore());
143
+ this._contentProviderSessionModels = this._register(( new DisposableResourceMap()));
144
+ this._pendingRequests = this._register(( new DisposableResourceMap()));
94
145
  this._onDidSubmitRequest = this._register(( new Emitter()));
95
146
  this.onDidSubmitRequest = this._onDidSubmitRequest.event;
96
147
  this._onDidPerformUserAction = this._register(( new Emitter()));
97
148
  this.onDidPerformUserAction = this._onDidPerformUserAction.event;
98
149
  this._onDidDisposeSession = this._register(( new Emitter()));
99
150
  this.onDidDisposeSession = this._onDidDisposeSession.event;
100
- this._sessionFollowupCancelTokens = this._register(( new DisposableMap()));
101
- this._mcpServersInteractionMessageShown = ( new WeakSet());
151
+ this._sessionFollowupCancelTokens = this._register(( new DisposableResourceMap()));
102
152
  this._chatServiceTelemetry = this.instantiationService.createInstance(ChatServiceTelemetry);
103
153
  const sessionData = storageService.get(serializedChatKey, this.isEmptyWindow ? StorageScope.APPLICATION : StorageScope.WORKSPACE, '');
104
154
  if (sessionData) {
@@ -140,21 +190,27 @@ let ChatService = class ChatService extends Disposable {
140
190
  }
141
191
  saveState() {
142
192
  const liveChats = Array.from(( this._sessionModels.values()))
143
- .filter(session => !session.inputType && (session.initialLocation === ChatAgentLocation.Chat || session.initialLocation === ChatAgentLocation.EditorInline));
193
+ .filter(session => {
194
+ if (!LocalChatSessionUri.parseLocalSessionId(session.sessionResource)) {
195
+ return false;
196
+ }
197
+ return session.initialLocation === ChatAgentLocation.Chat;
198
+ });
144
199
  this._chatSessionStore.storeSessions(liveChats);
145
200
  }
146
201
  notifyUserAction(action) {
147
202
  this._chatServiceTelemetry.notifyUserAction(action);
148
203
  this._onDidPerformUserAction.fire(action);
149
204
  if (action.action.kind === 'chatEditingSessionAction') {
150
- const model = this._sessionModels.get(action.sessionId);
205
+ const model = this._sessionModels.get(action.sessionResource);
151
206
  if (model) {
152
207
  model.notifyEditingAction(action.action);
153
208
  }
154
209
  }
155
210
  }
156
- async setChatSessionTitle(sessionId, title) {
157
- const model = this._sessionModels.get(sessionId);
211
+ async setChatSessionTitle(sessionResource, title) {
212
+ const sessionId = this.toLocalSessionId(sessionResource);
213
+ const model = this._sessionModels.get(sessionResource);
158
214
  if (model) {
159
215
  model.setCustomTitle(title);
160
216
  }
@@ -239,13 +295,13 @@ let ChatService = class ChatService extends Disposable {
239
295
  }
240
296
  }
241
297
  }
242
- async getHistory() {
298
+ async getLocalSessionHistory() {
243
299
  const liveSessionItems = ( Array.from(( this._sessionModels.values()))
244
- .filter(session => !session.isImported && !session.inputType)
245
- .map(session => {
246
- const title = session.title || ( localize(5599, "New Chat"));
300
+ .filter(session => this.shouldBeInHistory(session))
301
+ .map((session) => {
302
+ const title = session.title || ( localize(5803, "New Chat"));
247
303
  return {
248
- sessionId: session.sessionId,
304
+ sessionResource: session.sessionResource,
249
305
  title,
250
306
  lastMessageDate: session.lastMessageDate,
251
307
  isActive: true,
@@ -253,29 +309,39 @@ let ChatService = class ChatService extends Disposable {
253
309
  }));
254
310
  const index = await this._chatSessionStore.getIndex();
255
311
  const entries = ( ( Object.values(index))
256
- .filter(entry => !( this._sessionModels.has(entry.sessionId)) && !entry.isImported && !entry.isEmpty)
257
- .map((entry) => ({
258
- ...entry,
259
- isActive: ( this._sessionModels.has(entry.sessionId)),
260
- })));
312
+ .filter(entry => !( this._sessionModels.has(LocalChatSessionUri.forSession(entry.sessionId))) && this.shouldBeInHistory(entry) && !entry.isEmpty)
313
+ .map((entry) => {
314
+ const sessionResource = LocalChatSessionUri.forSession(entry.sessionId);
315
+ return ({
316
+ ...entry,
317
+ sessionResource,
318
+ isActive: ( this._sessionModels.has(sessionResource))
319
+ });
320
+ }));
261
321
  return [...liveSessionItems, ...entries];
262
322
  }
263
- async removeHistoryEntry(sessionId) {
264
- await this._chatSessionStore.deleteSession(sessionId);
323
+ shouldBeInHistory(entry) {
324
+ if (entry.sessionResource) {
325
+ return !entry.isImported && LocalChatSessionUri.parseLocalSessionId(entry.sessionResource) && entry.initialLocation !== ChatAgentLocation.EditorInline;
326
+ }
327
+ return !entry.isImported && entry.initialLocation !== ChatAgentLocation.EditorInline;
328
+ }
329
+ async removeHistoryEntry(sessionResource) {
330
+ await this._chatSessionStore.deleteSession(this.toLocalSessionId(sessionResource));
265
331
  }
266
332
  async clearAllHistoryEntries() {
267
333
  await this._chatSessionStore.clearAllSessions();
268
334
  }
269
- startSession(location, token, isGlobalEditingSession = true, inputType) {
335
+ startSession(location, token, isGlobalEditingSession = true, options) {
270
336
  this.trace('startSession');
271
- return this._startSession(undefined, location, isGlobalEditingSession, token, inputType);
337
+ return this._startSession(undefined, location, isGlobalEditingSession, token, options);
272
338
  }
273
- _startSession(someSessionHistory, location, isGlobalEditingSession, token, inputType) {
274
- const model = this.instantiationService.createInstance(ChatModel, someSessionHistory, { initialLocation: location, inputType });
339
+ _startSession(someSessionHistory, location, isGlobalEditingSession, token, options, transferEditingSession) {
340
+ const model = this.instantiationService.createInstance(ChatModel, someSessionHistory, { initialLocation: location, canUseTools: options?.canUseTools ?? true, resource: options?.sessionResource });
275
341
  if (location === ChatAgentLocation.Chat) {
276
- model.startEditingSession(isGlobalEditingSession);
342
+ model.startEditingSession(isGlobalEditingSession, transferEditingSession);
277
343
  }
278
- this._sessionModels.set(model.sessionId, model);
344
+ this._sessionModels.set(model.sessionResource, model);
279
345
  this.initializeSession(model, token);
280
346
  return model;
281
347
  }
@@ -301,15 +367,22 @@ let ChatService = class ChatService extends Disposable {
301
367
  throw ( new ErrorNoTelemetry('No default agent registered'));
302
368
  }
303
369
  }
304
- getSession(sessionId) {
305
- return this._sessionModels.get(sessionId);
370
+ getSession(sessionResource) {
371
+ return this._sessionModels.get(sessionResource);
306
372
  }
307
- async getOrRestoreSession(sessionId) {
308
- this.trace('getOrRestoreSession', `sessionId: ${sessionId}`);
309
- const model = this._sessionModels.get(sessionId);
373
+ getSessionByLegacyId(sessionId) {
374
+ return Array.from(( this._sessionModels.values())).find(session => session.sessionId === sessionId);
375
+ }
376
+ async getOrRestoreSession(sessionResource) {
377
+ this.trace('getOrRestoreSession', `${sessionResource}`);
378
+ const model = this._sessionModels.get(sessionResource);
310
379
  if (model) {
311
380
  return model;
312
381
  }
382
+ const sessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
383
+ if (!sessionId) {
384
+ throw ( new Error(`Cannot restore non-local session ${sessionResource}`));
385
+ }
313
386
  let sessionData;
314
387
  if (this.transferredSessionData?.sessionId === sessionId) {
315
388
  sessionData = revive(this._persistedSessions[sessionId]);
@@ -320,21 +393,29 @@ let ChatService = class ChatService extends Disposable {
320
393
  if (!sessionData) {
321
394
  return undefined;
322
395
  }
323
- const session = this._startSession(sessionData, sessionData.initialLocation ?? ChatAgentLocation.Chat, true, CancellationToken.None);
396
+ const session = this._startSession(sessionData, sessionData.initialLocation ?? ChatAgentLocation.Chat, true, CancellationToken.None, { canUseTools: true, sessionResource });
324
397
  const isTransferred = this.transferredSessionData?.sessionId === sessionId;
325
398
  if (isTransferred) {
326
399
  this._transferredSessionData = undefined;
327
400
  }
328
401
  return session;
329
402
  }
330
- isPersistedSessionEmpty(sessionId) {
403
+ isPersistedSessionEmpty(sessionResource) {
404
+ const sessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
405
+ if (!sessionId) {
406
+ throw ( new Error(`Cannot restore non-local session ${sessionResource}`));
407
+ }
331
408
  const session = this._persistedSessions[sessionId];
332
409
  if (session) {
333
410
  return session.requests.length === 0;
334
411
  }
335
412
  return this._chatSessionStore.isSessionEmpty(sessionId);
336
413
  }
337
- getPersistedSessionTitle(sessionId) {
414
+ getPersistedSessionTitle(sessionResource) {
415
+ const sessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
416
+ if (!sessionId) {
417
+ return undefined;
418
+ }
338
419
  const session = this._persistedSessions[sessionId];
339
420
  if (session) {
340
421
  const title = session.customTitle || ChatModel.getDefaultTitle(session.requests);
@@ -353,34 +434,30 @@ let ChatService = class ChatService extends Disposable {
353
434
  loadSessionFromContent(data) {
354
435
  return this._startSession(data, data.initialLocation ?? ChatAgentLocation.Chat, true, CancellationToken.None);
355
436
  }
356
- async loadSessionForResource(resource, location, token) {
357
- const parsed = ChatSessionUri.parse(resource);
358
- if (!parsed) {
359
- throw ( new Error('Invalid chat session URI'));
437
+ async loadSessionForResource(chatSessionResource, location, token) {
438
+ if (chatSessionResource.scheme === Schemas.vscodeLocalChatSession) {
439
+ return this.getOrRestoreSession(chatSessionResource);
360
440
  }
361
- const existing = this._contentProviderSessionModels.get(parsed.chatSessionType)?.get(parsed.sessionId);
441
+ const existing = this._contentProviderSessionModels.get(chatSessionResource);
362
442
  if (existing) {
363
443
  return existing.model;
364
444
  }
365
- if (parsed.chatSessionType === 'local') {
366
- return this.getOrRestoreSession(parsed.sessionId);
367
- }
368
- const chatSessionType = parsed.chatSessionType;
369
- const content = await this.chatSessionService.provideChatSessionContent(chatSessionType, parsed.sessionId, CancellationToken.None);
370
- const model = this._startSession(undefined, location, true, CancellationToken.None, chatSessionType);
371
- this._modelToExternalSession.set(model.sessionId, { chatSessionType, chatSessionId: parsed.sessionId });
372
- if (!( this._contentProviderSessionModels.has(chatSessionType))) {
373
- this._contentProviderSessionModels.set(chatSessionType, ( new Map()));
374
- }
445
+ const providedSession = await this.chatSessionService.getOrCreateChatSession(chatSessionResource, CancellationToken.None);
446
+ const chatSessionType = chatSessionResource.scheme;
447
+ const model = this._startSession(undefined, location, true, CancellationToken.None, { sessionResource: chatSessionResource, canUseTools: false }, providedSession.initialEditingSession);
448
+ model.setContributedChatSession({
449
+ chatSessionResource,
450
+ chatSessionType,
451
+ isUntitled: chatSessionResource.path.startsWith('/untitled-')
452
+ });
375
453
  const disposables = ( new DisposableStore());
376
- this._contentProviderSessionModels.get(chatSessionType).set(parsed.sessionId, { model, disposables });
454
+ this._contentProviderSessionModels.set(chatSessionResource, { model, dispose: () => disposables.dispose() });
377
455
  disposables.add(model.onDidDispose(() => {
378
- this._contentProviderSessionModels?.get(chatSessionType)?.delete(parsed.sessionId);
379
- this._modelToExternalSession.delete(model.sessionId);
380
- content.dispose();
456
+ this._contentProviderSessionModels.deleteAndDispose(chatSessionResource);
457
+ providedSession.dispose();
381
458
  }));
382
459
  let lastRequest;
383
- for (const message of content.history) {
460
+ for (const message of providedSession.history) {
384
461
  if (message.type === 'request') {
385
462
  if (lastRequest) {
386
463
  model.completeResponse(lastRequest);
@@ -393,8 +470,7 @@ let ChatService = class ChatService extends Disposable {
393
470
  const agent = message.participant
394
471
  ? this.chatAgentService.getAgent(message.participant)
395
472
  : this.chatAgentService.getAgent(chatSessionType);
396
- lastRequest = model.addRequest(parsedRequest, { variables: [] },
397
- 0,
473
+ lastRequest = model.addRequest(parsedRequest, message.variableData ?? { variables: [] }, 0,
398
474
  undefined, agent, undefined,
399
475
  undefined,
400
476
  undefined,
@@ -410,27 +486,26 @@ let ChatService = class ChatService extends Disposable {
410
486
  }
411
487
  }
412
488
  }
413
- if (content.progressObs && lastRequest && content.interruptActiveResponseCallback) {
489
+ if (providedSession.progressObs && lastRequest && providedSession.interruptActiveResponseCallback) {
414
490
  const initialCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined);
415
- this._pendingRequests.set(model.sessionId, initialCancellationRequest);
416
- const cancellationListener = ( new MutableDisposable());
491
+ this._pendingRequests.set(model.sessionResource, initialCancellationRequest);
492
+ const cancellationListener = disposables.add(( new MutableDisposable()));
417
493
  const createCancellationListener = (token) => {
418
494
  return token.onCancellationRequested(() => {
419
- content.interruptActiveResponseCallback?.().then(userConfirmedInterruption => {
495
+ providedSession.interruptActiveResponseCallback?.().then(userConfirmedInterruption => {
420
496
  if (!userConfirmedInterruption) {
421
497
  const newCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined);
422
- this._pendingRequests.set(model.sessionId, newCancellationRequest);
498
+ this._pendingRequests.set(model.sessionResource, newCancellationRequest);
423
499
  cancellationListener.value = createCancellationListener(newCancellationRequest.cancellationTokenSource.token);
424
500
  }
425
501
  });
426
502
  });
427
503
  };
428
504
  cancellationListener.value = createCancellationListener(initialCancellationRequest.cancellationTokenSource.token);
429
- disposables.add(cancellationListener);
430
505
  let lastProgressLength = 0;
431
506
  disposables.add(autorun(reader => {
432
- const progressArray = content.progressObs?.read(reader) ?? [];
433
- const isComplete = content.isCompleteObs?.read(reader) ?? false;
507
+ const progressArray = providedSession.progressObs?.read(reader) ?? [];
508
+ const isComplete = providedSession.isCompleteObs?.read(reader) ?? false;
434
509
  if (progressArray.length > lastProgressLength) {
435
510
  const newProgress = progressArray.slice(lastProgressLength);
436
511
  for (const progress of newProgress) {
@@ -451,24 +526,22 @@ let ChatService = class ChatService extends Disposable {
451
526
  }
452
527
  return model;
453
528
  }
454
- getChatSessionFromInternalId(modelSessionId) {
455
- const data = this._modelToExternalSession.get(modelSessionId);
456
- if (!data) {
529
+ getChatSessionFromInternalUri(sessionResource) {
530
+ const model = this._sessionModels.get(sessionResource);
531
+ if (!model) {
457
532
  return;
458
533
  }
459
- return {
460
- ...data,
461
- isUntitled: data.chatSessionId.startsWith('untitled-'),
462
- };
534
+ const { contributedChatSession } = model;
535
+ return contributedChatSession;
463
536
  }
464
537
  async resendRequest(request, options) {
465
- const model = this._sessionModels.get(request.session.sessionId);
538
+ const model = this._sessionModels.get(request.session.sessionResource);
466
539
  if (!model && model !== request.session) {
467
- throw ( new Error(`Unknown session: ${request.session.sessionId}`));
540
+ throw ( new Error(`Unknown session: ${request.session.sessionResource}`));
468
541
  }
469
- const cts = this._pendingRequests.get(request.session.sessionId);
542
+ const cts = this._pendingRequests.get(request.session.sessionResource);
470
543
  if (cts) {
471
- this.trace('resendRequest', `Session ${request.session.sessionId} already has a pending request, cancelling...`);
544
+ this.trace('resendRequest', `Session ${request.session.sessionResource} already has a pending request, cancelling...`);
472
545
  cts.cancel();
473
546
  }
474
547
  const location = options?.location ?? model.initialLocation;
@@ -481,20 +554,20 @@ let ChatService = class ChatService extends Disposable {
481
554
  locationData: request.locationData,
482
555
  attachedContext: request.attachedContext,
483
556
  };
484
- await this._sendRequestAsync(model, model.sessionId, request.message, attempt, enableCommandDetection, defaultAgent, location, resendOptions).responseCompletePromise;
557
+ await this._sendRequestAsync(model, model.sessionResource, request.message, attempt, enableCommandDetection, defaultAgent, location, resendOptions).responseCompletePromise;
485
558
  }
486
- async sendRequest(sessionId, request, options) {
487
- this.trace('sendRequest', `sessionId: ${sessionId}, message: ${request.substring(0, 20)}${request.length > 20 ? '[...]' : ''}}`);
559
+ async sendRequest(sessionResource, request, options) {
560
+ this.trace('sendRequest', `sessionResource: ${( sessionResource.toString())}, message: ${request.substring(0, 20)}${request.length > 20 ? '[...]' : ''}}`);
488
561
  if (!request.trim() && !options?.slashCommand && !options?.agentId && !options?.agentIdSilent) {
489
562
  this.trace('sendRequest', 'Rejected empty message');
490
563
  return;
491
564
  }
492
- const model = this._sessionModels.get(sessionId);
565
+ const model = this._sessionModels.get(sessionResource);
493
566
  if (!model) {
494
- throw ( new Error(`Unknown session: ${sessionId}`));
567
+ throw ( new Error(`Unknown session: ${sessionResource}`));
495
568
  }
496
- if (( this._pendingRequests.has(sessionId))) {
497
- this.trace('sendRequest', `Session ${sessionId} already has a pending request`);
569
+ if (( this._pendingRequests.has(sessionResource))) {
570
+ this.trace('sendRequest', `Session ${sessionResource} already has a pending request`);
498
571
  return;
499
572
  }
500
573
  const requests = model.getRequests();
@@ -505,24 +578,24 @@ let ChatService = class ChatService extends Disposable {
505
578
  request.response?.finalizeUndoState();
506
579
  }
507
580
  else {
508
- await this.removeRequest(sessionId, request.id);
581
+ await this.removeRequest(sessionResource, request.id);
509
582
  }
510
583
  }
511
584
  }
512
585
  const location = options?.location ?? model.initialLocation;
513
586
  const attempt = options?.attempt ?? 0;
514
587
  const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.modeInfo?.kind);
515
- const parsedRequest = this.parseChatRequest(sessionId, request, location, options);
588
+ const parsedRequest = this.parseChatRequest(sessionResource, request, location, options);
516
589
  const silentAgent = options?.agentIdSilent ? this.chatAgentService.getAgent(options.agentIdSilent) : undefined;
517
590
  const agent = silentAgent ?? parsedRequest.parts.find((r) => r instanceof ChatRequestAgentPart)?.agent ?? defaultAgent;
518
591
  const agentSlashCommandPart = parsedRequest.parts.find((r) => r instanceof ChatRequestAgentSubcommandPart);
519
592
  return {
520
- ...this._sendRequestAsync(model, sessionId, parsedRequest, attempt, !options?.noCommandDetection, silentAgent ?? defaultAgent, location, options),
593
+ ...this._sendRequestAsync(model, sessionResource, parsedRequest, attempt, !options?.noCommandDetection, silentAgent ?? defaultAgent, location, options),
521
594
  agent,
522
595
  slashCommand: agentSlashCommandPart?.command,
523
596
  };
524
597
  }
525
- parseChatRequest(sessionId, request, location, options) {
598
+ parseChatRequest(sessionResource, request, location, options) {
526
599
  let parserContext = options?.parserContext;
527
600
  if (options?.agentId) {
528
601
  const agent = this.chatAgentService.getAgent(options.agentId);
@@ -533,24 +606,24 @@ let ChatService = class ChatService extends Disposable {
533
606
  const commandPart = options.slashCommand ? ` ${chatSubcommandLeader}${options.slashCommand}` : '';
534
607
  request = `${chatAgentLeader}${agent.name}${commandPart} ${request}`;
535
608
  }
536
- const parsedRequest = this.instantiationService.createInstance(ChatRequestParser).parseChatRequest(sessionId, request, location, parserContext);
609
+ const parsedRequest = this.instantiationService.createInstance(ChatRequestParser).parseChatRequest(sessionResource, request, location, parserContext);
537
610
  return parsedRequest;
538
611
  }
539
- refreshFollowupsCancellationToken(sessionId) {
540
- this._sessionFollowupCancelTokens.get(sessionId)?.cancel();
612
+ refreshFollowupsCancellationToken(sessionResource) {
613
+ this._sessionFollowupCancelTokens.get(sessionResource)?.cancel();
541
614
  const newTokenSource = ( new CancellationTokenSource());
542
- this._sessionFollowupCancelTokens.set(sessionId, newTokenSource);
615
+ this._sessionFollowupCancelTokens.set(sessionResource, newTokenSource);
543
616
  return newTokenSource.token;
544
617
  }
545
- _sendRequestAsync(model, sessionId, parsedRequest, attempt, enableCommandDetection, defaultAgent, location, options) {
546
- const followupsCancelToken = this.refreshFollowupsCancellationToken(sessionId);
618
+ _sendRequestAsync(model, sessionResource, parsedRequest, attempt, enableCommandDetection, defaultAgent, location, options) {
619
+ const followupsCancelToken = this.refreshFollowupsCancellationToken(sessionResource);
547
620
  let request;
548
621
  const agentPart = 'kind' in parsedRequest ? undefined : parsedRequest.parts.find((r) => r instanceof ChatRequestAgentPart);
549
622
  const agentSlashCommandPart = 'kind' in parsedRequest ? undefined : parsedRequest.parts.find((r) => r instanceof ChatRequestAgentSubcommandPart);
550
623
  const commandPart = 'kind' in parsedRequest ? undefined : parsedRequest.parts.find((r) => r instanceof ChatRequestSlashCommandPart);
551
624
  const requests = [...model.getRequests()];
552
625
  const requestTelemetry = this.instantiationService.createInstance(ChatRequestTelemetry, {
553
- agentPart,
626
+ agent: agentPart?.agent ?? defaultAgent,
554
627
  agentSlashCommandPart,
555
628
  commandPart,
556
629
  sessionId: model.sessionId,
@@ -615,7 +688,7 @@ let ChatService = class ChatService extends Disposable {
615
688
  if (agentPart || (defaultAgent && !commandPart)) {
616
689
  const prepareChatAgentRequest = (agent, command, enableCommandDetection, chatRequest, isParticipantDetected) => {
617
690
  const initVariableData = { variables: [] };
618
- request = chatRequest ?? model.addRequest(parsedRequest, initVariableData, attempt, options?.modeInfo, agent, command, options?.confirmation, options?.locationData, options?.attachedContext, undefined, options?.userSelectedModelId);
691
+ request = chatRequest ?? model.addRequest(parsedRequest, initVariableData, attempt, options?.modeInfo, agent, command, options?.confirmation, options?.locationData, options?.attachedContext, undefined, options?.userSelectedModelId, options?.userSelectedTools?.get());
619
692
  let variableData;
620
693
  let message;
621
694
  if (chatRequest) {
@@ -629,19 +702,8 @@ let ChatService = class ChatService extends Disposable {
629
702
  variableData = updateRanges(variableData, promptTextResult.diff);
630
703
  message = promptTextResult.message;
631
704
  }
632
- let isInitialTools = true;
633
- store.add(autorun(reader => {
634
- const tools = options?.userSelectedTools?.read(reader);
635
- if (isInitialTools) {
636
- isInitialTools = false;
637
- return;
638
- }
639
- if (tools) {
640
- this.chatAgentService.setRequestTools(agent.id, request.id, tools);
641
- }
642
- }));
643
- return {
644
- sessionId,
705
+ const agentRequest = {
706
+ sessionId: model.sessionId,
645
707
  requestId: request.id,
646
708
  agentId: agent.id,
647
709
  message,
@@ -657,8 +719,22 @@ let ChatService = class ChatService extends Disposable {
657
719
  userSelectedModelId: options?.userSelectedModelId,
658
720
  userSelectedTools: options?.userSelectedTools?.get(),
659
721
  modeInstructions: options?.modeInfo?.modeInstructions,
660
- editedFileEvents: request.editedFileEvents
722
+ editedFileEvents: request.editedFileEvents,
723
+ chatSummary: options?.chatSummary
661
724
  };
725
+ let isInitialTools = true;
726
+ store.add(autorun(reader => {
727
+ const tools = options?.userSelectedTools?.read(reader);
728
+ if (isInitialTools) {
729
+ isInitialTools = false;
730
+ return;
731
+ }
732
+ if (tools) {
733
+ this.chatAgentService.setRequestTools(agent.id, request.id, tools);
734
+ agentRequest.userSelectedTools = tools;
735
+ }
736
+ }));
737
+ return agentRequest;
662
738
  };
663
739
  if (this.configurationService.getValue('chat.detectParticipant.enabled') !== false &&
664
740
  this.chatAgentService.hasChatParticipantDetectionProviders() &&
@@ -680,33 +756,36 @@ let ChatService = class ChatService extends Disposable {
680
756
  }
681
757
  const agent = (detectedAgent ?? agentPart?.agent ?? defaultAgent);
682
758
  const command = detectedCommand ?? agentSlashCommandPart?.command;
683
- const [, autostartResult] = await Promise.all([
684
- this.extensionService.activateByEvent(`onChatParticipant:${agent.id}`),
685
- this.mcpService.autostart(token),
686
- ]);
759
+ await this.extensionService.activateByEvent(`onChatParticipant:${agent.id}`);
687
760
  const history = this.getHistoryEntriesFromModel(requests, model.sessionId, location, agent.id);
688
761
  const requestProps = prepareChatAgentRequest(agent, command, enableCommandDetection, request , !!detectedAgent);
689
- const pendingRequest = this._pendingRequests.get(sessionId);
762
+ const pendingRequest = this._pendingRequests.get(sessionResource);
690
763
  if (pendingRequest && !pendingRequest.requestId) {
691
764
  pendingRequest.requestId = requestProps.requestId;
692
765
  }
693
766
  completeResponseCreated();
694
- if (!( this._mcpServersInteractionMessageShown.has(model)) && autostartResult.serversRequiringInteraction.length > 0) {
695
- this._mcpServersInteractionMessageShown.add(model);
696
- progressCallback([{
697
- kind: 'mcpServersInteractionRequired',
698
- servers: autostartResult.serversRequiringInteraction,
699
- startCommand: {
700
- id: 'mcp.startServersWithInteraction',
701
- title: ( localize(5600, 'Start MCP Servers')),
702
- arguments: []
703
- }
704
- }]);
767
+ if (model.canUseTools) {
768
+ const autostartResult = ( new ChatMcpServersStarting(this.mcpService.autostart(token)));
769
+ if (!autostartResult.isEmpty) {
770
+ progressCallback([autostartResult]);
771
+ await autostartResult.wait();
772
+ }
705
773
  }
706
774
  const agentResult = await this.chatAgentService.invokeAgent(agent.id, requestProps, progressCallback, history, token);
707
775
  rawResult = agentResult;
708
776
  agentOrCommandFollowups = this.chatAgentService.getFollowups(agent.id, requestProps, agentResult, history, followupsCancelToken);
709
- chatTitlePromise = model.getRequests().length === 1 && !model.customTitle ? this.chatAgentService.getChatTitle(defaultAgent.id, this.getHistoryEntriesFromModel(model.getRequests(), model.sessionId, location, agent.id), CancellationToken.None) : undefined;
777
+ if (model.getRequests().length === 1 && !model.customTitle) {
778
+ const chatHistory = this.getHistoryEntriesFromModel(model.getRequests(), model.sessionId, location, agent.id);
779
+ chatTitlePromise = this.chatAgentService.getChatTitle(agent.id, chatHistory, CancellationToken.None).then((title) => {
780
+ if (title === undefined) {
781
+ const defaultAgentForTitle = this.chatAgentService.getDefaultAgent(location);
782
+ if (defaultAgentForTitle) {
783
+ return this.chatAgentService.getChatTitle(defaultAgentForTitle.id, chatHistory, CancellationToken.None);
784
+ }
785
+ }
786
+ return title;
787
+ });
788
+ }
710
789
  }
711
790
  else if (commandPart && this.chatSlashCommandService.hasCommand(commandPart.slashCommand.command)) {
712
791
  if (commandPart.slashCommand.silent !== true) {
@@ -737,7 +816,7 @@ let ChatService = class ChatService extends Disposable {
737
816
  else {
738
817
  if (!rawResult) {
739
818
  this.trace('sendRequest', `Provider returned no response for session ${model.sessionId}`);
740
- rawResult = { errorDetails: { message: ( localize(5601, "Provider returned null response")) } };
819
+ rawResult = { errorDetails: { message: ( localize(5804, "Provider returned null response")) } };
741
820
  }
742
821
  const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
743
822
  rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
@@ -791,11 +870,11 @@ let ChatService = class ChatService extends Disposable {
791
870
  }
792
871
  };
793
872
  const rawResponsePromise = sendRequestInternal();
794
- this._pendingRequests.set(model.sessionId, this.instantiationService.createInstance(CancellableRequest, source, undefined));
873
+ this._pendingRequests.set(model.sessionResource, this.instantiationService.createInstance(CancellableRequest, source, undefined));
795
874
  rawResponsePromise.finally(() => {
796
- this._pendingRequests.deleteAndDispose(model.sessionId);
875
+ this._pendingRequests.deleteAndDispose(model.sessionResource);
797
876
  });
798
- this._onDidSubmitRequest.fire({ chatSessionId: model.sessionId });
877
+ this._onDidSubmitRequest.fire({ chatSessionResource: model.sessionResource });
799
878
  return {
800
879
  responseCreatedPromise: responseCreated.p,
801
880
  responseCompletePromise: rawResponsePromise,
@@ -827,6 +906,9 @@ let ChatService = class ChatService extends Disposable {
827
906
  if (forAgentId !== request.response.agent?.id && !agent?.isDefault) {
828
907
  continue;
829
908
  }
909
+ if (location === ChatAgentLocation.EditorInline) {
910
+ continue;
911
+ }
830
912
  const promptTextResult = getPromptText(request.message);
831
913
  const historyRequest = {
832
914
  sessionId: sessionId,
@@ -842,44 +924,44 @@ let ChatService = class ChatService extends Disposable {
842
924
  }
843
925
  return history;
844
926
  }
845
- async removeRequest(sessionId, requestId) {
846
- const model = this._sessionModels.get(sessionId);
927
+ async removeRequest(sessionResource, requestId) {
928
+ const model = this._sessionModels.get(sessionResource);
847
929
  if (!model) {
848
- throw ( new Error(`Unknown session: ${sessionId}`));
930
+ throw ( new Error(`Unknown session: ${sessionResource}`));
849
931
  }
850
- const pendingRequest = this._pendingRequests.get(sessionId);
932
+ const pendingRequest = this._pendingRequests.get(sessionResource);
851
933
  if (pendingRequest?.requestId === requestId) {
852
934
  pendingRequest.cancel();
853
- this._pendingRequests.deleteAndDispose(sessionId);
935
+ this._pendingRequests.deleteAndDispose(sessionResource);
854
936
  }
855
937
  model.removeRequest(requestId);
856
938
  }
857
- async adoptRequest(sessionId, request) {
939
+ async adoptRequest(sessionResource, request) {
858
940
  if (!(request instanceof ChatRequestModel)) {
859
941
  throw ( new TypeError('Can only adopt requests of type ChatRequestModel'));
860
942
  }
861
- const target = this._sessionModels.get(sessionId);
943
+ const target = this._sessionModels.get(sessionResource);
862
944
  if (!target) {
863
- throw ( new Error(`Unknown session: ${sessionId}`));
945
+ throw ( new Error(`Unknown session: ${sessionResource}`));
864
946
  }
865
947
  const oldOwner = request.session;
866
948
  target.adoptRequest(request);
867
949
  if (request.response && !request.response.isComplete) {
868
- const cts = this._pendingRequests.deleteAndLeak(oldOwner.sessionId);
950
+ const cts = this._pendingRequests.deleteAndLeak(oldOwner.sessionResource);
869
951
  if (cts) {
870
952
  cts.requestId = request.id;
871
- this._pendingRequests.set(target.sessionId, cts);
953
+ this._pendingRequests.set(target.sessionResource, cts);
872
954
  }
873
955
  }
874
956
  }
875
- async addCompleteRequest(sessionId, message, variableData, attempt, response) {
957
+ async addCompleteRequest(sessionResource, message, variableData, attempt, response) {
876
958
  this.trace('addCompleteRequest', `message: ${message}`);
877
- const model = this._sessionModels.get(sessionId);
959
+ const model = this._sessionModels.get(sessionResource);
878
960
  if (!model) {
879
- throw ( new Error(`Unknown session: ${sessionId}`));
961
+ throw ( new Error(`Unknown session: ${sessionResource}`));
880
962
  }
881
963
  const parsedRequest = typeof message === 'string' ?
882
- this.instantiationService.createInstance(ChatRequestParser).parseChatRequest(sessionId, message) :
964
+ this.instantiationService.createInstance(ChatRequestParser).parseChatRequest(sessionResource, message) :
883
965
  message;
884
966
  const request = model.addRequest(parsedRequest, variableData || { variables: [] }, attempt ?? 0, undefined, undefined, undefined, undefined, undefined, undefined, true);
885
967
  if (typeof response.message === 'string') {
@@ -896,31 +978,31 @@ let ChatService = class ChatService extends Disposable {
896
978
  }
897
979
  model.completeResponse(request);
898
980
  }
899
- cancelCurrentRequestForSession(sessionId) {
900
- this.trace('cancelCurrentRequestForSession', `sessionId: ${sessionId}`);
901
- this._pendingRequests.get(sessionId)?.cancel();
902
- this._pendingRequests.deleteAndDispose(sessionId);
981
+ cancelCurrentRequestForSession(sessionResource) {
982
+ this.trace('cancelCurrentRequestForSession', `session: ${sessionResource}`);
983
+ this._pendingRequests.get(sessionResource)?.cancel();
984
+ this._pendingRequests.deleteAndDispose(sessionResource);
903
985
  }
904
- async clearSession(sessionId) {
905
- this.trace('clearSession', `sessionId: ${sessionId}`);
906
- const model = this._sessionModels.get(sessionId);
986
+ async clearSession(sessionResource) {
987
+ this.trace('clearSession', `session: ${sessionResource}`);
988
+ const model = this._sessionModels.get(sessionResource);
907
989
  if (!model) {
908
- throw ( new Error(`Unknown session: ${sessionId}`));
990
+ throw ( new Error(`Unknown session: ${sessionResource}`));
909
991
  }
910
- this.trace(`Model input type: ${model.inputType}`);
911
- if (!model.inputType && (model.initialLocation === ChatAgentLocation.Chat || model.initialLocation === ChatAgentLocation.EditorInline)) {
992
+ const localSessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
993
+ if (localSessionId && (model.initialLocation === ChatAgentLocation.Chat)) {
912
994
  if (model.getRequests().length === 0 && !model.customTitle) {
913
- await this._chatSessionStore.deleteSession(sessionId);
995
+ await this._chatSessionStore.deleteSession(localSessionId);
914
996
  }
915
997
  else {
916
998
  await this._chatSessionStore.storeSessions([model]);
917
999
  }
918
1000
  }
919
- this._sessionModels.delete(sessionId);
1001
+ this._sessionModels.delete(sessionResource);
920
1002
  model.dispose();
921
- this._pendingRequests.get(sessionId)?.cancel();
922
- this._pendingRequests.deleteAndDispose(sessionId);
923
- this._onDidDisposeSession.fire({ sessionId, reason: 'cleared' });
1003
+ this._pendingRequests.get(sessionResource)?.cancel();
1004
+ this._pendingRequests.deleteAndDispose(sessionResource);
1005
+ this._onDidDisposeSession.fire({ sessionResource, reason: 'cleared' });
924
1006
  }
925
1007
  hasSessions() {
926
1008
  return this._chatSessionStore.hasSessions();
@@ -951,6 +1033,13 @@ let ChatService = class ChatService extends Disposable {
951
1033
  logChatIndex() {
952
1034
  this._chatSessionStore.logIndex();
953
1035
  }
1036
+ toLocalSessionId(sessionResource) {
1037
+ const localSessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
1038
+ if (!localSessionId) {
1039
+ throw ( new Error(`Invalid local chat session resource: ${sessionResource}`));
1040
+ }
1041
+ return localSessionId;
1042
+ }
954
1043
  };
955
1044
  ChatService = ( __decorate([
956
1045
  ( __param(0, IStorageService)),