@codingame/monaco-vscode-chat-service-override 26.2.2 → 28.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 (356) hide show
  1. package/index.js +35 -2
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +15 -0
  4. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +53 -0
  5. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +219 -0
  6. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +89 -0
  7. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +251 -0
  8. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +123 -0
  9. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +278 -0
  10. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +76 -0
  11. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +299 -0
  12. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +67 -0
  13. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +263 -0
  14. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +85 -0
  15. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +397 -0
  16. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -2
  17. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +27 -40
  18. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +9 -3
  19. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +74 -18
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +1 -0
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +54 -8
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +87 -53
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +71 -15
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +43 -21
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +13 -5
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +22 -3
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +1 -0
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +154 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -8
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +53 -43
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +4 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +85 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +8 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +33 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +18 -32
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +13 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -17
  44. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +49 -13
  45. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +58 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +537 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.d.ts +17 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +55 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +26 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.js +9 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/media/agentPluginEditor.css +32 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +48 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +282 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +55 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +634 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +10 -11
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +74 -67
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +7 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +27 -18
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.d.ts +1 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +4 -2
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +2 -0
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +90 -51
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +20 -5
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +3 -1
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +43 -27
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +7 -2
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +3 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +84 -22
  73. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  74. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.d.ts → localAgentSessionsController.d.ts} +7 -4
  75. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.js → localAgentSessionsController.js} +24 -17
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +23 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +171 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +52 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +20 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +179 -0
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +987 -0
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.d.ts +1 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +246 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +56 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +26 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +130 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +878 -0
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +22 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +38 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +1 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +83 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +45 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +165 -0
  94. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +75 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +692 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +936 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +62 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +702 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +2 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +30 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.d.ts +32 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.js +26 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +36 -26
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +622 -391
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +18 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +419 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +12 -0
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +46 -0
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +34 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +198 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +55 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +314 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.d.ts +23 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +64 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +5 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +84 -0
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +27 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +110 -0
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +46 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +170 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +71 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +611 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +125 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +504 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.d.ts +10 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +914 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +19 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +128 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +61 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +467 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +31 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +113 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +14 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +126 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +38 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +279 -0
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +18 -0
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +122 -0
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +47 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.js +85 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +788 -0
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +2 -5
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +32 -36
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +6 -24
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +2 -1
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +2 -2
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +12 -12
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +16 -15
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +63 -76
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +26 -15
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +2 -2
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +24 -7
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +40 -413
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +10 -0
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +38 -6
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +5 -1
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +56 -46
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +15 -11
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +52 -0
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +138 -0
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +11 -1
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +166 -41
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +6 -0
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +37 -23
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +17 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +394 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +118 -63
  181. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  182. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +28 -0
  183. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +66 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +245 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +78 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.js +234 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +88 -14
  188. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +624 -68
  189. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.d.ts +41 -0
  190. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.js +22 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +5 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +88 -24
  193. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +28 -19
  194. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.d.ts +14 -0
  195. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.js +62 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +36 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +110 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.d.ts +10 -0
  199. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.js +39 -0
  200. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +3 -3
  201. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +6 -6
  202. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.d.ts +10 -0
  203. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.js +39 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +26 -0
  205. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +175 -0
  206. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +99 -0
  207. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +489 -0
  208. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  209. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +19 -1
  210. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +364 -279
  211. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +18 -1
  212. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +69 -6
  213. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  214. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +9 -9
  215. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  216. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.d.ts +4 -0
  217. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +8 -8
  218. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  219. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  220. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +4 -4
  221. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +22 -0
  222. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +76 -0
  223. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +5 -0
  224. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +30 -0
  225. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +2 -0
  226. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +67 -38
  227. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +20 -1
  228. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +187 -74
  229. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +31 -0
  230. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +242 -0
  231. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +34 -0
  232. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +45 -0
  233. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  234. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +33 -0
  235. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +311 -0
  236. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  237. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.d.ts +4 -0
  238. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +10 -1
  239. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
  240. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +29 -14
  241. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +8 -9
  242. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +126 -30
  243. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +9 -5
  244. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  245. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +2 -2
  246. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.d.ts +15 -4
  247. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +46 -9
  248. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +8 -1
  249. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +65 -37
  250. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +6 -5
  251. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +16 -20
  252. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +15 -6
  253. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +40 -0
  254. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +28 -0
  255. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +190 -0
  256. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +11 -0
  257. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +44 -0
  258. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +208 -0
  259. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +19 -9
  260. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +261 -105
  261. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +21 -2
  262. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +7 -2
  263. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -6
  264. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +16 -8
  265. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +13 -4
  266. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +144 -11
  267. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +36 -3
  268. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +5 -3
  269. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +2 -2
  270. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +57 -0
  271. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +29 -0
  272. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +119 -0
  273. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +748 -0
  274. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +146 -0
  275. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +672 -0
  276. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +35 -16
  277. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +3 -16
  278. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +7 -50
  279. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +2 -1
  280. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +2 -2
  281. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +1 -6
  282. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +4 -8
  283. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +2 -2
  284. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +10 -9
  285. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +26 -1
  287. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +293 -94
  288. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +10 -1
  289. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +86 -30
  290. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +121 -0
  291. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +1422 -0
  292. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  293. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +48 -14
  294. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +404 -132
  295. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +17 -2
  296. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +40 -28
  297. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +3 -0
  298. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +13 -0
  299. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  300. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.d.ts +14 -2
  301. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +54 -5
  302. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +12 -5
  303. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +27 -4
  304. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +265 -25
  305. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +6 -11
  306. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +18 -81
  307. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +2 -3
  308. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +10 -10
  309. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  310. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  311. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  312. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
  313. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  314. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +6 -2
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +35 -26
  318. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +0 -1
  319. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +1 -5
  320. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +3 -3
  321. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  322. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +4 -1
  323. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +13 -11
  324. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  325. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +3 -1
  326. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  327. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  328. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  329. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  330. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  331. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  332. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  333. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  334. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +17 -0
  335. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +302 -69
  336. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +3 -1
  337. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +8 -0
  338. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -10
  339. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +7 -0
  340. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +63 -21
  341. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +8 -0
  342. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +31 -0
  343. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  344. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  345. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  346. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  347. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +7 -1
  348. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +46 -17
  349. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +0 -72
  350. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +0 -587
  351. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.d.ts +0 -12
  352. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +0 -51
  353. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +0 -71
  354. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +0 -293
  355. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +0 -2
  356. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +0 -31
