@codingame/monaco-vscode-chat-service-override 31.0.0 → 32.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 (341) hide show
  1. package/index.d.ts +1 -1
  2. package/index.js +21 -5
  3. package/package.json +5 -5
  4. package/vscode/src/vs/base/common/defaultAccount.d.ts +69 -0
  5. package/vscode/src/vs/base/common/defaultAccount.js +12 -0
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +91 -22
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +301 -68
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +24 -5
  9. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +89 -16
  10. package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.d.ts +17 -5
  11. package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.js +73 -10
  12. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +32 -6
  13. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +32 -20
  14. package/vscode/src/vs/platform/agentHost/common/agentHostPermissionService.d.ts +37 -0
  15. package/vscode/src/vs/platform/agentHost/common/agentHostPermissionService.js +15 -0
  16. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +242 -201
  17. package/vscode/src/vs/platform/agentHost/common/agentService.js +3 -1
  18. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.d.ts +35 -0
  19. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.js +106 -0
  20. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +38 -30
  21. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +2 -1
  22. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +114 -4
  23. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +10 -10
  24. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +52 -19
  25. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +42 -0
  26. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +7 -0
  27. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +42 -41
  28. package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.d.ts +6 -6
  29. package/vscode/src/vs/platform/agentHost/common/transportConstants.d.ts +15 -0
  30. package/vscode/src/vs/platform/agentHost/common/transportConstants.js +6 -0
  31. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +4 -3
  32. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +4 -3
  33. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +4 -2
  34. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +15 -7
  35. package/vscode/src/vs/workbench/contrib/browserView/common/browserChatToolReferenceNames.d.ts +19 -0
  36. package/vscode/src/vs/workbench/contrib/browserView/common/browserChatToolReferenceNames.js +17 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -10
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +64 -59
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +31 -16
  44. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +18 -9
  45. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.d.ts +16 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +8 -8
  47. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +30 -5
  48. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  49. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +8 -7
  50. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  51. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  52. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  53. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +12 -12
  54. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
  55. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +27 -18
  56. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  57. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
  58. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  59. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +21 -20
  60. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +22 -22
  61. package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.d.ts +12 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.js +171 -0
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +4 -4
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +1 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +3 -2
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +12 -10
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.d.ts +28 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +99 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.d.ts +2 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.js +11 -4
  74. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +9 -3
  75. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +63 -53
  76. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +2 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +10 -7
  78. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +3 -3
  79. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  81. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +5 -4
  83. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +25 -48
  84. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  85. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  86. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +5 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +8 -4
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +99 -39
  89. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +2 -2
  90. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +17 -30
  91. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +78 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +38 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +35 -37
  94. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +347 -326
  95. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +6 -2
  96. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +1 -11
  97. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +113 -109
  98. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +37 -15
  99. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +436 -134
  100. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +2 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +52 -26
  103. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +7 -1
  104. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +2 -1
  105. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +13 -5
  106. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.d.ts +23 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +60 -0
  108. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.d.ts +25 -0
  109. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +93 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +9 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +73 -104
  112. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +272 -41
  113. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +12 -2
  114. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +30 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +430 -185
  116. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +5 -2
  117. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +44 -3
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +480 -279
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.d.ts +138 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.js +221 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.d.ts +84 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +1216 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +2 -1
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +32 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +26 -19
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +28 -25
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +25 -24
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +2 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +68 -33
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +3 -2
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.js +1 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +650 -6
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +46 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +533 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +29 -0
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +390 -0
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +101 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +509 -0
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +18 -3
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +11 -11
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -2
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +130 -0
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +276 -0
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -7
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +1 -7
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +6 -87
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +1 -1
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +116 -182
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +12 -39
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +31 -31
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +61 -41
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +27 -27
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +2 -0
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +16 -13
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +20 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +106 -36
  179. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +25 -7
  180. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +629 -425
  181. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +9 -1
  182. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +105 -29
  183. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.d.ts +1 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +175 -148
  185. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +20 -33
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +9 -2
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  188. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  189. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  190. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  191. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  192. package/vscode/src/vs/workbench/contrib/chat/browser/githubRepoFetcher.d.ts +58 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/githubRepoFetcher.js +339 -0
  194. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/media/planReviewFeedback.css +160 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.d.ts +9 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +123 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.d.ts +37 -0
  199. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +572 -0
  200. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackService.d.ts +36 -0
  201. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackService.js +167 -0
  202. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.d.ts +49 -7
  203. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +315 -19
  204. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +45 -24
  205. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
  206. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
  207. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  208. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +44 -40
  209. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +5 -5
  210. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  211. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileContributions.js +4 -1
  212. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  213. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  214. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  215. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  216. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  217. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  218. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  219. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +9 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +111 -52
  221. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +3 -7
  222. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +13 -47
  223. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +3 -2
  224. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +4 -8
  225. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.d.ts +18 -0
  226. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.js +56 -0
  227. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +3 -7
  228. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +14 -52
  229. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  230. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.d.ts +3 -1
  231. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +17 -2
  232. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
  233. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +23 -12
  234. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.d.ts +39 -0
  235. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +136 -0
  236. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletionsBase.d.ts +72 -0
  237. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletionsBase.js +56 -0
  238. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.d.ts +7 -0
  239. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.js +14 -1
  240. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +41 -26
  241. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +30 -12
  242. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  243. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  244. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +2 -5
  245. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +25 -6
  246. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  247. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +2 -2
  248. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +5 -4
  249. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -0
  250. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +108 -45
  251. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +7 -3
  252. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +3 -1
  253. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +20 -1
  254. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +65 -26
  255. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +5 -3
  256. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +38 -11
  257. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +17 -1
  258. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +165 -16
  259. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +1 -0
  260. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +62 -1
  261. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
  262. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +2 -1
  263. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  264. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -3
  265. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +15 -21
  266. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +1 -3
  267. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +18 -24
  268. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +4 -2
  269. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +203 -180
  270. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  271. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.d.ts +30 -0
  272. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.js +35 -0
  273. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +2 -1
  274. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +27 -2
  275. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
  276. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +14 -49
  277. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +0 -16
  278. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +35 -177
  279. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -8
  280. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.d.ts +1 -2
  281. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +2 -3
  282. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +4 -4
  283. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -11
  284. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  285. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +13 -13
  287. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  288. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  289. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +29 -3
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +129 -3
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -2
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +2 -1
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +14 -6
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +1 -4
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +12 -38
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +4 -4
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.d.ts +12 -7
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +77 -70
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.d.ts +32 -0
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.js +232 -0
  311. package/vscode/src/vs/workbench/services/agentHost/common/agentHostPermissionService.d.ts +83 -0
  312. package/vscode/src/vs/workbench/services/agentHost/common/agentHostPermissionService.js +243 -0
  313. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +0 -749
  314. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.js +0 -14
  315. package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.d.ts +0 -17
  316. package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.js +0 -5
  317. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +0 -40
  318. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.js +0 -14
  319. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +0 -61
  320. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +0 -638
  321. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +0 -131
  322. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +0 -363
  323. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +0 -24
  324. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +0 -306
  325. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -23
  326. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +0 -97
  327. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatStatusWidget.css +0 -57
  328. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +0 -50
  329. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +0 -29
  330. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +0 -50
  331. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +0 -78
  332. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +0 -77
  333. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +0 -120
  334. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +0 -10
  335. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +0 -23
  336. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +0 -242
  337. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +0 -1701
  338. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +0 -191
  339. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +0 -728
  340. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +0 -14
  341. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +0 -69
