@codingame/monaco-vscode-chat-service-override 28.4.1 → 29.1.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 (339) hide show
  1. package/index.js +18 -12
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +300 -0
  4. package/vscode/src/vs/platform/agentHost/common/agentService.js +31 -0
  5. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +84 -0
  6. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +16 -0
  7. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +488 -0
  8. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +424 -0
  9. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +50 -0
  10. package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +202 -0
  11. package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +114 -0
  12. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +723 -0
  13. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +33 -0
  14. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +40 -0
  15. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +22 -0
  16. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +13 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  18. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
  19. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +29 -15
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +76 -10
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  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 +11 -11
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +1 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +162 -4
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +167 -4
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +1 -1
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +52 -20
  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.js +11 -11
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +82 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +195 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +5 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +97 -88
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +3 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +4 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +5 -3
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +78 -35
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +7 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +174 -170
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +7 -4
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +12 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +118 -52
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +7 -7
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +5 -1
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +13 -2
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +0 -3
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -10
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +9 -10
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +23 -25
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +341 -196
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +79 -7
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.d.ts +5 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +22 -10
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -14
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +85 -5
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +668 -214
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +10 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +18 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +306 -39
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +84 -4
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +651 -81
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -1
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -2
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +31 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +9 -20
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +11 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +7 -142
  89. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.d.ts +43 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +63 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +11 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +44 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +25 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +297 -123
  95. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +153 -31
  96. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +17 -1
  97. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +111 -171
  98. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +1 -3
  99. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +5 -30
  100. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -186
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +4 -2
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +31 -23
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +3 -7
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +4 -16
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +18 -2
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +112 -17
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +3 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +16 -27
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +1 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +41 -19
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +7 -1
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +35 -23
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +1 -8
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +8 -51
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +1 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +13 -8
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +29 -36
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +14 -7
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +5 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +79 -26
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.d.ts +19 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +125 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +11 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +113 -82
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +18 -7
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +54 -15
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +8 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +103 -28
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +2 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +48 -37
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +28 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +62 -20
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +21 -37
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +2 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +4 -3
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +17 -4
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +5 -5
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +4 -1
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +43 -5
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.d.ts +59 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +194 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -10
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +2 -1
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +8 -4
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +11 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +81 -50
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +32 -32
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +22 -15
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +2 -2
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +9 -7
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -26
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +0 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +19 -27
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +2 -4
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +105 -172
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +80 -65
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +56 -27
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  178. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.d.ts +16 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +70 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  181. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.d.ts +20 -0
  182. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +40 -0
  183. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.d.ts +31 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +53 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +33 -2
  186. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +21 -2
  187. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +362 -18
  188. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +15 -4
  189. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +90 -43
  190. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +35 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +146 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  195. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  196. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  197. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +10 -9
  198. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  199. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  200. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  201. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +1 -1
  202. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +33 -5
  203. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +3 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +200 -55
  205. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +7 -0
  206. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +90 -45
  207. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +4 -2
  208. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +21 -10
  209. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +22 -16
  210. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +4 -2
  211. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +28 -13
  212. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +20 -16
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +68 -5
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  219. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +1 -0
  221. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +57 -20
  222. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  223. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +21 -5
  224. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +171 -57
  225. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +7 -5
  226. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +206 -35
  227. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +4 -3
  228. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -7
  229. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +7 -1
  230. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +11 -3
  231. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +44 -22
  232. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +450 -301
  233. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +23 -0
  234. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +165 -0
  235. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +34 -20
  236. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +209 -144
  237. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.d.ts +20 -0
  238. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +205 -0
  239. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
  240. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +33 -0
  241. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +47 -0
  242. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +30 -0
  243. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  244. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  245. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  246. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +1 -1
  247. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +191 -159
  248. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +6 -7
  249. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +210 -233
  250. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +19 -26
  251. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +183 -193
  252. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +24 -0
  253. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +75 -0
  254. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  255. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -5
  256. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -0
  257. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +97 -35
  258. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  259. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +16 -0
  260. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +67 -0
  261. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +2 -2
  262. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +62 -23
  263. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  264. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  265. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  266. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  267. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  268. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +8 -8
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +3 -1
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +23 -9
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +1 -1
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +2 -2
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +3 -1
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +50 -9
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +3 -1
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +21 -7
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +20 -1
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +124 -1
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +20 -5
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +5 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +10 -7
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +2 -1
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +46 -31
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +18 -1
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +74 -37
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +24 -14
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +1 -1
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +3 -2
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +2 -0
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +5 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -2
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +66 -64
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +1 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -0
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +5 -2
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -2
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +390 -114
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +14 -0
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +21 -11
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +70 -51
  313. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +61 -51
  314. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +94 -76
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +19 -1
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +112 -21
  318. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +0 -53
  319. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +0 -219
  320. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +0 -89
  321. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +0 -251
  322. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +0 -123
  323. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +0 -278
  324. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +0 -76
  325. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +0 -299
  326. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +0 -67
  327. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +0 -263
  328. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +0 -85
  329. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +0 -397
  330. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -56
  331. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +0 -26
  332. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +0 -5
  333. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +0 -30
  334. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +0 -40
  335. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +0 -28
  336. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +0 -190
  337. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +0 -11
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +0 -16
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +0 -20
@@ -0,0 +1,59 @@
1
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
2
+ import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
3
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
4
+ import { IChatRequestViewModel, IChatResponseViewModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
5
+ import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
6
+ import { IChatImageCarouselService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatImageCarouselService.service";
7
+ export interface ICarouselImage {
8
+ readonly id: string;
9
+ readonly name: string;
10
+ readonly mimeType: string;
11
+ readonly data: Uint8Array;
12
+ readonly caption?: string;
13
+ }
14
+ export interface ICarouselSection {
15
+ readonly title: string;
16
+ readonly images: ICarouselImage[];
17
+ }
18
+ export interface ICarouselCollectionArgs {
19
+ readonly collection: {
20
+ readonly id: string;
21
+ readonly title: string;
22
+ readonly sections: ICarouselSection[];
23
+ };
24
+ readonly startIndex: number;
25
+ }
26
+ export interface ICarouselSingleImageArgs {
27
+ readonly name: string;
28
+ readonly mimeType: string;
29
+ readonly data: Uint8Array;
30
+ readonly title: string;
31
+ }
32
+ /**
33
+ * Collects all carousel image sections from chat items.
34
+ * Each request/response pair with images becomes one section containing
35
+ * user attachment images, tool invocation images, and inline reference images.
36
+ */
37
+ export declare function collectCarouselSections(items: (IChatRequestViewModel | IChatResponseViewModel)[], readFile: (uri: URI) => Promise<Uint8Array>): Promise<ICarouselSection[]>;
38
+ /**
39
+ * Finds the global index of the clicked image across all carousel sections.
40
+ * Tries URI string match, then parsed URI equality, then data buffer equality.
41
+ */
42
+ export declare function findClickedImageIndex(sections: ICarouselSection[], resource: URI, data?: Uint8Array): number;
43
+ /**
44
+ * Builds the collection arguments for the carousel command.
45
+ */
46
+ export declare function buildCollectionArgs(sections: ICarouselSection[], clickedGlobalIndex: number, sessionResource: URI): ICarouselCollectionArgs;
47
+ /**
48
+ * Builds the single-image arguments for the carousel command.
49
+ */
50
+ export declare function buildSingleImageArgs(resource: URI, data: Uint8Array): ICarouselSingleImageArgs;
51
+ export declare class ChatImageCarouselService implements IChatImageCarouselService {
52
+ private readonly chatWidgetService;
53
+ private readonly commandService;
54
+ private readonly fileService;
55
+ readonly _serviceBrand: undefined;
56
+ constructor(chatWidgetService: IChatWidgetService, commandService: ICommandService, fileService: IFileService);
57
+ openCarouselAtResource(resource: URI, data?: Uint8Array): Promise<void>;
58
+ private openSingleImage;
59
+ }
@@ -0,0 +1,194 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { getMediaMime } from '@codingame/monaco-vscode-api/vscode/vs/base/common/mime';
4
+ import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
5
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
6
+ import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
7
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
8
+ import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
9
+ import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
10
+ import { extractImagesFromChatResponse, extractImagesFromChatRequest } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/common/chatImageExtraction';
11
+ import { isRequestVM, isResponseVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
12
+ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
13
+
14
+ async function collectCarouselSections(items, readFile) {
15
+ const sections = [];
16
+ const requestMap = ( new Map());
17
+ for (const item of items) {
18
+ if (isRequestVM(item)) {
19
+ requestMap.set(item.id, item);
20
+ }
21
+ }
22
+ for (const item of items) {
23
+ if (!isResponseVM(item)) {
24
+ continue;
25
+ }
26
+ const {
27
+ title: extractedTitle,
28
+ images: responseImages
29
+ } = await extractImagesFromChatResponse(item, async uri => VSBuffer.wrap(await readFile(uri)));
30
+ const request = requestMap.get(item.requestId);
31
+ const requestImages = request ? extractImagesFromChatRequest(request) : [];
32
+ const allImages = [...requestImages, ...responseImages];
33
+ const dedupedImages = deduplicateConsecutiveImages(allImages);
34
+ if (dedupedImages.length > 0) {
35
+ sections.push({
36
+ title: request?.messageText ?? extractedTitle,
37
+ images: ( dedupedImages.map((
38
+ {
39
+ uri,
40
+ name,
41
+ mimeType,
42
+ data,
43
+ caption
44
+ }
45
+ ) => ({
46
+ id: ( uri.toString()),
47
+ name,
48
+ mimeType,
49
+ data: data.buffer,
50
+ caption
51
+ })))
52
+ });
53
+ }
54
+ }
55
+ const respondedRequestIds = ( new Set(( items.filter(isResponseVM).map(r => r.requestId))));
56
+ for (const item of items) {
57
+ if (!isRequestVM(item) || ( respondedRequestIds.has(item.id))) {
58
+ continue;
59
+ }
60
+ const requestImages = extractImagesFromChatRequest(item);
61
+ const dedupedImages = deduplicateConsecutiveImages(requestImages);
62
+ if (dedupedImages.length > 0) {
63
+ sections.push({
64
+ title: item.messageText,
65
+ images: ( dedupedImages.map((
66
+ {
67
+ uri,
68
+ name,
69
+ mimeType,
70
+ data,
71
+ caption
72
+ }
73
+ ) => ({
74
+ id: ( uri.toString()),
75
+ name,
76
+ mimeType,
77
+ data: data.buffer,
78
+ caption
79
+ })))
80
+ });
81
+ }
82
+ }
83
+ return sections;
84
+ }
85
+ function deduplicateConsecutiveImages(images) {
86
+ return images.filter((img, index) => {
87
+ if (index === 0) {
88
+ return true;
89
+ }
90
+ return !isEqual(images[index - 1].uri, img.uri);
91
+ });
92
+ }
93
+ function findClickedImageIndex(sections, resource, data) {
94
+ let globalOffset = 0;
95
+ for (const section of sections) {
96
+ const localIndex = findImageInListByUri(section.images, resource);
97
+ if (localIndex >= 0) {
98
+ return globalOffset + localIndex;
99
+ }
100
+ globalOffset += section.images.length;
101
+ }
102
+ if (!data) {
103
+ return -1;
104
+ }
105
+ globalOffset = 0;
106
+ for (const section of sections) {
107
+ const localIndex = findImageInListByData(section.images, data);
108
+ if (localIndex >= 0) {
109
+ return globalOffset + localIndex;
110
+ }
111
+ globalOffset += section.images.length;
112
+ }
113
+ return -1;
114
+ }
115
+ function findImageInListByUri(images, resource) {
116
+ const uriStr = ( resource.toString());
117
+ const byUri = images.findIndex(img => img.id === uriStr);
118
+ if (byUri >= 0) {
119
+ return byUri;
120
+ }
121
+ const byParsedUri = images.findIndex(img => {
122
+ try {
123
+ return isEqual(( URI.parse(img.id)), resource);
124
+ } catch {
125
+ return false;
126
+ }
127
+ });
128
+ if (byParsedUri >= 0) {
129
+ return byParsedUri;
130
+ }
131
+ return -1;
132
+ }
133
+ function findImageInListByData(images, data) {
134
+ const wrapped = VSBuffer.wrap(data);
135
+ return images.findIndex(img => VSBuffer.wrap(img.data).equals(wrapped));
136
+ }
137
+ function buildCollectionArgs(sections, clickedGlobalIndex, sessionResource) {
138
+ const collectionId = ( sessionResource.toString()) + "_carousel";
139
+ const defaultTitle = ( localize(6015, "Conversation Images"));
140
+ return {
141
+ collection: {
142
+ id: collectionId,
143
+ title: sections.length === 1 ? (sections[0].title || defaultTitle) : defaultTitle,
144
+ sections
145
+ },
146
+ startIndex: clickedGlobalIndex
147
+ };
148
+ }
149
+ function buildSingleImageArgs(resource, data) {
150
+ const name = resource.path.split("/").pop() ?? "image";
151
+ const mimeType = getMediaMime(resource.path) ?? getMediaMime(name) ?? "image/png";
152
+ return {
153
+ name,
154
+ mimeType,
155
+ data,
156
+ title: name
157
+ };
158
+ }
159
+ const CAROUSEL_COMMAND = "workbench.action.chat.openImageInCarousel";
160
+ let ChatImageCarouselService = class ChatImageCarouselService {
161
+ constructor(chatWidgetService, commandService, fileService) {
162
+ this.chatWidgetService = chatWidgetService;
163
+ this.commandService = commandService;
164
+ this.fileService = fileService;
165
+ }
166
+ async openCarouselAtResource(resource, data) {
167
+ const widget = this.chatWidgetService.lastFocusedWidget;
168
+ if (!widget?.viewModel) {
169
+ await this.openSingleImage(resource, data);
170
+ return;
171
+ }
172
+ const items = widget.viewModel.getItems().filter(item => isRequestVM(item) || isResponseVM(item));
173
+ const readFile = async uri => (await this.fileService.readFile(uri)).value.buffer;
174
+ const sections = await collectCarouselSections(items, readFile);
175
+ const clickedGlobalIndex = findClickedImageIndex(sections, resource, data);
176
+ if (clickedGlobalIndex === -1 || sections.length === 0) {
177
+ await this.openSingleImage(resource, data);
178
+ return;
179
+ }
180
+ const args = buildCollectionArgs(sections, clickedGlobalIndex, widget.viewModel.sessionResource);
181
+ await this.commandService.executeCommand(CAROUSEL_COMMAND, args);
182
+ }
183
+ async openSingleImage(resource, data) {
184
+ if (!data) {
185
+ const content = await this.fileService.readFile(resource);
186
+ data = content.value.buffer;
187
+ }
188
+ const args = buildSingleImageArgs(resource, data);
189
+ await this.commandService.executeCommand(CAROUSEL_COMMAND, args);
190
+ }
191
+ };
192
+ ChatImageCarouselService = ( __decorate([( __param(0, IChatWidgetService)), ( __param(1, ICommandService)), ( __param(2, IFileService))], ChatImageCarouselService));
193
+
194
+ export { ChatImageCarouselService, buildCollectionArgs, buildSingleImageArgs, collectCarouselSections, findClickedImageIndex };
@@ -10,7 +10,6 @@ import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platfor
10
10
  import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
11
11
  import { EditorPaneDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/editor';
12
12
  import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
13
- import { MODAL_GROUP } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService';
14
13
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
15
14
  import { ResourceContextKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
16
15
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
@@ -24,7 +23,7 @@ import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/th
24
23
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
25
24
  import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
26
25
 
27
- const languageModelsOpenSettingsIcon = registerIcon("language-models-open-settings", Codicon.goToFile, ( localize(5884, "Icon for open language models settings commands.")));
26
+ const languageModelsOpenSettingsIcon = registerIcon("language-models-open-settings", Codicon.goToFile, ( localize(6016, "Icon for open language models settings commands.")));
28
27
  const LANGUAGE_MODELS_ENTITLEMENT_PRECONDITION = ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
29
28
  ChatContextKeys.Entitlement.planFree,
30
29
  ChatContextKeys.Entitlement.planPro,
@@ -34,11 +33,11 @@ const LANGUAGE_MODELS_ENTITLEMENT_PRECONDITION = ( ContextKeyExpr.and(ChatContex
34
33
  ChatContextKeys.Entitlement.internal
35
34
  ))));
36
35
  ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
37
- EditorPaneDescriptor.create(ChatManagementEditor, ChatManagementEditor.ID, ( localize(5885, "Chat Management Editor"))),
36
+ EditorPaneDescriptor.create(ChatManagementEditor, ChatManagementEditor.ID, ( localize(6017, "Chat Management Editor"))),
38
37
  [( new SyncDescriptor(ChatManagementEditorInput))]
39
38
  );
40
39
  ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
41
- EditorPaneDescriptor.create(ModelsManagementEditor, ModelsManagementEditor.ID, ( localize(5886, "Models Management Editor"))),
40
+ EditorPaneDescriptor.create(ModelsManagementEditor, ModelsManagementEditor.ID, ( localize(6018, "Models Management Editor"))),
42
41
  [( new SyncDescriptor(ModelsManagementEditorInput))]
43
42
  );
44
43
  class ChatManagementEditorInputSerializer {
@@ -80,7 +79,7 @@ let ChatManagementActionsContribution = class ChatManagementActionsContribution
80
79
  constructor() {
81
80
  super({
82
81
  id: MANAGE_CHAT_COMMAND_ID,
83
- title: ( localize2(5887, "Manage Language Models")),
82
+ title: ( localize2(6019, "Manage Language Models")),
84
83
  category: CHAT_CATEGORY,
85
84
  precondition: LANGUAGE_MODELS_ENTITLEMENT_PRECONDITION,
86
85
  f1: true
@@ -90,7 +89,7 @@ let ChatManagementActionsContribution = class ChatManagementActionsContribution
90
89
  const editorService = accessor.get(IEditorService);
91
90
  return editorService.openEditor(( new ModelsManagementEditorInput()), {
92
91
  pinned: true
93
- }, MODAL_GROUP);
92
+ });
94
93
  }
95
94
  }));
