@codingame/monaco-vscode-chat-service-override 26.2.2 → 27.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 (316) hide show
  1. package/index.js +31 -1
  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 +39 -0
  7. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +83 -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 +274 -0
  10. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +71 -0
  11. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +284 -0
  12. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +79 -0
  13. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +378 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -2
  15. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +27 -40
  16. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +9 -3
  17. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +74 -18
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +1 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +54 -8
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +87 -53
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +71 -15
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +43 -21
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +22 -3
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +1 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +154 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -8
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +53 -43
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +4 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +84 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +1 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +33 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -29
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +13 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +16 -16
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +12 -12
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +33 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +204 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +77 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +541 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +10 -11
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -65
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +7 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +27 -18
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.d.ts +1 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +4 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +2 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +90 -51
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +20 -5
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +43 -27
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +7 -2
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +3 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +84 -22
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.d.ts → localAgentSessionsController.d.ts} +7 -4
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.js → localAgentSessionsController.js} +24 -17
  67. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +23 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +171 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +48 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +19 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +181 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +943 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.d.ts +1 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +248 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +57 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +27 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +118 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +727 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +22 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +38 -0
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +1 -0
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +72 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +45 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +165 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +75 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +623 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +858 -0
  88. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +2 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +30 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.d.ts +32 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.js +26 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +19 -3
  93. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +36 -26
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +529 -363
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +18 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +419 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +12 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +46 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +34 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +198 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +55 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +305 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.d.ts +23 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +64 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +5 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +84 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +27 -0
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +110 -0
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +34 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +111 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +71 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +611 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +125 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +504 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.d.ts +10 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +914 -0
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +19 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +128 -0
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +58 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +429 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +31 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +113 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +14 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +126 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +38 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +279 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +18 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +122 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +45 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.js +85 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +781 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +5 -22
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +2 -1
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +12 -12
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +16 -15
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +63 -76
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +26 -15
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +2 -2
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +15 -7
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +40 -413
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +10 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +38 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +5 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +56 -46
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +15 -11
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +52 -0
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +138 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +11 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +166 -41
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +6 -0
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +37 -23
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +15 -0
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +351 -0
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +118 -63
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +28 -0
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +182 -13
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +892 -41
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +5 -1
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +55 -25
  174. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +28 -19
  175. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.d.ts +14 -0
  176. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.js +62 -0
  177. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +36 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +110 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.d.ts +10 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.js +39 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +3 -3
  182. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +6 -6
  183. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.d.ts +10 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.js +39 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +27 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +102 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  188. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +16 -1
  189. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +69 -47
  190. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +2 -41
  191. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +7 -7
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.d.ts +4 -0
  195. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +8 -8
  196. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  197. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +4 -4
  199. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +22 -0
  200. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +76 -0
  201. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +5 -0
  202. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +30 -0
  203. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +43 -31
  204. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +67 -42
  205. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +31 -0
  206. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +242 -0
  207. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +34 -0
  208. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +45 -0
  209. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  210. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +33 -0
  211. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +311 -0
  212. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.d.ts +4 -0
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +10 -1
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +10 -10
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +8 -9
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +64 -26
  218. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +4 -2
  219. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +2 -2
  221. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.d.ts +15 -4
  222. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +42 -8
  223. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +8 -1
  224. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +58 -31
  225. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +6 -5
  226. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -20
  227. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +15 -6
  228. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +39 -0
  229. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +27 -0
  230. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +190 -0
  231. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +11 -0
  232. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +36 -0
  233. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +188 -0
  234. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +18 -8
  235. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +192 -85
  236. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +2 -1
  237. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +2 -1
  238. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -6
  239. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +16 -8
  240. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +8 -4
  241. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +111 -7
  242. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +2 -0
  243. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +52 -0
  244. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +29 -0
  245. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +73 -0
  246. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +622 -0
  247. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +64 -0
  248. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +478 -0
  249. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +35 -16
  250. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +1 -30
  251. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +0 -5
  252. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +2 -8
  253. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
  254. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +8 -8
  255. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +9 -9
  256. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +23 -22
  257. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +44 -14
  258. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +345 -113
  259. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +14 -1
  260. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +34 -24
  261. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +3 -0
  262. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +13 -0
  263. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  264. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +11 -5
  265. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +23 -0
  266. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +248 -24
  267. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +6 -11
  268. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +18 -81
  269. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +2 -3
  270. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +10 -10
  271. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  272. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  273. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  274. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
  275. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  276. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +6 -2
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +35 -26
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +0 -1
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +1 -5
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +3 -3
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +4 -1
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +13 -11
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +3 -1
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +9 -0
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +280 -65
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +3 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +8 -0
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -10
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +1 -0
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +47 -19
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +8 -0
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +31 -0
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +6 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +38 -16
  311. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +0 -72
  312. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +0 -587
  313. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +0 -71
  314. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +0 -293
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +0 -2
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +0 -31
@@ -21,7 +21,7 @@ class EnterAgentSessionProjectionAction extends Action2 {
21
21
  constructor() {
22
22
  super({
23
23
  id: EnterAgentSessionProjectionAction.ID,
24
- title: ( localize2(5015, "Enter Agent Session Projection")),
24
+ title: ( localize2(5128, "Enter Agent Session Projection")),
25
25
  category: CHAT_CATEGORY,
26
26
  f1: false,
27
27
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.has(`config.${ChatConfiguration.AgentSessionProjectionEnabled}`)), ( inAgentSessionProjection.negate())))
@@ -50,7 +50,7 @@ class ExitAgentSessionProjectionAction extends Action2 {
50
50
  constructor() {
51
51
  super({
52
52
  id: ExitAgentSessionProjectionAction.ID,
53
- title: ( localize2(5016, "Exit Agent Session Projection")),
53
+ title: ( localize2(5129, "Exit Agent Session Projection")),
54
54
  category: CHAT_CATEGORY,
55
55
  f1: true,
56
56
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, inAgentSessionProjection)),
@@ -68,13 +68,13 @@ class ExitAgentSessionProjectionAction extends Action2 {
68
68
  }
69
69
  class ToggleAgentStatusAction extends ToggleTitleBarConfigAction {
70
70
  constructor() {
71
- super(ChatConfiguration.AgentStatusEnabled, ( localize(5017, "Agent Status")), ( localize(5018, "Toggle visibility of the Agent Status in title bar")), 6, ( ContextKeyExpr.and(ChatContextKeys.enabled, ( IsCompactTitleBarContext.negate()), ChatContextKeys.supported, ( ContextKeyExpr.has("config.window.commandCenter")))));
71
+ super(ChatConfiguration.AgentStatusEnabled, ( localize(5130, "Agent Status")), ( localize(5131, "Toggle visibility of the Agent Status in title bar")), 6, ( ContextKeyExpr.and(ChatContextKeys.enabled, ( IsCompactTitleBarContext.negate()), ChatContextKeys.supported, ( ContextKeyExpr.has("config.window.commandCenter")))));
72
72
  }
73
73
  }
74
74
  class ToggleUnifiedAgentsBarAction extends ToggleTitleBarConfigAction {
75
75
  constructor() {
76
- super(ChatConfiguration.UnifiedAgentsBar, ( localize(5019, "Agent Quick Input")), ( localize(
77
- 5020,
76
+ super(ChatConfiguration.UnifiedAgentsBar, ( localize(5132, "Agent Quick Input")), ( localize(
77
+ 5133,
78
78
  "Toggle Agent Quick Input, replacing the classic command center search box."
79
79
  )), 7, ( ContextKeyExpr.and(ChatContextKeys.enabled, ( IsCompactTitleBarContext.negate()), ChatContextKeys.supported, ( ContextKeyExpr.has("config.window.commandCenter")))));
80
80
  }
@@ -35,6 +35,8 @@ export declare class AgentSessionProjectionService extends Disposable implements
35
35
  get isActive(): boolean;
36
36
  /** Prevents re-entrant exits and enter-on-exit races */
37
37
  private _isExiting;
38
+ /** Prevents checkForEmptyEditors from exiting during session swaps */
39
+ private _isSwappingSessions;
38
40
  private _activeSession;
39
41
  get activeSession(): IAgentSession | undefined;
40
42
  private readonly _onDidChangeProjectionMode;
@@ -9,10 +9,10 @@ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platf
9
9
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
10
10
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
11
11
  import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
12
+ import { MODAL_GROUP } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService';
12
13
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
13
14
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
14
15
  import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel';
15
- import { ChatViewPaneTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
16
16
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
17
17
  import { AgentSessionProviders } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
18
18
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
@@ -64,6 +64,7 @@ let AgentSessionProjectionService = class AgentSessionProjectionService extends
64
64
  this.agentSessionsService = agentSessionsService;
65
65
  this._isActive = false;
66
66
  this._isExiting = false;
67
+ this._isSwappingSessions = false;
67
68
  this._onDidChangeProjectionMode = this._register(( new Emitter()));
68
69
  this.onDidChangeProjectionMode = this._onDidChangeProjectionMode.event;
69
70
  this._onDidChangeActiveSession = this._register(( new Emitter()));
@@ -80,7 +81,7 @@ let AgentSessionProjectionService = class AgentSessionProjectionService extends
80
81
  return this.configurationService.getValue(ChatConfiguration.AgentSessionProjectionEnabled) === true;
81
82
  }
82
83
  _checkForEmptyEditors() {
83
- if (!this._isActive || this._isExiting) {
84
+ if (!this._isActive || this._isExiting || this._isSwappingSessions) {
84
85
  return;
85
86
  }
86
87
  const hasVisibleEditors = this.editorService.visibleEditors.length > 0;
@@ -109,7 +110,7 @@ let AgentSessionProjectionService = class AgentSessionProjectionService extends
109
110
  async _openSessionInChatPanel(session) {
110
111
  session.setRead(true);
111
112
  await this.chatSessionsService.activateChatSessionItemProvider(session.providerType);
112
- await this.chatWidgetService.openSession(session.resource, ChatViewPaneTarget, {
113
+ await this.chatWidgetService.openSession(session.resource, undefined, {
113
114
  title: {
114
115
  preferred: session.label
115
116
  },
@@ -131,17 +132,23 @@ let AgentSessionProjectionService = class AgentSessionProjectionService extends
131
132
  `[AgentSessionProjection] Found ${diffResources.length} files with diffs to display`
132
133
  );
133
134
  if (diffResources.length > 0) {
134
- await this.editorGroupsService.applyWorkingSet("empty", {
135
- preserveFocus: true
136
- });
137
- await this.commandService.executeCommand("_workbench.openMultiDiffEditor", {
138
- multiDiffSourceUri: session.resource.with({
135
+ await this.editorService.openEditor({
136
+ multiDiffSource: session.resource.with({
139
137
  scheme: session.resource.scheme + "-agent-session-projection"
140
138
  }),
141
- title: ( localize(5021, "{0} - All Changes", session.label)),
142
- resources: diffResources
143
- });
144
- this.logService.trace(`[AgentSessionProjection] Multi-diff editor opened successfully`);
139
+ resources: ( diffResources.map(dr => ({
140
+ original: {
141
+ resource: dr.originalUri
142
+ },
143
+ modified: {
144
+ resource: dr.modifiedUri
145
+ }
146
+ }))),
147
+ label: ( localize(5134, "{0} - All Changes", session.label))
148
+ }, MODAL_GROUP);
149
+ this.logService.trace(
150
+ `[AgentSessionProjection] Multi-diff editor opened successfully in modal view`
151
+ );
145
152
  const sessionKey = ( session.resource.toString());
146
153
  const newWorkingSet = this.editorGroupsService.saveWorkingSet(`agent-session-projection-${sessionKey}`);
147
154
  this._sessionWorkingSets.set(sessionKey, newWorkingSet);
@@ -176,19 +183,48 @@ let AgentSessionProjectionService = class AgentSessionProjectionService extends
176
183
  this.logService.trace(
177
184
  "[AgentSessionProjection] Session is in progress, opening chat without projection mode"
178
185
  );
186
+ if (this._isActive) {
187
+ await this.exitProjection({
188
+ startNewChat: false
189
+ });
190
+ }
179
191
  await this._openSessionInChatPanel(session);
180
192
  return;
181
193
  }
182
194
  let hasUndecidedChanges = true;
195
+ let editingSessionExists = true;
183
196
  if (session.providerType === AgentSessionProviders.Local) {
184
197
  const editingSession = this.chatEditingService.getEditingSession(session.resource);
185
- hasUndecidedChanges = editingSession?.entries.get().some(e => e.state.get() === ModifiedFileEntryState.Modified) ?? false;
186
- if (!hasUndecidedChanges) {
187
- this.logService.trace(
188
- "[AgentSessionProjection] Local session has no undecided changes, opening chat without projection mode"
189
- );
198
+ editingSessionExists = !!editingSession;
199
+ if (editingSession) {
200
+ hasUndecidedChanges = ( editingSession.entries.get().some(e => e.state.get() === ModifiedFileEntryState.Modified));
201
+ if (!hasUndecidedChanges) {
202
+ this.logService.trace(
203
+ "[AgentSessionProjection] Local session has no undecided changes, opening chat without projection mode"
204
+ );
205
+ }
206
+ } else {
207
+ hasUndecidedChanges = false;
208
+ this.logService.trace("[AgentSessionProjection] Local session has no editing session yet");
190
209
  }
191
210
  }
211
+ if (!hasUndecidedChanges && this._isActive && editingSessionExists) {
212
+ this.logService.trace(
213
+ "[AgentSessionProjection] Switching to session without changes while in projection mode, exiting projection"
214
+ );
215
+ await this.exitProjection({
216
+ startNewChat: false
217
+ });
218
+ await this._openSessionInChatPanel(session);
219
+ return;
220
+ }
221
+ if (!hasUndecidedChanges && this._isActive && !editingSessionExists) {
222
+ this.logService.trace(
223
+ "[AgentSessionProjection] Switching to session without editing session while in projection mode, staying in projection"
224
+ );
225
+ await this._openSessionInChatPanel(session);
226
+ return;
227
+ }
192
228
  if (hasUndecidedChanges) {
193
229
  if (!this._isActive && !this._preProjectionWorkingSet) {
194
230
  const visibleEditorsBefore = this.editorService.visibleEditors.length;
@@ -198,46 +234,49 @@ let AgentSessionProjectionService = class AgentSessionProjectionService extends
198
234
  visibleEditorsBefore
199
235
  });
200
236
  }
201
- if (this._isActive && this._activeSession) {
237
+ const isSwapping = this._isActive && this._activeSession;
238
+ if (isSwapping) {
239
+ this._isSwappingSessions = true;
202
240
  const previousSessionKey = ( this._activeSession.resource.toString());
203
241
  const previousWorkingSet = this.editorGroupsService.saveWorkingSet(`agent-session-projection-${previousSessionKey}`);
204
242
  this._sessionWorkingSets.set(previousSessionKey, previousWorkingSet);
205
243
  }
206
- let filesOpened = false;
207
- if (session.providerType === AgentSessionProviders.Local) {
208
- await this.editorGroupsService.applyWorkingSet("empty", {
209
- preserveFocus: true
210
- });
211
- filesOpened = true;
212
- } else {
213
- filesOpened = await this._openSessionFiles(session);
214
- }
215
- if (!filesOpened) {
216
- this.logService.trace(
217
- "[AgentSessionProjection] No files to display, opening chat without projection mode"
218
- );
219
- if (!this._isActive && this._preProjectionWorkingSet) {
220
- await this.editorGroupsService.applyWorkingSet(this._preProjectionWorkingSet);
221
- this.editorGroupsService.deleteWorkingSet(this._preProjectionWorkingSet);
222
- this._preProjectionWorkingSet = undefined;
223
- }
224
- } else {
225
- const wasActive = this._isActive;
226
- this._isActive = true;
227
- this._activeSession = session;
228
- this._inProjectionModeContextKey.set(true);
229
- this.layoutService.mainContainer.classList.add("agent-session-projection-active");
230
- if (!wasActive) {
231
- this._wasAuxiliaryBarMaximized = isAuxBarMaximized;
232
- this.logService.trace("[AgentSessionProjection] captured auxiliary bar maximized state", {
233
- wasAuxiliaryBarMaximized: this._wasAuxiliaryBarMaximized
234
- });
244
+ try {
245
+ let filesOpened = false;
246
+ if (session.providerType === AgentSessionProviders.Local) {
247
+ filesOpened = true;
248
+ } else {
249
+ filesOpened = await this._openSessionFiles(session);
235
250
  }
236
- this.agentTitleBarStatusService.enterSessionMode(session.resource, session.label);
237
- if (!wasActive) {
238
- this._onDidChangeProjectionMode.fire(true);
251
+ if (!filesOpened) {
252
+ this.logService.trace(
253
+ "[AgentSessionProjection] No files to display, opening chat without projection mode"
254
+ );
255
+ if (!this._isActive && this._preProjectionWorkingSet) {
256
+ await this.editorGroupsService.applyWorkingSet(this._preProjectionWorkingSet);
257
+ this.editorGroupsService.deleteWorkingSet(this._preProjectionWorkingSet);
258
+ this._preProjectionWorkingSet = undefined;
259
+ }
260
+ } else {
261
+ const wasActive = this._isActive;
262
+ this._isActive = true;
263
+ this._activeSession = session;
264
+ this._inProjectionModeContextKey.set(true);
265
+ this.layoutService.mainContainer.classList.add("agent-session-projection-active");
266
+ if (!wasActive) {
267
+ this._wasAuxiliaryBarMaximized = isAuxBarMaximized;
268
+ this.logService.trace("[AgentSessionProjection] captured auxiliary bar maximized state", {
269
+ wasAuxiliaryBarMaximized: this._wasAuxiliaryBarMaximized
270
+ });
271
+ }
272
+ this.agentTitleBarStatusService.enterSessionMode(session.resource, session.label);
273
+ if (!wasActive) {
274
+ this._onDidChangeProjectionMode.fire(true);
275
+ }
276
+ this._onDidChangeActiveSession.fire(session);
239
277
  }
240
- this._onDidChangeActiveSession.fire(session);
278
+ } finally {
279
+ this._isSwappingSessions = false;
241
280
  }
242
281
  }
243
282
  await this._openSessionInChatPanel(session);
@@ -73,6 +73,12 @@ let AgentSessionReadyContribution = class AgentSessionReadyContribution extends
73
73
  this._checkSession(currentWidget.viewModel?.sessionResource);
74
74
  }
75
75
  }));
76
+ this._register(this.agentSessionsService.model.onDidChangeSessions(() => {
77
+ const currentWidget = this.chatWidgetService.getAllWidgets().find(w => w.location === ChatAgentLocation.Chat);
78
+ if (currentWidget) {
79
+ this._checkSession(currentWidget.viewModel?.sessionResource);
80
+ }
81
+ }));
76
82
  }
77
83
  _watchWidget(widget) {
78
84
  this._widgetDisposables.clear();
@@ -85,6 +91,16 @@ let AgentSessionReadyContribution = class AgentSessionReadyContribution extends
85
91
  if (sessionResource?.toString() !== this._watchedSessionResource?.toString()) {
86
92
  this._suppressSessionReady = false;
87
93
  }
94
+ if (this.agentSessionProjectionService.isActive) {
95
+ const activeSession = this.agentSessionProjectionService.activeSession;
96
+ if (sessionResource && activeSession && ( sessionResource.toString()) !== ( activeSession.resource.toString())) {
97
+ const newSession = this.agentSessionsService.getSession(sessionResource);
98
+ if (newSession) {
99
+ this.agentSessionProjectionService.enterProjection(newSession);
100
+ }
101
+ }
102
+ return;
103
+ }
88
104
  this._updateSessionReadyState(sessionResource);
89
105
  }
90
106
  _clearEntriesWatcher() {
@@ -101,7 +117,6 @@ let AgentSessionReadyContribution = class AgentSessionReadyContribution extends
101
117
  }
102
118
  if (this.agentSessionProjectionService.isActive) {
103
119
  this._clearEntriesWatcher();
104
- this.agentTitleBarStatusService.exitSessionReadyMode();
105
120
  return;
106
121
  }
107
122
  if (!sessionResource) {
@@ -181,14 +196,14 @@ registerWorkbenchContribution2(
181
196
  );
182
197
  MenuRegistry.appendMenuItem(MenuId.CommandCenter, {
183
198
  submenu: MenuId.AgentsTitleBarControlMenu,
184
- title: ( localize(5022, "Agents")),
199
+ title: ( localize(5135, "Agents")),
185
200
  icon: Codicon.chatSparkle,
186
201
  when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(( ContextKeyExpr.has(`config.${ChatConfiguration.AgentStatusEnabled}`)), ( ContextKeyExpr.has(`config.${ChatConfiguration.UnifiedAgentsBar}`)))))),
187
202
  order: 10002
188
203
  });
189
204
  MenuRegistry.appendMenuItem(MenuId.TitleBar, {
190
205
  submenu: MenuId.ChatTitleBarMenu,
191
- title: ( localize(5023, "Chat")),
206
+ title: ( localize(5136, "Chat")),
192
207
  group: "navigation",
193
208
  icon: Codicon.chatSparkle,
194
209
  when: ( ContextKeyExpr.and(ChatContextKeys.supported, ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabled.negate()))), ( ContextKeyExpr.has(`config.${ChatConfiguration.AgentStatusEnabled}`)), ( ( ContextKeyExpr.has("config.window.commandCenter")).negate()))),
@@ -197,7 +212,7 @@ MenuRegistry.appendMenuItem(MenuId.TitleBar, {
197
212
  MenuRegistry.appendMenuItem(MenuId.AgentsTitleBarControlMenu, {
198
213
  command: {
199
214
  id: "workbench.action.chat.toggle",
200
- title: ( localize(5024, "Open Chat"))
215
+ title: ( localize(5137, "Open Chat"))
201
216
  },
202
217
  when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(( ContextKeyExpr.has(`config.${ChatConfiguration.AgentStatusEnabled}`)), ( ContextKeyExpr.has(`config.${ChatConfiguration.UnifiedAgentsBar}`)))))),
203
218
  group: "a_open",
@@ -206,7 +221,7 @@ MenuRegistry.appendMenuItem(MenuId.AgentsTitleBarControlMenu, {
206
221
  MenuRegistry.appendMenuItem(MenuId.AgentsTitleBarControlMenu, {
207
222
  command: {
208
223
  id: `toggle.${ChatConfiguration.UnifiedAgentsBar}`,
209
- title: ( localize(5025, "Agent Quick Input (Experimental)")),
224
+ title: ( localize(5138, "Agent Quick Input (Experimental)")),
210
225
  toggled: ( ContextKeyExpr.has(`config.${ChatConfiguration.UnifiedAgentsBar}`))
211
226
  },
212
227
  when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ProductQualityContext.notEqualsTo("stable")))),
@@ -20,6 +20,7 @@ import { IActionViewItemService } from "@codingame/monaco-vscode-api/vscode/vs/p
20
20
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
21
21
  import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
22
22
  import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
23
+ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
23
24
  /**
24
25
  * Agent Status Widget - renders agent status in the command center.
25
26
  *
@@ -47,6 +48,7 @@ export declare class AgentTitleBarStatusWidget extends BaseActionViewItem {
47
48
  private readonly configurationService;
48
49
  private readonly chatEntitlementService;
49
50
  private readonly chatWidgetService;
51
+ private readonly telemetryService;
50
52
  private _container;
51
53
  private readonly _dynamicDisposables;
52
54
  /** The currently displayed in-progress session (if any) - clicking pill opens this */
@@ -63,7 +65,7 @@ export declare class AgentTitleBarStatusWidget extends BaseActionViewItem {
63
65
  private readonly _commandCenterMenu;
64
66
  /** Menu for ChatTitleBarMenu items (same as chat controls dropdown) */
65
67
  private readonly _chatTitleBarMenu;
66
- constructor(action: IAction, options: IBaseActionViewItemOptions | undefined, instantiationService: IInstantiationService, agentTitleBarStatusService: IAgentTitleBarStatusService, hoverService: IHoverService, commandService: ICommandService, keybindingService: IKeybindingService, agentSessionsService: IAgentSessionsService, labelService: ILabelService, workspaceContextService: IWorkspaceContextService, environmentService: IBrowserWorkbenchEnvironmentService, editorGroupsService: IEditorGroupsService, editorService: IEditorService, menuService: IMenuService, contextKeyService: IContextKeyService, storageService: IStorageService, configurationService: IConfigurationService, chatEntitlementService: IChatEntitlementService, chatWidgetService: IChatWidgetService);
68
+ constructor(action: IAction, options: IBaseActionViewItemOptions | undefined, instantiationService: IInstantiationService, agentTitleBarStatusService: IAgentTitleBarStatusService, hoverService: IHoverService, commandService: ICommandService, keybindingService: IKeybindingService, agentSessionsService: IAgentSessionsService, labelService: ILabelService, workspaceContextService: IWorkspaceContextService, environmentService: IBrowserWorkbenchEnvironmentService, editorGroupsService: IEditorGroupsService, editorService: IEditorService, menuService: IMenuService, contextKeyService: IContextKeyService, storageService: IStorageService, configurationService: IConfigurationService, chatEntitlementService: IChatEntitlementService, chatWidgetService: IChatWidgetService, telemetryService: ITelemetryService);
67
69
  render(container: HTMLElement): void;
68
70
  setFocusable(_focusable: boolean): void;
69
71
  focus(): void;
@@ -48,6 +48,7 @@ import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbe
48
48
  import { ChatEntitlement } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
49
49
  import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
50
50
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
51
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
51
52
  import { isSessionInProgressStatus, ChatSessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
52
53
 
53
54
  registerCss(agenttitlebarstatuswidget);
@@ -57,7 +58,7 @@ const OPEN_CHAT_QUOTA_EXCEEDED_DIALOG = "workbench.action.chat.openQuotaExceeded
57
58
  const QUICK_OPEN_ACTION_ID = "workbench.action.quickOpenWithModes";
58
59
  const FILTER_STORAGE_KEY = "agentSessions.filterExcludes.agentsessionsviewerfiltersubmenu";
59
60
  const PREVIOUS_FILTER_STORAGE_KEY = "agentSessions.filterExcludes.previousUserFilter";
60
- const NLS_EXTENSION_HOST = ( localize(5026, "[Extension Development Host]"));
61
+ const NLS_EXTENSION_HOST = ( localize(5139, "[Extension Development Host]"));
61
62
  const TITLE_DIRTY = "● ";
62
63
  let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActionViewItem {
63
64
  constructor(
@@ -79,7 +80,8 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
79
80
  storageService,
80
81
  configurationService,
81
82
  chatEntitlementService,
82
- chatWidgetService
83
+ chatWidgetService,
84
+ telemetryService
83
85
  ) {
84
86
  super(undefined, action, options);
85
87
  this.instantiationService = instantiationService;
@@ -99,6 +101,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
99
101
  this.configurationService = configurationService;
100
102
  this.chatEntitlementService = chatEntitlementService;
101
103
  this.chatWidgetService = chatWidgetService;
104
+ this.telemetryService = telemetryService;
102
105
  this._dynamicDisposables = this._register(( new DisposableStore()));
103
106
  this._isRendering = false;
104
107
  this._badgeFilterAppliedByThisWindow = null;
@@ -282,7 +285,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
282
285
  pill.classList.add("needs-attention");
283
286
  }
284
287
  pill.setAttribute("role", "button");
285
- pill.setAttribute("aria-label", ( localize(5027, "Open Quick Access")));
288
+ pill.setAttribute("aria-label", ( localize(5140, "Open Quick Access")));
286
289
  pill.tabIndex = 0;
287
290
  this._firstFocusableElement = pill;
288
291
  this._container.appendChild(pill);
@@ -307,7 +310,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
307
310
  if (progressText) {
308
311
  label.classList.add("has-progress");
309
312
  }
310
- const hoverLabel = ( localize(5028, "Ask anything or describe what to build next"));
313
+ const hoverLabel = ( localize(5141, "Ask anything or describe what to build next"));
311
314
  label.textContent = defaultLabel;
312
315
  pill.appendChild(label);
313
316
  const sendIcon = $("span.agent-status-send");
@@ -331,10 +334,10 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
331
334
  const hoverDelegate = getDefaultHoverDelegate("mouse");
332
335
  disposables.add(this.hoverService.setupManagedHover(hoverDelegate, pill, () => {
333
336
  if (this._displayedSession) {
334
- return localize(5029, "Open session: {0}", this._displayedSession.label);
337
+ return localize(5142, "Open session: {0}", this._displayedSession.label);
335
338
  }
336
339
  const kbForTooltip = this.keybindingService.lookupKeybinding(UNIFIED_QUICK_ACCESS_ACTION_ID)?.getLabel();
337
- return kbForTooltip ? ( localize(5030, "Open Quick Access ({0})", kbForTooltip)) : ( localize(5031, "Open Quick Access"));
340
+ return kbForTooltip ? ( localize(5143, "Open Quick Access ({0})", kbForTooltip)) : ( localize(5144, "Open Quick Access"));
338
341
  }));
339
342
  disposables.add(addDisposableListener(pill, EventType.CLICK, e => {
340
343
  e.preventDefault();
@@ -367,13 +370,13 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
367
370
  this._renderSearchButton(disposables, pill);
368
371
  const titleLabel = $("span.agent-status-title");
369
372
  const sessionInfo = this.agentTitleBarStatusService.sessionInfo;
370
- titleLabel.textContent = sessionInfo?.title ?? ( localize(5032, "Agent Session Projection"));
373
+ titleLabel.textContent = sessionInfo?.title ?? ( localize(5145, "Agent Session Projection"));
371
374
  pill.appendChild(titleLabel);
372
375
  this._renderEscapeButton(disposables, pill);
373
376
  const hoverDelegate = getDefaultHoverDelegate("mouse");
374
377
  disposables.add(this.hoverService.setupManagedHover(hoverDelegate, pill, () => {
375
378
  const sessionInfo = this.agentTitleBarStatusService.sessionInfo;
376
- return sessionInfo ? ( localize(5033, "Agent Session Projection: {0}", sessionInfo.title)) : ( localize(5032, "Agent Session Projection"));
379
+ return sessionInfo ? ( localize(5146, "Agent Session Projection: {0}", sessionInfo.title)) : ( localize(5145, "Agent Session Projection"));
377
380
  }));
378
381
  const exitHandler = e => {
379
382
  e.preventDefault();
@@ -399,13 +402,13 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
399
402
  this._container.appendChild(pill);
400
403
  const titleLabel = $("span.agent-status-title");
401
404
  const sessionInfo = this.agentTitleBarStatusService.sessionInfo;
402
- titleLabel.textContent = sessionInfo?.title ?? ( localize(5034, "Review Changes"));
405
+ titleLabel.textContent = sessionInfo?.title ?? ( localize(5147, "Review Changes"));
403
406
  pill.appendChild(titleLabel);
404
407
  this._renderEnterButton(disposables, pill);
405
408
  const hoverDelegate = getDefaultHoverDelegate("mouse");
406
409
  disposables.add(this.hoverService.setupManagedHover(hoverDelegate, pill, () => {
407
410
  const sessionInfo = this.agentTitleBarStatusService.sessionInfo;
408
- return sessionInfo ? ( localize(5035, "Review changes from: {0}", sessionInfo.title)) : ( localize(5036, "Review agent session changes"));
411
+ return sessionInfo ? ( localize(5148, "Review changes from: {0}", sessionInfo.title)) : ( localize(5149, "Review agent session changes"));
409
412
  }));
410
413
  const enterHandler = e => {
411
414
  e.preventDefault();
@@ -484,7 +487,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
484
487
  const searchButton = $("span.agent-status-search");
485
488
  reset(searchButton, renderIcon(Codicon.searchSparkle));
486
489
  searchButton.setAttribute("role", "button");
487
- searchButton.setAttribute("aria-label", ( localize(5037, "Open Quick Open")));
490
+ searchButton.setAttribute("aria-label", ( localize(5150, "Open Quick Open")));
488
491
  searchButton.tabIndex = 0;
489
492
  if (!this._firstFocusableElement) {
490
493
  this._firstFocusableElement = searchButton;
@@ -492,7 +495,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
492
495
  container.appendChild(searchButton);
493
496
  const hoverDelegate = getDefaultHoverDelegate("mouse");
494
497
  const searchKb = this.keybindingService.lookupKeybinding(QUICK_OPEN_ACTION_ID)?.getLabel();
495
- const searchTooltip = searchKb ? ( localize(5038, "Go to File ({0})", searchKb)) : ( localize(5039, "Go to File"));
498
+ const searchTooltip = searchKb ? ( localize(5151, "Go to File ({0})", searchKb)) : ( localize(5152, "Go to File"));
496
499
  disposables.add(
497
500
  this.hoverService.setupManagedHover(hoverDelegate, searchButton, searchTooltip)
498
501
  );
@@ -534,17 +537,17 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
534
537
  const anonymous = this.chatEntitlementService.anonymous;
535
538
  const free = this.chatEntitlementService.entitlement === ChatEntitlement.Free;
536
539
  let primaryActionId = TOGGLE_CHAT_ACTION_ID;
537
- let primaryActionTitle = ( localize(5040, "Toggle Chat"));
540
+ let primaryActionTitle = ( localize(5153, "Toggle Chat"));
538
541
  let primaryActionIcon = Codicon.chatSparkle;
539
542
  if (chatSentiment.installed && !chatSentiment.disabled) {
540
543
  if (signedOut && !anonymous) {
541
544
  primaryActionId = CHAT_SETUP_ACTION_ID;
542
- primaryActionTitle = ( localize(5041, "Sign in to use AI features..."));
545
+ primaryActionTitle = ( localize(5154, "Sign in to use AI features..."));
543
546
  primaryActionIcon = Codicon.chatSparkleError;
544
547
  } else if (chatQuotaExceeded && free) {
545
548
  primaryActionId = OPEN_CHAT_QUOTA_EXCEEDED_DIALOG;
546
549
  primaryActionTitle = ( localize(
547
- 5042,
550
+ 5155,
548
551
  "GitHub Copilot Free plan chat messages quota reached. Click for details."
549
552
  ));
550
553
  primaryActionIcon = Codicon.chatSparkleWarning;
@@ -557,7 +560,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
557
560
  }, undefined, undefined, undefined, undefined);
558
561
  const dropdownAction = toAction({
559
562
  id: "agentStatus.sparkle.dropdown",
560
- label: "",
563
+ label: ( localize(5156, "More Actions")),
561
564
  run() {}
562
565
  });
563
566
  const sparkleDropdown = this.instantiationService.createInstance(
@@ -614,7 +617,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
614
617
  this._openSessionsWithFilter("unread");
615
618
  }
616
619
  }));
617
- const unreadTooltip = unreadSessions.length === 1 ? ( localize(5043, "{0} unread session", unreadSessions.length)) : ( localize(5044, "{0} unread sessions", unreadSessions.length));
620
+ const unreadTooltip = unreadSessions.length === 1 ? ( localize(5157, "{0} unread session", unreadSessions.length)) : ( localize(5158, "{0} unread sessions", unreadSessions.length));
618
621
  disposables.add(
619
622
  this.hoverService.setupManagedHover(hoverDelegate, unreadSection, unreadTooltip)
620
623
  );
@@ -656,7 +659,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
656
659
  this._openSessionsWithFilter("inProgress");
657
660
  }
658
661
  }));
659
- const activeTooltip = hasAttentionNeeded ? (attentionNeededSessions.length === 1 ? ( localize(5045, "{0} session needs input", attentionNeededSessions.length)) : ( localize(5046, "{0} sessions need input", attentionNeededSessions.length))) : (activeSessions.length === 1 ? ( localize(5047, "{0} session in progress", activeSessions.length)) : ( localize(5048, "{0} sessions in progress", activeSessions.length)));
662
+ const activeTooltip = hasAttentionNeeded ? (attentionNeededSessions.length === 1 ? ( localize(5159, "{0} session needs input", attentionNeededSessions.length)) : ( localize(5160, "{0} sessions need input", attentionNeededSessions.length))) : (activeSessions.length === 1 ? ( localize(5161, "{0} session in progress", activeSessions.length)) : ( localize(5162, "{0} sessions in progress", activeSessions.length)));
660
663
  disposables.add(
661
664
  this.hoverService.setupManagedHover(hoverDelegate, activeSection, activeTooltip)
662
665
  );
@@ -751,6 +754,11 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
751
754
  } = this._getCurrentFilterState();
752
755
  const currentFilter = this._getStoredFilter();
753
756
  const preservedProviders = currentFilter?.providers ?? [];
757
+ const isToggleOff = (filterType === "unread" && isFilteredToUnread) || (filterType === "inProgress" && isFilteredToInProgress);
758
+ this.telemetryService.publicLog2("agentStatusWidget.click", {
759
+ source: filterType,
760
+ action: isToggleOff ? "clearFilter" : "applyFilter"
761
+ });
754
762
  if (filterType === "unread") {
755
763
  if (isFilteredToUnread) {
756
764
  this._restoreUserFilter();
@@ -784,12 +792,12 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
784
792
  const escButton = $("span.agent-status-esc-button");
785
793
  escButton.textContent = "Esc";
786
794
  escButton.setAttribute("role", "button");
787
- escButton.setAttribute("aria-label", ( localize(5049, "Exit Agent Session Projection")));
795
+ escButton.setAttribute("aria-label", ( localize(5163, "Exit Agent Session Projection")));
788
796
  escButton.tabIndex = 0;
789
797
  parent.appendChild(escButton);
790
798
  const hoverDelegate = getDefaultHoverDelegate("mouse");
791
799
  disposables.add(
792
- this.hoverService.setupManagedHover(hoverDelegate, escButton, ( localize(5050, "Exit Agent Session Projection (Escape)")))
800
+ this.hoverService.setupManagedHover(hoverDelegate, escButton, ( localize(5164, "Exit Agent Session Projection (Escape)")))
793
801
  );
794
802
  disposables.add(addDisposableListener(escButton, EventType.MOUSE_DOWN, e => {
795
803
  e.preventDefault();
@@ -812,16 +820,16 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
812
820
  _renderEnterButton(disposables, parent) {
813
821
  const enterButton = $("span.agent-status-enter-button");
814
822
  const keybinding = this.keybindingService.lookupKeybinding(EnterAgentSessionProjectionAction.ID);
815
- enterButton.textContent = keybinding?.getLabel() ?? ( localize(5051, "Review"));
823
+ enterButton.textContent = keybinding?.getLabel() ?? ( localize(5165, "Review"));
816
824
  enterButton.setAttribute("role", "button");
817
- enterButton.setAttribute("aria-label", ( localize(5052, "Enter Agent Session Projection")));
825
+ enterButton.setAttribute("aria-label", ( localize(5166, "Enter Agent Session Projection")));
818
826
  enterButton.tabIndex = 0;
819
827
  if (!this._firstFocusableElement) {
820
828
  this._firstFocusableElement = enterButton;
821
829
  }
822
830
  parent.appendChild(enterButton);
823
831
  const hoverDelegate = getDefaultHoverDelegate("mouse");
824
- const hoverText = keybinding ? ( localize(5053, "Review Changes ({0})", keybinding.getLabel())) : ( localize(5054, "Review Changes"));
832
+ const hoverText = keybinding ? ( localize(5167, "Review Changes ({0})", keybinding.getLabel())) : ( localize(5168, "Review Changes"));
825
833
  disposables.add(this.hoverService.setupManagedHover(hoverDelegate, enterButton, hoverText));
826
834
  const enterProjection = e => {
827
835
  e.preventDefault();
@@ -844,8 +852,16 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
844
852
  }
845
853
  _handlePillClick() {
846
854
  if (this._displayedSession) {
855
+ this.telemetryService.publicLog2("agentStatusWidget.click", {
856
+ source: "pill",
857
+ action: "openSession"
858
+ });
847
859
  this.instantiationService.invokeFunction(openSession, this._displayedSession);
848
860
  } else {
861
+ this.telemetryService.publicLog2("agentStatusWidget.click", {
862
+ source: "pill",
863
+ action: "quickAccess"
864
+ });
849
865
  this.commandService.executeCommand(UNIFIED_QUICK_ACCESS_ACTION_ID);
850
866
  }
851
867
  }
@@ -888,13 +904,13 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
888
904
  }
889
905
  }
890
906
  if (!label) {
891
- label = ( localize(5055, "Ask anything..."));
907
+ label = ( localize(5169, "Ask anything..."));
892
908
  }
893
909
  if (prefix) {
894
- label = ( localize(5056, "{0} {1}", prefix, label));
910
+ label = ( localize(5170, "{0} {1}", prefix, label));
895
911
  }
896
912
  if (suffix) {
897
- label = ( localize(5057, "{0} {1}", label, suffix));
913
+ label = ( localize(5171, "{0} {1}", label, suffix));
898
914
  }
899
915
  return label.replaceAll(/\r\n|\r|\n/g, "⏎");
900
916
  }
@@ -913,7 +929,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
913
929
  };
914
930
  }
915
931
  };
916
- AgentTitleBarStatusWidget = ( __decorate([( __param(2, IInstantiationService)), ( __param(3, IAgentTitleBarStatusService)), ( __param(4, IHoverService)), ( __param(5, ICommandService)), ( __param(6, IKeybindingService)), ( __param(7, IAgentSessionsService)), ( __param(8, ILabelService)), ( __param(9, IWorkspaceContextService)), ( __param(10, IBrowserWorkbenchEnvironmentService)), ( __param(11, IEditorGroupsService)), ( __param(12, IEditorService)), ( __param(13, IMenuService)), ( __param(14, IContextKeyService)), ( __param(15, IStorageService)), ( __param(16, IConfigurationService)), ( __param(17, IChatEntitlementService)), ( __param(18, IChatWidgetService))], AgentTitleBarStatusWidget));
932
+ AgentTitleBarStatusWidget = ( __decorate([( __param(2, IInstantiationService)), ( __param(3, IAgentTitleBarStatusService)), ( __param(4, IHoverService)), ( __param(5, ICommandService)), ( __param(6, IKeybindingService)), ( __param(7, IAgentSessionsService)), ( __param(8, ILabelService)), ( __param(9, IWorkspaceContextService)), ( __param(10, IBrowserWorkbenchEnvironmentService)), ( __param(11, IEditorGroupsService)), ( __param(12, IEditorService)), ( __param(13, IMenuService)), ( __param(14, IContextKeyService)), ( __param(15, IStorageService)), ( __param(16, IConfigurationService)), ( __param(17, IChatEntitlementService)), ( __param(18, IChatWidgetService)), ( __param(19, ITelemetryService))], AgentTitleBarStatusWidget));
917
933
  let AgentTitleBarStatusRendering = class AgentTitleBarStatusRendering extends Disposable {
918
934
  static {
919
935
  this.ID = "workbench.contrib.agentStatus.rendering";
@@ -56,7 +56,7 @@
56
56
  flex: 1;
57
57
  min-width: 0;
58
58
  -webkit-app-region: no-drag;
59
- background-color: var(--vscode-commandCenter-background);
59
+ background-color: var(--vscode-agentStatusIndicator-background);
60
60
  border: 1px solid var(--vscode-commandCenter-border, transparent);
61
61
  }
62
62
 
@@ -218,7 +218,7 @@
218
218
  align-items: center;
219
219
  height: 22px;
220
220
  border-radius: 6px;
221
- background-color: var(--vscode-commandCenter-background);
221
+ background-color: var(--vscode-agentStatusIndicator-background);
222
222
  border: 1px solid var(--vscode-commandCenter-border, transparent);
223
223
  flex-shrink: 0;
224
224
  -webkit-app-region: no-drag;
@@ -247,9 +247,14 @@
247
247
  }
248
248
 
249
249
  .agent-status-badge-section.filtered {
250
+ color: var(--vscode-inputOption-activeForeground);
250
251
  background-color: var(--vscode-inputOption-activeBackground);
251
252
  }
252
253
 
254
+ .agent-status-badge-section.filtered .agent-status-icon .codicon {
255
+ color: var(--vscode-inputOption-activeForeground);
256
+ }
257
+
253
258
  .agent-status-badge-section.filtered:hover {
254
259
  filter: brightness(1.1);
255
260
  }