@codingame/monaco-vscode-chat-service-override 29.1.0 → 30.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/index.js +5 -2
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +37 -39
  4. package/vscode/src/vs/platform/agentHost/common/agentService.js +3 -1
  5. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +11 -1
  6. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +4 -4
  7. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +132 -42
  8. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +54 -0
  9. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +15 -0
  10. package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +5 -1
  11. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +188 -51
  12. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +7 -6
  13. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +1 -1
  14. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +7 -2
  15. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.d.ts +6 -0
  16. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +14 -0
  17. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +18 -0
  18. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +13 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  20. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +37 -16
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +10 -8
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +37 -3
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +6 -6
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +20 -11
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +14 -14
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +18 -13
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +10 -10
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.d.ts +36 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +482 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +10 -2
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +43 -10
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +74 -76
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +27 -35
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.d.ts +5 -8
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +86 -80
  61. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +3 -2
  62. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +38 -4
  63. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
  64. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +38 -18
  65. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +427 -167
  66. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +37 -37
  67. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +15 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +108 -37
  69. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +8 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +28 -2
  71. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +2 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +11 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +1 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +3 -20
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +4 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +65 -68
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +2 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +1 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +64 -51
  80. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +288 -195
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +21 -21
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +12 -12
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +21 -21
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +1 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +3 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +5 -2
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +10 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +4 -2
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +19 -7
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +3 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +54 -12
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -8
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +14 -14
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +50 -50
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +3 -1
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +86 -17
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -26
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +65 -65
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +24 -16
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +17 -17
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -6
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  137. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  138. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  139. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  140. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  141. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +3 -6
  143. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +54 -39
  144. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +16 -16
  145. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +24 -3
  146. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +72 -14
  147. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  148. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
  149. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  150. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  151. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileContributions.js +181 -0
  152. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +3 -3
  153. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  154. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  155. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  156. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  157. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +8 -6
  158. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +37 -37
  159. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +28 -23
  160. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +6 -6
  161. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +7 -7
  162. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.d.ts +12 -0
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.js +62 -0
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +1 -10
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +148 -88
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  172. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  173. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +1 -0
  174. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +16 -9
  175. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  176. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +8 -0
  177. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +158 -0
  178. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +8 -3
  179. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +155 -76
  180. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +1 -2
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +5 -4
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +5 -1
  183. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -6
  184. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +31 -1
  185. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +228 -1
  186. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +66 -0
  187. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +190 -0
  188. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +25 -3
  189. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +130 -107
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +1 -0
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +19 -18
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +2 -18
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +169 -266
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +12 -10
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +149 -206
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -3
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +27 -22
  201. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +20 -8
  202. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +183 -43
  203. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  204. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +1 -1
  205. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +2 -3
  206. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  207. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +21 -21
  208. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  209. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -11
  210. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  211. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  212. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +11 -11
  213. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
  214. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  215. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  216. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +2 -2
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +3 -1
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -2
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +3 -2
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +1 -0
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +1 -0
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +1 -3
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +26 -23
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +4 -9
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -6
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +9 -9
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -50
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +2 -2
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +66 -5
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +239 -48
  248. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +0 -14
  249. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +0 -208
  250. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +0 -22
  251. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +0 -637
  252. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +0 -24
  253. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +0 -384
  254. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +0 -33
  255. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +0 -47
  256. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +0 -30
  257. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +0 -55
  258. /package/vscode/src/vs/workbench/contrib/chat/{common → browser}/promptSyntax/promptFileContributions.d.ts +0 -0
@@ -16,8 +16,6 @@ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
16
16
  import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
17
17
  import { isCodeEditor, getCodeEditor } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorBrowser';
18
18
  import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service';
19
- import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
20
- import { getWordAtText } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/wordHelper';
21
19
  import { CompletionItemKind, SymbolKinds } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
22
20
  import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service';
