@codingame/monaco-vscode-chat-service-override 29.1.0 → 30.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 (258) hide show
  1. package/index.js +5 -2
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +37 -39
  4. package/vscode/src/vs/platform/agentHost/common/agentService.js +3 -1
  5. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +11 -1
  6. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +4 -4
  7. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +132 -42
  8. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +54 -0
  9. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +15 -0
  10. package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +5 -1
  11. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +188 -51
  12. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +7 -6
  13. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +1 -1
  14. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +7 -2
  15. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.d.ts +6 -0
  16. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +14 -0
  17. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +18 -0
  18. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +13 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  20. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +37 -16
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +10 -8
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +37 -3
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +6 -6
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +20 -11
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +14 -14
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +18 -13
  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.js +10 -10
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.d.ts +36 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +482 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +10 -2
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +43 -10
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +74 -76
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +27 -35
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.d.ts +5 -8
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +86 -80
  61. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +3 -2
  62. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +38 -4
  63. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
  64. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +38 -18
  65. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +427 -167
  66. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +37 -37
  67. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +15 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +108 -37
  69. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +8 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +28 -2
  71. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +2 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +11 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +1 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +3 -20
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +4 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +65 -68
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +2 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +1 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +64 -51
  80. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +288 -195
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +21 -21
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +12 -12
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +21 -21
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +1 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +3 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +5 -2
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +10 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +4 -2
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +19 -7
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +3 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +54 -12
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -8
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +14 -14
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +50 -50
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +3 -1
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +86 -17
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -26
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +65 -65
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +24 -16
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +17 -17
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -6
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  137. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  138. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  139. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  140. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  141. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +3 -6
  143. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +54 -39
  144. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +16 -16
  145. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +24 -3
  146. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +72 -14
  147. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  148. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
  149. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  150. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  151. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileContributions.js +181 -0
  152. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +3 -3
  153. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  154. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  155. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  156. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  157. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +8 -6
  158. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +37 -37
  159. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +28 -23
  160. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +6 -6
  161. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +7 -7
  162. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.d.ts +12 -0
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.js +62 -0
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +1 -10
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +148 -88
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  172. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  173. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +1 -0
  174. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +16 -9
  175. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  176. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +8 -0
  177. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +158 -0
  178. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +8 -3
  179. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +155 -76
  180. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +1 -2
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +5 -4
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +5 -1
  183. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -6
  184. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +31 -1
  185. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +228 -1
  186. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +66 -0
  187. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +190 -0
  188. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +25 -3
  189. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +130 -107
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +1 -0
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +19 -18
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +2 -18
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +169 -266
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +12 -10
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +149 -206
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -3
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +27 -22
  201. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +20 -8
  202. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +183 -43
  203. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  204. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +1 -1
  205. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +2 -3
  206. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  207. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +21 -21
  208. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  209. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -11
  210. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  211. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  212. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +11 -11
  213. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
  214. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  215. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  216. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +2 -2
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +3 -1
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -2
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +3 -2
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +1 -0
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +1 -0
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +1 -3
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +26 -23
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +4 -9
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -6
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +9 -9
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -50
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +2 -2
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +66 -5
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +239 -48
  248. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +0 -14
  249. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +0 -208
  250. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +0 -22
  251. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +0 -637
  252. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +0 -24
  253. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +0 -384
  254. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +0 -33
  255. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +0 -47
  256. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +0 -30
  257. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +0 -55
  258. /package/vscode/src/vs/workbench/contrib/chat/{common → browser}/promptSyntax/promptFileContributions.d.ts +0 -0
@@ -52,8 +52,6 @@ const TOGGLE_CHAT_ACTION_ID = "workbench.action.chat.toggle";
52
52
  const CHAT_SETUP_ACTION_ID = "workbench.action.chat.triggerSetup";
53
53
  const OPEN_CHAT_QUOTA_EXCEEDED_DIALOG = "workbench.action.chat.openQuotaExceededDialog";
54
54
  const QUICK_OPEN_ACTION_ID = "workbench.action.quickOpenWithModes";
55
- const SCM_ACTIVE_REPOSITORY_NAME_CONTEXT_KEY = "scmActiveRepositoryName";
56
- const SCM_ACTIVE_REPOSITORY_BRANCH_NAME_CONTEXT_KEY = "scmActiveRepositoryBranchName";
57
55
  const FILTER_STORAGE_KEY = "agentSessions.filterExcludes.agentsessionsviewerfiltersubmenu";
58
56
  const PREVIOUS_FILTER_STORAGE_KEY = "agentSessions.filterExcludes.previousUserFilter";
59
57
  function shouldForceHiddenAgentStatus(configurationService) {
@@ -127,13 +125,6 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
127
125
  this.menuService.createMenu(MenuId.ChatTitleBarMenu, this.contextKeyService)
128
126
  );
129
127
  this._windowTitle = this._register(this.instantiationService.createInstance(WindowTitle, mainWindow));
