@codingame/monaco-vscode-chat-service-override 27.0.0 → 28.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 (251) hide show
  1. package/index.js +5 -2
  2. package/package.json +5 -5
  3. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +54 -4
  4. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +179 -11
  5. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +5 -1
  6. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +6 -1
  7. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +25 -10
  8. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +67 -0
  9. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +263 -0
  10. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +6 -0
  11. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +25 -6
  12. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  13. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +15 -15
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +13 -5
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +5 -5
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +5 -4
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +7 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +2 -2
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +13 -13
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +12 -12
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +49 -13
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +58 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +537 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.d.ts +17 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +55 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +26 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.js +9 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/media/agentPluginEditor.css +32 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +17 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +89 -11
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +4 -26
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +146 -53
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +56 -54
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +25 -25
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +13 -12
  60. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -9
  61. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +189 -145
  62. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +42 -44
  63. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +3 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -8
  66. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +210 -59
  67. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +14 -3
  69. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -3
  70. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +122 -53
  71. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +87 -9
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +62 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +702 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +279 -214
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +12 -3
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +12 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +63 -4
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +18 -18
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +6 -6
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +4 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +62 -24
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +9 -9
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +2 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +7 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +2 -5
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +32 -36
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +2 -2
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +49 -49
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +9 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +14 -14
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +13 -13
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +3 -1
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +103 -60
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +61 -61
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +66 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +245 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +78 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.js +234 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +31 -126
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +229 -524
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.d.ts +41 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.js +22 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +4 -3
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +54 -20
  137. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  138. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +11 -12
  139. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +112 -39
  140. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +99 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +489 -0
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +6 -3
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +348 -285
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +18 -1
  146. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +107 -5
  147. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  148. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +4 -4
  149. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  150. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  151. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  152. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  153. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +2 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +55 -38
  155. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +20 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +148 -60
  157. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
  158. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  159. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
  160. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +29 -14
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +72 -14
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +5 -3
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +5 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +11 -10
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +1 -0
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +8 -0
  175. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +20 -0
  176. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +72 -23
  178. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +19 -1
  179. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +5 -1
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -1
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +37 -8
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +36 -3
  183. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +4 -4
  184. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +2 -2
  185. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +6 -1
  186. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +71 -25
  187. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +217 -91
  188. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +85 -3
  189. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +257 -63
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +3 -16
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +7 -50
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +2 -1
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +32 -3
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +1 -1
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +3 -1
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +7 -6
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +26 -1
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +287 -88
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +10 -1
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +75 -20
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +121 -0
  205. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +1422 -0
  206. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  207. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +5 -1
  208. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +81 -41
  209. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -1
  210. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +8 -6
  211. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  212. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.d.ts +14 -2
  213. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +54 -5
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +6 -5
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +4 -4
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +38 -22
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +8 -8
  219. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  220. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  221. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  222. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  223. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  224. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +8 -0
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +36 -18
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +6 -0
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +27 -13
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +1 -1
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -0
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +8 -1
  250. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.d.ts +0 -12
  251. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +0 -67
@@ -95,7 +95,7 @@ let ChatDebugOverviewView = class ChatDebugOverviewView extends Disposable {
95
95
  return;
96
96
  }
97
97
  const sessionTitle = this.chatService.getSessionTitle(this.currentSessionResource) || LocalChatSessionUri.parseLocalSessionId(this.currentSessionResource) || ( this.currentSessionResource.toString());
98
- this.breadcrumbWidget.setItems([( new TextBreadcrumbItem(( localize(5686, "Agent Debug Panel")), true)), ( new TextBreadcrumbItem(sessionTitle))]);
98
+ this.breadcrumbWidget.setItems([( new TextBreadcrumbItem(( localize(5755, "Agent Debug Panel")), true)), ( new TextBreadcrumbItem(sessionTitle))]);
99
99
  }
