@codingame/monaco-vscode-chat-service-override 30.0.0 → 31.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 (377) hide show
  1. package/index.js +21 -3
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +125 -0
  4. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +393 -0
  5. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +65 -0
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +453 -0
  7. package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.d.ts +28 -0
  8. package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.js +81 -0
  9. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +75 -0
  10. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +180 -0
  11. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +202 -51
  12. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +182 -0
  13. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +282 -0
  14. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +303 -32
  15. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.js +14 -0
  16. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +1 -1
  17. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.js +9 -0
  18. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +30 -0
  19. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +662 -0
  20. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +12 -5
  21. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +9 -0
  22. package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.d.ts +17 -0
  23. package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.js +5 -0
  24. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +5 -5
  25. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.js +14 -0
  26. package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.d.ts +42 -0
  27. package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.js +7 -0
  28. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +118 -0
  29. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +551 -0
  30. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +22 -0
  31. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +83 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  33. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +2 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +17 -15
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.d.ts +8 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +113 -9
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +81 -4
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +47 -26
  45. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +15 -10
  46. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  47. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  48. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +14 -14
  49. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +13 -14
  50. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +15 -14
  51. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  52. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +5 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +58 -23
  54. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  55. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  56. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.d.ts +2 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +24 -22
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +3 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +29 -20
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +16 -16
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.d.ts +9 -0
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.js +23 -0
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +2 -2
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +65 -55
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  73. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  74. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +5 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +28 -28
  76. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  77. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +10 -3
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +80 -15
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +20 -14
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +30 -15
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +131 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +363 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +31 -76
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +374 -764
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +8 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +11 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +222 -44
  89. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -11
  90. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +269 -123
  91. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  92. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.d.ts +40 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.js +40 -0
  94. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +26 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +249 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +3 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +3 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +4 -3
  99. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +5 -17
  100. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +14 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +113 -58
  102. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +202 -68
  103. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +246 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +15 -1
  105. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +162 -50
  106. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +24 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +306 -0
  108. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +581 -257
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +15 -1
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +245 -26
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +25 -7
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +1 -1
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +3 -5
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +6 -6
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +103 -28
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +3 -2
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +11 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +80 -29
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +20 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +128 -65
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +18 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -0
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +11 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +6 -5
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +10 -27
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +4 -41
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +4 -310
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +0 -12
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +3 -30
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +1 -0
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +61 -53
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +0 -110
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +31 -31
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +46 -34
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +4 -4
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +17 -18
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +1 -0
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +96 -82
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +2 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +21 -14
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +18 -18
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -1
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +15 -8
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +315 -263
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +14 -14
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +196 -24
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +56 -17
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +2 -2
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +8 -4
  172. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  173. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  174. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  175. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  176. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.d.ts +18 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +31 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +26 -25
  180. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +3 -1
  181. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +48 -57
  182. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
  183. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  184. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
  185. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +2 -2
  186. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  187. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  188. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  189. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  190. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  191. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +11 -6
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +226 -36
  195. package/vscode/src/vs/workbench/contrib/chat/browser/telemetry/chatModelCountTelemetry.d.ts +23 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/telemetry/chatModelCountTelemetry.js +82 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +3 -1
  198. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +108 -56
  199. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +24 -24
  200. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +6 -6
  201. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +7 -7
  202. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  203. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  204. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +3 -4
  205. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +9 -16
  206. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +21 -80
  207. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +26 -59
  208. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  209. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +4 -3
  210. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +9 -1
  211. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +2 -1
  212. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +46 -14
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  214. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugEvents.d.ts +40 -0
  215. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugEvents.js +60 -0
  216. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +32 -5
  217. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +152 -26
  218. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +5 -9
  219. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +265 -261
  220. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +28 -2
  221. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +75 -7
  222. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +9 -1
  223. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -5
  224. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +18 -0
  225. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +32 -4
  226. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +10 -25
  227. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +7 -52
  228. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +58 -466
  229. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +3 -1
  230. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +36 -18
  231. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  232. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  233. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  234. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +0 -1
  235. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +168 -182
  236. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +49 -29
  237. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +491 -462
  238. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +16 -6
  239. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +18 -12
  240. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +24 -4
  241. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +145 -68
  242. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  243. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +2 -2
  244. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  245. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +25 -25
  246. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  247. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +2 -4
  248. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +19 -17
  249. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.d.ts +1 -1
  250. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +3 -3
  251. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +5 -17
  252. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +77 -157
  253. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  254. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  255. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  256. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  257. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  258. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +17 -17
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +21 -21
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +4 -1
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +29 -7
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -3
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +12 -14
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +5 -1
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +49 -12
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +4 -4
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +9 -8
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +2 -2
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +13 -8
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.d.ts +53 -0
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +319 -0
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +15 -15
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +8 -8
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +15 -15
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +2 -2
  283. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.d.ts +21 -0
  284. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.js +35 -0
  285. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +0 -94
  286. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +0 -16
  287. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +0 -578
  288. package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +0 -206
  289. package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +0 -114
  290. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +0 -860
  291. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +0 -27
  292. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +0 -58
  293. package/vscode/src/vs/platform/browserElements/common/browserElements.js +0 -16
  294. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +0 -18
  295. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +0 -13
  296. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -85
  297. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.d.ts +0 -9
  298. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +0 -443
  299. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.d.ts +0 -17
  300. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +0 -132
  301. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatUsageWidget.css +0 -69
  302. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +0 -65
  303. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +0 -66
  304. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +0 -8
  305. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +0 -158
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +0 -2
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +0 -41
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +0 -24
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +0 -26
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +0 -142
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +0 -45
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +0 -164
  313. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -50
  314. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +0 -163
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +0 -27
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +0 -142
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +0 -29
  318. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +0 -137
  319. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +0 -40
  320. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +0 -174
  321. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +0 -3
  322. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +0 -39
  323. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +0 -32
  324. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +0 -249
  325. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +0 -41
  326. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +0 -92
  327. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +0 -40
  328. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +0 -209
  329. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +0 -12
  330. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +0 -106
  331. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +0 -31
  332. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +0 -392
  333. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +0 -45
  334. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +0 -243
  335. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +0 -52
  336. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +0 -10
  337. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +0 -20
  338. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +0 -310
  339. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +0 -19
  340. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +0 -168
  341. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +0 -8
  342. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +0 -25
  343. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +0 -41
  344. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +0 -19
  345. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +0 -37
  346. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +0 -19
  347. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +0 -37
  348. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +0 -19
  349. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +0 -44
  350. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +0 -13
  351. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +0 -21
  352. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +0 -5
  353. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +0 -27
  354. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +0 -14
  355. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +0 -29
  356. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +0 -8
  357. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +0 -33
  358. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +0 -20
  359. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +0 -8
  360. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +0 -28
  361. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +0 -118
  362. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +0 -1019
  363. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +0 -49
  364. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +0 -23
  365. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +0 -9
  366. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +0 -150
  367. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +0 -1619
  368. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +0 -22
  369. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +0 -41
  370. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +0 -17
  371. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +0 -118
  372. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +0 -12
  373. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +0 -17
  374. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +0 -25
  375. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +0 -130
  376. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +0 -122
  377. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +0 -482
