@codingame/monaco-vscode-chat-service-override 28.4.0 → 29.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 (339) hide show
  1. package/index.js +18 -12
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +300 -0
  4. package/vscode/src/vs/platform/agentHost/common/agentService.js +31 -0
  5. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +84 -0
  6. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +16 -0
  7. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +488 -0
  8. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +424 -0
  9. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +50 -0
  10. package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +202 -0
  11. package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +114 -0
  12. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +723 -0
  13. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +33 -0
  14. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +40 -0
  15. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +22 -0
  16. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +13 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  18. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
  19. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +29 -15
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +76 -10
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +1 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +162 -4
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +167 -4
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +1 -1
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +52 -20
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +82 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +195 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +5 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +97 -88
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +3 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +4 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +5 -3
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +78 -35
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +7 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +174 -170
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +7 -4
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +12 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +118 -52
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +7 -7
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +5 -1
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +13 -2
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +0 -3
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -10
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +9 -10
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +23 -25
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +341 -196
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +79 -7
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.d.ts +5 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +22 -10
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -14
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +85 -5
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +668 -214
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +10 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +18 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +306 -39
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +84 -4
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +651 -81
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -1
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -2
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +31 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +9 -20
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +11 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +7 -142
  89. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.d.ts +43 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +63 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +11 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +44 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +25 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +297 -123
  95. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +153 -31
  96. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +17 -1
  97. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +111 -171
  98. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +1 -3
  99. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +5 -30
  100. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -186
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +4 -2
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +31 -23
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +3 -7
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +4 -16
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +18 -2
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +112 -17
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +3 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +16 -27
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +1 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +41 -19
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +7 -1
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +35 -23
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +1 -8
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +8 -51
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +1 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +13 -8
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +29 -36
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +14 -7
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +5 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +79 -26
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.d.ts +19 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +125 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +11 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +113 -82
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +18 -7
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +54 -15
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +8 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +103 -28
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +2 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +48 -37
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +28 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +62 -20
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +21 -37
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +2 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +4 -3
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +17 -4
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +5 -5
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +4 -1
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +43 -5
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.d.ts +59 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +194 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -10
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +2 -1
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +8 -4
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +11 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +81 -50
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +32 -32
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -18
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +2 -2
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +9 -7
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -26
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +0 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +19 -27
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +2 -4
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +105 -172
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +80 -65
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +56 -27
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  178. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.d.ts +16 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +70 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  181. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.d.ts +20 -0
  182. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +40 -0
  183. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.d.ts +31 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +53 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +33 -2
  186. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +21 -2
  187. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +362 -18
  188. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +15 -4
  189. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +90 -43
  190. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +35 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +146 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  195. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  196. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  197. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +10 -9
  198. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  199. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  200. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  201. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +1 -1
  202. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +33 -5
  203. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +3 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +200 -55
  205. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +7 -0
  206. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +90 -45
  207. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +4 -2
  208. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +21 -10
  209. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +22 -16
  210. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +4 -2
  211. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +28 -13
  212. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +20 -16
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +68 -5
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  219. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +1 -0
  221. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +57 -20
  222. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  223. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +21 -5
  224. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +171 -57
  225. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +7 -5
  226. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +206 -35
  227. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +4 -3
  228. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -7
  229. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +7 -1
  230. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +11 -3
  231. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +44 -22
  232. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +450 -301
  233. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +23 -0
  234. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +165 -0
  235. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +34 -20
  236. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +209 -144
  237. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.d.ts +20 -0
  238. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +205 -0
  239. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
  240. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +33 -0
  241. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +47 -0
  242. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +30 -0
  243. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  244. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  245. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  246. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +1 -1
  247. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +191 -159
  248. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +6 -7
  249. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +210 -233
  250. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +19 -26
  251. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +183 -193
  252. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +24 -0
  253. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +75 -0
  254. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  255. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -5
  256. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -0
  257. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +97 -35
  258. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  259. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +16 -0
  260. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +67 -0
  261. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +2 -2
  262. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +62 -23
  263. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  264. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  265. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  266. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  267. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  268. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +8 -8
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +3 -1
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +23 -9
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +1 -1
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +2 -2
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +3 -1
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +50 -9
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +3 -1
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +21 -7
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +20 -1
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +124 -1
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +20 -5
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +5 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +10 -7
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +2 -1
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +46 -31
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +18 -1
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +74 -37
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +24 -14
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +1 -1
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +3 -2
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +2 -0
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +5 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -2
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +66 -64
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +1 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -0
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +5 -2
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -2
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +390 -114
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +14 -0
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +21 -11
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +70 -51
  313. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +61 -51
  314. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +94 -76
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +19 -1
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +112 -21
  318. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +0 -53
  319. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +0 -219
  320. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +0 -89
  321. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +0 -251
  322. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +0 -123
  323. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +0 -278
  324. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +0 -76
  325. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +0 -299
  326. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +0 -67
  327. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +0 -263
  328. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +0 -85
  329. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +0 -397
  330. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -56
  331. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +0 -26
  332. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +0 -5
  333. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +0 -30
  334. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +0 -40
  335. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +0 -28
  336. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +0 -190
  337. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +0 -11
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +0 -16
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +0 -20
@@ -1,4 +1,5 @@
1
1
 