100
100
  load() {
101
101
  clearNode(this.content);
@@ -111,8 +111,8 @@ let ChatDebugOverviewView = class ChatDebugOverviewView extends Disposable {
111
111
  titleEl.append(sessionTitle);
112
112
  const titleActions = append(titleRow, $(".chat-debug-overview-title-actions"));
113
113
  const revealSessionBtn = this.loadDisposables.add(( new Button(titleActions, {
114
- ariaLabel: ( localize(5687, "Reveal Chat Session")),
115
- title: ( localize(5687, "Reveal Chat Session"))
114
+ ariaLabel: ( localize(5756, "Reveal Chat Session")),
115
+ title: ( localize(5756, "Reveal Chat Session"))
116
116
  })));
117
117
  revealSessionBtn.element.classList.add("chat-debug-icon-button");
118
118
  revealSessionBtn.icon = Codicon.goToFile;
@@ -131,36 +131,36 @@ let ChatDebugOverviewView = class ChatDebugOverviewView extends Disposable {
131
131
  const details = [];
132
132
  const sessionType = getChatSessionType(sessionUri);
133
133
  const contribution = this.chatSessionsService.getChatSessionContribution(sessionType);
134
- const sessionTypeName = contribution?.displayName || (sessionType === "local" ? ( localize(5688, "Local")) : sessionType);
134
+ const sessionTypeName = contribution?.displayName || (sessionType === "local" ? ( localize(5757, "Local")) : sessionType);
135
135
  details.push({
136
- label: ( localize(5689, "Session Type")),
136
+ label: ( localize(5758, "Session Type")),
137
137
  value: sessionTypeName
138
138
  });
139
139
  if (model) {
140
140
  const locationLabel = this.getLocationLabel(model.initialLocation);
141
141
  details.push({
142
- label: ( localize(5690, "Location")),
142
+ label: ( localize(5759, "Location")),
143
143
  value: locationLabel
144
144
  });
145
145
  const inProgress = model.requestInProgress.get();
146
- const statusLabel = inProgress ? ( localize(5691, "In Progress")) : ( localize(5692, "Idle"));
146
+ const statusLabel = inProgress ? ( localize(5760, "In Progress")) : ( localize(5761, "Idle"));
147
147
  details.push({
148
- label: ( localize(5693, "Status")),
148
+ label: ( localize(5762, "Status")),
149
149
  value: statusLabel
150
150
  });
151
151
  const timing = model.timing;
152
152
  details.push({
153
- label: ( localize(5694, "Created")),
153
+ label: ( localize(5763, "Created")),
154
154
  value: ( new Date(timing.created)).toLocaleString()
155
155
  });
156
156
  if (timing.lastRequestEnded) {
157
157
  details.push({
158
- label: ( localize(5695, "Last Activity")),
158
+ label: ( localize(5764, "Last Activity")),
159
159
  value: ( new Date(timing.lastRequestEnded)).toLocaleString()
160
160
  });
161
161
  } else if (timing.lastRequestStarted) {
162
162
  details.push({
163
- label: ( localize(5695, "Last Activity")),
163
+ label: ( localize(5764, "Last Activity")),
164
164
  value: ( new Date(timing.lastRequestStarted)).toLocaleString()
165
165
  });
166
166
  }
@@ -169,7 +169,7 @@ let ChatDebugOverviewView = class ChatDebugOverviewView extends Disposable {
169
169
  const section = append(this.content, $(".chat-debug-overview-section"));
170
170
  append(
171
171
  section,
172
- $("h3.chat-debug-overview-section-label", undefined, ( localize(5696, "Session Details")))
172
+ $("h3.chat-debug-overview-section-label", undefined, ( localize(5765, "Session Details")))
173
173
  );
174
174
  const detailsGrid = append(section, $(".chat-debug-overview-details"));
175
175
  for (const detail of details) {
@@ -182,13 +182,13 @@ let ChatDebugOverviewView = class ChatDebugOverviewView extends Disposable {
182
182
  getLocationLabel(location) {
183
183
  switch (location) {
184
184
  case ChatAgentLocation.Chat:
185
- return localize(5697, "Chat Panel");
185
+ return localize(5766, "Chat Panel");
186
186
  case ChatAgentLocation.Terminal:
187
- return localize(5698, "Terminal");
187
+ return localize(5767, "Terminal");
188
188
  case ChatAgentLocation.Notebook:
189
- return localize(5699, "Notebook");
189
+ return localize(5768, "Notebook");
190
190
  case ChatAgentLocation.EditorInline:
191
- return localize(5700, "Editor Inline");
191
+ return localize(5769, "Editor Inline");
192
192
  default:
193
193
  return String(location);
194
194
  }
@@ -197,7 +197,7 @@ let ChatDebugOverviewView = class ChatDebugOverviewView extends Disposable {
197
197
  const metricsSection = append(this.content, $(".chat-debug-overview-section"));
198
198
  append(
199
199
  metricsSection,
200
- $("h3.chat-debug-overview-section-label", undefined, ( localize(5701, "Summary")))
200
+ $("h3.chat-debug-overview-section-label", undefined, ( localize(5770, "Summary")))
201
201
  );
202
202
  this.metricsContainer = append(metricsSection, $(".chat-debug-overview-metrics"));
203
203
  if (showShimmer) {
@@ -208,17 +208,17 @@ let ChatDebugOverviewView = class ChatDebugOverviewView extends Disposable {
208
208
  const actionsSection = append(this.content, $(".chat-debug-overview-section"));
209
209
  append(
210
210
  actionsSection,
211
- $("h3.chat-debug-overview-section-label", undefined, ( localize(5702, "Explore Trace Data")))
211
+ $("h3.chat-debug-overview-section-label", undefined, ( localize(5771, "Explore Trace Data")))
212
212
  );
213
213
  const row = append(actionsSection, $(".chat-debug-overview-actions"));
214
214
  const viewLogsBtn = this.loadDisposables.add(( new Button(row, {
215
215
  ...defaultButtonStyles,
216
216
  secondary: true,
217
217
  supportIcons: true,
218
- title: ( localize(5703, "View Logs"))
218
+ title: ( localize(5772, "View Logs"))
219
219
  })));
220
220
  viewLogsBtn.element.classList.add("chat-debug-overview-action-button");
221
- viewLogsBtn.label = `$(list-flat) ${( localize(5703, "View Logs"))}`;
221
+ viewLogsBtn.label = `$(list-flat) ${( localize(5772, "View Logs"))}`;
222
222
  this.loadDisposables.add(viewLogsBtn.onDidClick(() => {
223
223
  this._onNavigate.fire(OverviewNavigation.Logs);
224
224
  }));
@@ -226,16 +226,16 @@ let ChatDebugOverviewView = class ChatDebugOverviewView extends Disposable {
226
226
  ...defaultButtonStyles,
227
227
  secondary: true,
228
228
  supportIcons: true,
229
- title: ( localize(5704, "Agent Flow Chart"))
229
+ title: ( localize(5773, "Agent Flow Chart"))
230
230
  })));
231
231
  flowChartBtn.element.classList.add("chat-debug-overview-action-button");
232
- flowChartBtn.label = `$(type-hierarchy) ${( localize(5704, "Agent Flow Chart"))}`;
232
+ flowChartBtn.label = `$(type-hierarchy) ${( localize(5773, "Agent Flow Chart"))}`;
233
233
  this.loadDisposables.add(flowChartBtn.onDidClick(() => {
234
234
  this._onNavigate.fire(OverviewNavigation.FlowChart);
235
235
  }));
236
236
  }
237
237
  renderMetricsShimmer(container) {
238
- const placeholderLabels = [( localize(5705, "Model Turns")), ( localize(5706, "Tool Calls")), ( localize(5707, "Total Tokens")), ( localize(5708, "Errors")), ( localize(5709, "Total Events"))];
238
+ const placeholderLabels = [( localize(5774, "Model Turns")), ( localize(5775, "Tool Calls")), ( localize(5776, "Total Tokens")), ( localize(5777, "Errors")), ( localize(5778, "Total Events"))];
239
239
  for (const label of placeholderLabels) {
240
240
  const card = append(container, $(".chat-debug-overview-metric-card"));
241
241
  append(card, $("div.chat-debug-overview-metric-label", undefined, label));
@@ -252,19 +252,19 @@ let ChatDebugOverviewView = class ChatDebugOverviewView extends Disposable {
252
252
  );
253
253
  const totalTokens = modelTurns.reduce((sum, e) => sum + (e.totalTokens ?? 0), 0);
254
254
  const metrics = [{
255
- label: ( localize(5705, "Model Turns")),
255
+ label: ( localize(5774, "Model Turns")),
256
256
  value: String(modelTurns.length)
257
257
  }, {
258
- label: ( localize(5706, "Tool Calls")),
258
+ label: ( localize(5775, "Tool Calls")),
259
259
  value: String(toolCalls.length)
260
260
  }, {
261
- label: ( localize(5707, "Total Tokens")),
261
+ label: ( localize(5776, "Total Tokens")),
262
262
  value: totalTokens.toLocaleString()
263
263
  }, {
264
- label: ( localize(5708, "Errors")),
264
+ label: ( localize(5777, "Errors")),
265
265
  value: String(errors.length)
266
266
  }, {
267
- label: ( localize(5709, "Total Events")),
267
+ label: ( localize(5778, "Total Events")),
268
268
  value: String(events.length)
269
269
  }];
270
270
  for (const metric of metrics) {
@@ -57,10 +57,10 @@ async function renderToolCallContent(content, languageService) {
57
57
  );
58
58
  const statusParts = [];
59
59
  if (content.result) {
60
- statusParts.push(content.result === "success" ? ( localize(5710, "Success")) : ( localize(5711, "Error")));
60
+ statusParts.push(content.result === "success" ? ( localize(5779, "Success")) : ( localize(5780, "Error")));
61
61
  }
62
62
  if (content.durationInMillis !== undefined) {
63
- statusParts.push(( localize(5712, "{0}ms", content.durationInMillis)));
63
+ statusParts.push(( localize(5781, "{0}ms", content.durationInMillis)));
64
64
  }
65
65
  if (statusParts.length > 0) {
66
66
  append(container, $(
@@ -74,13 +74,13 @@ async function renderToolCallContent(content, languageService) {
74
74
  const result = tryParseJSON(content.input);
75
75
  const plainText = result.isJSON ? JSON.stringify(result.parsed, null, 2) : content.input;
76
76
  const tokenizedHtml = result.isJSON ? await tokenizeToString(languageService, plainText, "json") : undefined;
77
- renderSection(sectionsContainer, ( localize(5713, "Arguments")), plainText, tokenizedHtml, disposables);
77
+ renderSection(sectionsContainer, ( localize(5782, "Arguments")), plainText, tokenizedHtml, disposables);
78
78
  }
79
79
  if (content.output) {
80
80
  const result = tryParseJSON(content.output);
81
81
  const plainText = result.isJSON ? JSON.stringify(result.parsed, null, 2) : content.output;
82
82
  const tokenizedHtml = result.isJSON ? await tokenizeToString(languageService, plainText, "json") : undefined;
83
- renderSection(sectionsContainer, ( localize(5714, "Output")), plainText, tokenizedHtml, disposables);
83
+ renderSection(sectionsContainer, ( localize(5783, "Output")), plainText, tokenizedHtml, disposables);
84
84
  }
85
85
  return {
86
86
  element: container,
@@ -89,16 +89,16 @@ async function renderToolCallContent(content, languageService) {
89
89
  }
90
90
  function toolCallContentToPlainText(content) {
91
91
  const lines = [];
92
- lines.push(( localize(5715, "Tool: {0}", content.toolName)));
92
+ lines.push(( localize(5784, "Tool: {0}", content.toolName)));
93
93
  if (content.result) {
94
- lines.push(( localize(5716, "Status: {0}", content.result)));
94
+ lines.push(( localize(5785, "Status: {0}", content.result)));
95
95
  }
96
96
  if (content.durationInMillis !== undefined) {
97
- lines.push(( localize(5717, "Duration: {0}ms", content.durationInMillis)));
97
+ lines.push(( localize(5786, "Duration: {0}ms", content.durationInMillis)));
98
98
  }
99
99
  if (content.input) {
100
100
  lines.push("");
101
- lines.push(`[${( localize(5713, "Arguments"))}]`);
101
+ lines.push(`[${( localize(5782, "Arguments"))}]`);
102
102
  try {
103
103
  const parsed = JSON.parse(content.input);
104
104
  lines.push(JSON.stringify(parsed, null, 2));
@@ -108,7 +108,7 @@ function toolCallContentToPlainText(content) {
108
108
  }
109
109
  if (content.output) {
110
110
  lines.push("");
111
- lines.push(`[${( localize(5714, "Output"))}]`);
111
+ lines.push(`[${( localize(5783, "Output"))}]`);
112
112
  try {
113
113
  const parsed = JSON.parse(content.output);
114
114
  lines.push(JSON.stringify(parsed, null, 2));
@@ -10,6 +10,8 @@ import { IEditorOptions } from "@codingame/monaco-vscode-api/vscode/vs/platform/
10
10
  export interface IChatDebugEditorOptions extends IEditorOptions {
11
11
  readonly sessionResource?: URI;
12
12
  readonly viewHint?: "home" | "overview" | "logs" | "flowchart";
13
+ /** When set, automatically applies this text as the log filter. */
14
+ readonly filter?: string;
13
15
  }
14
16
  export declare enum ViewState {
15
17
  Home = "home",
@@ -283,6 +283,7 @@
283
283
  .chat-debug-editor-header .viewpane-filter-container {
284
284
  flex: 1;
285
285
  max-width: 500px;
286
+ margin-right: auto;
286
287
  }
287
288
  .chat-debug-editor-header .viewpane-filter-container .monaco-inputbox {
288
289
  border-color: var(--vscode-panelInput-border, transparent) !important;
@@ -293,6 +294,12 @@
293
294
  align-items: center;
294
295
  gap: 6px;
295
296
  }
297
+ .chat-debug-troubleshoot-button.monaco-button {
298
+ width: auto;
299
+ display: inline-flex;
300
+ align-items: center;
301
+ flex-shrink: 0;
302
+ }
296
303
  .chat-debug-view-mode-labels {
297
304
  display: grid;
298
305
  }
@@ -2,10 +2,8 @@ import { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/
2
2
  import { IObservable, IReader, ITransaction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
3
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
4
  import { IEditorWorkerService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service";
5
- import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
6
5
  import { ITextModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service";
7
6
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
8
- import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
9
7
  import { INotebookEditorModelResolverService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookEditorModelResolverService.service";
10
8
  import { INotebookService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookService.service";
11
9
  import { IEditSessionDiffStats, IEditSessionEntryDiff, IModifiedEntryTelemetryInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService";
@@ -40,8 +38,6 @@ export declare class ChatEditingCheckpointTimelineImpl implements IChatEditingCh
40
38
  private readonly _delegate;
41
39
  private readonly _notebookEditorModelResolverService;
42
40
  private readonly _notebookService;
43
- private readonly _instantiationService;
44
- private readonly _modelService;
45
41
  private readonly _textModelService;
46
42
  private readonly _editorWorkerService;
47
43
  private readonly _configurationService;
@@ -51,6 +47,7 @@ export declare class ChatEditingCheckpointTimelineImpl implements IChatEditingCh
51
47
  private readonly _operations;
52
48
  private readonly _fileBaselines;
53
49
  private readonly _refCountedDiffs;
50
+ private readonly _finalizedDiffCache;
54
51
  /** Gets the checkpoint, if any, we can 'undo' to. */
55
52
  private readonly _willUndoToCheckpoint;
56
53
  readonly canUndo: IObservable<boolean>;
@@ -61,7 +58,7 @@ export declare class ChatEditingCheckpointTimelineImpl implements IChatEditingCh
61
58
  private readonly _willRedoToEpoch;
62
59
  readonly canRedo: IObservable<boolean>;
63
60
  readonly requestDisablement: IObservable<IChatRequestDisablement[]>;
64
- constructor(chatSessionResource: URI, _delegate: IChatEditingTimelineFsDelegate, _notebookEditorModelResolverService: INotebookEditorModelResolverService, _notebookService: INotebookService, _instantiationService: IInstantiationService, _modelService: IModelService, _textModelService: ITextModelService, _editorWorkerService: IEditorWorkerService, _configurationService: IConfigurationService);
61
+ constructor(chatSessionResource: URI, _delegate: IChatEditingTimelineFsDelegate, _notebookEditorModelResolverService: INotebookEditorModelResolverService, _notebookService: INotebookService, _textModelService: ITextModelService, _editorWorkerService: IEditorWorkerService, _configurationService: IConfigurationService);
65
62
  createCheckpoint(requestId: string | undefined, undoStopId: string | undefined, label: string, description?: string): string;
66
63
  undoToLastCheckpoint(): Promise<void>;
67
64
  redoToNextCheckpoint(): Promise<void>;
@@ -11,14 +11,13 @@ import { equals as equals$1 } from '@codingame/monaco-vscode-api/vscode/vs/base/
11
11
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
12
12
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
13
13
  import { isDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
14
- import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
15
14
  import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
16
- import { TextModel } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModel';
15
+ import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
16
+ import { DefaultEndOfLine, ValidAnnotatedEditOperation, EndOfLinePreference } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model';
17
+ import { createTextBuffer } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModel';
17
18
  import { IEditorWorkerService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service';
18
- import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
19
19
  import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
20
20
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
21
- import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
22
21
  import { CellUri, CellEditType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
23
22
  import { INotebookEditorModelResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookEditorModelResolverService.service';
24
23
  import { INotebookService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookService.service';
@@ -30,9 +29,9 @@ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/com
30
29
  import { observableValueOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValueOpts';
31
30
  import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
32
31
  import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
32
+ import { constObservable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/constObservable';
33
33
  import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
34
34
  import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/promise';
35
- import { constObservable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/constObservable';
36
35
 
37
36
  const START_REQUEST_EPOCH = "$$start";
38
37
  const STOP_ID_EPOCH_PREFIX = "__epoch_";
@@ -42,8 +41,6 @@ let ChatEditingCheckpointTimelineImpl = class ChatEditingCheckpointTimelineImpl
42
41
  _delegate,
43
42
  _notebookEditorModelResolverService,
44
43
  _notebookService,
45
- _instantiationService,
46
- _modelService,
47
44
  _textModelService,
48
45
  _editorWorkerService,
49
46
  _configurationService
@@ -52,8 +49,6 @@ let ChatEditingCheckpointTimelineImpl = class ChatEditingCheckpointTimelineImpl
52
49
  this._delegate = _delegate;
53
50
  this._notebookEditorModelResolverService = _notebookEditorModelResolverService;
54
51
  this._notebookService = _notebookService;
55
- this._instantiationService = _instantiationService;
56
- this._modelService = _modelService;
57
52
  this._textModelService = _textModelService;
58
53
  this._editorWorkerService = _editorWorkerService;
59
54
  this._configurationService = _configurationService;
@@ -65,6 +60,7 @@ let ChatEditingCheckpointTimelineImpl = class ChatEditingCheckpointTimelineImpl
65
60
  }, []);
66
61
  this._fileBaselines = ( new Map());
67
62
  this._refCountedDiffs = ( new Map());
63
+ this._finalizedDiffCache = ( new Map());
68
64
  this._willUndoToCheckpoint = derived(reader => {
69
65
  const currentEpoch = this._currentEpoch.read(reader);
70
66
  const checkpoints = this._checkpoints.read(reader);
@@ -99,7 +95,15 @@ let ChatEditingCheckpointTimelineImpl = class ChatEditingCheckpointTimelineImpl
99
95
  return undefined;
100
96
  }
101
97
  const nextOperation = operations.find(op => op.epoch >= currentEpoch);
102
- const nextCheckpoint = nextOperation && checkpoints.find(op => op.epoch > nextOperation.epoch);
98
+ if (!nextOperation) {
99
+ const nextRequestStart = checkpoints.find(cp => cp.epoch >= currentEpoch && cp.undoStopId === undefined);
100
+ if (!nextRequestStart) {
101
+ return maxEncounteredEpoch + 1;
102
+ }
103
+ const requestAfter = checkpoints.find(cp => cp.epoch > nextRequestStart.epoch && cp.undoStopId === undefined);
104
+ return requestAfter ? requestAfter.epoch : (maxEncounteredEpoch + 1);
105
+ }
106
+ const nextCheckpoint = checkpoints.find(op => op.epoch > nextOperation.epoch);
103
107
  const currentCheckpoint = findLast(checkpoints, cp => cp.epoch < currentEpoch);
104
108
  if (currentCheckpoint && nextOperation && currentCheckpoint.requestId !== nextOperation.requestId) {
105
109
  const startOfNextRequestIdx = findLastIdx(
@@ -571,31 +575,16 @@ let ChatEditingCheckpointTimelineImpl = class ChatEditingCheckpointTimelineImpl
571
575
  }
572
576
  }
573
577
  _applyTextEditsToContent(content, edits) {
574
- const makeModel = (uri, contents) => this._instantiationService.createInstance(
575
- TextModel,
576
- contents,
577
- "",
578
- this._modelService.getCreationOptions("", uri, true),
579
- uri
580
- );
581
- const tempUri = ( URI.from({
582
- scheme: "temp",
583
- path: `/temp-${Date.now()}.txt`
584
- }));
585
- const model = makeModel(tempUri, content);
578
+ const {
579
+ textBuffer,
580
+ disposable
581
+ } = createTextBuffer(content, DefaultEndOfLine.LF);
586
582
  try {
587
- model.applyEdits(( edits.map(edit => ({
588
- range: {
589
- startLineNumber: edit.range.startLineNumber,
590
- startColumn: edit.range.startColumn,
591
- endLineNumber: edit.range.endLineNumber,
592
- endColumn: edit.range.endColumn
593
- },
594
- text: edit.text
595
- }))));
596
- return model.getValue();
583
+ textBuffer.applyEdits(( edits.map(edit => ( new ValidAnnotatedEditOperation(null, Range.lift(edit.range), edit.text, false, false, false)))), false, false);
584
+ const fullRange = textBuffer.getRangeAt(0, textBuffer.getLength());
585
+ return textBuffer.getValueInRange(fullRange, EndOfLinePreference.TextDefined);
597
586
  } finally {
598
- model.dispose();
587
+ disposable.dispose();
599
588
  }
600
589
  }
601
590
  getEntryDiffBetweenStops(uri, requestId, stopId) {
@@ -639,14 +628,18 @@ let ChatEditingCheckpointTimelineImpl = class ChatEditingCheckpointTimelineImpl
639
628
  }
640
629
  _getEntryDiffBetweenEpochs(uri, cacheKey, epochs) {
641
630
  const key = `${( uri.toString())}\0${cacheKey}`;
631
+ const cached = this._finalizedDiffCache.get(key);
632
+ if (cached) {
633
+ return constObservable(cached);
634
+ }
642
635
  let obs = this._refCountedDiffs.get(key);
643
636
  if (!obs) {
644
- obs = this._getEntryDiffBetweenEpochsInner(uri, epochs, () => this._refCountedDiffs.delete(key));
637
+ obs = this._getEntryDiffBetweenEpochsInner(uri, key, epochs, () => this._refCountedDiffs.delete(key));
645
638
  this._refCountedDiffs.set(key, obs);
646
639
  }
647
640
  return obs;
648
641
  }
649
- _getEntryDiffBetweenEpochsInner(uri, epochs, onLastObserverRemoved) {
642
+ _getEntryDiffBetweenEpochsInner(uri, cacheKey, epochs, onLastObserverRemoved) {
650
643
  const modelRefsPromise = derived(this, reader => {
651
644
  const {
652
645
  start,
@@ -744,6 +737,9 @@ let ChatEditingCheckpointTimelineImpl = class ChatEditingCheckpointTimelineImpl
744
737
  }
745
738
  const promised = result.promise?.promiseResult.read(reader);
746
739
  if (promised?.data) {
740
+ if (promised.data.isFinal) {
741
+ this._finalizedDiffCache.set(cacheKey, promised.data);
742
+ }
747
743
  return promised.data;
748
744
  }
749
745
  if (promised?.error) {
@@ -887,6 +883,6 @@ let ChatEditingCheckpointTimelineImpl = class ChatEditingCheckpointTimelineImpl
887
883
  });
888
884
  }
889
885
  };
890
- ChatEditingCheckpointTimelineImpl = ( __decorate([( __param(2, INotebookEditorModelResolverService)), ( __param(3, INotebookService)), ( __param(4, IInstantiationService)), ( __param(5, IModelService)), ( __param(6, ITextModelService)), ( __param(7, IEditorWorkerService)), ( __param(8, IConfigurationService))], ChatEditingCheckpointTimelineImpl));
886
+ ChatEditingCheckpointTimelineImpl = ( __decorate([( __param(2, INotebookEditorModelResolverService)), ( __param(3, INotebookService)), ( __param(4, ITextModelService)), ( __param(5, IEditorWorkerService)), ( __param(6, IConfigurationService))], ChatEditingCheckpointTimelineImpl));
891
887
 
892
888
  export { ChatEditingCheckpointTimelineImpl };
@@ -620,7 +620,7 @@ let ChatEditingCodeEditorIntegration = class ChatEditingCodeEditorIntegration {
620
620
  options: {
621
621
  selection
622
622
  },
623
- label: ( localize(5753, "{0} (changes from chat)", basename(this._entry.modifiedURI)))
623
+ label: ( localize(5822, "{0} (changes from chat)", basename(this._entry.modifiedURI)))
624
624
  });
625
625
  if (diffEditor && diffEditor.input) {
626
626
  diffEditor.getControl()?.setSelection(selection);
@@ -8,7 +8,6 @@ import { basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/res
8
8
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
9
9
  import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
10
10
  import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
11
- import { ExtensionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
12
11
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
13
12
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
14
13
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
@@ -130,7 +129,7 @@ let ChatEditingExplanationModelManager = class ChatEditingExplanationModelManage
130
129
  this._updateUriStatePartial(fileData.uri, {
131
130
  progress: "error",
132
131
  explanations: [],
133
- errorMessage: ( localize(5789, "No language model available"))
132
+ errorMessage: ( localize(5858, "No language model available"))
134
133
  });
135
134
  }
136
135
  return;
@@ -163,7 +162,7 @@ Be specific about the actual code changes. Return ONLY valid JSON, no markdown.
163
162
 
164
163
  Example response format:
165
164
  [{"explanation": "Added null check to prevent crash"}, {"explanation": "Renamed variable for clarity"}]`;
166
- const response = await this._languageModelsService.sendChatRequest(models[0], ( new ExtensionIdentifier("core")), [{
165
+ const response = await this._languageModelsService.sendChatRequest(models[0], undefined, [{
167
166
  role: ChatMessageRole.User,
168
167
  content: [{
169
168
  type: "text",
@@ -201,7 +200,7 @@ Example response format:
201
200
  for (const fileData of fileChanges) {
202
201
  const explanations = [];
203
202
  for (const data of fileData.changes) {
204
- const parsedExplanation = parsed[parsedIndex]?.explanation?.trim() || ( localize(5790, "Code was modified."));
203
+ const parsedExplanation = parsed[parsedIndex]?.explanation?.trim() || ( localize(5859, "Code was modified."));
205
204
  explanations.push({
206
205
  uri: fileData.uri,
207
206
  startLineNumber: data.startLineNumber,
@@ -219,7 +218,7 @@ Example response format:
219
218
  }
220
219
  } catch (e) {
221
220
  if (!cancellationToken.isCancellationRequested) {
222
- const errorMessage = e instanceof Error ? e.message : ( localize(5791, "Failed to generate explanations"));
221
+ const errorMessage = e instanceof Error ? e.message : ( localize(5860, "Failed to generate explanations"));
223
222
  for (const fileData of fileChanges) {
224
223
  this._updateUriStatePartial(fileData.uri, {
225
224
  progress: "error",
@@ -141,7 +141,7 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
141
141
  if (inProgress) {
142
142
  const res = this._lastModifyingResponseObs.read(r);
143
143
  const req = res && res.session.getRequests().find(value => value.id === res.requestId);
144
- resourceFilter.value = markerService.installResourceFilter(this.modifiedURI, req?.message.text || ( localize(5804, "Chat Edits")));
144
+ resourceFilter.value = markerService.installResourceFilter(this.modifiedURI, req?.message.text || ( localize(5873, "Chat Edits")));
145
145
  } else {
146
146
  resourceFilter.clear();
147
147
  }
@@ -183,7 +183,7 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
183
183
  }
184
184
  _createUndoRedoElement(response) {
185
185
  const request = response.session.getRequests().find(req => req.id === response.requestId);
186
- const label = request?.message.text ? ( localize(5805, "Chat Edit: '{0}'", request.message.text)) : ( localize(5806, "Chat Edit"));
186
+ const label = request?.message.text ? ( localize(5874, "Chat Edit: '{0}'", request.message.text)) : ( localize(5875, "Chat Edit"));
187
187
  return ( new SingleModelEditStackElement(label, "chat.edit", this.modifiedModel, null));
188
188
  }
189
189
  async acceptAgentEdits(resource, textEdits, isLastEdits, responseModel) {
@@ -42,7 +42,7 @@ class AutoAcceptControl {
42
42
  this.cancel = cancel;
43
43
  }
44
44
  }
45
- const pendingRewriteMinimap = registerColor("minimap.chatEditHighlight", ( transparent(editorBackground, 0.6)), ( localize(5807, "Color of pending edit regions in the minimap")));
45
+ const pendingRewriteMinimap = registerColor("minimap.chatEditHighlight", ( transparent(editorBackground, 0.6)), ( localize(5876, "Color of pending edit regions in the minimap")));
46
46
  let AbstractChatEditingModifiedFileEntry = class AbstractChatEditingModifiedFileEntry extends Disposable {
47
47
  static {
48
48
  AbstractChatEditingModifiedFileEntry_1 = this;
@@ -485,7 +485,7 @@ let ChatEditingModifiedNotebookEntry = class ChatEditingModifiedNotebookEntry ex
485
485
  }
486
486
  _createUndoRedoElement(response) {
487
487
  const request = response.session.getRequests().find(req => req.id === response.requestId);
488
- const label = request?.message.text ? ( localize(5808, "Chat Edit: '{0}'", request.message.text)) : ( localize(5809, "Chat Edit"));
488
+ const label = request?.message.text ? ( localize(5877, "Chat Edit: '{0}'", request.message.text)) : ( localize(5878, "Chat Edit"));
489
489
  const transientOptions = this.transientOptions;
490
490
  const outputSizeLimit = this.configurationService.getValue(NotebookSetting.outputBackupSizeLimit) * 1024;
491
491
  let initial = createSnapshot(this.modifiedModel, transientOptions, outputSizeLimit);
@@ -124,7 +124,7 @@ let ChatEditingService = class ChatEditingService extends Disposable {
124
124
  }
125
125
  e.join(storageTask, {
126
126
  id: "join.chatEditingSession",
127
- label: ( localize(5810, "Saving chat edits history"))
127
+ label: ( localize(5879, "Saving chat edits history"))
128
128
  });
129
129
  }));
130
130
  }
@@ -346,7 +346,7 @@ class ChatDecorationsProvider extends Disposable {
346
346
  constructor(_sessions) {
347
347
  super();
348
348
  this._sessions = _sessions;
349
- this.label = ( localize(5811, "Chat Editing"));
349
+ this.label = ( localize(5880, "Chat Editing"));
350
350
  this._currentEntries = derived(this, r => {
351
351
  const sessions = this._sessions.read(r);
352
352
  if (!sessions) {
@@ -390,7 +390,7 @@ class ChatDecorationsProvider extends Disposable {
390
390
  return {
391
391
  weight: 1000,
392
392
  letter: Codicon.diffModified,
393
- tooltip: ( localize(5812, "Pending changes from chat")),
393
+ tooltip: ( localize(5881, "Pending changes from chat")),
394
394
  bubble: true
395
395
  };
396
396
  }
@@ -399,7 +399,7 @@ let ChatEditingSession = ChatEditingSession_1 = class ChatEditingSession extends
399
399
  }
400
400
  const input = MultiDiffEditorInput.fromResourceMultiDiffEditorInput({
401
401
  multiDiffSource: getMultiDiffSourceUri(this, previousChanges),
402
- label: ( localize(5813, "Suggested Edits"))
402
+ label: ( localize(5882, "Suggested Edits"))
403
403
  }, this._instantiationService);
404
404
  this._editorPane = await this._editorService.openEditor(input, {
405
405
  pinned: true,
@@ -7,7 +7,7 @@
7
7
  opacity: 0;
8
8
  transition: opacity 0.2s ease-in-out;
9
9
  display: flex;
10
- box-shadow: 0 2px 8px var(--vscode-widget-shadow);
10
+ box-shadow: var(--vscode-shadow-md);
11
11
  border-radius: 6px;
12
12
  overflow: hidden;
13
13
  }
@@ -21,7 +21,7 @@
21
21
  border-radius: 6px;
22
22
  background-color: var(--vscode-editorWidget-background);
23
23
  color: var(--vscode-foreground);
24
- border: 1px solid var(--vscode-contrastBorder);
24
+ border: 1px solid var(--vscode-editorWidget-border);
25
25
  overflow: hidden;
26
26
  }
27
27
 
@@ -630,7 +630,7 @@ let ChatEditingNotebookEditorWidgetIntegration = class ChatEditingNotebookEditor
630
630
  modified: {
631
631
  resource: this._entry.modifiedURI
632
632
  },
633
- label: ( localize(5814, "{0} (changes from chat)", basename(this._entry.modifiedURI)))
633
+ label: ( localize(5883, "{0} (changes from chat)", basename(this._entry.modifiedURI)))
634
634
  };
635
635
  await this._editorService.openEditor(diffInput);
636
636
  }