@@ -9,11 +9,11 @@ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/comm
9
9
  import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
10
10
  import { Disposable, DisposableResourceMap, DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
11
11
  import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
12
- import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
13
12
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
14
13
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
15
14
  import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
16
15
  import { isDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
16
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
17
17
  import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
18
18
  import { OffsetRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/offsetRange';
19
19
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
@@ -28,7 +28,6 @@ import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs
28
28
  import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
29
29
  import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
30
30
  import { IChatDebugService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatDebugService.service';
31
- import { InlineChatConfigKeys } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
32
31
  import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
33
32
  import { awaitStatsForSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chat';
34
33
  import { clearChatMarks, markChat, ChatPerfMark } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatPerf';
@@ -40,7 +39,7 @@ import { ChatRequestTextPart, ChatRequestSlashCommandPart, getPromptText, ChatRe
40
39
  import { ChatRequestParser } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatRequestParser';
41
40
  import { ChatPendingRequestChangeEventName, ChatRequestQueueKind, ChatMcpServersStarting, ChatStopCancellationNoopEventName, ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
42
41
  import { ChatServiceTelemetry, ChatRequestTelemetry } from './chatServiceTelemetry.js';
43
- import { localChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
42
+ import { isAgentHostTarget, localChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
44
43
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
45
44
  import { ChatSessionStore } from '../model/chatSessionStore.js';
46
45
  import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service';
@@ -63,6 +62,16 @@ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/obse
63
62
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
64
63
 
65
64
  const serializedChatKey = "interactive.sessions";
65
+ function hasDraftInput(model) {
66
+ const state = model.inputModel.state.get();
67
+ if (!state) {
68
+ return false;
69
+ }
70
+ if (state.inputText.trim().length > 0) {
71
+ return true;
72
+ }
73
+ return state.attachments.length > 0;
74
+ }
66
75
  let CancellableRequest = class CancellableRequest {
67
76
  get yieldRequested() {
68
77
  return this._yieldRequested;
@@ -101,6 +110,8 @@ let CancellableRequest = class CancellableRequest {
101
110
  }
102
111
  };
103
112
  CancellableRequest = ( __decorate([( __param(4, ILanguageModelToolsService))], CancellableRequest));
113
+ const EMPTY_REFERENCES = ( Object.freeze([]));
114
+ const EMPTY_TOOL_ENABLEMENT_MAP = ( new Map());
104
115
  let ChatService = class ChatService extends Disposable {
105
116
  get transferredSessionResource() {
106
117
  return this._transferredSessionResource;
@@ -175,7 +186,7 @@ let ChatService = class ChatService extends Disposable {
175
186
  } else if (this._saveModelsEnabled) {
176
187
  await this._chatSessionStore.storeSessions([model]);
177
188
  }
178
- } else if (!localSessionId && model.getRequests().length > 0) {
189
+ } else if (!localSessionId && (model.getRequests().length > 0 || hasDraftInput(model))) {
179
190
  await this._chatSessionStore.storeSessionsMetadataOnly([model]);
180
191
  }
181
192
  }
@@ -230,10 +241,11 @@ let ChatService = class ChatService extends Disposable {
230
241
  return;
231
242
  }
232
243
  const liveLocalChats = Array.from(( this._sessionModels.values())).filter(session => this.shouldStoreSession(session));
233
- this._chatSessionStore.storeSessions(liveLocalChats);
234
244
  const liveNonLocalChats = Array.from(( this._sessionModels.values())).filter(
235
245
  session => !LocalChatSessionUri.parseLocalSessionId(session.sessionResource)
236
246
  );
247
+ this._chatSessionStore.updateAndFlushIndexSync(liveLocalChats, liveNonLocalChats);
248
+ this._chatSessionStore.storeSessions(liveLocalChats);
237
249
  this._chatSessionStore.storeSessionsMetadataOnly(liveNonLocalChats);
238
250
  }
239
251
  shouldStoreSession(session) {
@@ -330,10 +342,15 @@ let ChatService = class ChatService extends Disposable {
330
342
  const index = await this._chatSessionStore.getIndex();
331
343
  return ( ( Object.values(index)).filter(entry => !entry.isExternal).filter(entry => !( this._sessionModels.has(LocalChatSessionUri.forSession(entry.sessionId))) && entry.initialLocation === ChatAgentLocation.Chat && !entry.isEmpty).map(entry => {
332
344
  const sessionResource = LocalChatSessionUri.forSession(entry.sessionId);
345
+ const {
346
+ workingDirectory: workingDirectoryStr,
347
+ ...rest
348
+ } = entry;
333
349
  return ({
334
- ...entry,
350
+ ...rest,
335
351
  sessionResource,
336
- isActive: ( this._sessionModels.has(sessionResource))
352
+ isActive: ( this._sessionModels.has(sessionResource)),
353
+ workingDirectory: workingDirectoryStr ? ( URI.parse(workingDirectoryStr)) : undefined
337
354
  });
338
355
  }));
339
356
  }
@@ -341,10 +358,15 @@ let ChatService = class ChatService extends Disposable {
341
358
  const index = await this._chatSessionStore.getIndex();
342
359
  const metadata = index[( sessionResource.toString())];
343
360
  if (metadata) {
361
+ const {
362
+ workingDirectory: workingDirectoryStr,
363
+ ...rest
364
+ } = metadata;
344
365
  return {
345
- ...metadata,
366
+ ...rest,
346
367
  sessionResource,
347
- isActive: ( this._sessionModels.has(sessionResource))
368
+ isActive: ( this._sessionModels.has(sessionResource)),
369
+ workingDirectory: workingDirectoryStr ? ( URI.parse(workingDirectoryStr)) : undefined
348
370
  };
349
371
  }
350
372
  return undefined;
@@ -475,7 +497,7 @@ let ChatService = class ChatService extends Disposable {
475
497
  }, debugOwner ?? "ChatService#loadSessionFromData");
476
498
  }
477
499
  async acquireOrLoadSession(sessionResource, location, token, debugOwner) {
478
- if (sessionResource.scheme === Schemas.vscodeLocalChatSession) {
500
+ if (LocalChatSessionUri.isLocalSession(sessionResource)) {
479
501
  return this.acquireOrRestoreLocalSession(sessionResource, debugOwner);
480
502
  } else {
481
503
  return this.loadRemoteSession(sessionResource, location, token, debugOwner);
@@ -488,7 +510,7 @@ let ChatService = class ChatService extends Disposable {
488
510
  return existingRef;
489
511
  }
490
512
  }
491
- if (!(await this.chatSessionService.canResolveChatSession(sessionResource.scheme))) {
513
+ if (!(await this.chatSessionService.canResolveChatSession(getChatSessionType(sessionResource)))) {
492
514
  return undefined;
493
515
  }
494
516
  const providedSession = await this.chatSessionService.getOrCreateChatSession(sessionResource, token);
@@ -508,7 +530,9 @@ let ChatService = class ChatService extends Disposable {
508
530
  providedSession.history.filter(m => m.type === "request"),
509
531
  req => req.modeInstructions?.uri
510
532
  )?.modeInstructions?.uri;
511
- const storedPermissionLevel = this._chatSessionStore.getMetadataForSessionSync(sessionResource)?.permissionLevel;
533
+ const storedMetadata = this._chatSessionStore.getMetadataForSessionSync(sessionResource);
534
+ const storedPermissionLevel = storedMetadata?.permissionLevel;
535
+ const storedInputState = storedMetadata?.inputState;
512
536
  let initialData = undefined;
513
537
  if ((modelId || agentUri)) {
514
538
  const mode = agentUri ? {
@@ -553,9 +577,9 @@ let ChatService = class ChatService extends Disposable {
553
577
  sessionResource: sessionResource,
554
578
  canUseTools: false,
555
579
  transferEditingSession: providedSession.transferredState?.editingSession,
556
- inputState: providedSession.transferredState?.inputState
580
+ inputState: providedSession.transferredState?.inputState ?? storedInputState
557
581
  }, debugOwner ?? "ChatService#loadRemoteSession");
558
- if (storedPermissionLevel && !initialData) {
582
+ if (storedPermissionLevel && !initialData && !storedInputState) {
559
583
  modelRef.object.inputModel.setState({
560
584
  permissionLevel: storedPermissionLevel
561
585
  });
@@ -569,6 +593,37 @@ let ChatService = class ChatService extends Disposable {
569
593
  disposables.dispose();
570
594
  providedSession.dispose();
571
595
  }));
596
+ const isAgentHostSession = isAgentHostTarget(chatSessionType);
597
+ const requestParser = isAgentHostSession ? this.instantiationService.createInstance(ChatRequestParser) : undefined;
598
+ const parseAgentHostHistoryPrompt = (text, agent) => {
599
+ if (requestParser) {
600
+ try {
601
+ const attachmentCapabilities = this.getAttachmentCapabilitiesForParser(chatSessionType, agent);
602
+ const parsed = requestParser.parseChatRequestWithReferences(EMPTY_REFERENCES, EMPTY_TOOL_ENABLEMENT_MAP, text, location, {
603
+ sessionType: chatSessionType,
604
+ forcedAgent: agent,
605
+ attachmentCapabilities
606
+ });
607
+ if (parsed.parts.length > 0) {
608
+ return parsed;
609
+ }
610
+ } catch (e) {
611
+ this.logService.warn(
612
+ `ChatService#loadRemoteSession: failed to re-parse historical prompt for ${chatSessionType}`,
613
+ e
614
+ );
615
+ }
616
+ }
617
+ return {
618
+ text,
619
+ parts: [( new ChatRequestTextPart(( new OffsetRange(0, text.length)), {
620
+ startLineNumber: 1,
621
+ startColumn: 1,
622
+ endLineNumber: 1,
623
+ endColumn: text.length + 1
624
+ }, text))]
625
+ };
626
+ };
572
627
  let lastRequest;
573
628
  for (const message of providedSession.history) {
574
629
  if (message.type === "request") {
@@ -576,17 +631,9 @@ let ChatService = class ChatService extends Disposable {
576
631
  lastRequest.response?.complete();
577
632
  }
578
633
  const requestText = message.prompt;
579
- const parsedRequest = {
580
- text: requestText,
581
- parts: [( new ChatRequestTextPart(( new OffsetRange(0, requestText.length)), {
582
- startLineNumber: 1,
583
- startColumn: 1,
584
- endLineNumber: 1,
585
- endColumn: requestText.length + 1
586
- }, requestText))]
587
- };
588
634
  const agent = message.participant ?
589
635
  this.chatAgentService.getAgent(message.participant) : this.chatAgentService.getAgent(chatSessionType);
636
+ const parsedRequest = parseAgentHostHistoryPrompt(requestText, agent);
590
637
  const modeInfo = message.modeInstructions ? {
591
638
  kind: ChatModeKind.Agent,
592
639
  isBuiltin: message.modeInstructions.isBuiltin ?? false,
@@ -608,6 +655,11 @@ let ChatService = class ChatService extends Disposable {
608
655
  for (const part of message.parts) {
609
656
  model.acceptResponseProgress(lastRequest, part);
610
657
  }
658
+ if (message.details && lastRequest.response) {
659
+ lastRequest.response.setResult({
660
+ details: message.details
661
+ });
662
+ }
611
663
  }
612
664
  }
613
665
  }
@@ -645,24 +697,16 @@ let ChatService = class ChatService extends Disposable {
645
697
  if (providedSession.onDidStartServerRequest) {
646
698
  disposables.add(providedSession.onDidStartServerRequest((
647
699
  {
648
- prompt
700
+ prompt,
701
+ variableData
649
702
  }
650
703
  ) => {
651
704
  if (lastRequest?.response && !lastRequest.response.isComplete) {
652
705
  lastRequest.response.complete();
653
706
  }
654
- const requestText = prompt;
655
- const parsedRequest = {
656
- text: requestText,
657
- parts: [( new ChatRequestTextPart(( new OffsetRange(0, requestText.length)), {
658
- startLineNumber: 1,
659
- startColumn: 1,
660
- endLineNumber: 1,
661
- endColumn: requestText.length + 1
662
- }, requestText))]
663
- };
664
707
  const agent = this.chatAgentService.getAgent(chatSessionType);
665
- lastRequest = model.addRequest(parsedRequest, {
708
+ const parsedRequest = parseAgentHostHistoryPrompt(prompt, agent);
709
+ lastRequest = model.addRequest(parsedRequest, variableData ?? {
666
710
  variables: []
667
711
  }, 0, undefined, agent);
668
712
  lastProgressLength = 0;
@@ -866,14 +910,20 @@ let ChatService = class ChatService extends Disposable {
866
910
  };
867
911
  } finally {}
868
912
  }
913
+ getAttachmentCapabilitiesForParser(chatSessionType, agent) {
914
+ return this.chatSessionService.getCapabilitiesForSessionType(chatSessionType) ?? agent?.capabilities;
915
+ }
869
916
  parseChatRequest(sessionResource, request, location, options) {
870
917
  let parserContext = options?.parserContext;
918
+ let contextAgent = parserContext?.forcedAgent ?? parserContext?.selectedAgent;
871
919
  if (options?.agentId) {
872
920
  const agent = this.chatAgentService.getAgent(options.agentId);
873
921
  if (!agent) {
874
922
  throw ( new Error(`Unknown agent: ${options.agentId}`));
875
923
  }
924
+ contextAgent = agent;
876
925
  parserContext = {
926
+ ...parserContext,
877
927
  selectedAgent: agent,
878
928
  mode: options.modeInfo?.kind
879
929
  };
@@ -882,12 +932,20 @@ let ChatService = class ChatService extends Disposable {
882
932
  } else if (options?.agentIdSilent && !parserContext?.forcedAgent) {
883
933
  const silentAgent = this.chatAgentService.getAgent(options.agentIdSilent);
884
934
  if (silentAgent) {
935
+ contextAgent = silentAgent;
885
936
  parserContext = {
886
937
  ...parserContext,
887
938
  forcedAgent: silentAgent
888
939
  };
889
940
  }
890
941
  }
942
+ const attachmentCapabilities = parserContext?.attachmentCapabilities ?? this.getAttachmentCapabilitiesForParser(getChatSessionType(sessionResource), contextAgent);
943
+ if (attachmentCapabilities) {
944
+ parserContext = {
945
+ ...parserContext,
946
+ attachmentCapabilities
947
+ };
948
+ }
891
949
  const parsedRequest = this.instantiationService.createInstance(ChatRequestParser).parseChatRequest(sessionResource, request, location, parserContext);
892
950
  return parsedRequest;
893
951
  }
@@ -983,7 +1041,7 @@ let ChatService = class ChatService extends Disposable {
983
1041
  model.acceptResponseProgress(request, {
984
1042
  kind: "markdownContent",
985
1043
  content: ( new MarkdownString(( localize(
986
- 7379,
1044
+ 7688,
987
1045
  "The `{0}` skill requires `{1}` to be enabled. After enabling, reload the window to apply. [Enable in Settings](command:workbench.action.openSettings?{2})",
988
1046
  TROUBLESHOOT_COMMAND_NAME,
989
1047
  AGENT_DEBUG_LOG_FILE_LOGGING_ENABLED_SETTING,
@@ -1017,7 +1075,7 @@ let ChatService = class ChatService extends Disposable {
1017
1075
  if (agentName) {
1018
1076
  try {
1019
1077
  const agents = await this.promptsService.getCustomAgents(token);
1020
- const customAgent = agents.find(a => a.name === agentName);
1078
+ const customAgent = agents.find(a => a.name === agentName && a.enabled);
1021
1079
  if (customAgent?.hooks) {
1022
1080
  collectedHooks = mergeHooks(collectedHooks, customAgent.hooks);
1023
1081
  }
@@ -1149,7 +1207,8 @@ let ChatService = class ChatService extends Disposable {
1149
1207
  editedFileEvents: thisRequest.editedFileEvents,
1150
1208
  hooks: collectedHooks,
1151
1209
  hasHooksEnabled: !!collectedHooks && ( ( Object.values(collectedHooks)).some(arr => arr.length > 0)),
1152
- isSystemInitiated: options?.isSystemInitiated
1210
+ isSystemInitiated: options?.isSystemInitiated,
1211
+ workingDirectory: model.workingDirectory
1153
1212
  };
1154
1213
  let isInitialTools = true;
1155
1214
  store.add(autorun(reader => {
@@ -1165,7 +1224,7 @@ let ChatService = class ChatService extends Disposable {
1165
1224
  }));
1166
1225
  return agentRequest;
1167
1226
  };
1168
- if (this.configurationService.getValue("chat.detectParticipant.enabled") !== false && this.chatAgentService.hasChatParticipantDetectionProviders() && !agentPart && !commandPart && !agentSlashCommandPart && enableCommandDetection && (location !== ChatAgentLocation.EditorInline || !this.configurationService.getValue(InlineChatConfigKeys.EnableV2)) && options?.modeInfo?.kind !== ChatModeKind.Agent && options?.modeInfo?.kind !== ChatModeKind.Edit && !options?.agentIdSilent) {
1227
+ if (this.configurationService.getValue("chat.detectParticipant.enabled") !== false && this.chatAgentService.hasChatParticipantDetectionProviders() && !agentPart && !commandPart && !agentSlashCommandPart && enableCommandDetection && location !== ChatAgentLocation.EditorInline && options?.modeInfo?.kind !== ChatModeKind.Agent && options?.modeInfo?.kind !== ChatModeKind.Edit && !options?.agentIdSilent) {
1169
1228
  const defaultAgentHistory = this.getHistoryEntriesFromModel(requests, location, defaultAgent.id);
1170
1229
  const chatAgentRequest = buildAgentRequest(defaultAgent, undefined, enableCommandDetection, false);
1171
1230
  const result = await this.chatAgentService.detectAgentOrCommand(chatAgentRequest, defaultAgentHistory, {
@@ -1223,7 +1282,10 @@ let ChatService = class ChatService extends Disposable {
1223
1282
  const agentResult = await this.chatAgentService.invokeAgent(agent.id, requestProps, progressCallback, history, token);
1224
1283
  rawResult = agentResult;
1225
1284
  agentOrCommandFollowups = this.chatAgentService.getFollowups(agent.id, requestProps, agentResult, history, followupsCancelToken);
1226
- } else if (commandPart && this.chatSlashCommandService.hasCommand(commandPart.slashCommand.command)) {
1285
+ } else if (commandPart && this.chatSlashCommandService.hasCommand(
1286
+ commandPart.slashCommand.command,
1287
+ getChatSessionType(model.sessionResource)
1288
+ )) {
1227
1289
  if (commandPart.slashCommand.silent !== true) {
1228
1290
  request = model.addRequest(parsedRequest, {
1229
1291
  variables: []
@@ -1281,7 +1343,7 @@ let ChatService = class ChatService extends Disposable {
1281
1343
  );
1282
1344
  rawResult = {
1283
1345
  errorDetails: {
1284
- message: ( localize(7380, "Provider returned null response"))
1346
+ message: ( localize(7689, "Provider returned null response"))
1285
1347
  }
1286
1348
  };
1287
1349
  }
@@ -1303,7 +1365,7 @@ let ChatService = class ChatService extends Disposable {
1303
1365
  if (rawResult.errorDetails?.isRateLimited) {
1304
1366
  this.chatEntitlementService.markAnonymousRateLimited();
1305
1367
  }
1306
- shouldProcessPending = !rawResult.errorDetails && !token.isCancellationRequested;
1368
+ shouldProcessPending = !rawResult.errorDetails && !token.isCancellationRequested && !request.response?.response.value.some(v => v.kind === "confirmation" && !v.isUsed);
1307
1369
  request.response?.complete();
1308
1370
  if (agentOrCommandFollowups) {
1309
1371
  const completedRequest = request;
@@ -1382,7 +1444,7 @@ let ChatService = class ChatService extends Disposable {
1382
1444
  }
1383
1445
  }
1384
1446
  _isServerManagedQueue(sessionResource) {
1385
- return sessionResource.scheme.startsWith("agent-host-");
1447
+ return getChatSessionType(sessionResource).startsWith("agent-host-");
1386
1448
  }
1387
1449
  processNextPendingRequest(model) {
1388
1450
  if (this._isServerManagedQueue(model.sessionResource)) {
@@ -1765,7 +1827,7 @@ let ChatService = class ChatService extends Disposable {
1765
1827
  };
1766
1828
  ChatService = ( __decorate([( __param(0, IStorageService)), ( __param(1, ILogService)), ( __param(2, ITelemetryService)), ( __param(3, IExtensionService)), ( __param(4, IInstantiationService)), ( __param(5, IWorkspaceContextService)), ( __param(6, IChatSlashCommandService)), ( __param(7, IChatAgentService)), ( __param(8, IConfigurationService)), ( __param(9, IChatTransferService)), ( __param(10, IChatSessionsService)), ( __param(11, IMcpService)), ( __param(12, IPromptsService)), ( __param(13, IChatEntitlementService)), ( __param(14, ILanguageModelsService)), ( __param(15, IChatDebugService))], ChatService));
1767
1829
  async function chatModelToChatDetail(model) {
1768
- const title = model.title || ( localize(7381, "New Chat"));
1830
+ const title = model.title || ( localize(7690, "New Chat"));
1769
1831
  return {
1770
1832
  sessionResource: model.sessionResource,
1771
1833
  title,
@@ -1773,7 +1835,8 @@ async function chatModelToChatDetail(model) {
1773
1835
  timing: model.timing,
1774
1836
  isActive: true,
1775
1837
  stats: await awaitStatsForSession(model),
1776
- lastResponseState: model.lastRequest?.response?.state ?? ResponseModelState.Pending
1838
+ lastResponseState: model.lastRequest?.response?.state ?? ResponseModelState.Pending,
1839
+ workingDirectory: model.workingDirectory
1777
1840
  };
1778
1841
  }
1779
1842
 
@@ -2,12 +2,13 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
4
  import { isLocation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
5
+ import { escapeModelIdForTelemetry } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry';
5
6
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
6
7
  import { ChatAgentVoteDirection, ChatCopyKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
7
8
  import { isImageVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
8
9
  import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
9
10
  import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
10
- import { chatSessionResourceToId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
11
+ import { getChatSessionType, chatSessionResourceToId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
11
12
 
12
13
  let ChatServiceTelemetry = class ChatServiceTelemetry {
13
14
  constructor(telemetryService) {
@@ -56,7 +57,10 @@ let ChatServiceTelemetry = class ChatServiceTelemetry {
56
57
  agentId: action.agentId ?? "",
57
58
  outcome: action.action.outcome,
58
59
  lineCount: action.action.lineCount,
59
- hasRemainingEdits: action.action.hasRemainingEdits
60
+ hasRemainingEdits: action.action.hasRemainingEdits,
61
+ requestId: action.requestId,
62
+ modelId: escapeModelIdForTelemetry(action.modelId) ?? "",
63
+ modeId: action.modeId ?? ""
60
64
  });
61
65
  }
62
66
  }
@@ -131,7 +135,7 @@ let ChatRequestTelemetry = class ChatRequestTelemetry {
131
135
  model: this.resolveModelId(this.opts.options?.userSelectedModelId),
132
136
  permissionLevel: this.opts.options?.modeInfo?.kind === ChatModeKind.Ask ? undefined : this.opts.options?.modeInfo?.permissionLevel,
133
137
  chatMode: this.opts.options?.modeInfo?.modeName ?? this.opts.options?.modeInfo?.modeId,
134
- sessionType: this.opts.sessionResource.scheme
138
+ sessionType: getChatSessionType(this.opts.sessionResource)
135
139
  });
136
140
  }
137
141
  attachmentKindsForTelemetry(variableData) {
@@ -55,6 +55,7 @@ const responsePartSchema = v(
55
55
  case "planReview":
56
56
  case "undoStop":
57
57
  case "warning":
58
+ case "info":
58
59
  case "treeData":
59
60
  case "workspaceEdit":
60
61
  case "disabledClaudeHooks":
@@ -150,7 +151,8 @@ const storageSchema = object({
150
151
  m => m.editingSession?.entries.get().some(e => e.state.get() === ModifiedFileEntryState.Modified)
151
152
  ),
152
153
  repoData: v(m => m.repoData, equals),
153
- pendingRequests: t(m => m.getPendingRequests(), array(pendingRequestSchema))
154
+ pendingRequests: t(m => m.getPendingRequests(), array(pendingRequestSchema)),
155
+ workingDirectory: v(m => m.workingDirectory?.toString())
154
156
  });
155
157
  class ChatSessionOperationLog extends ObjectMutationLog {
156
158
  constructor() {
@@ -14,7 +14,7 @@ import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbe
14
14
  import { IWorkspaceEditingService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/workspaces/common/workspaceEditing.service";
15
15
  import { IChatSessionStats, IChatSessionTiming, ResponseModelState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
16
16
  import { ChatAgentLocation, ChatPermissionLevel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
17
- import { ChatModel, ISerializableChatData, ISerializableChatsData, ISerializedChatDataReference } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
17
+ import { ChatModel, ISerializableChatData, ISerializableChatModelInputState, ISerializableChatsData, ISerializedChatDataReference } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
18
18
  export declare class ChatSessionStore extends Disposable {
19
19
  private readonly fileService;
20
20
  private readonly environmentService;
@@ -71,6 +71,14 @@ export declare class ChatSessionStore extends Disposable {
71
71
  private readSessionFromPreviousLocation;
72
72
  private getStorageLocation;
73
73
  private getTransferredSessionStorageLocation;
74
+ /**
75
+ * Synchronously update the in-memory index entries for the given sessions
76
+ * and flush the index to storage. This ensures the index is persisted
77
+ * even when called from a synchronous `onWillSaveState` handler where
78
+ * async file-write work would complete after the storage service has
79
+ * already flushed.
80
+ */
81
+ updateAndFlushIndexSync(localSessions: ChatModel[], externalSessions: ChatModel[]): void;
74
82
  getChatStorageFolder(): URI;
75
83
  }
76
84
  export interface IChatSessionEntryMetadata {
@@ -82,6 +90,11 @@ export interface IChatSessionEntryMetadata {
82
90
  hasPendingEdits?: boolean;
83
91
  stats?: IChatSessionStats;
84
92
  lastResponseState: ResponseModelState;
93
+ /**
94
+ * The working directory URI string associated with this session.
95
+ * Persisted so it survives window reload in the agents/sessions window.
96
+ */
97
+ workingDirectory?: string;
85
98
  /**
86
99
  * This only exists because the migrated data from the storage service had empty sessions persisted, and it's impossible to know which ones are
87
100
  * currently in use. Now, `clearSession` deletes empty sessions, so old ones shouldn't take up space in the store anymore, but we still need to
@@ -96,6 +109,12 @@ export interface IChatSessionEntryMetadata {
96
109
  * The permission level for tool auto-approval, if not default.
97
110
  */
98
111
  permissionLevel?: ChatPermissionLevel;
112
+ /**
113
+ * Serialized draft input state (text, attachments, mode, selected model, ...) for
114
+ * external sessions, so that unsent input is preserved when switching away and
115
+ * back. Local sessions instead persist their full state via storeSessions.
116
+ */
117
+ inputState?: ISerializableChatModelInputState;
99
118
  }
100
119
  export type IChatSessionIndex = Record<string, IChatSessionEntryMetadata>;
101
120
  export interface IChatTransfer {
@@ -98,7 +98,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
98
98
  }
99
99
  e.join(this.storeTask, {
100
100
  id: "join.chatSessionStore",
101
- label: ( localize(7418, "Saving chat history"))
101
+ label: ( localize(7727, "Saving chat history"))
102
102
  });
103
103
  }));
104
104
  }
@@ -356,14 +356,14 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
356
356
  this._didReportIssue = true;
357
357
  this.dialogService.prompt({
358
358
  custom: true,
359
- title: ( localize(7419, "Error saving chat session")),
359
+ title: ( localize(7728, "Error saving chat session")),
360
360
  message: ( localize(
361
- 7420,
361
+ 7729,
362
362
  "Error serializing chat session for storage. The session will be lost if the window is closed. Please report this issue to the VS Code team:\n\n{0}",
363
363
  e.stack || toErrorMessage(e)
364
364
  )),
365
365
  buttons: [{
366
- label: ( localize(7421, "Report Issue")),
366
+ label: ( localize(7730, "Report Issue")),
367
367
  run: () => this.openerService.open("https://github.com/microsoft/vscode/issues/new?template=bug_report.md")
368
368
  }]
369
369
  });
@@ -664,6 +664,26 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
664
664
  const sessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
665
665
  return joinPath(this.transferredSessionStorageRoot, `${sessionId}.json`);
666
666
  }
667
+ updateAndFlushIndexSync(localSessions, externalSessions) {
668
+ const index = this.internalGetIndex();
669
+ for (const session of localSessions) {
670
+ index.entries[session.sessionId] = getSessionMetadataSync(session);
671
+ }
672
+ for (const session of externalSessions) {
673
+ const externalSessionId = ( session.sessionResource.toString());
674
+ index.entries[externalSessionId] = getSessionMetadataSync(session);
675
+ }
676
+ try {
677
+ this.storageService.store(
678
+ ChatIndexStorageKey,
679
+ index,
680
+ this.getIndexStorageScope(),
681
+ StorageTarget.MACHINE
682
+ );
683
+ } catch (e) {
684
+ this.reportError("indexWrite", "Error writing index synchronously", e);
685
+ }
686
+ }
667
687
  getChatStorageFolder() {
668
688
  return this.storageRoot;
669
689
  }
@@ -690,35 +710,54 @@ function isChatSessionIndex(data) {
690
710
  }
691
711
  return true;
692
712
  }
693
- async function getSessionMetadata(session) {
694
- const title = session.customTitle || (session instanceof ChatModel ? session.title : undefined);
695
- let stats;
696
- if (session instanceof ChatModel) {
697
- stats = await awaitStatsForSession(session);
698
- }
699
- const lastMessageDate = session instanceof ChatModel ? session.lastMessageDate : session.requests.at(-1)?.timestamp ?? session.creationDate;
700
- const timing = session instanceof ChatModel ? session.timing :
701
- {
702
- created: session.creationDate,
703
- lastRequestStarted: session.requests.at(-1)?.timestamp,
704
- lastRequestEnded: lastMessageDate
705
- };
706
- let lastResponseState = session instanceof ChatModel ? (session.lastRequest?.response?.state ?? ResponseModelState.Complete) : ResponseModelState.Complete;
713
+ function getSessionMetadataSync(session) {
714
+ const title = session.customTitle || session.title;
715
+ let lastResponseState = session.lastRequest?.response?.state ?? ResponseModelState.Complete;
707
716
  if (lastResponseState === ResponseModelState.Pending || lastResponseState === ResponseModelState.NeedsInput) {
708
717
  lastResponseState = ResponseModelState.Cancelled;
709
718
  }
719
+ const isExternal = !LocalChatSessionUri.parseLocalSessionId(session.sessionResource);
720
+ const rawInputState = isExternal ? session.inputModel.toJSON() : undefined;
721
+ const inputState = rawInputState ? {
722
+ ...rawInputState,
723
+ attachments: []
724
+ } : undefined;
710
725
  return {
711
726
  sessionId: session.sessionId,
712
- title: title || ( localize(7422, "New Chat")),
713
- lastMessageDate,
714
- timing,
727
+ title: title || ( localize(7731, "New Chat")),
728
+ lastMessageDate: session.lastMessageDate,
729
+ timing: session.timing,
715
730
  initialLocation: session.initialLocation,
716
- hasPendingEdits: session instanceof ChatModel ? (session.editingSession?.entries.get().some(e => e.state.get() === ModifiedFileEntryState.Modified)) : false,
717
- isEmpty: session instanceof ChatModel ? session.getRequests().length === 0 : session.requests.length === 0,
718
- stats,
719
- isExternal: session instanceof ChatModel && !LocalChatSessionUri.parseLocalSessionId(session.sessionResource),
731
+ hasPendingEdits: session.editingSession?.entries.get().some(e => e.state.get() === ModifiedFileEntryState.Modified) ?? false,
732
+ isEmpty: session.getRequests().length === 0,
733
+ isExternal,
720
734
  lastResponseState,
721
- permissionLevel: session instanceof ChatModel ? session.inputModel.state.get()?.permissionLevel : undefined
735
+ permissionLevel: session.inputModel.state.get()?.permissionLevel,
736
+ inputState,
737
+ workingDirectory: session.workingDirectory?.toString()
738
+ };
739
+ }
740
+ async function getSessionMetadata(session) {
741
+ if (session instanceof ChatModel) {
742
+ const metadata = getSessionMetadataSync(session);
743
+ metadata.stats = await awaitStatsForSession(session);
744
+ return metadata;
745
+ }
746
+ const lastMessageDate = session.requests.at(-1)?.timestamp ?? session.creationDate;
747
+ return {
748
+ sessionId: session.sessionId,
749
+ title: session.customTitle || ( localize(7731, "New Chat")),
750
+ lastMessageDate,
751
+ timing: {
752
+ created: session.creationDate,
753
+ lastRequestStarted: session.requests.at(-1)?.timestamp,
754
+ lastRequestEnded: lastMessageDate
755
+ },
756
+ initialLocation: session.initialLocation,
757
+ hasPendingEdits: false,
758
+ isEmpty: session.requests.length === 0,
759
+ isExternal: false,
760
+ lastResponseState: ResponseModelState.Complete
722
761
  };
723
762
  }
724
763
 
@@ -8,7 +8,6 @@ import { IChatFollowup, IChatProgress, IChatResponseProgressFileTreeData, IChatS
8
8
  import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
9
9
  import { ChatAgentLocation, ChatModeKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
10
10
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
11
- import { Target } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
12
11
  import { IChatSlashCommandService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service";
13
12
  export interface IChatSlashData {
14
13
  command: string;
@@ -29,7 +28,7 @@ export interface IChatSlashData {
29
28
  silent?: boolean;
30
29
  locations: ChatAgentLocation[];
31
30
  modes?: ChatModeKind[];
32
- targets?: Target[];
31
+ sessionTypes?: string[];
33
32
  /**
34
33
  * Optional context key expression that controls visibility of this command.
35
34
  * When set, the command is only shown if the expression evaluates to true.
@@ -54,9 +53,12 @@ export declare class ChatSlashCommandService extends Disposable implements IChat
54
53
  readonly onDidChangeCommands: Event<void>;
55
54
  constructor(_extensionService: IExtensionService);
56
55
  dispose(): void;
56
+ private getSessionScopedCommands;
57
+ private commandsOverlap;
58
+ private getCommand;
57
59
  registerSlashCommand(data: IChatSlashData, command: IChatSlashCallback): IDisposable;
58
60
  getCommands(location: ChatAgentLocation, mode: ChatModeKind): Array<IChatSlashData>;
59
- hasCommand(id: string): boolean;
61
+ hasCommand(id: string, sessionType: string): boolean;
60
62
  executeCommand(id: string, prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, sessionResource: URI, token: CancellationToken, options?: IChatSendRequestOptions): Promise<{
61
63
  followUp: IChatFollowup[];
62
64
  } | void>;