130
- this._windowTitle.registerVariables([{
131
- name: "activeRepositoryName",
132
- contextKey: SCM_ACTIVE_REPOSITORY_NAME_CONTEXT_KEY
133
- }, {
134
- name: "activeRepositoryBranchName",
135
- contextKey: SCM_ACTIVE_REPOSITORY_BRANCH_NAME_CONTEXT_KEY
136
- }]);
137
128
  this._register(this.agentTitleBarStatusService.onDidChangeMode(() => {
138
129
  this._render();
139
130
  }));
@@ -171,7 +162,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
171
162
  this._render();
172
163
  }));
173
164
  this._register(this.configurationService.onDidChangeConfiguration(e => {
174
- if (e.affectsConfiguration(ChatConfiguration.AgentStatusEnabled) || e.affectsConfiguration(ChatConfiguration.UnifiedAgentsBar) || e.affectsConfiguration(ChatConfiguration.ChatViewSessionsEnabled) || e.affectsConfiguration(ChatConfiguration.AIDisabled) || e.affectsConfiguration(ChatConfiguration.ChatCustomizationMenuEnabled) || e.affectsConfiguration("disableAICustomizations") || e.affectsConfiguration("workbench.disableAICustomizations")) {
165
+ if (e.affectsConfiguration(ChatConfiguration.AgentStatusEnabled) || e.affectsConfiguration(ChatConfiguration.UnifiedAgentsBar) || e.affectsConfiguration(ChatConfiguration.ChatViewSessionsEnabled) || e.affectsConfiguration(ChatConfiguration.AIDisabled) || e.affectsConfiguration(ChatConfiguration.ChatCustomizationMenuEnabled) || e.affectsConfiguration(ChatConfiguration.SignInTitleBarEnabled) || e.affectsConfiguration("disableAICustomizations") || e.affectsConfiguration("workbench.disableAICustomizations")) {
175
166
  this._lastRenderState = undefined;
176
167
  this._render();
177
168
  }
@@ -197,7 +188,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
197
188
  this._container = container;
198
189
  container.classList.add("agent-status-container");
199
190
  container.setAttribute("role", "toolbar");
200
- container.setAttribute("aria-label", ( localize(5207, "Agent Status")));
191
+ container.setAttribute("aria-label", ( localize(5234, "Agent Status")));
201
192
  container.tabIndex = -1;
202
193
  this._render();
203
194
  }
@@ -379,7 +370,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
379
370
  }
380
371
  const inputArea = $("div.agent-status-input-area");
381
372
  inputArea.setAttribute("role", "button");
382
- inputArea.setAttribute("aria-label", ( localize(5208, "Open Quick Access")));
373
+ inputArea.setAttribute("aria-label", ( localize(5235, "Open Quick Access")));
383
374
  inputArea.tabIndex = 0;
384
375
  this._rovingElements.push(inputArea);
385
376
  pill.appendChild(inputArea);
@@ -401,7 +392,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
401
392
  const hoverDelegate = getDefaultHoverDelegate("mouse");
402
393
  disposables.add(this.hoverService.setupManagedHover(hoverDelegate, inputArea, () => {
403
394
  const kbForTooltip = this.keybindingService.lookupKeybinding(UNIFIED_QUICK_ACCESS_ACTION_ID)?.getLabel();
404
- return kbForTooltip ? ( localize(5209, "Open Quick Access ({0})", kbForTooltip)) : ( localize(5210, "Open Quick Access"));
395
+ return kbForTooltip ? ( localize(5236, "Open Quick Access ({0})", kbForTooltip)) : ( localize(5237, "Open Quick Access"));
405
396
  }));
406
397
  disposables.add(addDisposableListener(inputArea, EventType.CLICK, e => {
407
398
  e.preventDefault();
@@ -446,13 +437,13 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
446
437
  this._renderSearchButton(disposables, pill);
447
438
  const titleLabel = $("span.agent-status-title");
448
439
  const sessionInfo = this.agentTitleBarStatusService.sessionInfo;
449
- titleLabel.textContent = sessionInfo?.title ?? ( localize(5211, "Agent Session Projection"));
440
+ titleLabel.textContent = sessionInfo?.title ?? ( localize(5238, "Agent Session Projection"));
450
441
  pill.appendChild(titleLabel);
451
442
  this._renderEscapeButton(disposables, pill);
452
443
  const hoverDelegate = getDefaultHoverDelegate("mouse");
453
444
  disposables.add(this.hoverService.setupManagedHover(hoverDelegate, pill, () => {
454
445
  const sessionInfo = this.agentTitleBarStatusService.sessionInfo;
455
- return sessionInfo ? ( localize(5212, "Agent Session Projection: {0}", sessionInfo.title)) : ( localize(5211, "Agent Session Projection"));
446
+ return sessionInfo ? ( localize(5239, "Agent Session Projection: {0}", sessionInfo.title)) : ( localize(5238, "Agent Session Projection"));
456
447
  }));
457
448
  const exitHandler = e => {
458
449
  e.preventDefault();
@@ -476,13 +467,13 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
476
467
  this._container.appendChild(pill);
477
468
  const titleLabel = $("span.agent-status-title");
478
469
  const sessionInfo = this.agentTitleBarStatusService.sessionInfo;
479
- titleLabel.textContent = sessionInfo?.title ?? ( localize(5213, "Review Changes"));
470
+ titleLabel.textContent = sessionInfo?.title ?? ( localize(5240, "Review Changes"));
480
471
  pill.appendChild(titleLabel);
481
472
  this._renderEnterButton(disposables, pill);
482
473
  const hoverDelegate = getDefaultHoverDelegate("mouse");
483
474
  disposables.add(this.hoverService.setupManagedHover(hoverDelegate, pill, () => {
484
475
  const sessionInfo = this.agentTitleBarStatusService.sessionInfo;
485
- return sessionInfo ? ( localize(5214, "Review changes from: {0}", sessionInfo.title)) : ( localize(5215, "Review agent session changes"));
476
+ return sessionInfo ? ( localize(5241, "Review changes from: {0}", sessionInfo.title)) : ( localize(5242, "Review agent session changes"));
486
477
  }));
487
478
  const enterHandler = e => {
488
479
  e.preventDefault();
@@ -554,13 +545,13 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
554
545
  const searchButton = $("span.agent-status-search");
555
546
  reset(searchButton, renderIcon(Codicon.searchSparkle));
556
547
  searchButton.setAttribute("role", "button");
557
- searchButton.setAttribute("aria-label", ( localize(5216, "Open Quick Open")));
548
+ searchButton.setAttribute("aria-label", ( localize(5243, "Open Quick Open")));
558
549
  searchButton.tabIndex = 0;
559
550
  this._rovingElements.push(searchButton);
560
551
  container.appendChild(searchButton);
561
552
  const hoverDelegate = getDefaultHoverDelegate("mouse");
562
553
  const searchKb = this.keybindingService.lookupKeybinding(QUICK_OPEN_ACTION_ID)?.getLabel();
563
- const searchTooltip = searchKb ? ( localize(5217, "Go to File ({0})", searchKb)) : ( localize(5218, "Go to File"));
554
+ const searchTooltip = searchKb ? ( localize(5244, "Go to File ({0})", searchKb)) : ( localize(5245, "Go to File"));
564
555
  disposables.add(
565
556
  this.hoverService.setupManagedHover(hoverDelegate, searchButton, searchTooltip)
566
557
  );
@@ -609,17 +600,18 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
609
600
  const anonymous = this.chatEntitlementService.anonymous;
610
601
  const free = this.chatEntitlementService.entitlement === ChatEntitlement.Free;
611
602
  let primaryActionId = TOGGLE_CHAT_ACTION_ID;
612
- let primaryActionTitle = ( localize(5219, "Toggle Chat"));
603
+ let primaryActionTitle = ( localize(5246, "Toggle Chat"));
613
604
  let primaryActionIcon = Codicon.chatSparkle;
605
+ const signInTitleBarEnabled = this.configurationService.getValue(ChatConfiguration.SignInTitleBarEnabled);
614
606
  if (chatSentiment.installed && !chatSentiment.disabled) {
615
- if (signedOut && !anonymous) {
607
+ if (signedOut && !anonymous && !signInTitleBarEnabled) {
616
608
  primaryActionId = CHAT_SETUP_ACTION_ID;
617
- primaryActionTitle = ( localize(5220, "Sign in to use AI features..."));
609
+ primaryActionTitle = ( localize(5247, "Sign in to use AI features..."));
618
610
  primaryActionIcon = Codicon.chatSparkleError;
619
611
  } else if (chatQuotaExceeded && free) {
620
612
  primaryActionId = OPEN_CHAT_QUOTA_EXCEEDED_DIALOG;
621
613
  primaryActionTitle = ( localize(
622
- 5221,
614
+ 5248,
623
615
  "GitHub Copilot Free plan chat messages quota reached. Click for details."
624
616
  ));
625
617
  primaryActionIcon = Codicon.chatSparkleWarning;
@@ -632,7 +624,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
632
624
  }, undefined, undefined, undefined, undefined);
633
625
  const dropdownAction = toAction({
634
626
  id: "agentStatus.sparkle.dropdown",
635
- label: ( localize(5222, "More Actions")),
627
+ label: ( localize(5249, "More Actions")),
636
628
  run() {}
637
629
  });
638
630
  const sparkleDropdown = this.instantiationService.createInstance(
@@ -709,7 +701,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
709
701
  this._openSessionsWithFilter("unread");
710
702
  }
711
703
  }));
712
- const unreadTooltip = unreadSessions.length === 1 ? ( localize(5223, "{0} unread session", unreadSessions.length)) : ( localize(5224, "{0} unread sessions", unreadSessions.length));
704
+ const unreadTooltip = unreadSessions.length === 1 ? ( localize(5250, "{0} unread session", unreadSessions.length)) : ( localize(5251, "{0} unread sessions", unreadSessions.length));
713
705
  disposables.add(
714
706
  this.hoverService.setupManagedHover(hoverDelegate, unreadSection, unreadTooltip)
715
707
  );
@@ -742,7 +734,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
742
734
  this._openSessionsWithFilter("needsInput");
743
735
  }
744
736
  }));
745
- const needsInputTooltip = attentionNeededSessions.length === 1 ? ( localize(5225, "{0} session needs input", attentionNeededSessions.length)) : ( localize(5226, "{0} sessions need input", attentionNeededSessions.length));
737
+ const needsInputTooltip = attentionNeededSessions.length === 1 ? ( localize(5252, "{0} session needs input", attentionNeededSessions.length)) : ( localize(5253, "{0} sessions need input", attentionNeededSessions.length));
746
738
  disposables.add(
747
739
  this.hoverService.setupManagedHover(hoverDelegate, needsInputSection, needsInputTooltip)
748
740
  );
@@ -776,7 +768,7 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
776
768
  this._openSessionsWithFilter("inProgress");
777
769
  }