96
95
  this._register(registerAction2(class extends Action2 {
@@ -103,7 +102,7 @@ let ChatManagementActionsContribution = class ChatManagementActionsContribution
103
102
  weight: KeybindingWeight.EditorContrib,
104
103
  when: CONTEXT_MODELS_SEARCH_FOCUS
105
104
  },
106
- title: ( localize2(5888, "Clear Models Search Results"))
105
+ title: ( localize2(6020, "Clear Models Search Results"))
107
106
  });
108
107
  }
109
108
  run(accessor) {
@@ -118,7 +117,7 @@ let ChatManagementActionsContribution = class ChatManagementActionsContribution
118
117
  constructor() {
119
118
  super({
120
119
  id: "workbench.action.openLanguageModelsJson",
121
- title: ( localize2(5889, "Open Language Models (JSON)")),
120
+ title: ( localize2(6021, "Open Language Models (JSON)")),
122
121
  category: CHAT_CATEGORY,
123
122
  precondition: LANGUAGE_MODELS_ENTITLEMENT_PRECONDITION,
124
123
  f1: true
@@ -136,7 +135,7 @@ let ChatManagementActionsContribution = class ChatManagementActionsContribution
136
135
  MenuRegistry.appendMenuItem(MenuId.EditorTitle, {
137
136
  command: {
138
137
  id: MANAGE_CHAT_COMMAND_ID,
139
- title: ( localize2(5887, "Manage Language Models")),
138
+ title: ( localize2(6019, "Manage Language Models")),
140
139
  icon: languageModelsOpenSettingsIcon
141
140
  },
142
141
  when: openModelsManagementEditorWhen,
@@ -147,7 +146,7 @@ let ChatManagementActionsContribution = class ChatManagementActionsContribution
147
146
  MenuRegistry.appendMenuItem(MenuId.EditorTitle, {
148
147
  command: {
149
148
  id: "workbench.action.openLanguageModelsJson",
150
- title: ( localize2(5889, "Open Language Models (JSON)")),
149
+ title: ( localize2(6021, "Open Language Models (JSON)")),
151
150
  icon: languageModelsOpenSettingsIcon
152
151
  },
153
152
  when: openLanguageModelsJsonWhen,
@@ -102,7 +102,7 @@ let ModelsManagementEditor = class ModelsManagementEditor extends EditorPane {
102
102
  }
103
103
  };
104
104
  ModelsManagementEditor = ModelsManagementEditor_1 = ( __decorate([( __param(1, ITelemetryService)), ( __param(2, IThemeService)), ( __param(3, IStorageService)), ( __param(4, IInstantiationService)), ( __param(5, IContextKeyService))], ModelsManagementEditor));
105
- const chatManagementSashBorder = registerColor("chatManagement.sashBorder", PANEL_BORDER, ( localize(5890, "The color of the Chat Management editor splitview sash border.")));
105
+ const chatManagementSashBorder = registerColor("chatManagement.sashBorder", PANEL_BORDER, ( localize(6022, "The color of the Chat Management editor splitview sash border.")));
106
106
  function isNewUser(chatEntitlementService) {
107
107
  return !chatEntitlementService.sentiment.installed || chatEntitlementService.entitlement === ChatEntitlement.Available;
108
108
  }
@@ -192,10 +192,10 @@ let ChatManagementEditor = class ChatManagementEditor extends EditorPane {
192
192
  renderSidebar(parent) {
193
193
  this.sections = [{
194
194
  id: CHAT_MANAGEMENT_SECTION_USAGE,
195
- label: ( localize(5891, "Usage"))
195
+ label: ( localize(6023, "Usage"))
196
196
  }, {
197
197
  id: CHAT_MANAGEMENT_SECTION_MODELS,
198
- label: ( localize(5892, "Models"))
198
+ label: ( localize(6024, "Models"))
199
199
  }];
200
200
  const delegate = ( new SectionItemDelegate());
201
201
  const renderer = ( new SectionItemRenderer());
@@ -209,7 +209,7 @@ let ChatManagementEditor = class ChatManagementEditor extends EditorPane {
209
209
  return element.label;
210
210
  },
211
211
  getWidgetAriaLabel() {
212
- return localize(5893, "Sections");
212
+ return localize(6025, "Sections");
213
213
  }
214
214
  },
215
215
  openOnSingleClick: true,
@@ -234,7 +234,7 @@ let ChatManagementEditor = class ChatManagementEditor extends EditorPane {
234
234
  const headerTitleContainer = append(this.headerContainer, $(".header-title-container"));
235
235
  const headerTitleWrapper = append(headerTitleContainer, $(".header-title-wrapper"));
236
236
  const tile = append(headerTitleWrapper, $(".ai-management-editor-title"));
237
- tile.textContent = ( localize(5894, "Copilot"));
237
+ tile.textContent = ( localize(6026, "Copilot"));
238
238
  this.planBadge = append(headerTitleWrapper, $(".plan-badge"));
239
239
  const titleButtonContainer = append(headerTitleContainer, $(".header-upgrade-button-container"));
240
240
  this.actionButton = this._register(( new Button(titleButtonContainer, {
@@ -289,7 +289,7 @@ let ChatManagementEditor = class ChatManagementEditor extends EditorPane {
289
289
  this.planBadge.style.display = "none";
290
290
  } else {
291
291
  this.planBadge.style.display = "";
292
- this.planBadge.textContent = ( localize(5895, "Free"));
292
+ this.planBadge.textContent = ( localize(6027, "Free"));
293
293
  }
294
294
  } else {
295
295
  this.planBadge.style.display = "";
@@ -303,25 +303,25 @@ let ChatManagementEditor = class ChatManagementEditor extends EditorPane {
303
303
  let commandId;
304
304
  if (shouldUpgrade && !isFreePlan && !anonymousUser) {
305
305
  if (this.chatEntitlementService.entitlement === ChatEntitlement.Pro) {
306
- buttonLabel = ( localize(5896, "Upgrade to Copilot Pro+"));
306
+ buttonLabel = ( localize(6028, "Upgrade to Copilot Pro+"));
307
307
  } else {
308
- buttonLabel = ( localize(5897, "Upgrade to Copilot Pro"));
308
+ buttonLabel = ( localize(6029, "Upgrade to Copilot Pro"));
309
309
  }
310
310
  commandId = "workbench.action.chat.upgradePlan";
311
311
  } else if (shouldUpgrade && (isFreePlan || anonymousUser)) {
312
- buttonLabel = ( localize(5898, "Upgrade to Copilot Pro"));
312
+ buttonLabel = ( localize(6030, "Upgrade to Copilot Pro"));
313
313
  commandId = "workbench.action.chat.upgradePlan";
314
314
  } else if (newUser) {
315
- buttonLabel = ( localize(5899, "Use AI Features"));
315
+ buttonLabel = ( localize(6031, "Use AI Features"));
316
316
  commandId = newUser && anonymousUser ? "workbench.action.chat.triggerSetupAnonymousWithoutDialog" : "workbench.action.chat.triggerSetup";
317
317
  } else if (anonymousUser) {
318
- buttonLabel = ( localize(5900, "Enable more AI Features"));
318
+ buttonLabel = ( localize(6032, "Enable more AI Features"));
319
319
  commandId = "workbench.action.chat.triggerSetup";
320
320
  } else if (disabled) {
321
- buttonLabel = ( localize(5901, "Enable AI Features"));
321
+ buttonLabel = ( localize(6033, "Enable AI Features"));
322
322
  commandId = "workbench.action.chat.triggerSetup";
323
323
  } else {
324
- buttonLabel = ( localize(5902, "Sign in to use AI Features"));
324
+ buttonLabel = ( localize(6034, "Sign in to use AI Features"));
325
325
  commandId = "workbench.action.chat.triggerSetup";
326
326
  }
327
327
  this.actionButton.label = buttonLabel;
@@ -1,5 +1,5 @@
1
1
  import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/themables";
2
- import { IUntypedEditorInput } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
2
+ import { EditorInputCapabilities, IUntypedEditorInput } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
3
3
  import { EditorInput } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor/editorInput";
4
4
  export declare const CHAT_MANAGEMENT_SECTION_USAGE = "usage";
5
5
  export declare const CHAT_MANAGEMENT_SECTION_MODELS = "models";
@@ -16,6 +16,7 @@ export declare class ChatManagementEditorInput extends EditorInput {
16
16
  export declare class ModelsManagementEditorInput extends EditorInput {
17
17
  static readonly ID: string;
18
18
  readonly resource: undefined;
19
+ get capabilities(): EditorInputCapabilities;
19
20
  constructor();
20
21
  matches(otherInput: EditorInput | IUntypedEditorInput): boolean;
21
22
  get typeId(): string;
@@ -2,10 +2,11 @@
2
2
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
3
3
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
4
4
  import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/iconRegistry';
5
+ import { EditorInputCapabilities } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
5
6
  import { EditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor/editorInput';
6
7
 
7
- const ChatManagementEditorIcon = registerIcon("ai-management-editor-label-icon", Codicon.copilot, ( localize(5903, "Icon of the AI Management editor label.")));
8
- const ModelsManagementEditorIcon = registerIcon("models-management-editor-label-icon", Codicon.settings, ( localize(5904, "Icon of the Models Management editor label.")));
8
+ const ChatManagementEditorIcon = registerIcon("ai-management-editor-label-icon", Codicon.copilot, ( localize(6035, "Icon of the AI Management editor label.")));
9
+ const ModelsManagementEditorIcon = registerIcon("models-management-editor-label-icon", Codicon.settings, ( localize(6036, "Icon of the Models Management editor label.")));
9
10
  const CHAT_MANAGEMENT_SECTION_USAGE = "usage";
10
11
  const CHAT_MANAGEMENT_SECTION_MODELS = "models";
11
12
  class ChatManagementEditorInput extends EditorInput {
@@ -23,7 +24,7 @@ class ChatManagementEditorInput extends EditorInput {
23
24
  return ChatManagementEditorInput.ID;
24
25
  }
25
26
  getName() {
26
- return localize(5905, "Manage Copilot");
27
+ return localize(6037, "Manage Copilot");
27
28
  }
28
29
  getIcon() {
29
30
  return ChatManagementEditorIcon;
@@ -36,6 +37,9 @@ class ModelsManagementEditorInput extends EditorInput {
36
37
  static {
37
38
  this.ID = "workbench.input.modelsManagement";
38
39
  }
40
+ get capabilities() {
41
+ return super.capabilities | EditorInputCapabilities.Singleton | EditorInputCapabilities.RequiresModal;
42
+ }
39
43
  constructor() {
40
44
  super();
41
45
  this.resource = undefined;
@@ -47,7 +51,7 @@ class ModelsManagementEditorInput extends EditorInput {
47
51
  return ModelsManagementEditorInput.ID;
48
52
  }
49
53
  getName() {
50
- return localize(5906, "Language Models");
54
+ return localize(6038, "Language Models");
51
55
  }
52
56
  getIcon() {
53
57
  return ModelsManagementEditorIcon;
@@ -261,7 +261,7 @@ let ChatModelsViewModel = class ChatModelsViewModel extends Disposable {
261
261
  group: {
262
262
  type: "group",
263
263
  id: "visible",
264
- label: ( localize(5907, "Visible")),
264
+ label: ( localize(6039, "Visible")),
265
265
  templateId: GROUP_ENTRY_TEMPLATE_ID,
266
266
  collapsed: ( this.collapsedGroups.has("visible"))
267
267
  },
@@ -271,7 +271,7 @@ let ChatModelsViewModel = class ChatModelsViewModel extends Disposable {
271
271
  group: {
272
272
  type: "group",
273
273
  id: "hidden",
274
- label: ( localize(5908, "Hidden")),
274
+ label: ( localize(6040, "Hidden")),
275
275
  templateId: GROUP_ENTRY_TEMPLATE_ID,
276
276
  collapsed: ( this.collapsedGroups.has("hidden"))
277
277
  },
@@ -20,6 +20,8 @@ export declare class ChatModelsWidget extends Disposable {
20
20
  private readonly commandService;
21
21
  private static NUM_INSTANCES;
22
22
  readonly element: HTMLElement;
23
+ private readonly _onDidChangeItemCount;
24
+ readonly onDidChangeItemCount: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<number>;
23
25
  private searchWidget;
24
26
  private searchActionsContainer;
25
27
  private table;
@@ -42,4 +44,13 @@ export declare class ChatModelsWidget extends Disposable {
42
44
  search(filter: string): void;
43
45
  clearSearch(): void;
44
46
  render(): void;
47
+ /**
48
+ * Gets the total model count (excluding vendor/group/status headers).
49
+ */
50
+ get itemCount(): number;
51
+ /**
52
+ * Re-fires the current item count. Call after subscribing to onDidChangeItemCount
53
+ * to ensure the subscriber receives the latest count.
54
+ */
55
+ fireItemCount(): void;
45
56
  }