@@ -14,6 +14,7 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/in
14
14
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
15
15
  import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
16
16
  import { isDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
17
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
17
18
  import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
18
19
  import { OffsetRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/offsetRange';
19
20
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
@@ -23,8 +24,11 @@ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log
23
24
  import { Progress } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress';
24
25
  import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
25
26
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
27
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
26
28
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
27
29
  import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
30
+ import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
31
+ import { IChatDebugService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatDebugService.service';
28
32
  import { InlineChatConfigKeys } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
29
33
  import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
30
34
  import { awaitStatsForSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chat';
@@ -34,18 +38,20 @@ import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, Cha
34
38
  import { ChatModelStore } from '../model/chatModelStore.js';
35
39
  import { ChatRequestTextPart, ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader, ChatRequestSlashCommandPart, getPromptText } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatParserTypes';
36
40
  import { ChatRequestParser } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatRequestParser';
37
- import { ResponseModelState, ChatRequestQueueKind, ChatMcpServersStarting } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
41
+ import { ResponseModelState, ChatPendingRequestChangeEventName, ChatRequestQueueKind, ChatMcpServersStarting, ChatStopCancellationNoopEventName } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
38
42
  import { ChatServiceTelemetry, ChatRequestTelemetry } from './chatServiceTelemetry.js';
39
43
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
40
44
  import { ChatSessionStore } from '../model/chatSessionStore.js';
41
45
  import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service';
42
46
  import { IChatTransferService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatTransferService.service';
43
47
  import { LocalChatSessionUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
44
- import { ChatConfiguration, ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
48
+ import { ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
45
49
  import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
50
+ import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
46
51
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
47
52
  import { ChatSessionOperationLog } from '../model/chatSessionOperationLog.js';
48
53
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
54
+ import { mergeHooks } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
49
55
  import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
50
56
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
51
57
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
@@ -62,6 +68,9 @@ let CancellableRequest = class CancellableRequest {
62
68
  this._yieldRequested = observableValue(this, false);
63
69
  }
64
70
  dispose() {
71
+ if (this.requestId) {
72
+ this.toolsService.cancelToolCallsForRequest(this.requestId);
73
+ }
65
74
  this.cancellationTokenSource.dispose();
66
75
  }
67
76
  cancel() {
@@ -73,6 +82,9 @@ let CancellableRequest = class CancellableRequest {
73
82
  setYieldRequested() {
74
83
  this._yieldRequested.set(true, undefined);
75
84
  }
85
+ resetYieldRequested() {
86
+ this._yieldRequested.set(false, undefined);
87
+ }
76
88
  };
77
89
  CancellableRequest = ( __decorate([( __param(2, ILanguageModelToolsService))], CancellableRequest));
78
90
  let ChatService = class ChatService extends Disposable {
@@ -88,9 +100,6 @@ let ChatService = class ChatService extends Disposable {
88
100
  waitForModelDisposals() {
89
101
  return this._sessionModels.waitForModelDisposals();
90
102
  }
91
- get edits2Enabled() {
92
- return this.configurationService.getValue(ChatConfiguration.Edits2Enabled);
93
- }
94
103
  get isEmptyWindow() {
95
104
  const workspace = this.workspaceContextService.getWorkspace();
96
105
  return !workspace.configuration && workspace.folders.length === 0;
@@ -98,6 +107,7 @@ let ChatService = class ChatService extends Disposable {
98
107
  constructor(
99
108
  storageService,
100
109
  logService,
110
+ telemetryService,
101
111
  extensionService,
102
112
  instantiationService,
103
113
  workspaceContextService,
@@ -107,11 +117,15 @@ let ChatService = class ChatService extends Disposable {
107
117
  chatTransferService,
108
118
  chatSessionService,
109
119
  mcpService,
110
- promptsService
120
+ promptsService,
121
+ chatEntitlementService,
122
+ languageModelsService,
123
+ chatDebugService
111
124
  ) {
112
125
  super();
113
126
  this.storageService = storageService;
114
127
  this.logService = logService;
128
+ this.telemetryService = telemetryService;
115
129
  this.extensionService = extensionService;
116
130
  this.instantiationService = instantiationService;
117
131
  this.workspaceContextService = workspaceContextService;
@@ -122,6 +136,9 @@ let ChatService = class ChatService extends Disposable {
122
136
  this.chatSessionService = chatSessionService;
123
137
  this.mcpService = mcpService;
124
138
  this.promptsService = promptsService;
139
+ this.chatEntitlementService = chatEntitlementService;
140
+ this.languageModelsService = languageModelsService;
141
+ this.chatDebugService = chatDebugService;
125
142
  this._pendingRequests = this._register(( new DisposableResourceMap()));
126
143
  this._queuedRequestDeferreds = ( new Map());
127
144
  this._saveModelsEnabled = true;
@@ -150,6 +167,7 @@ let ChatService = class ChatService extends Disposable {
150
167
  }
151
168
  }));
152
169
  this._register(this._sessionModels.onDidDisposeModel(model => {
170
+ this.chatDebugService.endSession(model.sessionResource);
153
171
  this._onDidDisposeSession.fire({
154
172
  sessionResource: [model.sessionResource],
155
173
  reason: "cleared"
@@ -292,8 +310,14 @@ let ChatService = class ChatService extends Disposable {
292
310
  if (!session.hasPendingEdits) {
293
311
  return;
294
312
  }
295
- const sessionResource = LocalChatSessionUri.forSession(session.sessionId);
296
- const sessionRef = await this.getOrRestoreSession(sessionResource);
313
+ let sessionResource;
314
+ if (session.sessionId.includes(":")) {
315
+ try {
316
+ sessionResource = ( URI.parse(session.sessionId, true));
317
+ } catch {}
318
+ }
319
+ sessionResource ??= LocalChatSessionUri.forSession(session.sessionId);
320
+ const sessionRef = await this.acquireOrLoadSession(sessionResource, ChatAgentLocation.Chat, CancellationToken.None);
297
321
  if (sessionRef?.object.editingSession) {
298
322
  await chatEditingSessionIsReady(sessionRef.object.editingSession);
299
323
  sessionRef.dispose();
@@ -307,7 +331,7 @@ let ChatService = class ChatService extends Disposable {
307
331
  }
308
332
  async getLiveSessionItems() {
309
333
  return await Promise.all(( Array.from(( this._sessionModels.values())).filter(session => this.shouldBeInHistory(session)).map(async session => {
310
- const title = session.title || ( localize(6317, "New Chat"));
334
+ const title = session.title || ( localize(6984, "New Chat"));
311
335
  return {
312
336
  sessionResource: session.sessionResource,
313
337
  title,
@@ -323,17 +347,10 @@ let ChatService = class ChatService extends Disposable {
323
347
  const index = await this._chatSessionStore.getIndex();
324
348
  return ( ( Object.values(index)).filter(entry => !entry.isExternal).filter(entry => !( this._sessionModels.has(LocalChatSessionUri.forSession(entry.sessionId))) && entry.initialLocation === ChatAgentLocation.Chat && !entry.isEmpty).map(entry => {
325
349
  const sessionResource = LocalChatSessionUri.forSession(entry.sessionId);
326
- const lastResponseState = entry.lastResponseState ?? ResponseModelState.Complete;
327
350
  return ({
328
351
  ...entry,
329
352
  sessionResource,
330
- timing: entry.timing ?? {
331
- created: entry.lastMessageDate,
332
- lastRequestStarted: undefined,
333
- lastRequestEnded: entry.lastMessageDate
334
- },
335
- isActive: ( this._sessionModels.has(sessionResource)),
336
- lastResponseState: lastResponseState === ResponseModelState.Pending || lastResponseState === ResponseModelState.NeedsInput ? ResponseModelState.Complete : lastResponseState
353
+ isActive: ( this._sessionModels.has(sessionResource))
337
354
  });
338
355
  }));
339
356
  }
@@ -344,13 +361,7 @@ let ChatService = class ChatService extends Disposable {
344
361
  return {
345
362
  ...metadata,
346
363
  sessionResource,
347
- timing: metadata.timing ?? {
348
- created: metadata.lastMessageDate,
349
- lastRequestStarted: undefined,
350
- lastRequestEnded: metadata.lastMessageDate
351
- },
352
- isActive: ( this._sessionModels.has(sessionResource)),
353
- lastResponseState: metadata.lastResponseState ?? ResponseModelState.Complete
364
+ isActive: ( this._sessionModels.has(sessionResource))
354
365
  };
355
366
  }
356
367
  return undefined;
@@ -368,15 +379,13 @@ let ChatService = class ChatService extends Disposable {
368
379
  async clearAllHistoryEntries() {
369
380
  await this._chatSessionStore.clearAllSessions();
370
381
  }
371
- startSession(location, options) {
372
- this.trace("startSession");
373
- const sessionId = generateUuid();
374
- const sessionResource = LocalChatSessionUri.forSession(sessionId);
382
+ startNewLocalSession(location, options) {
383
+ this.trace("startNewLocalSession");
384
+ const sessionResource = LocalChatSessionUri.forSession(generateUuid());
375
385
  return this._sessionModels.acquireOrCreate({
376
386
  initialData: undefined,
377
387
  location,
378
388
  sessionResource,
379
- sessionId,
380
389
  canUseTools: options?.canUseTools ?? true,
381
390
  disableBackgroundKeepAlive: options?.disableBackgroundKeepAlive
382
391
  });
@@ -386,7 +395,6 @@ let ChatService = class ChatService extends Disposable {
386
395
  initialData,
387
396
  location,
388
397
  sessionResource,
389
- sessionId,
390
398
  canUseTools,
391
399
  transferEditingSession,
392
400
  disableBackgroundKeepAlive,
@@ -396,7 +404,6 @@ let ChatService = class ChatService extends Disposable {
396
404
  initialLocation: location,
397
405
  canUseTools,
398
406
  resource: sessionResource,
399
- sessionId,
400
407
  disableBackgroundKeepAlive,
401
408
  inputState
402
409
  });
@@ -431,25 +438,24 @@ let ChatService = class ChatService extends Disposable {
431
438
  getSession(sessionResource) {
432
439
  return this._sessionModels.get(sessionResource);
433
440
  }
434
- getActiveSessionReference(sessionResource) {
441
+ acquireExistingSession(sessionResource) {
435
442
  return this._sessionModels.acquireExisting(sessionResource);
436
443
  }
437
- async getOrRestoreSession(sessionResource) {
438
- this.trace("getOrRestoreSession", `${sessionResource}`);
439
- const existingRef = this._sessionModels.acquireExisting(sessionResource);
444
+ async acquireOrRestoreLocalSession(sessionResource) {
445
+ this.trace("acquireOrRestoreSession", `${sessionResource}`);
446
+ const existingRef = this.acquireExistingSession(sessionResource);
440
447
  if (existingRef) {
441
448
  return existingRef;
442
449
  }
443
- const sessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
444
- if (!sessionId) {
445
- throw ( new Error(`Cannot restore non-local session ${sessionResource}`));
446
- }
447
450
  let sessionData;
448
451
  if (isEqual(this.transferredSessionResource, sessionResource)) {
449
452
  this._transferredSessionResource = undefined;
450
453
  sessionData = await this._chatSessionStore.readTransferredSession(sessionResource);
451
454
  } else {
452
- sessionData = await this._chatSessionStore.readSession(sessionId);
455
+ const localSessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
456
+ if (localSessionId) {
457
+ sessionData = await this._chatSessionStore.readSession(localSessionId);
458
+ }
453
459
  }
454
460
  if (!sessionData) {
455
461
  return undefined;
@@ -458,7 +464,6 @@ let ChatService = class ChatService extends Disposable {
458
464
  initialData: sessionData,
459
465
  location: sessionData.value.initialLocation ?? ChatAgentLocation.Chat,
460
466
  sessionResource,
461
- sessionId,
462
467
  canUseTools: true
463
468
  });
464
469
  return sessionRef;
@@ -470,7 +475,7 @@ let ChatService = class ChatService extends Disposable {
470
475
  }
471
476
  return this._sessionModels.get(sessionResource)?.title ?? this._chatSessionStore.getMetadataForSessionSync(sessionResource)?.title;
472
477
  }
473
- loadSessionFromContent(data) {
478
+ loadSessionFromData(data) {
474
479
  const sessionId = data.sessionId ?? generateUuid();
475
480
  const sessionResource = LocalChatSessionUri.forSession(sessionId);
476
481
  return this._sessionModels.acquireOrCreate({
@@ -480,33 +485,49 @@ let ChatService = class ChatService extends Disposable {
480
485
  },
481
486
  location: data.initialLocation ?? ChatAgentLocation.Chat,
482
487
  sessionResource,
483
- sessionId,
484
488
  canUseTools: true
485
489
  });
486
490
  }
487
- async loadSessionForResource(chatSessionResource, location, token) {
488
- if (chatSessionResource.scheme === Schemas.vscodeLocalChatSession) {
489
- return this.getOrRestoreSession(chatSessionResource);
491
+ async acquireOrLoadSession(sessionResource, location, token) {
492
+ if (sessionResource.scheme === Schemas.vscodeLocalChatSession) {
493
+ return this.acquireOrRestoreLocalSession(sessionResource);
494
+ } else {
495
+ return this.loadRemoteSession(sessionResource, location, token);
490
496
  }
491
- const existingRef = this._sessionModels.acquireExisting(chatSessionResource);
492
- if (existingRef) {
493
- return existingRef;
497
+ }
498
+ async loadRemoteSession(sessionResource, location, token) {
499
+ await this.chatSessionService.canResolveChatSession(sessionResource.scheme);
500
+ {
501
+ const existingRef = this.acquireExistingSession(sessionResource);
502
+ if (existingRef) {
503
+ return existingRef;
504
+ }
494
505
  }
495
- const providedSession = await this.chatSessionService.getOrCreateChatSession(chatSessionResource, CancellationToken.None);
496
- const chatSessionType = chatSessionResource.scheme;
506
+ const providedSession = await this.chatSessionService.getOrCreateChatSession(sessionResource, token);
507
+ {
508
+ const existingRef = this.acquireExistingSession(sessionResource);
509
+ if (existingRef) {
510
+ providedSession.dispose();
511
+ return existingRef;
512
+ }
513
+ }
514
+ const chatSessionType = sessionResource.scheme;
497
515
  const modelRef = this._sessionModels.acquireOrCreate({
498
516
  initialData: undefined,
499
517
  location,
500
- sessionResource: chatSessionResource,
518
+ sessionResource: sessionResource,
501
519
  canUseTools: false,
502
520
  transferEditingSession: providedSession.transferredState?.editingSession,
503
521
  inputState: providedSession.transferredState?.inputState
504
522
  });
505
523
  modelRef.object.setContributedChatSession({
506
- chatSessionResource,
524
+ chatSessionResource: sessionResource,
507
525
  chatSessionType,
508
- isUntitled: chatSessionResource.path.startsWith("/untitled-")
526
+ isUntitled: sessionResource.path.startsWith("/untitled-")
509
527
  });
528
+ if (providedSession.title) {
529
+ modelRef.object.setCustomTitle(providedSession.title);
530
+ }
510
531
  const model = modelRef.object;
511
532
  const disposables = ( new DisposableStore());
512
533
  disposables.add(modelRef.object.onDidDispose(() => {
@@ -539,7 +560,7 @@ let ChatService = class ChatService extends Disposable {
539
560
  undefined,
540
561
  undefined,
541
562
  false,
542
- undefined, undefined, message.id);
563
+ message.modelId, undefined, message.id);
543
564
  } else {
544
565
  if (lastRequest) {
545
566
  for (const part of message.parts) {
@@ -554,6 +575,10 @@ let ChatService = class ChatService extends Disposable {
554
575
  if (providedSession.progressObs && lastRequest && providedSession.interruptActiveResponseCallback) {
555
576
  const initialCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined);
556
577
  this._pendingRequests.set(model.sessionResource, initialCancellationRequest);
578
+ this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
579
+ action: "add",
580
+ source: "remoteSession"
581
+ });
557
582
  const cancellationListener = disposables.add(( new MutableDisposable()));
558
583
  const createCancellationListener = token => {
559
584
  return token.onCancellationRequested(() => {
@@ -561,6 +586,10 @@ let ChatService = class ChatService extends Disposable {
561
586
  if (!userConfirmedInterruption) {
562
587
  const newCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined);
563
588
  this._pendingRequests.set(model.sessionResource, newCancellationRequest);
589
+ this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
590
+ action: "add",
591
+ source: "remoteSession"
592
+ });
564
593
  cancellationListener.value = createCancellationListener(newCancellationRequest.cancellationTokenSource.token);
565
594
  }
566
595
  });
@@ -584,6 +613,10 @@ let ChatService = class ChatService extends Disposable {
584
613
  }
585
614
  }));
586
615
  } else {
616
+ this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
617
+ action: "notCancelable",
618
+ source: "remoteSession"
619
+ });
587
620
  if (lastRequest && model.editingSession) {
588
621
  await chatEditingSessionIsReady(model.editingSession);
589
622
  lastRequest.response?.complete();
@@ -680,9 +713,12 @@ let ChatService = class ChatService extends Disposable {
680
713
  throw ( new Error(`Unknown session: ${sessionResource}`));
681
714
  }
682
715
  const hasPendingRequest = ( this._pendingRequests.has(sessionResource));
683
- const hasPendingQueue = model.getPendingRequests().length > 0;
684
716
  if (options?.queue) {
685
- return this.queuePendingRequest(model, sessionResource, request, options);
717
+ const queued = this.queuePendingRequest(model, sessionResource, request, options);
718
+ if (!options.pauseQueue) {
719
+ this.processPendingRequests(sessionResource);
720
+ }
721
+ return queued;
686
722
  } else if (hasPendingRequest) {
687
723
  this.trace("sendRequest", `Session ${sessionResource} already has a pending request`);
688
724
  return {
@@ -690,11 +726,6 @@ let ChatService = class ChatService extends Disposable {
690
726
  reason: "Request already in progress"
691
727
  };
692
728
  }
693
- if (options?.queue && hasPendingQueue) {
694
- const queued = this.queuePendingRequest(model, sessionResource, request, options);
695
- this.processNextPendingRequest(model);
696
- return queued;
697
- }
698
729
  const requests = model.getRequests();
699
730
  for (let i = requests.length - 1; i >= 0; i -= 1) {
700
731
  const request = requests[i];
@@ -744,6 +775,14 @@ let ChatService = class ChatService extends Disposable {
744
775
  };
745
776
  const commandPart = options.slashCommand ? ` ${chatSubcommandLeader}${options.slashCommand}` : "";
746
777
  request = `${chatAgentLeader}${agent.name}${commandPart} ${request}`;
778
+ } else if (options?.agentIdSilent && !parserContext?.forcedAgent) {
779
+ const silentAgent = this.chatAgentService.getAgent(options.agentIdSilent);
780
+ if (silentAgent) {
781
+ parserContext = {
782
+ ...parserContext,
783
+ forcedAgent: silentAgent
784
+ };
785
+ }
747
786
  }
748
787
  const parsedRequest = this.instantiationService.createInstance(ChatRequestParser).parseChatRequest(sessionResource, request, location, parserContext);
749
788
  return parsedRequest;
@@ -774,7 +813,7 @@ let ChatService = class ChatService extends Disposable {
774
813
  agent: agentPart?.agent ?? defaultAgent,
775
814
  agentSlashCommandPart,
776
815
  commandPart,
777
- sessionId: model.sessionId,
816
+ sessionResource: model.sessionResource,
778
817
  location: model.initialLocation,
779
818
  options,
780
819
  enableCommandDetection
@@ -812,7 +851,9 @@ let ChatService = class ChatService extends Disposable {
812
851
  `Provider returned progress: ${JSON.stringify(progressItem)}`
813
852
  );
814
853
  }
815
- model.acceptResponseProgress(request, progressItem, !isLast);
854
+ if (request) {
855
+ model.acceptResponseProgress(request, progressItem, !isLast);
856
+ }
816
857
  }
817
858
  completeResponseCreated();
818
859
  };
@@ -821,7 +862,7 @@ let ChatService = class ChatService extends Disposable {
821
862
  let collectedHooks;
822
863
  let hasDisabledClaudeHooks = false;
823
864
  try {
824
- const hooksInfo = await this.promptsService.getHooks(token);
865
+ const hooksInfo = await this.promptsService.getHooks(token, model.sessionResource);
825
866
  if (hooksInfo) {
826
867
  collectedHooks = hooksInfo.hooks;
827
868
  hasDisabledClaudeHooks = hooksInfo.hasDisabledClaudeHooks;
@@ -829,6 +870,18 @@ let ChatService = class ChatService extends Disposable {
829
870
  } catch (error) {
830
871
  this.logService.warn("[ChatService] Failed to collect hooks:", error);
831
872
  }
873
+ const agentName = options?.modeInfo?.modeInstructions?.name;
874
+ if (agentName) {
875
+ try {
876
+ const agents = await this.promptsService.getCustomAgents(token, model.sessionResource);
877
+ const customAgent = agents.find(a => a.name === agentName);
878
+ if (customAgent?.hooks) {
879
+ collectedHooks = mergeHooks(collectedHooks, customAgent.hooks);
880
+ }
881
+ } catch (error) {
882
+ this.logService.warn("[ChatService] Failed to collect agent hooks:", error);
883
+ }
884
+ }
832
885
  const stopWatch = ( new StopWatch(false));
833
886
  store.add(token.onCancellationRequested(() => {
834
887
  this.trace(
@@ -880,6 +933,11 @@ let ChatService = class ChatService extends Disposable {
880
933
  variables: this.prepareContext(request.attachedContext)
881
934
  };
882
935
  model.updateRequest(request, variableData);
936
+ if (options?.resolvedVariables?.length) {
937
+ variableData = {
938
+ variables: [...variableData.variables, ...options.resolvedVariables]
939
+ };
940
+ }
883
941
  const promptTextResult = getPromptText(request.message);
884
942
  variableData = updateRanges(variableData, promptTextResult.diff);
885
943
  message = promptTextResult.message;
@@ -901,6 +959,7 @@ let ChatService = class ChatService extends Disposable {
901
959
  userSelectedModelId: options?.userSelectedModelId,
902
960
  userSelectedTools: options?.userSelectedTools?.get(),
903
961
  modeInstructions: options?.modeInfo?.modeInstructions,
962
+ permissionLevel: options?.modeInfo?.permissionLevel,
904
963
  editedFileEvents: request.editedFileEvents,
905
964
  hooks: collectedHooks,
906
965
  hasHooksEnabled: !!collectedHooks && ( ( Object.values(collectedHooks)).some(arr => arr.length > 0))
@@ -912,7 +971,7 @@ let ChatService = class ChatService extends Disposable {
912
971
  isInitialTools = false;
913
972
  return;
914
973
  }
915
- if (tools) {
974
+ if (tools && request) {
916
975
  this.chatAgentService.setRequestTools(agent.id, request.id, tools);
917
976
  agentRequest.userSelectedTools = tools;
918
977
  }
@@ -926,7 +985,7 @@ let ChatService = class ChatService extends Disposable {
926
985
  location
927
986
  }, token);
928
987
  if (result && this.chatAgentService.getAgent(result.agent.id)?.locations?.includes(location)) {
929
- request.response?.setAgent(result.agent, result.command);
988
+ request?.response?.setAgent(result.agent, result.command);
930
989
  detectedAgent = result.agent;
931
990
  detectedCommand = result.command;
932
991
  }
@@ -946,8 +1005,9 @@ let ChatService = class ChatService extends Disposable {
946
1005
  const pendingRequest = this._pendingRequests.get(sessionResource);
947
1006
  if (pendingRequest) {
948
1007
  store.add(autorun(reader => {
949
- if (pendingRequest.yieldRequested.read(reader)) {
950
- this.chatAgentService.setYieldRequested(agent.id, request.id);
1008
+ const yieldRequested = pendingRequest.yieldRequested.read(reader);
1009
+ if (request) {
1010
+ this.chatAgentService.setYieldRequested(agent.id, request.id, yieldRequested);
951
1011
  }
952
1012
  }));
953
1013
  pendingRequest.requestId ??= requestProps.requestId;
@@ -1014,14 +1074,18 @@ let ChatService = class ChatService extends Disposable {
1014
1074
  history,
1015
1075
  location,
1016
1076
  model.sessionResource,
1017
- token
1077
+ token,
1078
+ options
1018
1079
  );
1019
1080
  agentOrCommandFollowups = Promise.resolve(commandResult?.followUp);
1020
1081
  rawResult = {};
1021
1082
  } else {
1022
1083
  throw ( new Error(`Cannot handle request`));
1023
1084
  }
1024
- if (token.isCancellationRequested && !rawResult) {
1085
+ if ((token.isCancellationRequested && !rawResult)) {
1086
+ return;
1087
+ } else if (!request) {
1088
+ shouldProcessPending = !token.isCancellationRequested;
1025
1089
  return;
1026
1090
  } else {
1027
1091
  if (!rawResult) {
@@ -1031,7 +1095,7 @@ let ChatService = class ChatService extends Disposable {
1031
1095
  );
1032
1096
  rawResult = {
1033
1097
  errorDetails: {
1034
- message: ( localize(6318, "Provider returned null response"))
1098
+ message: ( localize(6985, "Provider returned null response"))
1035
1099
  }
1036
1100
  };
1037
1101
  }
@@ -1050,6 +1114,9 @@ let ChatService = class ChatService extends Disposable {
1050
1114
  "sendRequest",
1051
1115
  `Provider returned response for session ${model.sessionResource}`
1052
1116
  );
1117
+ if (rawResult.errorDetails?.isRateLimited) {
1118
+ this.chatEntitlementService.markAnonymousRateLimited();
1119
+ }
1053
1120
  shouldProcessPending = !rawResult.errorDetails && !token.isCancellationRequested;
1054
1121
  request.response?.complete();
1055
1122
  if (agentOrCommandFollowups) {
@@ -1062,15 +1129,15 @@ let ChatService = class ChatService extends Disposable {
1062
1129
  }
1063
1130
  } catch (err) {
1064
1131
  this.logService.error(`Error while handling chat request: ${toErrorMessage(err, true)}`);
1065
- requestTelemetry.complete({
1066
- timeToFirstProgress: undefined,
1067
- totalTime: undefined,
1068
- result: "error",
1069
- requestType,
1070
- detectedAgent,
1071
- request
1072
- });
1073
1132
  if (request) {
1133
+ requestTelemetry.complete({
1134
+ timeToFirstProgress: undefined,
1135
+ totalTime: undefined,
1136
+ result: "error",
1137
+ requestType,
1138
+ detectedAgent,
1139
+ request
1140
+ });
1074
1141
  const rawResult = {
1075
1142
  errorDetails: {
1076
1143
  message: err.message
@@ -1086,18 +1153,30 @@ let ChatService = class ChatService extends Disposable {
1086
1153
  };
1087
1154
  let shouldProcessPending = false;
1088
1155
  const rawResponsePromise = sendRequestInternal();
1089
- this._pendingRequests.set(
1090
- model.sessionResource,
1091
- this.instantiationService.createInstance(CancellableRequest, source, undefined)
1092
- );
1156
+ const cancellableRequest = this.instantiationService.createInstance(CancellableRequest, source, undefined);
1157
+ this._pendingRequests.set(model.sessionResource, cancellableRequest);
1158
+ this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
1159
+ action: "add",
1160
+ source: "sendRequest"
1161
+ });
1093
1162
  rawResponsePromise.finally(() => {
1094
- this._pendingRequests.deleteAndDispose(model.sessionResource);
1163
+ if (this._pendingRequests.get(model.sessionResource) === cancellableRequest) {
1164
+ this._pendingRequests.deleteAndDispose(model.sessionResource);
1165
+ this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
1166
+ action: "remove",
1167
+ source: "sendRequestComplete"
1168
+ });
1169
+ }
1095
1170
  if (shouldProcessPending) {
1096
1171
  this.processNextPendingRequest(model);
1097
1172
  }
1098
1173
  });
1174
+ if (options?.userSelectedModelId) {
1175
+ this.languageModelsService.addToRecentlyUsedList(options.userSelectedModelId);
1176
+ }
1099
1177
  this._onDidSubmitRequest.fire({
1100
- chatSessionResource: model.sessionResource
1178
+ chatSessionResource: model.sessionResource,
1179
+ message: parsedRequest
1101
1180
  });
1102
1181
  return {
1103
1182
  responseCreatedPromise: responseCreated.p,
@@ -1111,31 +1190,64 @@ let ChatService = class ChatService extends Disposable {
1111
1190
  }
1112
1191
  }
1113
1192
  processNextPendingRequest(model) {
1114
- const pendingRequest = model.dequeuePendingRequest();
1115
- if (!pendingRequest) {
1193
+ const steeringRequests = model.dequeueAllSteeringRequests();
1194
+ const nextQueued = steeringRequests.length === 0 ? model.dequeuePendingRequest() : undefined;
1195
+ const allRequests = steeringRequests.length > 0 ? steeringRequests : (nextQueued ? [nextQueued] : []);
1196
+ if (allRequests.length === 0) {
1116
1197
  return;
1117
1198
  }
1118
1199
  this.trace(
1119
1200
  "processNextPendingRequest",
1120
- `Processing queued request for session ${model.sessionResource}`
1201
+ `Processing ${allRequests.length} queued request(s) for session ${model.sessionResource}`
1121
1202
  );
1122
- const deferred = this._queuedRequestDeferreds.get(pendingRequest.request.id);
1123
- this._queuedRequestDeferreds.delete(pendingRequest.request.id);
1203
+ const deferreds = [];
1204
+ for (const req of allRequests) {
1205
+ const deferred = this._queuedRequestDeferreds.get(req.request.id);
1206
+ this._queuedRequestDeferreds.delete(req.request.id);
1207
+ if (deferred) {
1208
+ deferreds.push(deferred);
1209
+ }
1210
+ }
1211
+ const firstRequest = allRequests[0];
1124
1212
  const sendOptions = {
1125
- ...pendingRequest.sendOptions,
1126
- attachedContext: pendingRequest.request.variableData.variables.slice()
1213
+ ...firstRequest.sendOptions,
1214
+ attachedContext: allRequests.flatMap(req => req.request.variableData.variables.slice())
1127
1215
  };
1128
1216
  const location = sendOptions.location ?? sendOptions.locationData?.type ?? model.initialLocation;
1129
1217
  const defaultAgent = this.chatAgentService.getDefaultAgent(location, sendOptions.modeInfo?.kind);
1130
1218
  if (!defaultAgent) {
1131
1219
  this.logService.warn("processNextPendingRequest", `No default agent for location ${location}`);
1132
- deferred?.complete({
1133
- kind: "rejected",
1134
- reason: "No default agent available"
1135
- });
1220
+ for (const deferred of deferreds) {
1221
+ deferred.complete({
1222
+ kind: "rejected",
1223
+ reason: "No default agent available"
1224
+ });
1225
+ }
1226
+ return;
1227
+ }
1228
+ let parsedRequest;
1229
+ try {
1230
+ if (allRequests.length > 1) {
1231
+ const combinedText = ( allRequests.map(req => req.request.message.text)).join("\n\n");
1232
+ parsedRequest = this.parseChatRequest(model.sessionResource, combinedText, location, {
1233
+ ...sendOptions,
1234
+ agentId: undefined,
1235
+ slashCommand: undefined
1236
+ });
1237
+ } else {
1238
+ parsedRequest = firstRequest.request.message;
1239
+ }
1240
+ } catch (err) {
1241
+ this.logService.error("processNextPendingRequest: failed to parse combined chat request", err);
1242
+ const reason = toErrorMessage(err);
1243
+ for (const deferred of deferreds) {
1244
+ deferred.complete({
1245
+ kind: "rejected",
1246
+ reason
1247
+ });
1248
+ }
1136
1249
  return;
1137
1250
  }
1138
- const parsedRequest = pendingRequest.request.message;
1139
1251
  const silentAgent = sendOptions.agentIdSilent ? this.chatAgentService.getAgent(sendOptions.agentIdSilent) : undefined;
1140
1252
  const agent = silentAgent ?? parsedRequest.parts.find(r => r instanceof ChatRequestAgentPart)?.agent ?? defaultAgent;
1141
1253
  const agentSlashCommandPart = parsedRequest.parts.find(r => r instanceof ChatRequestAgentSubcommandPart);
@@ -1143,20 +1255,23 @@ let ChatService = class ChatService extends Disposable {
1143
1255
  model,
1144
1256
  model.sessionResource,
1145
1257
  parsedRequest,
1146
- pendingRequest.request.attempt,
1258
+ firstRequest.request.attempt,
1147
1259
  !sendOptions.noCommandDetection,
1148
1260
  silentAgent ?? defaultAgent,
1149
1261
  location,
1150
1262
  sendOptions
1151
1263
  );
1152
- deferred?.complete({
1264
+ const result = {
1153
1265
  kind: "sent",
1154
1266
  data: {
1155
1267
  ...responseState,
1156
1268
  agent,
1157
1269
  slashCommand: agentSlashCommandPart?.command
1158
1270
  }
1159
- });
1271
+ };
1272
+ for (const deferred of deferreds) {
1273
+ deferred.complete(result);
1274
+ }
1160
1275
  }
1161
1276
  generateInitialChatTitleIfNeeded(model, request, defaultAgent, token) {
1162
1277
  if (model.getRequests().length !== 1 || model.customTitle) {
@@ -1232,6 +1347,10 @@ let ChatService = class ChatService extends Disposable {
1232
1347
  if (pendingRequest?.requestId === requestId) {
1233
1348
  pendingRequest.cancel();
1234
1349
  this._pendingRequests.deleteAndDispose(sessionResource);
1350
+ this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
1351
+ action: "remove",
1352
+ source: "removeRequest"
1353
+ });
1235
1354
  }
1236
1355
  model.removeRequest(requestId);
1237
1356
  }
@@ -1250,6 +1369,14 @@ let ChatService = class ChatService extends Disposable {
1250
1369
  if (cts) {
1251
1370
  cts.requestId = request.id;
1252
1371
  this._pendingRequests.set(target.sessionResource, cts);
1372
+ this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
1373
+ action: "remove",
1374
+ source: "adoptRequest"
1375
+ });
1376
+ this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
1377
+ action: "add",
1378
+ source: "adoptRequest"
1379
+ });
1253
1380
  }
1254
1381
  }
1255
1382
  }
@@ -1279,10 +1406,34 @@ let ChatService = class ChatService extends Disposable {
1279
1406
  }
1280
1407
  request.response?.complete();
1281
1408
  }
1282
- cancelCurrentRequestForSession(sessionResource) {
1409
+ cancelCurrentRequestForSession(sessionResource, source) {
1283
1410
  this.trace("cancelCurrentRequestForSession", `session: ${sessionResource}`);
1284
- this._pendingRequests.get(sessionResource)?.cancel();
1411
+ const pendingRequest = this._pendingRequests.get(sessionResource);
1412
+ if (!pendingRequest) {
1413
+ const model = this._sessionModels.get(sessionResource);
1414
+ const requestInProgress = model?.requestInProgress.get();
1415
+ const pendingRequestsCount = model?.getPendingRequests().length ?? 0;
1416
+ const lastRequest = model?.lastRequest;
1417
+ this.telemetryService.publicLog2(ChatStopCancellationNoopEventName, {
1418
+ source: source ?? "chatService",
1419
+ reason: "noPendingRequest",
1420
+ requestInProgress: requestInProgress === undefined ? "unknown" : requestInProgress ? "true" : "false",
1421
+ pendingRequests: pendingRequestsCount,
1422
+ sessionScheme: sessionResource.scheme,
1423
+ lastRequestId: lastRequest?.id
1424
+ });
1425
+ this.info(
1426
+ "cancelCurrentRequestForSession",
1427
+ `No pending request was found for session ${sessionResource}. requestInProgress=${requestInProgress ?? "unknown"}, pendingRequests=${pendingRequestsCount}`
1428
+ );
1429
+ return;
1430
+ }
1431
+ pendingRequest.cancel();
1285
1432
  this._pendingRequests.deleteAndDispose(sessionResource);
1433
+ this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
1434
+ action: "remove",
1435
+ source: source ?? "cancelRequest"
1436
+ });
1286
1437
  }
1287
1438
  setYieldRequested(sessionResource) {
1288
1439
  const pendingRequest = this._pendingRequests.get(sessionResource);
@@ -1294,6 +1445,11 @@ let ChatService = class ChatService extends Disposable {
1294
1445
  const model = this._sessionModels.get(sessionResource);
1295
1446
  if (model) {
1296
1447
  model.removePendingRequest(requestId);
1448
+ const hasSteeringRequests = ( model.getPendingRequests().some(r => r.kind === ChatRequestQueueKind.Steering));
1449
+ if (!hasSteeringRequests) {
1450
+ const pendingRequest = this._pendingRequests.get(sessionResource);
1451
+ pendingRequest?.resetYieldRequested();
1452
+ }
1297
1453
  }
1298
1454
  const deferred = this._queuedRequestDeferreds.get(requestId);
1299
1455
  if (deferred) {
@@ -1347,7 +1503,7 @@ let ChatService = class ChatService extends Disposable {
1347
1503
  logChatIndex() {
1348
1504
  this._chatSessionStore.logIndex();
1349
1505
  }
1350
- setTitle(sessionResource, title) {
1506
+ setSessionTitle(sessionResource, title) {
1351
1507
  this._sessionModels.get(sessionResource)?.setCustomTitle(title);
1352
1508
  }
1353
1509
  appendProgress(request, progress) {
@@ -1365,6 +1521,6 @@ let ChatService = class ChatService extends Disposable {
1365
1521
  return localSessionId;
1366
1522
  }
1367
1523
  };
1368
- ChatService = ( __decorate([( __param(0, IStorageService)), ( __param(1, ILogService)), ( __param(2, IExtensionService)), ( __param(3, IInstantiationService)), ( __param(4, IWorkspaceContextService)), ( __param(5, IChatSlashCommandService)), ( __param(6, IChatAgentService)), ( __param(7, IConfigurationService)), ( __param(8, IChatTransferService)), ( __param(9, IChatSessionsService)), ( __param(10, IMcpService)), ( __param(11, IPromptsService))], ChatService));
1524
+ ChatService = ( __decorate([( __param(0, IStorageService)), ( __param(1, ILogService)), ( __param(2, ITelemetryService)), ( __param(3, IExtensionService)), ( __param(4, IInstantiationService)), ( __param(5, IWorkspaceContextService)), ( __param(6, IChatSlashCommandService)), ( __param(7, IChatAgentService)), ( __param(8, IConfigurationService)), ( __param(9, IChatTransferService)), ( __param(10, IChatSessionsService)), ( __param(11, IMcpService)), ( __param(12, IPromptsService)), ( __param(13, IChatEntitlementService)), ( __param(14, ILanguageModelsService)), ( __param(15, IChatDebugService))], ChatService));
1369
1525
 
1370
1526
  export { ChatService };