778
770
  }));
779
- const activeTooltip = inProgressOnly.length === 1 ? ( localize(5227, "{0} session in progress", inProgressOnly.length)) : ( localize(5228, "{0} sessions in progress", inProgressOnly.length));
771
+ const activeTooltip = inProgressOnly.length === 1 ? ( localize(5254, "{0} session in progress", inProgressOnly.length)) : ( localize(5255, "{0} sessions in progress", inProgressOnly.length));
780
772
  disposables.add(
781
773
  this.hoverService.setupManagedHover(hoverDelegate, activeSection, activeTooltip)
782
774
  );
@@ -955,13 +947,13 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
955
947
  const escButton = $("span.agent-status-esc-button");
956
948
  escButton.textContent = "Esc";
957
949
  escButton.setAttribute("role", "button");
958
- escButton.setAttribute("aria-label", ( localize(5229, "Exit Agent Session Projection")));
950
+ escButton.setAttribute("aria-label", ( localize(5256, "Exit Agent Session Projection")));
959
951
  escButton.tabIndex = 0;
960
952
  this._rovingElements.push(escButton);
961
953
  parent.appendChild(escButton);
962
954
  const hoverDelegate = getDefaultHoverDelegate("mouse");
963
955
  disposables.add(
964
- this.hoverService.setupManagedHover(hoverDelegate, escButton, ( localize(5230, "Exit Agent Session Projection (Escape)")))
956
+ this.hoverService.setupManagedHover(hoverDelegate, escButton, ( localize(5257, "Exit Agent Session Projection (Escape)")))
965
957
  );