23
21
  import { IOutlineModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/documentSymbols/browser/outlineModel.service';
@@ -61,6 +59,8 @@ import { IChatDebugService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
61
59
  import { createDebugEventsAttachment } from '@codingame/monaco-vscode-xterm-addons-common/vscode/vs/workbench/contrib/chat/browser/chatDebug/chatDebugAttachment';
62
60
  import { getPromptFileType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
63
61
  import { getChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
62
+ import { computeCompletionRanges, isEmptyUpToCompletionWord, escapeForCharClass } from './chatInputCompletionUtils.js';
63
+ import { AgentSessionProviders, getAgentSessionProviderIcon } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
64
64
 
65
65
  var BuiltinDynamicCompletions_1, ToolCompletions_1;
66
66
  const SlashCommandWord = /\/[\p{L}0-9_.:-]*/gu;
@@ -240,9 +240,6 @@ let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
240
240
  }
241
241
  const userInvocableCommands = promptCommands.filter(c => {
242
242
  if (widget.lockedAgentId) {
243
- if (c.promptPath.extension) {
244
- return false;
245
- }
246
243
  try {
247
244
  const promptType = getPromptFileType(c.promptPath.uri);
248
245
  if (promptType && promptType === PromptsType.hook) {
@@ -563,7 +560,7 @@ let AgentCompletions = class AgentCompletions extends Disposable {
563
560
  if (!isEmptyUpToCompletionWord(model, range)) {
564
561
  return;
565
562
  }
566
- const label = ( localize(7026, "Install Chat Extensions..."));
563
+ const label = ( localize(7080, "Install Chat Extensions..."));
567
564
  const item = {
568
565
  label,
569
566
  insertText: "",
@@ -711,7 +708,7 @@ class StartParameterizedPromptAction extends Action2 {
711
708
  messages = await prompt.resolve(args, cts.token);
712
709
  } catch (e) {
713
710
  if (!cts.token.isCancellationRequested) {
714
- notificationService.error(( localize(7027, "Error resolving prompt: {0}", String(e))));
711
+ notificationService.error(( localize(7081, "Error resolving prompt: {0}", String(e))));
715
712
  }
716
713
  replaceTextWith("");
717
714
  return;
@@ -739,15 +736,15 @@ class StartParameterizedPromptAction extends Action2 {
739
736
  id: generateUuid(),
740
737
  kind: "generic",
741
738
  value: contents,
742
- name: ( localize(7028, "Prompt Resource"))
739
+ name: ( localize(7082, "Prompt Resource"))
743
740
  });
744
741
  }
745
742
  } else if (mimeType && getAttachableImageExtension(mimeType)) {
746
743
  const resized = await resizeImage(contents).catch(() => decodeBase64(contents).buffer);
747
744
  chatWidget.attachmentModel.addContext({
748
745
  id: generateUuid(),
749
- name: ( localize(7029, "Prompt Image")),
750
- fullName: ( localize(7029, "Prompt Image")),
746
+ name: ( localize(7083, "Prompt Image")),
747
+ fullName: ( localize(7083, "Prompt Image")),
751
748
  value: resized,
752
749
  kind: "image",
753
750
  references: validURI && [{
@@ -827,7 +824,10 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
827
824
  this.addDebugEventsSnapshotCommand = "_addDebugEventsSnapshotCmd";
828
825
  }
829
826
  static {
830
- this.VariableNameDef = ( new RegExp(`${chatVariableLeader}[\\w:-]*`, "g"));
827
+ this.VariableNameDef = ( new RegExp(
828
+ `[${escapeForCharClass(chatVariableLeader)}${escapeForCharClass(chatAgentLeader)}][\\w:-]*`,
829
+ "g"
830
+ ));
831
831
  }
832
832
  constructor(
833
833
  historyService,
@@ -842,7 +842,8 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
842
842
  codeEditorService,
843
843
  chatAgentService,
844
844
  instantiationService,
845
- chatDebugService
845
+ chatDebugService,
846
+ chatSessionsService
846
847
  ) {
847
848
  super();
848
849
  this.historyService = historyService;
@@ -858,7 +859,11 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
858
859
  this.chatAgentService = chatAgentService;
859
860
  this.instantiationService = instantiationService;
860
861
  this.chatDebugService = chatDebugService;
861
- const fileWordPattern = ( new RegExp(`${chatVariableLeader}[^\\s]*`, "g"));
862
+ this.chatSessionsService = chatSessionsService;
863
+ const fileWordPattern = ( new RegExp(
864
+ `[${escapeForCharClass(chatVariableLeader)}${escapeForCharClass(chatAgentLeader)}][^\\s]*`,
865
+ "g"
866
+ ));
862
867
  this.registerVariableCompletions("fileAndFolder", async (
863
868
  {
864
869
  widget,
@@ -903,8 +908,9 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
903
908
  if (!currentSelection || !currentResource || currentSelection.isEmpty()) {
904
909
  return;
905
910
  }
911
+ const typedLeader = range.varWord?.word?.charAt(0) === chatAgentLeader ? chatAgentLeader : chatVariableLeader;
906
912
  const basename = this.labelService.getUriBasenameLabel(currentResource);
907
- const text = `${chatVariableLeader}file:${basename}:${currentSelection.startLineNumber}-${currentSelection.endLineNumber}`;
913
+ const text = `${typedLeader}file:${basename}:${currentSelection.startLineNumber}-${currentSelection.endLineNumber}`;
908
914
  const fullRangeText = `:${currentSelection.startLineNumber}:${currentSelection.startColumn}-${currentSelection.endLineNumber}:${currentSelection.endColumn}`;
909
915
  const description = this.labelService.getUriLabel(currentResource, {
910
916
  relative: true
@@ -914,10 +920,10 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
914
920
  };
915
921
  result.suggestions.push({
916
922
  label: {
917
- label: `${chatVariableLeader}selection`,
923
+ label: `${typedLeader}selection`,
918
924
  description
919
925
  },
920
- filterText: `${chatVariableLeader}selection`,
926
+ filterText: `${typedLeader}selection`,
921
927
  insertText: range.varWord?.endColumn === range.replace.endColumn ? `${text} ` : text,
922
928
  range,
923
929
  kind: CompletionItemKind.Text,
@@ -958,12 +964,103 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
958
964
  const result = {
959
965
  suggestions: []
960
966
  };
961
- const range2 = computeCompletionRanges(model, position, ( new RegExp(`${chatVariableLeader}[^\\s]*`, "g")), true);
967
+ const range2 = computeCompletionRanges(model, position, ( new RegExp(
968
+ `[${escapeForCharClass(chatVariableLeader)}${escapeForCharClass(chatAgentLeader)}][^\\s]*`,
969
+ "g"
970
+ )), true);
962
971
  if (range2) {
963
972
  this.addSymbolEntries(widget, result, range2, token);
964
973
  }
965
974
  return result;
966
975
  });
976
+ const sessionWordPattern = ( new RegExp(`${chatVariableLeader}[^\\s]*`, "g"));
977
+ this.registerVariableCompletions("sessionReference", async (
978
+ {
979
+ widget,
980
+ range
981
+ },
982
+ token
983
+ ) => {
984
+ if (widget.location !== ChatAgentLocation.Chat) {
985
+ return;
986
+ }
987
+ const typedWord = range.varWord?.word ?? "";
988
+ const sessionPrefix = `${chatVariableLeader}session`;
989
+ const result = {
990
+ suggestions: []
991
+ };
992
+ if (typedWord.toLowerCase().startsWith(`${sessionPrefix}:`)) {
993
+ const allSessions = [];
994
+ const sessionProviderFilter = [
995
+ AgentSessionProviders.Local,
996
+ AgentSessionProviders.Background,
997
+ AgentSessionProviders.Claude
998
+ ];
999
+ for await (const group of this.chatSessionsService.getChatSessionItems(sessionProviderFilter, token)) {
1000
+ if (token.isCancellationRequested) {
1001
+ return;
1002
+ }
1003
+ const providerIcon = getAgentSessionProviderIcon(group.chatSessionType);
1004
+ for (const item of group.items) {
1005
+ allSessions.push({
1006
+ title: item.label,
1007
+ sessionResource: item.resource,
1008
+ lastMessageDate: item.timing.lastRequestEnded ?? item.timing.created,
1009
+ icon: item.iconPath ?? providerIcon
1010
+ });
1011
+ }
1012
+ }
1013
+ const currentSessionResource = widget.viewModel?.sessionResource;
1014
+ const filteredSessions = allSessions.filter(s => !currentSessionResource || ( s.sessionResource.toString()) !== ( currentSessionResource.toString())).sort((a, b) => b.lastMessageDate - a.lastMessageDate);
1015
+ for (const session of filteredSessions) {
1016
+ const text = `${sessionPrefix}:${session.title}`;
1017
+ const dateStr = ( new Date(session.lastMessageDate)).toLocaleString();
1018
+ result.suggestions.push({
1019
+ label: {
1020
+ label: session.title,
1021
+ description: dateStr
1022
+ },
1023
+ filterText: `${sessionPrefix}:${session.title}`,
1024
+ insertText: range.varWord?.endColumn === range.replace.endColumn ? `${text} ` : text,
1025
+ range,
1026
+ kind: CompletionItemKind.Text,
1027
+ sortText: `z${String(Number.MAX_SAFE_INTEGER - session.lastMessageDate).padStart(20, "0")}`,
1028
+ command: {
1029
+ id: BuiltinDynamicCompletions_1.addReferenceCommand,
1030
+ title: "",
1031
+ arguments: [( new ReferenceArgument(widget, {
1032
+ id: ( session.sessionResource.toString()),
1033
+ icon: session.icon,
1034
+ range: {
1035
+ startLineNumber: range.replace.startLineNumber,
1036
+ startColumn: range.replace.startColumn,
1037
+ endLineNumber: range.replace.endLineNumber,
1038
+ endColumn: range.replace.startColumn + text.length
1039
+ },
1040
+ data: session.sessionResource
1041
+ }))]
1042
+ }
1043
+ });
1044
+ }
1045
+ } else {
1046
+ result.suggestions.push({
1047
+ label: {
1048
+ label: sessionPrefix,
1049
+ description: ( localize(7084, "Attach a chat session"))
1050
+ },
1051
+ filterText: sessionPrefix,
1052
+ insertText: `${sessionPrefix}:`,
1053
+ range,
1054
+ kind: CompletionItemKind.Text,
1055
+ sortText: "z",
1056
+ command: {
1057
+ id: "editor.action.triggerSuggest",
1058
+ title: ""
1059
+ }
1060
+ });
1061
+ }
1062
+ return result;
1063
+ }, sessionWordPattern);
967
1064
  this.registerVariableCompletions("debugEventsSnapshot", (
968
1065
  {
969
1066
  widget,
@@ -984,7 +1081,7 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
984
1081
  result.suggestions.push({
985
1082
  label: {
986
1083
  label: text,
987
- description: ( localize(7030, "Attach debug events snapshot"))
1084
+ description: ( localize(7085, "Attach debug events snapshot"))
988
1085
  },
989
1086
  filterText: text,
990
1087
  insertText: "",
@@ -1050,7 +1147,7 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1050
1147
  hasAccessToAllModels: true
1051
1148
  }, {
1052
1149
  _debugDisplayName: `chatVarCompletions-${debugName}`,
1053
- triggerCharacters: [chatVariableLeader],
1150
+ triggerCharacters: [chatVariableLeader, chatAgentLeader],
1054
1151
  provideCompletionItems: async (model, position, context, token) => {
1055
1152
  const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
1056
1153
  if (!widget) {
@@ -1071,20 +1168,21 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1071
1168
  }));
1072
1169
  }
1073
1170
  async addFileAndFolderEntries(widget, result, info, token) {
1171
+ const typedLeader = info.varWord?.word?.charAt(0) === chatAgentLeader ? chatAgentLeader : chatVariableLeader;
1074
1172
  const makeCompletionItem = (resource, kind, description, boostPriority) => {
1075
1173
  const basename = this.labelService.getUriBasenameLabel(resource);
1076
- const text = `${chatVariableLeader}file:${basename}`;
1174
+ const text = `${typedLeader}file:${basename}`;
1077
1175
  const uriLabel = this.labelService.getUriLabel(resource, {
1078
1176
  relative: true
1079
1177
  });
1080
- const labelDescription = description ? ( localize(7031, "{0} ({1})", uriLabel, description)) : uriLabel;
1178
+ const labelDescription = description ? ( localize(7086, "{0} ({1})", uriLabel, description)) : uriLabel;
1081
1179
  const sortText = boostPriority ? " " : "!";
1082
1180
  return {
1083
1181
  label: {
1084
1182
  label: basename,
1085
1183
  description: labelDescription
1086
1184
  },
1087
- filterText: `${chatVariableLeader}${basename}`,
1185
+ filterText: `${basename} ${typedLeader}${basename} ${uriLabel}`,
1088
1186
  insertText: info.varWord?.endColumn === info.replace.endColumn ? `${text} ` : text,
1089
1187
  range: info,
1090
1188
  kind: kind === FileKind.FILE ? CompletionItemKind.File : CompletionItemKind.Folder,
@@ -1108,7 +1206,7 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1108
1206
  };
1109
1207
  };
1110
1208
  let pattern;
1111
- if (info.varWord?.word && info.varWord.word.startsWith(chatVariableLeader)) {
1209
+ if (info.varWord?.word && (info.varWord.word.startsWith(chatVariableLeader) || info.varWord.word.startsWith(chatAgentLeader))) {
1112
1210
  pattern = info.varWord.word.toLowerCase().slice(1);
1113
1211
  }
1114
1212
  const seen = ( new ResourceSet());
@@ -1119,13 +1217,17 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1119
1217
  continue;
1120
1218
  }
1121
1219
  if (pattern) {
1220
+ const uriLabel = this.labelService.getUriLabel(resource, {
1221
+ relative: true
1222
+ }).toLowerCase();
1122
1223
  const basename = this.labelService.getUriBasenameLabel(resource).toLowerCase();
1123
- if (!isPatternInWord(pattern, 0, pattern.length, basename, 0, basename.length)) {
1224
+ const combined = `${basename} ${uriLabel}`;
1225
+ if (!isPatternInWord(pattern, 0, pattern.length, combined, 0, combined.length)) {
1124
1226
  continue;
1125
1227
  }
1126
1228
  }
1127
1229
  seen.add(resource);
1128
- const newLen = result.suggestions.push(makeCompletionItem(resource, FileKind.FILE, i === 0 ? ( localize(7032, "Active file")) : undefined, i === 0));
1230
+ const newLen = result.suggestions.push(makeCompletionItem(resource, FileKind.FILE, i === 0 ? ( localize(7087, "Active file")) : undefined, i === 0));
1129
1231
  if (newLen - len >= 5) {
1130
1232
  break;
1131
1233
  }
@@ -1165,8 +1267,9 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1165
1267
  addSymbolEntries(widget, result, info, token) {
1166
1268
  const timeoutMs = 100;
1167
1269
  const stopwatch = ( new StopWatch());
1270
+ const typedLeader = info.varWord?.word?.charAt(0) === chatAgentLeader ? chatAgentLeader : chatVariableLeader;
1168
1271
  const makeSymbolCompletionItem = (symbolItem, pattern) => {
1169
- const text = `${chatVariableLeader}sym:${symbolItem.name}`;
1272
+ const text = `${typedLeader}sym:${symbolItem.name}`;
1170
1273
  const resource = symbolItem.location.uri;
1171
1274
  const uriLabel = this.labelService.getUriLabel(resource, {
1172
1275
  relative: true
@@ -1177,7 +1280,7 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1177
1280
  label: symbolItem.name,
1178
1281
  description: uriLabel
1179
1282
  },
1180
- filterText: `${chatVariableLeader}${symbolItem.name}`,
1283
+ filterText: `${typedLeader}${symbolItem.name}`,
1181
1284
  insertText: info.varWord?.endColumn === info.replace.endColumn ? `${text} ` : text,
1182
1285
  range: info,
1183
1286
  kind: SymbolKinds.toCompletionKind(symbolItem.kind),
@@ -1201,7 +1304,7 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1201
1304
  };
1202
1305
  };
1203
1306
  let pattern;
1204
- if (info.varWord?.word && info.varWord.word.startsWith(chatVariableLeader)) {
1307
+ if (info.varWord?.word && (info.varWord.word.startsWith(chatVariableLeader) || info.varWord.word.startsWith(chatAgentLeader))) {
1205
1308
  pattern = info.varWord.word.toLowerCase().slice(1);
1206
1309
  }
1207
1310
  const symbolsToAdd = [];
@@ -1248,67 +1351,17 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1248
1351
  arg.widget.getContrib(ChatDynamicVariableModel.ID)?.addReference(arg.variable);
1249
1352
  }
1250
1353
  };
1251
- BuiltinDynamicCompletions = BuiltinDynamicCompletions_1 = ( __decorate([( __param(0, IHistoryService)), ( __param(1, IWorkspaceContextService)), ( __param(2, ISearchService)), ( __param(3, ILabelService)), ( __param(4, ILanguageFeaturesService)), ( __param(5, IChatWidgetService)), ( __param(6, IOutlineModelService)), ( __param(7, IEditorService)), ( __param(8, IConfigurationService)), ( __param(9, ICodeEditorService)), ( __param(10, IChatAgentService)), ( __param(11, IInstantiationService)), ( __param(12, IChatDebugService))], BuiltinDynamicCompletions));
1354
+ BuiltinDynamicCompletions = BuiltinDynamicCompletions_1 = ( __decorate([( __param(0, IHistoryService)), ( __param(1, IWorkspaceContextService)), ( __param(2, ISearchService)), ( __param(3, ILabelService)), ( __param(4, ILanguageFeaturesService)), ( __param(5, IChatWidgetService)), ( __param(6, IOutlineModelService)), ( __param(7, IEditorService)), ( __param(8, IConfigurationService)), ( __param(9, ICodeEditorService)), ( __param(10, IChatAgentService)), ( __param(11, IInstantiationService)), ( __param(12, IChatDebugService)), ( __param(13, IChatSessionsService))], BuiltinDynamicCompletions));
1252
1355
  ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(BuiltinDynamicCompletions, LifecyclePhase.Eventually);
1253
- function computeCompletionRanges(model, position, reg, onlyOnWordStart = false) {
1254
- const varWord = getWordAtText(position.column, reg, model.getLineContent(position.lineNumber), 0);
1255
- if (!varWord && model.getWordUntilPosition(position).word) {
1256
- return;
1257
- }
1258
- if (!varWord && position.column > 1) {
1259
- const textBefore = model.getValueInRange(( new Range(
1260
- position.lineNumber,
1261
- position.column - 1,
1262
- position.lineNumber,
1263
- position.column
1264
- )));
1265
- if (textBefore !== " ") {
1266
- return;
1267
- }
1268
- }
1269
- if (varWord && onlyOnWordStart) {
1270
- const wordBefore = model.getWordUntilPosition({
1271
- lineNumber: position.lineNumber,
1272
- column: varWord.startColumn
1273
- });
1274
- if (wordBefore.word) {
1275
- return;
1276
- }
1277
- }
1278
- let insert;
1279
- let replace;
1280
- if (!varWord) {
1281
- insert = replace = Range.fromPositions(position);
1282
- } else {
1283
- insert = ( new Range(
1284
- position.lineNumber,
1285
- varWord.startColumn,
1286
- position.lineNumber,
1287
- position.column
1288
- ));
1289
- replace = ( new Range(
1290
- position.lineNumber,
1291
- varWord.startColumn,
1292
- position.lineNumber,
1293
- varWord.endColumn
1294
- ));
1295
- }
1296
- return {
1297
- insert,
1298
- replace,
1299
- varWord
1300
- };
1301
- }
1302
- function isEmptyUpToCompletionWord(model, rangeResult) {
1303
- const startToCompletionWordStart = ( new Range(1, 1, rangeResult.replace.startLineNumber, rangeResult.replace.startColumn));
1304
- return !!model.getValueInRange(startToCompletionWordStart).match(/^\s*$/);
1305
- }
1306
1356
  let ToolCompletions = class ToolCompletions extends Disposable {
1307
1357
  static {
1308
1358
  ToolCompletions_1 = this;
1309
1359
  }
1310
1360
  static {
1311
- this.VariableNameDef = ( new RegExp(`(?<=^|\\s)${chatVariableLeader}\\w*`, "g"));
1361
+ this.VariableNameDef = ( new RegExp(
1362
+ `(?<=^|\\s)[${escapeForCharClass(chatVariableLeader)}${escapeForCharClass(chatAgentLeader)}]\\w*`,
1363
+ "g"
1364
+ ));
1312
1365
  }
1313
1366
  constructor(languageFeaturesService, chatWidgetService, chatAgentService) {
1314
1367
  super();
@@ -1320,7 +1373,7 @@ let ToolCompletions = class ToolCompletions extends Disposable {
1320
1373
  hasAccessToAllModels: true
1321
1374
  }, {
1322
1375
  _debugDisplayName: "chatVariables",
1323
- triggerCharacters: [chatVariableLeader],
1376
+ triggerCharacters: [chatVariableLeader, chatAgentLeader],
1324
1377
  provideCompletionItems: async (model, position, _context, _token) => {
1325
1378
  const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
1326
1379
  if (!widget) {
@@ -1344,6 +1397,8 @@ let ToolCompletions = class ToolCompletions extends Disposable {
1344
1397
  usedNames.add(part.name);
1345
1398
  }
1346
1399
  }
1400
+ const typedLeader = range.varWord?.word?.charAt(0) === chatAgentLeader ? chatAgentLeader : chatVariableLeader;
1401
+ const pattern = range.varWord?.word ? range.varWord.word.toLowerCase().slice(1) : "";
1347
1402
  const suggestions = [];
1348
1403
  const iter = widget.input.selectedToolsModel.entriesMap.get();
1349
1404
  for (const [item, enabled] of iter) {
@@ -1358,19 +1413,26 @@ let ToolCompletions = class ToolCompletions extends Disposable {
1358
1413
  name = item.referenceName;
1359
1414
  } else {
1360
1415
  const source = item.source;
1361
- detail = ( localize(7033, "{0}: {1}", source.label, item.displayName));
1416
+ detail = ( localize(7088, "{0}: {1}", source.label, item.displayName));
1362
1417
  name = item.toolReferenceName ?? item.displayName;
1363
1418
  documentation = item.userDescription ?? item.modelDescription;
1364
1419
  }
1365
1420
  if (( usedNames.has(name))) {
1366
1421
  continue;
1367
1422
  }
1368
- const withLeader = `${chatVariableLeader}${name}`;
1423
+ if (pattern) {
1424
+ const lowerName = name.toLowerCase();
1425
+ if (!isPatternInWord(pattern, 0, pattern.length, lowerName, 0, lowerName.length)) {
1426
+ continue;
1427
+ }
1428
+ }
1429
+ const withLeader = `${typedLeader}${name}`;
1369
1430
  suggestions.push({
1370
1431
  label: withLeader,
1371
1432
  range,
1372
1433
  detail,
1373
1434
  documentation,
1435
+ filterText: `${typedLeader}${name}`,
1374
1436
  insertText: withLeader + " ",
1375
1437
  kind: CompletionItemKind.Tool
1376
1438
  });
@@ -1384,5 +1446,3 @@ let ToolCompletions = class ToolCompletions extends Disposable {
1384
1446
  };
1385
1447
  ToolCompletions = ToolCompletions_1 = ( __decorate([( __param(0, ILanguageFeaturesService)), ( __param(1, IChatWidgetService)), ( __param(2, IChatAgentService))], ToolCompletions));
1386
1448
  ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(ToolCompletions, LifecyclePhase.Eventually);
1387
-
1388
- export { computeCompletionRanges };
@@ -350,7 +350,7 @@ let InputEditorDecorations = class InputEditorDecorations extends Disposable {
350
350
  };
351
351
  const promptHoverMessage = ( new MarkdownString());
352
352
  promptHoverMessage.appendText(( localize(
353
- 7034,
353
+ 7089,
354
354
  "Click to open {0}",
355
355
  this.labelService.getUriLabel(promptSlashCommand.promptPath.uri, {
356
356
  relative: true
@@ -62,7 +62,7 @@ let ChatAgentHoverParticipant = class ChatAgentHoverParticipant {
62
62
  return ( new RenderedHoverParts([renderedHoverPart]));
63
63
  }
64
64
  getAccessibleContent(hoverPart) {
65
- return localize(7035, "There is a chat agent hover part here.");
65
+ return localize(7090, "There is a chat agent hover part here.");
66
66
  }
67
67
  };
68
68
  ChatAgentHoverParticipant = ( __decorate([( __param(1, IInstantiationService)), ( __param(2, IChatWidgetService)), ( __param(3, ICommandService))], ChatAgentHoverParticipant));
@@ -253,7 +253,7 @@ let QuickChat = class QuickChat extends Disposable {
253
253
  disclaimerElement.classList.toggle("hidden", !showDisclaimer);
254
254
  if (showDisclaimer) {
255
255
  const renderedMarkdown = disposables.add(this.markdownRendererService.render(( new MarkdownString(( localize(
256
- 7081,
256
+ 7137,
257
257
  "By continuing with {0} Copilot, you agree to {1}'s [Terms]({2}) and [Privacy Statement]({3})",
258
258
  product.defaultChatAgent?.provider?.default?.name ?? "",
259
259
  product.defaultChatAgent?.provider?.default?.name ?? "",
@@ -174,7 +174,7 @@ let ChatEditor = class ChatEditor extends AbstractEditorWithViewState {
174
174
  let isContributedChatSession = false;
175
175
  const chatSessionType = input.getSessionType();
176
176
  if (chatSessionType !== localChatSessionType) {
177
- const loadingMessage = ( localize(7082, "Loading..."));
177
+ const loadingMessage = ( localize(7138, "Loading..."));
178
178
  this.showLoadingInChatWidget(loadingMessage);
179
179
  }
180
180
  await super.setInput(input, options, context, token);
@@ -58,6 +58,7 @@ export declare class ChatViewPane extends ViewPane implements IViewWelcomeDelega
58
58
  private restoringSession;
59
59
  private readonly loadSessionCts;
60
60
  private readonly modelRef;
61
+ private readonly _previousModelRef;
61
62
  private readonly activityBadge;
62
63
  constructor(options: IViewPaneOptions, keybindingService: IKeybindingService, contextMenuService: IContextMenuService, configurationService: IConfigurationService, contextKeyService: IContextKeyService, viewDescriptorService: IViewDescriptorService, instantiationService: IInstantiationService, openerService: IOpenerService, themeService: IThemeService, hoverService: IHoverService, storageService: IStorageService, chatService: IChatService, chatAgentService: IChatAgentService, logService: ILogService, notificationService: INotificationService, layoutService: IWorkbenchLayoutService, chatSessionsService: IChatSessionsService, telemetryService: ITelemetryService, lifecycleService: ILifecycleService, progressService: IProgressService, agentSessionsService: IAgentSessionsService, chatEntitlementService: IChatEntitlementService, commandService: ICommandService, activityService: IActivityService, workbenchEnvironmentService: IWorkbenchEnvironmentService, hostService: IHostService);
63
64
  private updateContextKeys;
@@ -143,6 +143,7 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
143
143
  this.lastDimensionsPerOrientation = ( new Map());
144
144
  this.loadSessionCts = this._register(( new MutableDisposable()));
145
145
  this.modelRef = this._register(( new MutableDisposable()));
146
+ this._previousModelRef = this._register(( new MutableDisposable()));
146
147
  this.activityBadge = this._register(( new MutableDisposable()));
147
148
  this.sessionsViewerOrientation = AgentSessionsViewerOrientation.Stacked;
148
149
  this.sessionsViewerOrientationConfiguration = "sideBySide";
@@ -315,7 +316,7 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
315
316
  const sessionsContainer = this.sessionsContainer = parent.appendChild($(".agent-sessions-container"));
316
317
  const sessionsTitleContainer = this.sessionsTitleContainer = append(sessionsContainer, $(".agent-sessions-title-container"));
317
318
  const sessionsTitle = this.sessionsTitle = append(sessionsTitleContainer, $("span.agent-sessions-title"));
318
- sessionsTitle.textContent = ( localize(7101, "Sessions"));
319
+ sessionsTitle.textContent = ( localize(7157, "Sessions"));
319
320
  this._register(addDisposableListener(sessionsTitle, EventType.CLICK, () => {
320
321
  this.sessionsControl?.scrollToTop();
321
322
  this.sessionsControl?.focus();
@@ -343,7 +344,7 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
343
344
  ...defaultButtonStyles,
344
345
  secondary: true
345
346
  })));
346
- newSessionButton.label = ( localize(7102, "New Session"));
347
+ newSessionButton.label = ( localize(7158, "New Session"));
347
348
  this._register(
348
349
  newSessionButton.onDidClick(() => this.commandService.executeCommand(ACTION_ID_NEW_CHAT))
349
350
  );
@@ -583,7 +584,7 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
583
584
  progressBadgeDisposables.value.add(autorun(reader => {
584
585
  if (model.requestInProgress.read(reader)) {
585
586
  this.activityBadge.value = this.activityService.showViewActivity(this.id, {
586
- badge: ( new ProgressBadge(() => ( localize(7103, "Agent Session in Progress"))))
587
+ badge: ( new ProgressBadge(() => ( localize(7159, "Agent Session in Progress"))))
587
588
  });
588
589
  } else {
589
590
  this.activityBadge.clear();
@@ -621,6 +622,7 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
621
622
  }
622
623
  async showModel(token, modelRef, startNewSession = true) {
623
624
  const oldModelResource = this.modelRef.value?.object.sessionResource;
625
+ this._previousModelRef.value = this.modelRef.value;
624
626
  this.modelRef.value = undefined;
625
627
  let ref;
626
628
  if (startNewSession) {
@@ -635,6 +637,9 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
635
637
  }
636
638
  this.modelRef.value = ref;
637
639
  const model = ref?.object;
640
+ if (model && this._previousModelRef.value?.object.sessionResource.toString() === ( model.sessionResource.toString())) {
641
+ this._previousModelRef.value = undefined;
642
+ }
638
643
  if (model) {
639
644
  await this.updateWidgetLockState(getChatSessionType(model.sessionResource));
640
645
  if (token.isCancellationRequested) {
@@ -720,7 +725,7 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
720
725
  return undefined;
721
726
  }
722
727
  this.logService.error(`Failed to load chat session '${( sessionResource.toString())}'`, err);
723
- this.notificationService.error(( localize(7104, "Failed to open chat session: {0}", toErrorMessage(err))));
728
+ this.notificationService.error(( localize(7160, "Failed to open chat session: {0}", toErrorMessage(err))));
724
729
  return this.showModel(token, undefined);
725
730
  } finally {
726
731
  clearWidgetCancellationListener.dispose();
@@ -764,15 +769,17 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
764
769
  width
765
770
  };
766
771
  let remainingHeight = height;
767
- let remainingWidth = width;
772
+ const remainingWidth = width;
773
+ const titleHeight = this.titleControl?.getHeight() ?? 0;
774
+ remainingHeight -= titleHeight;
768
775
  const {
769
776
  heightReduction,
770
777
  widthReduction
771
778
  } = this.layoutSessionsControl(remainingHeight, remainingWidth);
772
- remainingHeight -= heightReduction;
773
- remainingWidth -= widthReduction;
774
- remainingHeight -= this.titleControl?.getHeight() ?? 0;
775
- this._widget.layout(remainingHeight, remainingWidth);
779
+ this._widget.setInputPartMaxHeightOverride(
780
+ this.sessionsViewerOrientation === AgentSessionsViewerOrientation.Stacked ? remainingHeight : undefined
781
+ );
782
+ this._widget.layout(remainingHeight - heightReduction, remainingWidth - widthReduction);
776
783
  this.lastDimensionsPerOrientation.set(this.sessionsViewerOrientation, {
777
784
  height,
778
785
  width
@@ -23,7 +23,7 @@ let ChatViewTitleControl = class ChatViewTitleControl extends Disposable {
23
23
  ChatViewTitleControl_1 = this;
24
24
  }
25
25
  static {
26
- this.DEFAULT_TITLE = ( localize(7105, "Chat"));
26
+ this.DEFAULT_TITLE = ( localize(7161, "Chat"));
27
27
  }
28
28
  static {
29
29
  this.PICK_AGENT_SESSION_ACTION_ID = "workbench.action.chat.pickAgentSession";
@@ -48,7 +48,7 @@ let ChatViewTitleControl = class ChatViewTitleControl extends Disposable {
48
48
  constructor() {
49
49
  super({
50
50
  id: ChatViewTitleControl_1.PICK_AGENT_SESSION_ACTION_ID,
51
- title: ( localize(7106, "Pick Agent Session")),
51
+ title: ( localize(7162, "Pick Agent Session")),
52
52
  f1: false,
53
53
  menu: [{
54
54
  id: MenuId.ChatViewSessionTitleNavigationToolbar,
@@ -0,0 +1,8 @@
1
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
2
+ import { IResponse } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
3
+ import { IArtifactGroupConfig, IChatArtifact } from "./tools/chatArtifactsService.js";
4
+ /**
5
+ * Extracts artifacts from a single response's content parts, applying the given rules.
6
+ * Pure function, no side effects.
7
+ */
8
+ export declare function extractArtifactsFromResponse(response: IResponse, sessionResource: URI, byMimeType: Record<string, IArtifactGroupConfig>, byFilePath: Record<string, IArtifactGroupConfig>): IChatArtifact[];