2
+ import { CancellationToken, CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
2
3
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
3
4
  import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
4
5
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
@@ -6,10 +7,12 @@ import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common
6
7
  import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
8
  import { registerAction2, Action2, MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
8
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';
9
11
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
10
12
  import { ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
11
13
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
12
14
  import { isChatTreeItem, isResponseVM, isRequestVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
15
+ import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
13
16
  import { CHAT_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
14
17
  import { ChatViewPaneTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
15
18
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
@@ -19,8 +22,8 @@ function registerChatForkActions() {
19
22
  constructor() {
20
23
  super({
21
24
  id: "workbench.action.chat.forkConversation",
22
- title: ( localize2(4909, "Fork Conversation")),
23
- tooltip: ( localize2(4910, "Fork conversation from this point")),
25
+ title: ( localize2(4927, "Fork Conversation")),
26
+ tooltip: ( localize2(4928, "Fork conversation from this point")),
24
27
  f1: false,
25
28
  category: CHAT_CATEGORY,
26
29
  icon: Codicon.repoForked,
@@ -29,16 +32,28 @@ function registerChatForkActions() {
29
32
  id: MenuId.ChatMessageCheckpoint,
30
33
  group: "navigation",
31
34
  order: 3,
32
- when: ( ContextKeyExpr.and(ChatContextKeys.isRequest, ( ChatContextKeys.lockedToCodingAgent.negate())))
35
+ when: ( ContextKeyExpr.and(ChatContextKeys.isRequest, ( ContextKeyExpr.or(( ChatContextKeys.lockedToCodingAgent.negate()), ChatContextKeys.chatSessionSupportsFork))))
33
36
  }]
34
37
  });
35
38
  }
36
39
  async run(accessor, ...args) {
37
40
  const chatWidgetService = accessor.get(IChatWidgetService);
38
41
  const chatService = accessor.get(IChatService);
39
- const forkedTitlePrefix = ( localize(4911, "Forked: "));
42
+ const chatSessionsService = accessor.get(IChatSessionsService);
43
+ accessor.get(IProgressService);
44
+ const forkedTitlePrefix = ( localize(4929, "Forked: "));
40
45
  if (URI.isUri(args[0])) {
41
46
  const sourceSessionResource = args[0];
47
+ const contentProviderSchemes = chatSessionsService.getContentProviderSchemes();
48
+ if (contentProviderSchemes.includes(sourceSessionResource.scheme)) {
49
+ await forkContributedChatSession(
50
+ sourceSessionResource,
51
+ undefined,
52
+ false,
53
+ chatSessionsService,
54
+ chatWidgetService);
55
+ return;
56
+ }
42
57
  const chatModel = chatService.getSession(sourceSessionResource);
43
58
  if (!chatModel) {
44
59
  return;
@@ -51,7 +66,7 @@ function registerChatForkActions() {
51
66
  cleanData.sessionId = generateUuid();
52
67
  const forkTimestamp = Date.now();
53
68
  cleanData.creationDate = forkTimestamp;
54
- cleanData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4912, "Forked: {0}", chatModel.title));
69
+ cleanData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4930, "Forked: {0}", chatModel.title));
55
70
  for (const [index, req] of cleanData.requests.entries()) {
56
71
  req.shouldBeRemovedOnSend = undefined;
57
72
  req.isHidden = undefined;
@@ -89,14 +104,43 @@ function registerChatForkActions() {
89
104
  if (!sessionResource) {
90
105
  return;
91
106
  }
92
- const chatModel = chatService.getSession(sessionResource);
93
- if (!chatModel) {
94
- return;
95
- }
96
107
  const targetRequestId = isRequestVM(item) ? item.id : isResponseVM(item) ? item.requestId : undefined;
97
108
  if (!targetRequestId) {
98
109
  return;
99
110
  }
111
+ const contentProviderSchemes = chatSessionsService.getContentProviderSchemes();
112
+ if (contentProviderSchemes.includes(sessionResource.scheme)) {
113
+ const contributedSession = await chatSessionsService.getOrCreateChatSession(sessionResource, CancellationToken.None);
114
+ let request = contributedSession.history.find(entry => entry.type === "request" && entry.id === targetRequestId);
115
+ if (!request) {
116
+ const chatModel = chatService.getSession(sessionResource);
117
+ const serializedData = chatModel?.toJSON();
118
+ for (const [, entry] of serializedData?.requests.entries() ?? []) {
119
+ if (entry.requestId === targetRequestId) {
120
+ request = {
121
+ id: entry.requestId,
122
+ type: "request",
123
+ prompt: typeof entry.message === "string" ? entry.message : entry.message.text,
124
+ participant: entry.agent?.id ?? "",
125
+ variableData: entry.variableData,
126
+ modelId: entry.modelId
127
+ };
128
+ break;
129
+ }
130
+ }
131
+ }
132
+ await forkContributedChatSession(
133
+ sessionResource,
134
+ request,
135
+ true,
136
+ chatSessionsService,
137
+ chatWidgetService);
138
+ return;
139
+ }
140
+ const chatModel = chatService.getSession(sessionResource);
141
+ if (!chatModel) {
142
+ return;
143
+ }
100
144
  const serializedData = chatModel.toJSON();
101
145
  const isRequestItem = isRequestVM(item);
102
146
  let targetIndex = -1;
@@ -126,7 +170,7 @@ function registerChatForkActions() {
126
170
  forkedData.sessionId = generateUuid();
127
171
  const forkedTimestamp = Date.now();
128
172
  forkedData.creationDate = forkedTimestamp;
129
- forkedData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4912, "Forked: {0}", chatModel.title));
173
+ forkedData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4930, "Forked: {0}", chatModel.title));
130
174
  for (const [index, req] of forkedData.requests.entries()) {
131
175
  req.shouldBeRemovedOnSend = undefined;
132
176
  req.isHidden = undefined;
@@ -150,5 +194,27 @@ function registerChatForkActions() {
150
194
  }
151
195
  });
152
196
  }
197
+ async function forkContributedChatSession(
198
+ sourceSessionResource,
199
+ request,
200
+ openForkedSessionImmediately,
201
+ chatSessionsService,
202
+ chatWidgetService,
203
+ progressService
204
+ ) {
205
+ const cts = ( new CancellationTokenSource());
206
+ try {
207
+ const forkedItem = await chatSessionsService.forkChatSession(sourceSessionResource, request, cts.token);
208
+ if (openForkedSessionImmediately) {
209
+ await chatWidgetService.openSession(forkedItem.resource, ChatViewPaneTarget);
210
+ } else {
211
+ setTimeout(async () => {
212
+ await chatWidgetService.openSession(forkedItem.resource, ChatViewPaneTarget);
213
+ }, 0);
214
+ }
215
+ } finally {
216
+ cts.dispose();
217
+ }
218
+ }
153
219
 
154
220
  export { registerChatForkActions };
@@ -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(4913, "Chat Session")),
20
+ name: ( localize(4931, "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(4914, "Export Chat...")),
29
+ title: ( localize2(4932, "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(4915, "Import Chat...")),
66
+ title: ( localize2(4933, "Import Chat...")),
67
67
  category: CHAT_CATEGORY,
68
68
  precondition: ChatContextKeys.enabled,
69
69
  f1: true
@@ -21,7 +21,7 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
21
21
  constructor() {
22
22
  super({
23
23
  id: ManageLanguageModelAuthenticationAction.ID,
24
- title: ( localize2(4916, "Manage Language Model Access...")),
24
+ title: ( localize2(4934, "Manage Language Model Access...")),
25
25
  category: CHAT_CATEGORY,
26
26
  precondition: ChatContextKeys.enabled,
27
27
  menu: [{
@@ -91,9 +91,9 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
91
91
  if (extensionAuth.size === 0) {
92
92
  dialogService.prompt({
93
93
  type: "info",
94
- message: ( localize(4917, "No language models requiring authentication found.")),
94
+ message: ( localize(4935, "No language models requiring authentication found.")),
95
95
  detail: ( localize(
96
- 4918,
96
+ 4936,
97
97
  "There are currently no language models that require authentication."
98
98
  ))
99
99
  });
@@ -108,10 +108,10 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
108
108
  items.push({
109
109
  type: "separator",
110
110
  id: ownerId,
111
- label: ( localize(4919, "{0}", extension.displayName || extension.name)),
111
+ label: ( localize(4937, "{0}", extension.displayName || extension.name)),
112
112
  buttons: [{
113
113
  iconClass: ThemeIcon.asClassName(Codicon.info),
114
- tooltip: ( localize(4920, "Open Extension"))
114
+ tooltip: ( localize(4938, "Open Extension"))
115
115
  }]
116
116
  });
117
117
  let addedTrustedSeparator = false;
@@ -120,7 +120,7 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
120
120
  if (allowedExt.trusted && !addedTrustedSeparator) {
121
121
  items.push({
122
122
  type: "separator",
123
- label: ( localize(4921, "Trusted by Microsoft"))
123
+ label: ( localize(4939, "Trusted by Microsoft"))
124
124
  });
125
125
  addedTrustedSeparator = true;
126
126
  }
@@ -133,15 +133,15 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
133
133
  disabled: allowedExt.trusted,
134
134
  buttons: [{
135
135
  iconClass: ThemeIcon.asClassName(Codicon.info),
136
- tooltip: ( localize(4920, "Open Extension"))
136
+ tooltip: ( localize(4938, "Open Extension"))
137
137
  }]
138
138
  });
139
139
  }
140
140
  } else {
141
141
  items.push({
142
- label: ( localize(4922, "No extensions have access")),
142
+ label: ( localize(4940, "No extensions have access")),
143
143
  description: ( localize(
144
- 4923,
144
+ 4941,
145
145
  "No extensions are currently allowed to use models from {0}",
146
146
  ownerId
147
147
  )),
@@ -164,8 +164,8 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
164
164
  void extensionsWorkbenchService.open(extId);
165
165
  }
166
166
  },
167
- title: ( localize(4924, "Manage Language Model Access")),
168
- placeHolder: ( localize(4925, "Choose which extensions can access language models"))
167
+ title: ( localize(4942, "Manage Language Model Access")),
168
+ placeHolder: ( localize(4943, "Choose which extensions can access language models"))
169
169
  });
170
170
  if (!result) {
171
171
  return;
@@ -188,7 +188,7 @@ class ConfigureLanguageModelsGroupAction extends Action2 {
188
188
  constructor() {
189
189
  super({
190
190
  id: "lm.addLanguageModelsProviderGroup",
191
- title: ( localize(4926, "Add Language Models Group"))
191
+ title: ( localize(4944, "Add Language Models Group"))
192
192
  });
193
193
  }
194
194
  async run(accessor, languageModelsProviderGroup) {
@@ -208,7 +208,7 @@ class MigrateLanguageModelsGroupAction extends Action2 {
208
208
  constructor() {
209
209
  super({
210
210
  id: "lm.migrateLanguageModelsProviderGroup",
211
- title: ( localize(4927, "Migrate Language Models Group"))
211
+ title: ( localize(4945, "Migrate Language Models Group"))
212
212
  });
213
213
  }
214
214
  async run(accessor, languageModelsProviderGroup) {
@@ -28,7 +28,7 @@ function registerMoveActions() {
28
28
  constructor() {
29
29
  super({
30
30
  id: "workbench.action.chat.openInEditor",
31
- title: ( localize2(4928, "Move Chat into Editor Area")),
31
+ title: ( localize2(4946, "Move Chat into Editor Area")),
32
32
  category: CHAT_CATEGORY,
33
33
  precondition: ChatContextKeys.enabled,
34
34
  f1: true,
@@ -53,7 +53,7 @@ function registerMoveActions() {
53
53
  constructor() {
54
54
  super({
55
55
  id: "workbench.action.chat.openInNewWindow",
56
- title: ( localize2(4929, "Move Chat into New Window")),
56
+ title: ( localize2(4947, "Move Chat into New Window")),
57
57
  category: CHAT_CATEGORY,
58
58
  precondition: ChatContextKeys.enabled,
59
59
  f1: true,
@@ -78,7 +78,7 @@ function registerMoveActions() {
78
78
  constructor() {
79
79
  super({
80
80
  id: "workbench.action.chat.openInSidebar",
81
- title: ( localize2(4930, "Move Chat into Side Bar")),
81
+ title: ( localize2(4948, "Move Chat into Side Bar")),
82
82
  category: CHAT_CATEGORY,
83
83
  precondition: ChatContextKeys.enabled,
84
84
  f1: true
@@ -101,9 +101,9 @@ function registerMoveActions() {
101
101
  });
102
102
  }
103
103
  [MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].forEach(id => {
104
- appendOpenChatInViewMenuItem(id, ( localize(4931, "Move Chat into Secondary Side Bar")), Codicon.layoutSidebarRightDock, ( ChatContextKeys.panelLocation.isEqualTo(ViewContainerLocation.AuxiliaryBar)));
105
- appendOpenChatInViewMenuItem(id, ( localize(4932, "Move Chat into Primary Side Bar")), Codicon.layoutSidebarLeftDock, ( ChatContextKeys.panelLocation.isEqualTo(ViewContainerLocation.Sidebar)));
106
- appendOpenChatInViewMenuItem(id, ( localize(4933, "Move Chat into Panel")), Codicon.layoutPanelDock, ( ChatContextKeys.panelLocation.isEqualTo(ViewContainerLocation.Panel)));
104
+ appendOpenChatInViewMenuItem(id, ( localize(4949, "Move Chat into Secondary Side Bar")), Codicon.layoutSidebarRightDock, ( ChatContextKeys.panelLocation.isEqualTo(ViewContainerLocation.AuxiliaryBar)));
105
+ appendOpenChatInViewMenuItem(id, ( localize(4950, "Move Chat into Primary Side Bar")), Codicon.layoutSidebarLeftDock, ( ChatContextKeys.panelLocation.isEqualTo(ViewContainerLocation.Sidebar)));
106
+ appendOpenChatInViewMenuItem(id, ( localize(4951, "Move Chat into Panel")), Codicon.layoutPanelDock, ( ChatContextKeys.panelLocation.isEqualTo(ViewContainerLocation.Panel)));
107
107
  });
108
108
  }
109
109
  async function executeMoveToAction(accessor, moveTo, sessionResource) {
@@ -39,7 +39,7 @@ function isNewEditSessionActionContext(arg) {
39
39
  function registerNewChatActions() {
40
40
  MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
41
41
  submenu: MenuId.ChatNewMenu,
42
- title: ( localize2(4934, "New Chat")),
42
+ title: ( localize2(4952, "New Chat")),
43
43
  icon: Codicon.plus,
44
44
  when: ( ContextKeyExpr.equals("view", ChatViewId)),
45
45
  group: "navigation",
@@ -50,7 +50,7 @@ function registerNewChatActions() {
50
50
  constructor() {
51
51
  super({
52
52
  id: "workbench.action.chatEditor.newChat",
53
- title: ( localize2(4935, "New Chat")),
53
+ title: ( localize2(4953, "New Chat")),
54
54
  icon: Codicon.plus,
55
55
  f1: false,
56
56
  precondition: ChatContextKeys.enabled
@@ -64,7 +64,7 @@ function registerNewChatActions() {
64
64
  constructor() {
65
65
  super({
66
66
  id: ACTION_ID_NEW_CHAT,
67
- title: ( localize2(4934, "New Chat")),
67
+ title: ( localize2(4952, "New Chat")),
68
68
  category: CHAT_CATEGORY,
69
69
  icon: Codicon.plus,
70
70
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)))),
@@ -114,7 +114,7 @@ function registerNewChatActions() {
114
114
  constructor() {
115
115
  super({
116
116
  id: ACTION_ID_NEW_CHAT + variant.idSuffix,
117
- title: ( localize2(4934, "New Chat")),
117
+ title: ( localize2(4952, "New Chat")),
118
118
  category: CHAT_CATEGORY,
119
119
  icon: variant.icon,
120
120
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)))),
@@ -139,7 +139,7 @@ function registerNewChatActions() {
139
139
  constructor() {
140
140
  super({
141
141
  id: "workbench.action.chat.newLocalChat",
142
- title: ( localize2(4936, "New Local Chat")),
142
+ title: ( localize2(4954, "New Local Chat")),
143
143
  category: CHAT_CATEGORY,
144
144
  icon: Codicon.plus,
145
145
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)))),
@@ -155,7 +155,7 @@ function registerNewChatActions() {
155
155
  MenuRegistry.appendMenuItem(MenuId.ChatViewSessionTitleNavigationToolbar, {
156
156
  command: {
157
157
  id: ACTION_ID_NEW_CHAT,
158
- title: ( localize2(4937, "Go Back")),
158
+ title: ( localize2(4955, "Go Back")),
159
159
  icon: Codicon.arrowLeft
160
160
  },
161
161
  when: ( ChatContextKeys.agentSessionsViewerOrientation.notEqualsTo(AgentSessionsViewerOrientation.SideBySide)),
@@ -166,7 +166,7 @@ function registerNewChatActions() {
166
166
  constructor() {
167
167
  super({
168
168
  id: "workbench.action.chat.undoEdit",
169
- title: ( localize2(4938, "Undo Last Edit")),
169
+ title: ( localize2(4956, "Undo Last Edit")),
170
170
  category: CHAT_CATEGORY,
171
171
  icon: Codicon.discard,
172
172
  precondition: ( ContextKeyExpr.and(ChatContextKeys.chatEditingCanUndo, ChatContextKeys.enabled)),
@@ -188,7 +188,7 @@ function registerNewChatActions() {
188
188
  constructor() {
189
189
  super({
190
190
  id: "workbench.action.chat.redoEdit",
191
- title: ( localize2(4939, "Redo Last Edit")),
191
+ title: ( localize2(4957, "Redo Last Edit")),
192
192
  category: CHAT_CATEGORY,
193
193
  icon: Codicon.redo,
194
194
  precondition: ( ContextKeyExpr.and(ChatContextKeys.chatEditingCanRedo, ChatContextKeys.enabled)),
@@ -212,8 +212,8 @@ function registerNewChatActions() {
212
212
  constructor() {
213
213
  super({
214
214
  id: "workbench.action.chat.redoEdit2",
215
- title: ( localize2(4940, "Redo")),
216
- tooltip: ( localize2(4941, "Reapply discarded workspace changes and chat")),
215
+ title: ( localize2(4958, "Redo")),
216
+ tooltip: ( localize2(4959, "Reapply discarded workspace changes and chat")),
217
217
  category: CHAT_CATEGORY,
218
218
  precondition: ( ContextKeyExpr.and(ChatContextKeys.chatEditingCanRedo, ChatContextKeys.enabled)),
219
219
  f1: true,
@@ -260,7 +260,7 @@ async function runNewChatAction(accessor, context, executeCommandContext, sessio
260
260
  await clearChatSessionPreservingType(widget, viewsService, sessionType);
261
261
  widget.attachmentModel.clear(true);
262
262
  widget.focusInput();
263
- accessibilityService.alert(( localize(4942, "New chat")));
263
+ accessibilityService.alert(( localize(4960, "New chat")));
264
264
  if (!executeCommandContext) {
265
265
  return;
266
266
  }
@@ -1,4 +1,4 @@
1
1
  /**
2
- * Registers the Open Agent Debug Panel and Show Agent Logs actions.
2
+ * Registers the Open Agent Debug Logs and Show Agent Debug Logs actions.
3
3
  */
4
4
  export declare function registerChatOpenAgentDebugPanelAction(): void;
@@ -1,9 +1,18 @@
1
1
 
2
+ import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
3
+ import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
2
4
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
3
- import { localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
+ import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
4
6
  import { registerAction2, Action2, MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
5
7
  import { Categories } from '@codingame/monaco-vscode-api/vscode/vs/platform/action/common/actionCommonCategories';
6
8
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
9
+ import { IFileDialogService, IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
10
+ import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
11
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification';
12
+ import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
13
+ import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
14
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
15
+ import { ActiveEditorContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
7
16
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
8
17
  import { isChatViewTitleActionContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatActions';
9
18
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
@@ -11,14 +20,18 @@ import { IChatDebugService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
11
20
  import { ChatViewId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
12
21
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
13
22
  import { CHAT_CONFIG_MENU_ID, CHAT_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
23
+ import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
14
24
  import { ChatDebugEditorInput } from '../chatDebug/chatDebugEditorInput.js';
25
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
26
+ import { LocalChatSessionUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
27
+ import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
15
28
 
16
29
  function registerChatOpenAgentDebugPanelAction() {
17
30
  registerAction2(class OpenAgentDebugPanelAction extends Action2 {
18
31
  constructor() {
19
32
  super({
20
33
  id: "workbench.action.chat.openAgentDebugPanel",
21
- title: ( localize2(4943, "Open Agent Debug Panel")),
34
+ title: ( localize2(4961, "Open Agent Debug Logs")),
22
35
  f1: true,
23
36
  category: Categories.Developer,
24
37
  precondition: ChatContextKeys.enabled
@@ -39,10 +52,10 @@ function registerChatOpenAgentDebugPanelAction() {
39
52
  constructor() {
40
53
  super({
41
54
  id: "workbench.action.chat.openAgentDebugPanelForSession",
42
- title: ( localize2(4944, "Show Agent Logs")),
55
+ title: ( localize2(4962, "Show Agent Debug Logs")),
43
56
  f1: false,
44
57
  category: CHAT_CATEGORY,
45
- precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ChatContextKeys.chatSessionHasDebugData)),
58
+ precondition: ChatContextKeys.enabled,
46
59
  menu: [{
47
60
  id: CHAT_CONFIG_MENU_ID,
48
61
  when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.equals("view", ChatViewId)))),
@@ -53,6 +66,11 @@ function registerChatOpenAgentDebugPanelAction() {
53
66
  group: "2_settings",
54
67
  order: 0,
55
68
  when: ( ChatContextKeys.inChatEditor.negate())
69
+ }, {
70
+ id: MenuId.ViewTitle,
71
+ when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.equals("view", ChatViewId)), ( ContextKeyExpr.has(`config.${ChatConfiguration.ChatCustomizationMenuEnabled}`)))),
72
+ order: 0,
73
+ group: "4_logs"
56
74
  }]
57
75
  });
58
76
  }
@@ -80,6 +98,146 @@ function registerChatOpenAgentDebugPanelAction() {
80
98
  await editorService.openEditor(ChatDebugEditorInput.instance, options);
81
99
  }
82
100
  });
101
+ const defaultDebugLogFileName = "agent-debug-log.json";
102
+ const debugLogFilters = [{
103
+ name: ( localize(4963, "Agent Debug Log")),
104
+ extensions: ["json"]
105
+ }];
106
+ registerAction2(class ExportAgentDebugLogAction extends Action2 {
107
+ constructor() {
108
+ super({
109
+ id: "workbench.action.chat.exportAgentDebugLog",
110
+ title: ( localize2(4964, "Export Agent Debug Log...")),
111
+ icon: Codicon.desktopDownload,
112
+ f1: true,
113
+ category: Categories.Developer,
114
+ precondition: ChatContextKeys.enabled,
115
+ menu: [{
116
+ id: MenuId.EditorTitle,
117
+ group: "navigation",
118
+ when: ( ActiveEditorContext.isEqualTo(ChatDebugEditorInput.ID)),
119
+ order: 10
120
+ }]
121
+ });
122
+ }
123
+ async run(accessor) {
124
+ const chatDebugService = accessor.get(IChatDebugService);
125
+ const fileDialogService = accessor.get(IFileDialogService);
126
+ const fileService = accessor.get(IFileService);
127
+ const notificationService = accessor.get(INotificationService);
128
+ const openerService = accessor.get(IOpenerService);
129
+ const telemetryService = accessor.get(ITelemetryService);
130
+ const sessionResource = chatDebugService.activeSessionResource;
131
+ if (!sessionResource) {
132
+ notificationService.notify({
133
+ severity: Severity.Info,
134
+ message: ( localize(4965, "No active debug session to export. Navigate to a session first."))
135
+ });
136
+ return;
137
+ }
138
+ const localSessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
139
+ const rawIdentifier = localSessionId ?? (sessionResource.path.replace(/^\//, "") || sessionResource.authority);
140
+ const sessionIdentifier = rawIdentifier?.replace(/[/\\:*?"<>|.]+/g, "_").replace(/^_+|_+$/g, "");
141
+ const exportFileName = sessionIdentifier ? `agent-debug-log-${sessionIdentifier}.json` : defaultDebugLogFileName;
142
+ const defaultUri = joinPath(await fileDialogService.defaultFilePath(), exportFileName);
143
+ const outputPath = await fileDialogService.showSaveDialog({
144
+ defaultUri,
145
+ filters: debugLogFilters
146
+ });
147
+ if (!outputPath) {
148
+ return;
149
+ }
150
+ const data = await chatDebugService.exportLog(sessionResource);
151
+ if (!data) {
152
+ notificationService.notify({
153
+ severity: Severity.Warning,
154
+ message: ( localize(4966, "Export is not supported by the current provider."))
155
+ });
156
+ return;
157
+ }
158
+ await fileService.writeFile(outputPath, VSBuffer.wrap(data));
159
+ telemetryService.publicLog2("chatDebugLogExported", {
160
+ fileSizeBytes: data.byteLength
161
+ });
162
+ notificationService.prompt(Severity.Info, ( localize(4967, "Agent debug log exported successfully.")), [{
163
+ label: ( localize(4968, "Open File")),
164
+ run: () => openerService.open(outputPath)
165
+ }]);
166
+ }
167
+ });
168
+ registerAction2(class ImportAgentDebugLogAction extends Action2 {
169
+ constructor() {
170
+ super({
171
+ id: "workbench.action.chat.importAgentDebugLog",
172
+ title: ( localize2(4969, "Import Agent Debug Log...")),
173
+ icon: Codicon.cloudUpload,
174
+ f1: true,
175
+ category: Categories.Developer,
176
+ precondition: ChatContextKeys.enabled,
177
+ menu: [{
178
+ id: MenuId.EditorTitle,
179
+ group: "navigation",
180
+ when: ( ActiveEditorContext.isEqualTo(ChatDebugEditorInput.ID)),
181
+ order: 11
182
+ }]
183
+ });
184
+ }
185
+ async run(accessor) {
186
+ const chatDebugService = accessor.get(IChatDebugService);
187
+ const dialogService = accessor.get(IDialogService);
188
+ const editorService = accessor.get(IEditorService);
189
+ const fileDialogService = accessor.get(IFileDialogService);
190
+ const fileService = accessor.get(IFileService);
191
+ const notificationService = accessor.get(INotificationService);
192
+ const telemetryService = accessor.get(ITelemetryService);
193
+ const defaultUri = joinPath(await fileDialogService.defaultFilePath(), defaultDebugLogFileName);
194
+ const result = await fileDialogService.showOpenDialog({
195
+ defaultUri,
196
+ canSelectFiles: true,
197
+ filters: debugLogFilters
198
+ });
199
+ if (!result) {
200
+ return;
201
+ }
202
+ const maxImportSize = 50 * 1024 * 1024;
203
+ const stat = await fileService.stat(result[0]);
204
+ if (stat.size !== undefined && stat.size > maxImportSize) {
205
+ telemetryService.publicLog2("chatDebugLogImported", {
206
+ fileSizeBytes: stat.size,
207
+ result: "fileTooLarge"
208
+ });
209
+ await dialogService.warn(( localize(4970, "File Too Large")), ( localize(
210
+ 4971,
211
+ "The selected file ({0} MB) exceeds the 50 MB size limit for debug log imports.",
212
+ (stat.size / (1024 * 1024)).toFixed(1)
213
+ )));
214
+ return;
215
+ }
216
+ const content = await fileService.readFile(result[0]);
217
+ const sessionUri = await chatDebugService.importLog(content.value.buffer);
218
+ if (!sessionUri) {
219
+ telemetryService.publicLog2("chatDebugLogImported", {
220
+ fileSizeBytes: content.value.byteLength,
221
+ result: "providerFailed"
222
+ });
223
+ notificationService.notify({
224
+ severity: Severity.Warning,
225
+ message: ( localize(4972, "Import is not supported by the current provider."))
226
+ });
227
+ return;
228
+ }
229
+ telemetryService.publicLog2("chatDebugLogImported", {
230
+ fileSizeBytes: content.value.byteLength,
231
+ result: "success"
232
+ });
233
+ const options = {
234
+ pinned: true,
235
+ sessionResource: sessionUri,
236
+ viewHint: "overview"
237
+ };
238
+ await editorService.openEditor(ChatDebugEditorInput.instance, options);
239
+ }
240
+ });
83
241
  }
84
242
 
85
243
  export { registerChatOpenAgentDebugPanelAction };