@@ -52,14 +52,16 @@ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/com
52
52
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
53
53
 
54
54
  function registerChatContextActions() {
55
- registerAction2(AttachContextAction);
56
- registerAction2(AttachFileToChatAction);
57
- registerAction2(AttachFolderToChatAction);
58
- registerAction2(AttachSelectionToChatAction);
59
- registerAction2(AttachSearchResultAction);
60
- registerAction2(AttachPinnedEditorsToChatAction);
55
+ const store = ( new DisposableStore());
56
+ store.add(registerAction2(AttachContextAction));
57
+ store.add(registerAction2(AttachFileToChatAction));
58
+ store.add(registerAction2(AttachFolderToChatAction));
59
+ store.add(registerAction2(AttachSelectionToChatAction));
60
+ store.add(registerAction2(AttachSearchResultAction));
61
+ store.add(registerAction2(AttachPinnedEditorsToChatAction));
62
+ store.add(registerCreatePluginAction());
61
63
  registerPromptActions();
62
- registerCreatePluginAction();
64
+ return store;
63
65
  }
64
66
  async function withChatView(accessor) {
65
67
  const chatWidgetService = accessor.get(IChatWidgetService);
@@ -120,7 +122,7 @@ class AttachFileToChatAction extends AttachResourceAction {
120
122
  constructor() {
121
123
  super({
122
124
  id: AttachFileToChatAction.ID,
123
- title: ( localize2(4872, "Add File to Chat")),
125
+ title: ( localize2(4873, "Add File to Chat")),
124
126
  category: CHAT_CATEGORY,
125
127
  icon: Codicon.attach,
126
128
  precondition: ChatContextKeys.enabled,
@@ -182,7 +184,7 @@ class AttachFolderToChatAction extends AttachResourceAction {
182
184
  constructor() {
183
185
  super({
184
186
  id: AttachFolderToChatAction.ID,
185
- title: ( localize2(4873, "Add Folder to Chat")),
187
+ title: ( localize2(4874, "Add Folder to Chat")),
186
188
  category: CHAT_CATEGORY,
187
189
  f1: false,
188
190
  menu: {
@@ -213,7 +215,7 @@ class AttachPinnedEditorsToChatAction extends Action2 {
213
215
  constructor() {
214
216
  super({
215
217
  id: AttachPinnedEditorsToChatAction.ID,
216
- title: ( localize2(4874, "Add Pinned Editors to Chat")),
218
+ title: ( localize2(4875, "Add Pinned Editors to Chat")),
217
219
  category: CHAT_CATEGORY,
218
220
  precondition: ChatContextKeys.enabled,
219
221
  f1: true
@@ -255,7 +257,7 @@ class AttachSelectionToChatAction extends Action2 {
255
257
  constructor() {
256
258
  super({
257
259
  id: AttachSelectionToChatAction.ID,
258
- title: ( localize2(4875, "Add Selection to Chat")),
260
+ title: ( localize2(4876, "Add Selection to Chat")),
259
261
  category: CHAT_CATEGORY,
260
262
  icon: Codicon.attach,
261
263
  f1: true,
@@ -335,7 +337,7 @@ class AttachSearchResultAction extends Action2 {
335
337
  constructor() {
336
338
  super({
337
339
  id: "workbench.action.chat.insertSearchResults",
338
- title: ( localize2(4876, "Add Search Results to Chat")),
340
+ title: ( localize2(4877, "Add Search Results to Chat")),
339
341
  category: CHAT_CATEGORY,
340
342
  f1: false,
341
343
  menu: [{
@@ -398,7 +400,7 @@ class AttachContextAction extends Action2 {
398
400
  constructor() {
399
401
  super({
400
402
  id: "workbench.action.chat.attachContext",
401
- title: ( localize2(4877, "Add Context...")),
403
+ title: ( localize2(4878, "Add Context...")),
402
404
  icon: Codicon.add,
403
405
  category: CHAT_CATEGORY,
404
406
  keybinding: {
@@ -489,7 +491,7 @@ class AttachContextAction extends Action2 {
489
491
  SymbolsQuickAccessProvider.PREFIX,
490
492
  AbstractGotoSymbolQuickAccessProvider.PREFIX
491
493
  ],
492
- placeholder: placeholder ?? ( localize(4878, "Search attachments")),
494
+ placeholder: placeholder ?? ( localize(4879, "Search attachments")),
493
495
  providerOptions
494
496
  });
495
497
  }
@@ -562,7 +564,7 @@ class AttachContextAction extends Action2 {
562
564
  const pickerConfig = item.asPicker(widget);
563
565
  const store = ( new DisposableStore());
564
566
  const goBackItem = {
565
- label: ( localize(4879, "Go back ↩")),
567
+ label: ( localize(4880, "Go back ↩")),
566
568
  alwaysShow: true
567
569
  };
568
570
  const configureItem = pickerConfig.configure ? {
@@ -1 +1,9 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IActionViewItemService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/actionViewItemService.service";
3
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
4
+ import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
5
+ export declare class ChatCopyActionRendering extends Disposable implements IWorkbenchContribution {
6
+ static readonly ID = "chat.copyActionRendering";
7
+ constructor(actionViewItemService: IActionViewItemService, instantiationService: IInstantiationService);
8
+ }
1
9
  export declare function registerChatCopyActions(): void;
@@ -1,22 +1,126 @@
1
1
 
2
- import { getActiveWindow, isAncestor, getActiveElement, isHTMLElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { status } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
4
+ import { append, $, getActiveWindow, isAncestor, getActiveElement, isHTMLElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
+ import { disposableTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
3
6
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
4
- import { localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
- import { registerAction2, Action2, MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
7
+ import { MutableDisposable, Disposable, markAsSingleton } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
9
+ import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
10
+ import { IActionViewItemService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/actionViewItemService.service';
11
+ import { MenuEntryActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/menuEntryActionViewItem';
12
+ import { MenuId, MenuItemAction, registerAction2, Action2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
6
13
  import { IClipboardService } from '@codingame/monaco-vscode-api/vscode/vs/platform/clipboard/common/clipboardService.service';
7
14
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
15
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
8
16
  import { katexContainerClassName, katexContainerLatexAttributeName } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/markdown/common/markedKatexExtension';
9
17
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
10
18
  import { isRequestVM, isResponseVM, isChatTreeItem } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
11
19
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
12
20
  import { CHAT_CATEGORY, stringifyItem } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
13
21
 
22
+ const CopyItemActionId = "workbench.action.chat.copyItem";
23
+ const copyFeedbackDuration = 1200;
24
+ const copyIconClasses = ThemeIcon.asClassNameArray(Codicon.copy);
25
+ const copiedIconClasses = ThemeIcon.asClassNameArray(Codicon.check);
26
+ class ChatCopyActionViewItem extends MenuEntryActionViewItem {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.copiedStateReset = this._register(( new MutableDisposable()));
30
+ this.actionRunnerListener = this._register(( new MutableDisposable()));
31
+ this.copied = false;
32
+ }
33
+ get actionRunner() {
34
+ return super.actionRunner;
35
+ }
36
+ set actionRunner(actionRunner) {
37
+ super.actionRunner = actionRunner;
38
+ this.bindActionRunner(actionRunner);
39
+ }
40
+ render(container) {
41
+ super.render(container);
42
+ this.bindActionRunner(super.actionRunner);
43
+ if (!this.element || !this.label) {
44
+ return;
45
+ }
46
+ this.element.classList.add("chat-copy-action");
47
+ this.clearLabelIconClasses();
48
+ this.label.style.backgroundImage = "";
49
+ this.label.classList.remove("icon");
50
+ this.label.textContent = "";
51
+ this.label.setAttribute("aria-hidden", "true");
52
+ const iconContainer = append(this.label, $(".chat-copy-action-icons"));
53
+ const copyIcon = append(iconContainer, $(".chat-copy-action-icon.chat-copy-action-icon-copy"));
54
+ copyIcon.classList.add(...copyIconClasses);
55
+ copyIcon.setAttribute("aria-hidden", "true");
56
+ const copiedIcon = append(
57
+ iconContainer,
58
+ $(".chat-copy-action-icon.chat-copy-action-icon-copied")
59
+ );
60
+ copiedIcon.classList.add(...copiedIconClasses);
61
+ copiedIcon.setAttribute("aria-hidden", "true");
62
+ this.renderCopiedState();
63
+ }
64
+ getTooltip() {
65
+ return this.copied ? ( localize(4886, "Copied")) : super.getTooltip();
66
+ }
67
+ updateAriaLabel() {
68
+ this.element?.setAttribute("aria-label", this.copied ? ( localize(4887, "Copied")) : ( localize(4888, "Copy")));
69
+ }
70
+ updateClass() {
71
+ super.updateClass();
72
+ this.clearLabelIconClasses();
73
+ if (this.label) {
74
+ this.label.style.backgroundImage = "";
75
+ this.label.classList.remove("icon");
76
+ }
77
+ }
78
+ clearLabelIconClasses() {
79
+ this.label?.classList.remove(...copyIconClasses, ...copiedIconClasses);
80
+ }
81
+ renderCopiedState() {
82
+ this.element?.classList.toggle("copied", this.copied);
83
+ this.updateTooltip();
84
+ }
85
+ bindActionRunner(actionRunner) {
86
+ this.actionRunnerListener.value = actionRunner.onDidRun(e => {
87
+ if (e.action !== this.action || e.error) {
88
+ return;
89
+ }
90
+ this.copied = true;
91
+ this.renderCopiedState();
92
+ this.copiedStateReset.value = disposableTimeout(() => {
93
+ this.copied = false;
94
+ this.renderCopiedState();
95
+ }, copyFeedbackDuration);
96
+ status(( localize(4889, "Copied to clipboard")));
97
+ });
98
+ }
99
+ }
100
+ let ChatCopyActionRendering = class ChatCopyActionRendering extends Disposable {
101
+ static {
102
+ this.ID = "chat.copyActionRendering";
103
+ }
104
+ constructor(actionViewItemService, instantiationService) {
105
+ super();
106
+ const disposable = this._register(
107
+ actionViewItemService.register(MenuId.ChatMessageFooter, CopyItemActionId, (action, options) => {
108
+ if (!(action instanceof MenuItemAction)) {
109
+ return undefined;
110
+ }
111
+ return instantiationService.createInstance(ChatCopyActionViewItem, action, options);
112
+ })
113
+ );
114
+ markAsSingleton(disposable);
115
+ }
116
+ };
117
+ ChatCopyActionRendering = ( __decorate([( __param(0, IActionViewItemService)), ( __param(1, IInstantiationService))], ChatCopyActionRendering));
14
118
  function registerChatCopyActions() {
15
119
  registerAction2(class CopyAllAction extends Action2 {
16
120
  constructor() {
17
121
  super({
18
122
  id: "workbench.action.chat.copyAll",
19
- title: ( localize2(4885, "Copy All")),
123
+ title: ( localize2(4890, "Copy All")),
20
124
  f1: false,
21
125
  category: CHAT_CATEGORY,
22
126
  menu: {
@@ -44,8 +148,8 @@ function registerChatCopyActions() {
44
148
  registerAction2(class CopyItemAction extends Action2 {
45
149
  constructor() {
46
150
  super({
47
- id: "workbench.action.chat.copyItem",
48
- title: ( localize2(4886, "Copy")),
151
+ id: CopyItemActionId,
152
+ title: ( localize2(4891, "Copy")),
49
153
  f1: false,
50
154
  category: CHAT_CATEGORY,
51
155
  icon: Codicon.copy,
@@ -89,7 +193,7 @@ function registerChatCopyActions() {
89
193
  constructor() {
90
194
  super({
91
195
  id: "workbench.action.chat.copyFinalResponse",
92
- title: ( localize2(4887, "Copy Final Response")),
196
+ title: ( localize2(4892, "Copy Final Response")),
93
197
  f1: false,
94
198
  category: CHAT_CATEGORY,
95
199
  menu: {
@@ -123,7 +227,7 @@ function registerChatCopyActions() {
123
227
  constructor() {
124
228
  super({
125
229
  id: "workbench.action.chat.copyKatexMathSource",
126
- title: ( localize2(4888, "Copy Math Source")),
230
+ title: ( localize2(4893, "Copy Math Source")),
127
231
  f1: false,
128
232
  category: CHAT_CATEGORY,
129
233
  menu: {
@@ -166,4 +270,4 @@ function registerChatCopyActions() {
166
270
  });
167
271
  }
168
272
 
169
- export { registerChatCopyActions };
273
+ export { ChatCopyActionRendering, registerChatCopyActions };
@@ -1,10 +1,13 @@
1
1
 
2
2
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
3
+ import { fromNow } from '@codingame/monaco-vscode-api/vscode/vs/base/common/date';
3
4
  import { URI, isUriComponents } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
5
  import { localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
6
  import { Categories } from '@codingame/monaco-vscode-api/vscode/vs/platform/action/common/actionCommonCategories';
6
7
  import { registerAction2, Action2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
8
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
7
9
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
10
+ import { IAgentSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.service';
8
11
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
9
12
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
10
13
  import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
@@ -23,8 +26,55 @@ function registerChatDeveloperActions() {
23
26
  registerAction2(LogChatInputHistoryAction);
24
27
  registerAction2(LogChatIndexAction);
25
28
  registerAction2(InspectChatModelAction);
29
+ registerAction2(InspectChatModelReferencesAction);
26
30
  registerAction2(ClearRecentlyUsedLanguageModelsAction);
27
31
  }
32
+ function formatChatModelReferenceInspection(accessor) {
33
+ const chatService = accessor.get(IChatService);
34
+ const agentSessionsService = accessor.get(IAgentSessionsService);
35
+ const debugInfo = chatService.getChatModelReferenceDebugInfo();
36
+ const referencedModels = debugInfo.models.filter(model => model.referenceCount > 0);
37
+ const pendingEditModels = debugInfo.models.filter(model => model.hasPendingEdits);
38
+ const pendingDisposalModels = debugInfo.models.filter(model => model.pendingDisposal);
39
+ let output = "# Chat Model References\n\n";
40
+ output += `- Live models: ${debugInfo.totalModels}\n`;
41
+ output += `- Live references: ${debugInfo.totalReferences}\n`;
42
+ output += `- Models with active references: ${referencedModels.length}\n`;
43
+ output += `- Models with pending edits: ${pendingEditModels.length}\n`;
44
+ output += `- Models pending disposal: ${pendingDisposalModels.length}\n\n`;
45
+ output += "Created by shows who loaded or created the model. Holders shows who currently keeps the model alive.\n\n";
46
+ if (!debugInfo.models.length) {
47
+ output += "No live chat models.\n";
48
+ return output;
49
+ }
50
+ for (const model of debugInfo.models) {
51
+ const liveModel = chatService.getSession(model.sessionResource);
52
+ const agentSession = agentSessionsService.getSession(model.sessionResource);
53
+ const archived = agentSession ? agentSession.isArchived() : "unknown";
54
+ const age = liveModel ? fromNow(liveModel.timing.created, true, true, true) : "unknown";
55
+ output += `## ${model.title || "(untitled)"}\n\n`;
56
+ output += `- Session: ${( model.sessionResource.toString())}\n`;
57
+ output += `- Created by: ${model.createdBy}\n`;
58
+ output += `- Archived: ${archived}\n`;
59
+ output += `- Age: ${age}\n`;
60
+ output += `- Initial location: ${model.initialLocation}\n`;
61
+ output += `- Imported: ${model.isImported}\n`;
62
+ output += `- Pending edits: ${model.hasPendingEdits}\n`;
63
+ output += `- Background keep-alive enabled: ${model.willKeepAlive}\n`;
64
+ output += `- Pending disposal: ${model.pendingDisposal}\n`;
65
+ output += `- Reference count: ${model.referenceCount}\n`;
66
+ if (model.holders.length) {
67
+ output += "- Holders:\n";
68
+ for (const holder of model.holders) {
69
+ output += ` - ${holder.holder}: ${holder.count}\n`;
70
+ }
71
+ } else {
72
+ output += "- Holders: none\n";
73
+ }
74
+ output += "\n";
75
+ }
76
+ return output;
77
+ }
28
78
  class LogChatInputHistoryAction extends Action2 {
29
79
  static {
30
80
  this.ID = "workbench.action.chat.logInputHistory";
@@ -32,7 +82,7 @@ class LogChatInputHistoryAction extends Action2 {
32
82
  constructor() {
33
83
  super({
34
84
  id: LogChatInputHistoryAction.ID,
35
- title: ( localize2(4889, "Log Chat Input History")),
85
+ title: ( localize2(4894, "Log Chat Input History")),
36
86
  icon: Codicon.attach,
37
87
  category: Categories.Developer,
38
88
  f1: true,
@@ -51,7 +101,7 @@ class LogChatIndexAction extends Action2 {
51
101
  constructor() {
52
102
  super({
53
103
  id: LogChatIndexAction.ID,
54
- title: ( localize2(4890, "Log Chat Index")),
104
+ title: ( localize2(4895, "Log Chat Index")),
55
105
  icon: Codicon.attach,
56
106
  category: Categories.Developer,
57
107
  f1: true,
@@ -70,7 +120,7 @@ class InspectChatModelAction extends Action2 {
70
120
  constructor() {
71
121
  super({
72
122
  id: InspectChatModelAction.ID,
73
- title: ( localize2(4891, "Inspect Chat Model")),
123
+ title: ( localize2(4896, "Inspect Chat Model")),
74
124
  icon: Codicon.inspect,
75
125
  category: Categories.Developer,
76
126
  f1: true,
@@ -107,6 +157,33 @@ class InspectChatModelAction extends Action2 {
107
157
  });
108
158
  }
109
159
  }
160
+ class InspectChatModelReferencesAction extends Action2 {
161
+ static {
162
+ this.ID = "workbench.action.chat.inspectChatModelReferences";
163
+ }
164
+ constructor() {
165
+ super({
166
+ id: InspectChatModelReferencesAction.ID,
167
+ title: ( localize2(4897, "Inspect Chat Model References")),
168
+ icon: Codicon.inspect,
169
+ category: Categories.Developer,
170
+ f1: true,
171
+ precondition: ChatContextKeys.enabled
172
+ });
173
+ }
174
+ async run(accessor) {
175
+ const instantiationService = accessor.get(IInstantiationService);
176
+ const editorService = accessor.get(IEditorService);
177
+ await editorService.openEditor({
178
+ resource: undefined,
179
+ contents: instantiationService.invokeFunction(formatChatModelReferenceInspection),
180
+ languageId: "markdown",
181
+ options: {
182
+ pinned: true
183
+ }
184
+ });
185
+ }
186
+ }
110
187
  class ClearRecentlyUsedLanguageModelsAction extends Action2 {
111
188
  static {
112
189
  this.ID = "workbench.action.chat.clearRecentlyUsedLanguageModels";
@@ -114,7 +191,7 @@ class ClearRecentlyUsedLanguageModelsAction extends Action2 {
114
191
  constructor() {
115
192
  super({
116
193
  id: ClearRecentlyUsedLanguageModelsAction.ID,
117
- title: ( localize2(4892, "Clear Recently Used Language Models")),
194
+ title: ( localize2(4898, "Clear Recently Used Language Models")),
118
195
  category: Categories.Developer,
119
196
  f1: true,
120
197
  precondition: ChatContextKeys.enabled
@@ -13,7 +13,7 @@ function registerChatFileTreeActions() {
13
13
  constructor() {
14
14
  super({
15
15
  id: "workbench.action.chat.nextFileTree",
16
- title: ( localize2(4927, "Next File Tree")),
16
+ title: ( localize2(4933, "Next File Tree")),
17
17
  keybinding: {
18
18
  primary: KeyMod.CtrlCmd | KeyCode.F9,
19
19
  weight: KeybindingWeight.WorkbenchContrib,
@@ -32,7 +32,7 @@ function registerChatFileTreeActions() {
32
32
  constructor() {
33
33
  super({
34
34
  id: "workbench.action.chat.previousFileTree",
35
- title: ( localize2(4928, "Previous File Tree")),
35
+ title: ( localize2(4934, "Previous File Tree")),
36
36
  keybinding: {
37
37
  primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.F9,
38
38
  weight: KeybindingWeight.WorkbenchContrib,
@@ -7,8 +7,7 @@ import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common
7
7
  import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
8
8
  import { registerAction2, Action2, MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
9
9
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
10
- import { IProgressService } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service';
11
- import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
10
+ import { ChatContextKeys, ChatContextKeyExprs } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
12
11
  import { ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
13
12
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
14
13
  import { isChatTreeItem, isResponseVM, isRequestVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
@@ -22,8 +21,8 @@ function registerChatForkActions() {
22
21
  constructor() {
23
22
  super({
24
23
  id: "workbench.action.chat.forkConversation",
25
- title: ( localize2(4929, "Fork Conversation")),
26
- tooltip: ( localize2(4930, "Fork conversation from this point")),
24
+ title: ( localize2(4935, "Fork Conversation")),
25
+ tooltip: ( localize2(4936, "Fork conversation from this point")),
27
26
  f1: false,
28
27
  category: CHAT_CATEGORY,
29
28
  icon: Codicon.repoForked,
@@ -32,27 +31,27 @@ function registerChatForkActions() {
32
31
  id: MenuId.ChatMessageCheckpoint,
33
32
  group: "navigation",
34
33
  order: 3,
35
- when: ( ContextKeyExpr.and(ChatContextKeys.isRequest, ( ChatContextKeys.isFirstRequest.negate()), ( ContextKeyExpr.or(( ChatContextKeys.lockedToCodingAgent.negate()), ChatContextKeys.chatSessionSupportsFork))))
34
+ when: ( ContextKeyExpr.and(ChatContextKeys.isRequest, ( ChatContextKeys.isFirstRequest.negate()), ( ContextKeyExpr.or(( ContextKeyExpr.or(( ChatContextKeys.lockedToCodingAgent.negate()), ChatContextKeyExprs.isAgentHostSession)), ChatContextKeys.chatSessionSupportsFork))))
36
35
  }]
37
36
  });
37
+ this.pendingFork = ( new Map());
38
38
  }
39
39
  async run(accessor, ...args) {
40
40
  const chatWidgetService = accessor.get(IChatWidgetService);
41
41
  const chatService = accessor.get(IChatService);
42
42
  const chatSessionsService = accessor.get(IChatSessionsService);
43
- accessor.get(IProgressService);
44
- const forkedTitlePrefix = ( localize(4931, "Forked: "));
43
+ const forkedTitlePrefix = ( localize(4937, "Forked: "));
45
44
  if (URI.isUri(args[0])) {
46
45
  const sourceSessionResource = args[0];
47
46
  const contentProviderSchemes = chatSessionsService.getContentProviderSchemes();
48
47
  if (contentProviderSchemes.includes(sourceSessionResource.scheme)) {
49
- await forkContributedChatSession(
48
+ return await this.forkContributedChatSession(
50
49
  sourceSessionResource,
51
50
  undefined,
52
51
  false,
53
52
  chatSessionsService,
54
- chatWidgetService);
55
- return;
53
+ chatWidgetService
54
+ );
56
55
  }
57
56
  const chatModel = chatService.getSession(sourceSessionResource);
58
57
  if (!chatModel) {
@@ -66,7 +65,7 @@ function registerChatForkActions() {
66
65
  cleanData.sessionId = generateUuid();
67
66
  const forkTimestamp = Date.now();
68
67
  cleanData.creationDate = forkTimestamp;
69
- cleanData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4932, "Forked: {0}", chatModel.title));
68
+ cleanData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4938, "Forked: {0}", chatModel.title));
70
69
  for (const [index, req] of cleanData.requests.entries()) {
71
70
  req.shouldBeRemovedOnSend = undefined;
72
71
  req.isHidden = undefined;
@@ -80,7 +79,7 @@ function registerChatForkActions() {
80
79
  };
81
80
  }
82
81
  }
83
- const modelRef = chatService.loadSessionFromData(cleanData);
82
+ const modelRef = chatService.loadSessionFromData(cleanData, "ChatForkActions#forkCleanSession");
84
83
  const newSessionResource = modelRef.object.sessionResource;
85
84
  setTimeout(async () => {
86
85
  try {
@@ -129,13 +128,7 @@ function registerChatForkActions() {
129
128
  }
130
129
  }
131
130
  }
132
- await forkContributedChatSession(
133
- sessionResource,
134
- request,
135
- true,
136
- chatSessionsService,
137
- chatWidgetService);
138
- return;
131
+ return await this.forkContributedChatSession(sessionResource, request, true, chatSessionsService, chatWidgetService);
139
132
  }
140
133
  const chatModel = chatService.getSession(sessionResource);
141
134
  if (!chatModel) {
@@ -170,7 +163,7 @@ function registerChatForkActions() {
170
163
  forkedData.sessionId = generateUuid();
171
164
  const forkedTimestamp = Date.now();
172
165
  forkedData.creationDate = forkedTimestamp;
173
- forkedData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4932, "Forked: {0}", chatModel.title));
166
+ forkedData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4938, "Forked: {0}", chatModel.title));
174
167
  for (const [index, req] of forkedData.requests.entries()) {
175
168
  req.shouldBeRemovedOnSend = undefined;
176
169
  req.isHidden = undefined;
@@ -184,13 +177,42 @@ function registerChatForkActions() {
184
177
  };
185
178
  }
186
179
  }
187
- const modelRef = chatService.loadSessionFromData(forkedData);
180
+ const modelRef = chatService.loadSessionFromData(forkedData, "ChatForkActions#forkSession");
188
181
  if (!modelRef) {
189
182
  return;
190
183
  }
191
- const newSessionResource = modelRef.object.sessionResource;
192
- await chatWidgetService.openSession(newSessionResource, ChatViewPaneTarget);
193
- modelRef.dispose();
184
+ try {
185
+ const newSessionResource = modelRef.object.sessionResource;
186
+ await chatWidgetService.openSession(newSessionResource, ChatViewPaneTarget);
187
+ } finally {
188
+ modelRef.dispose();
189
+ }
190
+ }
191
+ async forkContributedChatSession(
192
+ sourceSessionResource,
193
+ request,
194
+ openForkedSessionImmediately,
195
+ chatSessionsService,
196
+ chatWidgetService
197
+ ) {
198
+ const pendingKey = `${( sourceSessionResource.toString())}@${request?.id ?? "full"}`;
199
+ const pending = this.pendingFork.get(pendingKey);
200
+ if (pending) {
201
+ return pending;
202
+ }
203
+ const forkPromise = forkContributedChatSession(
204
+ sourceSessionResource,
205
+ request,
206
+ openForkedSessionImmediately,
207
+ chatSessionsService,
208
+ chatWidgetService
209
+ );
210
+ this.pendingFork.set(pendingKey, forkPromise);
211
+ try {
212
+ await forkPromise;
213
+ } finally {
214
+ this.pendingFork.delete(pendingKey);
215
+ }
194
216
  }
195
217
  });
196
218
  }
@@ -199,8 +221,7 @@ async function forkContributedChatSession(
199
221
  request,
200
222
  openForkedSessionImmediately,
201
223
  chatSessionsService,
202
- chatWidgetService,
203
- progressService
224
+ chatWidgetService
204
225
  ) {
205
226
  const cts = ( new CancellationTokenSource());
206
227
  try {
@@ -17,7 +17,7 @@ import { ACTIVE_GROUP } from '@codingame/monaco-vscode-api/vscode/vs/workbench/s
17
17
 
18
18
  const defaultFileName = "chat.json";
19
19
  const filters = [{
20
- name: ( localize(4933, "Chat Session")),
20
+ name: ( localize(4939, "Chat Session")),
21
21
  extensions: ["json"]
22
22
  }];
23
23
  function registerChatExportActions() {
@@ -26,7 +26,7 @@ function registerChatExportActions() {
26
26
  super({
27
27
  id: "workbench.action.chat.export",
28
28
  category: CHAT_CATEGORY,
29
- title: ( localize2(4934, "Export Chat...")),
29
+ title: ( localize2(4940, "Export Chat...")),
30
30
  precondition: ChatContextKeys.enabled,
31
31
  f1: true
32
32
  });
@@ -63,7 +63,7 @@ function registerChatExportActions() {
63
63
  constructor() {
64
64
  super({
65
65
  id: "workbench.action.chat.import",
66
- title: ( localize2(4935, "Import Chat...")),
66
+ title: ( localize2(4941, "Import Chat...")),
67
67
  category: CHAT_CATEGORY,
68
68
  precondition: ChatContextKeys.enabled,
69
69
  f1: true
@@ -97,12 +97,17 @@ function registerChatExportActions() {
97
97
  let resolvedTarget;
98
98
  let options;
99
99
  if (opts?.target === "chatViewPane") {
100
- const modelRef = chatService.loadSessionFromData(data);
101
- sessionResource = modelRef.object.sessionResource;
102
- resolvedTarget = ChatViewPaneTarget;
103
- options = {
104
- pinned: true
105
- };
100
+ const modelRef = chatService.loadSessionFromData(data, "ChatImportExport#importToChatView");
101
+ try {
102
+ sessionResource = modelRef.object.sessionResource;
103
+ resolvedTarget = ChatViewPaneTarget;
104
+ options = {
105
+ pinned: true
106
+ };
107
+ await widgetService.openSession(sessionResource, resolvedTarget, options);
108
+ } finally {
109
+ modelRef.dispose();
110
+ }
106
111
  } else {
107
112
  sessionResource = ChatEditorInput.getNewEditorUri();
108
113
  resolvedTarget = ACTIVE_GROUP;
@@ -112,8 +117,8 @@ function registerChatExportActions() {
112
117
  },
113
118
  pinned: true
114
119
  };
120
+ await widgetService.openSession(sessionResource, resolvedTarget, options);
115
121
  }
116
- await widgetService.openSession(sessionResource, resolvedTarget, options);
117
122
  } catch (err) {
118
123
  throw err;
119
124
  }