966
958
  disposables.add(addDisposableListener(escButton, EventType.MOUSE_DOWN, e => {
967
959
  e.preventDefault();
@@ -984,14 +976,14 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
984
976
  _renderEnterButton(disposables, parent) {
985
977
  const enterButton = $("span.agent-status-enter-button");
986
978
  const keybinding = this.keybindingService.lookupKeybinding(EnterAgentSessionProjectionAction.ID);
987
- enterButton.textContent = keybinding?.getLabel() ?? ( localize(5231, "Review"));
979
+ enterButton.textContent = keybinding?.getLabel() ?? ( localize(5258, "Review"));
988
980
  enterButton.setAttribute("role", "button");
989
- enterButton.setAttribute("aria-label", ( localize(5232, "Enter Agent Session Projection")));
981
+ enterButton.setAttribute("aria-label", ( localize(5259, "Enter Agent Session Projection")));
990
982
  enterButton.tabIndex = 0;
991
983
  this._rovingElements.push(enterButton);
992
984
  parent.appendChild(enterButton);
993
985
  const hoverDelegate = getDefaultHoverDelegate("mouse");
994
- const hoverText = keybinding ? ( localize(5233, "Review Changes ({0})", keybinding.getLabel())) : ( localize(5234, "Review Changes"));
986
+ const hoverText = keybinding ? ( localize(5260, "Review Changes ({0})", keybinding.getLabel())) : ( localize(5261, "Review Changes"));
995
987
  disposables.add(this.hoverService.setupManagedHover(hoverDelegate, enterButton, hoverText));
996
988
  const enterProjection = e => {
997
989
  e.preventDefault();
@@ -1049,13 +1041,13 @@ let AgentTitleBarStatusWidget = class AgentTitleBarStatusWidget extends BaseActi
1049
1041
  label = this._windowTitle.fileName ?? "";
1050
1042
  }
1051
1043
  if (!label) {
1052
- label = ( localize(5235, "Search"));
1044
+ label = ( localize(5262, "Search"));
1053
1045
  }
1054
1046
  if (prefix) {
1055
- label = ( localize(5236, "{0} {1}", prefix, label));
1047
+ label = ( localize(5263, "{0} {1}", prefix, label));
1056
1048
  }
1057
1049
  if (suffix) {
1058
- label = ( localize(5237, "{0} {1}", label, suffix));
1050
+ label = ( localize(5264, "{0} {1}", label, suffix));
1059
1051
  }
1060
1052
  return label.replaceAll(/\r\n|\r|\n/g, "⏎");
1061
1053
  }
@@ -26,22 +26,22 @@ registerCss(unifiedQuickAccess);
26
26
  const SEND_TO_AGENT_ID = "unified-quick-access-send-to-agent";
27
27
  const DEFAULT_UNIFIED_QUICK_ACCESS_TABS = [{
28
28
  id: "agentSessions",
29
- label: ( localize(5238, "Sessions")),
29
+ label: ( localize(5265, "Sessions")),
30
30
  prefix: "agent ",
31
- placeholder: ( localize(5239, "Search sessions or type a message...")),
32
- tooltip: ( localize(5240, "Search sessions or send a message to agent"))
31
+ placeholder: ( localize(5266, "Search sessions or type a message...")),
32
+ tooltip: ( localize(5267, "Search sessions or send a message to agent"))
33
33
  }, {
34
34
  id: "commands",
35
- label: ( localize(5241, "Commands")),
35
+ label: ( localize(5268, "Commands")),
36
36
  prefix: ">",
37
- placeholder: ( localize(5242, "Search commands...")),
38
- tooltip: ( localize(5243, "Run commands"))
37
+ placeholder: ( localize(5269, "Search commands...")),
38
+ tooltip: ( localize(5270, "Run commands"))
39
39
  }, {
40
40
  id: "files",
41
- label: ( localize(5244, "Files")),
41
+ label: ( localize(5271, "Files")),
42
42
  prefix: "",
43
- placeholder: ( localize(5245, "Search files...")),
44
- tooltip: ( localize(5246, "Go to files"))
43
+ placeholder: ( localize(5272, "Search files...")),
44
+ tooltip: ( localize(5273, "Go to files"))
45
45
  }];
46
46
  let UnifiedQuickAccess = class UnifiedQuickAccess extends Disposable {
47
47
  constructor(
@@ -232,14 +232,14 @@ let UnifiedQuickAccess = class UnifiedQuickAccess extends Disposable {
232
232
  }
233
233
  const hasInput = value.trim().length > 0;
234
234
  if (hasInput) {
235
- this._sendButtonLabel.textContent = ( localize(5247, "Send"));
236
- this._sendButtonHover?.update(( localize(5248, "Send message to new agent session")));
235
+ this._sendButtonLabel.textContent = ( localize(5274, "Send"));
236
+ this._sendButtonHover?.update(( localize(5275, "Send message to new agent session")));
237
237
  this._sendButtonIcon.style.display = "";
238
238
  } else {
239
239
  const openChatKeybinding = this.keybindingService.lookupKeybinding(CHAT_OPEN_ACTION_ID);
240
240
  const openChatLabel = openChatKeybinding?.getLabel() ?? "";
241
- this._sendButtonLabel.textContent = ( localize(5249, "Open Chat"));
242
- const tooltip = openChatLabel ? ( localize(5250, "Open chat ({0})", openChatLabel)) : ( localize(5251, "Open chat"));
241
+ this._sendButtonLabel.textContent = ( localize(5276, "Open Chat"));
242
+ const tooltip = openChatLabel ? ( localize(5277, "Open chat ({0})", openChatLabel)) : ( localize(5278, "Open chat"));
243
243
  this._sendButtonHover?.update(tooltip);
244
244
  this._sendButtonIcon.style.display = "none";
245
245
  }
@@ -307,10 +307,10 @@ let UnifiedQuickAccess = class UnifiedQuickAccess extends Disposable {
307
307
  }
308
308
  const sendItem = {
309
309
  id: SEND_TO_AGENT_ID,
310
- label: `$(send) ${( localize(5252, "Send to agent"))}`,
310
+ label: `$(send) ${( localize(5279, "Send to agent"))}`,
311
311
  description: fullInput,
312
312
  alwaysShow: true,
313
- ariaLabel: ( localize(5253, "Send message to agent: {0}", fullInput))
313
+ ariaLabel: ( localize(5280, "Send message to agent: {0}", fullInput))
314
314
  };
315
315
  const currentItems = picker.items.filter(item => item.id !== SEND_TO_AGENT_ID);
316
316
  const isSessionsTab = this._currentTab?.id === "agentSessions";
@@ -399,7 +399,7 @@ let UnifiedQuickAccess = class UnifiedQuickAccess extends Disposable {
399
399
  if (tab.isSendTab) {
400
400
  picker.busy = false;
401
401
  picker.items = [{
402
- label: ( localize(5254, "Press Enter or click Send to create a new agent session")),
402
+ label: ( localize(5281, "Press Enter or click Send to create a new agent session")),
403
403
  alwaysShow: true
404
404
  }];
405
405
  return;
@@ -424,7 +424,7 @@ let UnifiedQuickAccess = class UnifiedQuickAccess extends Disposable {
424
424
  } else {
425
425
  picker.busy = false;
426
426
  picker.items = [{
427
- label: ( localize(5255, "No provider available for this tab")),
427
+ label: ( localize(5282, "No provider available for this tab")),
428
428
  alwaysShow: true
429
429
  }];
430
430
  }
@@ -22,7 +22,7 @@ class ShowUnifiedQuickAccessAction extends Action2 {
22
22
  constructor() {
23
23
  super({
24
24
  id: ShowUnifiedQuickAccessAction.ID,
25
- title: ( localize2(5256, "Show Agent Quick Access")),
25
+ title: ( localize2(5283, "Show Agent Quick Access")),
26
26
  f1: true,
27
27
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.has(`config.${ChatConfiguration.UnifiedAgentsBar}`))))
28
28
  });
@@ -40,7 +40,7 @@ class ShowAgentSessionsQuickAccessAction extends Action2 {
40
40
  constructor() {
41
41
  super({
42
42
  id: ShowAgentSessionsQuickAccessAction.ID,
43
- title: ( localize2(5257, "Show Agent Sessions")),
43
+ title: ( localize2(5284, "Show Agent Sessions")),
44
44
  f1: true,
45
45
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.has(`config.${ChatConfiguration.UnifiedAgentsBar}`))))
46
46
  });
@@ -58,7 +58,7 @@ class ShowCommandsQuickAccessAction extends Action2 {
58
58
  constructor() {
59
59
  super({
60
60
  id: ShowCommandsQuickAccessAction.ID,
61
- title: ( localize2(5258, "Show Commands (Unified)")),
61
+ title: ( localize2(5285, "Show Commands (Unified)")),
62
62
  f1: true,
63
63
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.has(`config.${ChatConfiguration.UnifiedAgentsBar}`))))
64
64
  });
@@ -76,7 +76,7 @@ class ShowFilesQuickAccessAction extends Action2 {
76
76
  constructor() {
77
77
  super({
78
78
  id: ShowFilesQuickAccessAction.ID,
79
- title: ( localize2(5259, "Show Files (Unified)")),
79
+ title: ( localize2(5286, "Show Files (Unified)")),
80
80
  f1: true,
81
81
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.has(`config.${ChatConfiguration.UnifiedAgentsBar}`))))
82
82
  });
@@ -1,7 +1,6 @@
1
1
  import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
2
  import { Emitter } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
3
3
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
4
- import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
5
4
  import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
6
5
  import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
7
6
  import { IChatSessionItem, IChatSessionItemController, IChatSessionItemsDelta } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService";
@@ -9,22 +8,20 @@ import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/wor
9
8
  export declare class LocalAgentsSessionsController extends Disposable implements IChatSessionItemController, IWorkbenchContribution {
10
9
  private readonly chatService;
11
10
  private readonly chatSessionsService;
12
- private readonly logService;
13
11
  static readonly ID = "workbench.contrib.localAgentsSessionsController";
14
12
  readonly chatSessionType = "local";
15
- private readonly _onDidChange;
16
- readonly onDidChange: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
17
13
  readonly _onDidChangeChatSessionItems: Emitter<IChatSessionItemsDelta>;
18
14
  readonly onDidChangeChatSessionItems: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<IChatSessionItemsDelta>;
19
- constructor(chatService: IChatService, chatSessionsService: IChatSessionsService, logService: ILogService);
15
+ private readonly _modelListeners;
16
+ private _isDisposed;
17
+ constructor(chatService: IChatService, chatSessionsService: IChatSessionsService);
18
+ dispose(): void;
20
19
  private _items;
21
20
  get items(): readonly IChatSessionItem[];
22
21
  refresh(token: CancellationToken): Promise<void>;
23
22
  private registerListeners;
24
- private getItem;
23
+ private tryUpdateLiveSessionItem;
25
24
  private provideChatSessionItems;
26
25
  private getHistoryItems;
27
26
  private toChatSessionItem;
28
- private modelToStatus;
29
- private chatResponseStateToStatus;
30
27
  }
@@ -4,60 +4,84 @@ import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arr
4
4
  import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
5
5
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
6
6
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
7
- import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
- import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
9
- import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
7
+ import { Disposable, DisposableResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
+ import { ResourceMap, ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
9
+ import { equals } from '@codingame/monaco-vscode-api/vscode/vs/base/common/objects';
10
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
10
11
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
11
- import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
12
- import { convertLegacyChatSessionTiming, ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
12
+ import { convertLegacyChatSessionTiming } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
13
13
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
14
- import { localChatSessionType, ChatSessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
14
+ import { chatModelToChatDetail } from '../../common/chatService/chatServiceImpl.js';
15
+ import { localChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
15
16
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
16
17
  import { getChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
18
+ import { getInProgressSessionDescription } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatSessions/chatSessionDescription';
19
+ import { getSessionStatusForModel, chatResponseStateToSessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution';
20
+ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
21
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
17
22
 
18
23
  let LocalAgentsSessionsController = class LocalAgentsSessionsController extends Disposable {
19
24
  static {
20
25
  this.ID = "workbench.contrib.localAgentsSessionsController";
21
26
  }
22
- constructor(chatService, chatSessionsService, logService) {
27
+ constructor(chatService, chatSessionsService) {
23
28
  super();
24
29
  this.chatService = chatService;
25
30
  this.chatSessionsService = chatSessionsService;
26
- this.logService = logService;
27
31
  this.chatSessionType = localChatSessionType;
28
- this._onDidChange = this._register(( new Emitter()));
29
- this.onDidChange = this._onDidChange.event;
30
32
  this._onDidChangeChatSessionItems = this._register(( new Emitter()));
31
33
  this.onDidChangeChatSessionItems = this._onDidChangeChatSessionItems.event;
32
- this._items = [];
34
+ this._modelListeners = this._register(( new DisposableResourceMap()));
35
+ this._isDisposed = false;
36
+ this._items = ( new ResourceMap());
33
37
  this._register(
34
38
  this.chatSessionsService.registerChatSessionItemController(this.chatSessionType, this)
35
39
  );
36
40
  this.registerListeners();
37
41
  }
42
+ dispose() {
43
+ this._isDisposed = true;
44
+ super.dispose();
45
+ }
38
46
  get items() {
39
- return this._items;
47
+ return Array.from(( this._items.values()));
40
48
  }
41
49
  async refresh(token) {
42
- this._items = await this.provideChatSessionItems(token);
50
+ const newItems = await this.provideChatSessionItems(token);
51
+ this._items.clear();
52
+ for (const item of newItems) {
53
+ this._items.set(item.resource, item);
54
+ }
43
55
  }
44
56
  registerListeners() {
45
- this._register(
46
- this.chatService.registerChatModelChangeListeners(Schemas.vscodeLocalChatSession, async sessionResource => {
47
- if (getChatSessionType(sessionResource) !== this.chatSessionType) {
48
- return;
49
- }
50
- await this.refresh(CancellationToken.None);
51
- const item = this.getItem(sessionResource);
52
- if (item) {
53
- this._onDidChangeChatSessionItems.fire({
54
- addedOrUpdated: [item]
55
- });
56
- }
57
- })
58
- );
57
+ const addModelListeners = async model => {
58
+ if (getChatSessionType(model.sessionResource) !== this.chatSessionType) {
59
+ return;
60
+ }
61
+ await this.refresh(CancellationToken.None);
62
+ if (this._isDisposed) {
63
+ return;
64
+ }
65
+ this.tryUpdateLiveSessionItem(model);
66
+ const requestChangeListener = ( model.lastRequestObs.map(
67
+ last => last?.response && observableSignalFromEvent("chatSessions.modelRequestChangeListener", last.response.onDidChange)
68
+ ));
69
+ const modelChangeListener = observableSignalFromEvent("chatSessions.modelChangeListener", model.onDidChange);
70
+ this._modelListeners.set(model.sessionResource, autorun(reader => {
71
+ requestChangeListener.read(reader)?.read(reader);
72
+ modelChangeListener.read(reader);
73
+ this.tryUpdateLiveSessionItem(model);
74
+ }));
75
+ };
76
+ this._register(this.chatService.onDidCreateModel(model => addModelListeners(model)));
77
+ for (const model of this.chatService.chatModels.get()) {
78
+ addModelListeners(model);
79
+ }
59
80
  this._register(this.chatService.onDidDisposeSession(e => {
60
- const removedSessionResources = e.sessionResource.filter(resource => getChatSessionType(resource) === this.chatSessionType);
81
+ for (const sessionResource of e.sessionResources) {
82
+ this._modelListeners.deleteAndDispose(sessionResource);
83
+ }
84
+ const removedSessionResources = e.sessionResources.filter(resource => getChatSessionType(resource) === this.chatSessionType);
61
85
  if (removedSessionResources.length) {
62
86
  this._onDidChangeChatSessionItems.fire({
63
87
  removed: removedSessionResources
@@ -65,8 +89,19 @@ let LocalAgentsSessionsController = class LocalAgentsSessionsController extends
65
89
  }
66
90
  }));
67
91
  }
68
- getItem(sessionResource) {
69
- return this._items.find(item => isEqual(item.resource, sessionResource));
92
+ async tryUpdateLiveSessionItem(model) {
93
+ const existing = this._items.get(model.sessionResource);
94
+ if (!existing) {
95
+ return;
96
+ }
97
+ const updated = ( new LocalChatSessionItem(await chatModelToChatDetail(model), model));
98
+ if (existing.isEqual(updated)) {
99
+ return;
100
+ }
101
+ this._items.set(existing.resource, updated);
102
+ this._onDidChangeChatSessionItems.fire({
103
+ addedOrUpdated: [updated]
104
+ });
70
105
  }
71
106
  async provideChatSessionItems(token) {
72
107
  const sessions = [];
@@ -95,63 +130,34 @@ let LocalAgentsSessionsController = class LocalAgentsSessionsController extends
95
130
  }
96
131
  toChatSessionItem(chat) {
97
132
  const model = this.chatService.getSession(chat.sessionResource);
98
- let description;
99
133
  if (model) {
100
134
  if (!model.hasRequests) {
101
135
  return undefined;
102
136
  }
103
- description = this.chatSessionsService.getInProgressSessionDescription(model);
137
+ } else if (chat.isActive) {
138
+ return undefined;
104
139
  }
105
- return {
106
- resource: chat.sessionResource,
107
- label: chat.title,
108
- description,
109
- status: model ? this.modelToStatus(model) : this.chatResponseStateToStatus(chat.lastResponseState),
110
- iconPath: Codicon.chatSparkle,
111
- timing: convertLegacyChatSessionTiming(chat.timing),
112
- changes: chat.stats ? {
113
- insertions: chat.stats.added,
114
- deletions: chat.stats.removed,
115
- files: chat.stats.fileCount
116
- } : undefined
117
- };
140
+ return ( new LocalChatSessionItem(chat, model));
118
141
  }
119
- modelToStatus(model) {
120
- if (model.requestInProgress.get()) {
121
- this.logService.trace(`[agent sessions] Session ${( model.sessionResource.toString())} request is in progress.`);
122
- return ChatSessionStatus.InProgress;
123
- }
124
- const lastRequest = model.getRequests().at(-1);
125
- this.logService.trace(`[agent sessions] Session ${( model.sessionResource.toString())} last request response: state ${lastRequest?.response?.state}, isComplete ${lastRequest?.response?.isComplete}, isCanceled ${lastRequest?.response?.isCanceled}, error: ${lastRequest?.response?.result?.errorDetails?.message}.`);
126
- if (lastRequest?.response) {
127
- if (lastRequest.response.state === ResponseModelState.NeedsInput) {
128
- return ChatSessionStatus.NeedsInput;
129
- } else if (lastRequest.response.isCanceled || lastRequest.response.result?.errorDetails?.code === "canceled") {
130
- return ChatSessionStatus.Completed;
131
- } else if (lastRequest.response.result?.errorDetails) {
132
- return ChatSessionStatus.Failed;
133
- } else if (lastRequest.response.isComplete) {
134
- return ChatSessionStatus.Completed;
135
- } else {
136
- return ChatSessionStatus.InProgress;
137
- }
138
- }
139
- return undefined;
142
+ };
143
+ LocalAgentsSessionsController = ( __decorate([( __param(0, IChatService)), ( __param(1, IChatSessionsService))], LocalAgentsSessionsController));
144
+ class LocalChatSessionItem {
145
+ constructor(chatDetail, model) {
146
+ this.iconPath = Codicon.chatSparkle;
147
+ this.resource = chatDetail.sessionResource;
148
+ this.label = chatDetail.title;
149
+ this.description = model ? getInProgressSessionDescription(model) : undefined;
150
+ this.status = (model && getSessionStatusForModel(model)) ?? chatResponseStateToSessionStatus(chatDetail.lastResponseState);
151
+ this.timing = convertLegacyChatSessionTiming(chatDetail.timing);
152
+ this.changes = chatDetail.stats ? {
153
+ insertions: chatDetail.stats.added,
154
+ deletions: chatDetail.stats.removed,
155
+ files: chatDetail.stats.fileCount
156
+ } : undefined;
140
157
  }
141
- chatResponseStateToStatus(state) {
142
- switch (state) {
143
- case ResponseModelState.Cancelled:
144
- case ResponseModelState.Complete:
145
- return ChatSessionStatus.Completed;
146
- case ResponseModelState.Failed:
147
- return ChatSessionStatus.Failed;
148
- case ResponseModelState.Pending:
149
- return ChatSessionStatus.InProgress;
150
- case ResponseModelState.NeedsInput:
151
- return ChatSessionStatus.NeedsInput;
152
- }
158
+ isEqual(other) {
159
+ return isEqual(this.resource, other.resource) && this.label === other.label && this.description === other.description && this.status === other.status && this.timing.created === other.timing.created && this.timing.lastRequestStarted === other.timing.lastRequestStarted && this.timing.lastRequestEnded === other.timing.lastRequestEnded && equals(this.changes, other.changes);
153
160
  }
154
- };
155
- LocalAgentsSessionsController = ( __decorate([( __param(0, IChatService)), ( __param(1, IChatSessionsService)), ( __param(2, ILogService))], LocalAgentsSessionsController));
161
+ }
156
162
 
157
163
  export { LocalAgentsSessionsController };
@@ -2,12 +2,13 @@ import { PromptsStorage } from "@codingame/monaco-vscode-api/vscode/vs/workbench
2
2
  import { IPromptsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service";
3
3
  import { IAICustomizationWorkspaceService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.service";
4
4
  import { AICustomizationManagementSection } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement";
5
+ import { IExternalCustomizationItemProvider } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService";
5
6
  /**
6
7
  * Snapshot of the list widget's internal state, passed in to avoid coupling.
7
8
  */
8
9
  export interface IDebugWidgetState {
9
10
  readonly allItems: readonly {
10
- readonly storage: PromptsStorage;
11
+ readonly storage?: PromptsStorage;
11
12
  }[];
12
13
  readonly displayEntries: readonly {
13
14
  type: string;
@@ -20,4 +21,4 @@ export interface IDebugWidgetState {
20
21
  * Generates a debug diagnostics report for the AI Customization list widget.
21
22
  * Returns the report as a string suitable for opening in an editor.
22
23
  */
23
- export declare function generateCustomizationDebugReport(section: AICustomizationManagementSection, promptsService: IPromptsService, workspaceService: IAICustomizationWorkspaceService, widgetState: IDebugWidgetState): Promise<string>;
24
+ export declare function generateCustomizationDebugReport(section: AICustomizationManagementSection, promptsService: IPromptsService, workspaceService: IAICustomizationWorkspaceService, widgetState: IDebugWidgetState, externalProvider?: IExternalCustomizationItemProvider): Promise<string>;