@codingame/monaco-vscode-chat-service-override 29.1.1 → 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
@@ -3,12 +3,12 @@ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/fi
3
3
  import { IWorkspaceFolder } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace";
4
4
  import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
5
5
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
6
- import { IResolvedPromptFile, IResolvedPromptSourceFolder } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations";
6
+ import { IResolvedPromptSourceFolder } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations";
7
7
  import { PromptsType } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
8
8
  import { IWorkbenchEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service";
9
9
  import { ISearchService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/search.service";
10
10
  import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
11
- import { AgentFileType, IResolvedAgentFile, Logger, PromptsStorage } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService";
11
+ import { AgentFileType, IPromptPath, IResolvedAgentFile, Logger, PromptsStorage } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService";
12
12
  import { IUserDataProfileService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service";
13
13
  import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
14
14
  import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
@@ -137,7 +137,7 @@ export declare class PromptFilesLocator {
137
137
  /**
138
138
  * Searches for skills in all configured locations.
139
139
  */
140
- findAgentSkills(token: CancellationToken): Promise<IResolvedPromptFile[]>;
140
+ findAgentSkills(token: CancellationToken): Promise<IPromptPath[]>;
141
141
  }
142
142
  /**
143
143
  * Checks if the provided path contains a glob pattern (* or **).
@@ -7,11 +7,11 @@ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
7
  import { FileOperationError, FileOperationResult } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
8
8
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
9
9
  import { PromptsConfig, getPromptFileLocationsConfigKey, isTildePath } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
10
- import { dirname, isEqual, joinPath, basename, isEqualOrParent, extname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
10
+ import { joinPath, dirname, isEqual, basename, isEqualOrParent, extname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
11
11
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
12
12
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
13
- import { PromptFileSource, getPromptFileType, getPromptFileExtension, getPromptFileDefaultLocations, LEGACY_MODE_FILE_EXTENSION, AGENTS_SOURCE_FOLDER, getCleanPromptName, AGENT_FILE_EXTENSION, SKILL_FILENAME } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
14
- import { PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
13
+ import { getPromptFileType, getPromptFileExtension, getPromptFileDefaultLocations, LEGACY_MODE_FILE_EXTENSION, AGENTS_SOURCE_FOLDER, getCleanPromptName, AGENT_FILE_EXTENSION, SKILL_FILENAME } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
14
+ import { PromptFileSource, PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
15
15
  import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
16
16
  import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
17
17
  import { getExcludes, QueryType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/search';
@@ -56,7 +56,7 @@ let PromptFilesLocator = class PromptFilesLocator {
56
56
  filePattern: undefined,
57
57
  source: PromptFileSource.CopilotPersonal,
58
58
  storage: PromptsStorage.user,
59
- displayPath: ( localize(7574, "User Data")),
59
+ displayPath: ( localize(7639, "User Data")),
60
60
  isDefault: true
61
61
  };
62
62
  }
@@ -88,8 +88,7 @@ let PromptFilesLocator = class PromptFilesLocator {
88
88
  async findParentRepoFolders(folderUri, userHome, seen, logger) {
89
89
  const candidates = [];
90
90
  let current = folderUri;
91
- let parent = dirname(current);
92
- do {
91
+ while (true) {
93
92
  try {
94
93
  const isRepoRoot = await this.fileService.exists(joinPath(current, ".git"));
95
94
  if (isRepoRoot) {
@@ -106,9 +105,12 @@ let PromptFilesLocator = class PromptFilesLocator {
106
105
  return [];
107
106
  }
108
107
  candidates.push(current);
108
+ const parent = dirname(current);
109
+ if (isEqual(current, parent) || current.path === "/" || isEqual(userHome, parent) || ( seen.has(parent))) {
110
+ break;
111
+ }
109
112
  current = parent;
110
- parent = dirname(current);
111
- } while (!( seen.has(current)) && current.path !== "/" && !isEqual(userHome, current));
113
+ }
112
114
  logger?.logInfo(`No repository root found for folder ${( folderUri.toString())}.`);
113
115
  return [];
114
116
  }
@@ -159,7 +161,7 @@ let PromptFilesLocator = class PromptFilesLocator {
159
161
  }
160
162
  }
161
163
  };
162
- const update = async emitEvent => {
164
+ const update = async () => {
163
165
  try {
164
166
  const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
165
167
  parentFolders = await this.toAbsoluteLocations(type, configuredLocations, undefined);
@@ -167,23 +169,23 @@ let PromptFilesLocator = class PromptFilesLocator {
167
169
  return;
168
170
  }
169
171
  updateExternalFolderWatchers();
170
- if (emitEvent) {
171
- eventEmitter.fire();
172
- }
173
172
  } catch (err) {
174
173
  this.logService.error(`Error updating prompt file watchers after config change:`, err);
175
174
  }
176
175
  };
177
176
  disposables.add(this.configService.onDidChangeConfiguration(e => {
178
- if (e.affectsConfiguration(key)) {
179
- void update(true);
177
+ if (e.affectsConfiguration(key) || e.affectsConfiguration(PromptsConfig.USE_CUSTOMIZATIONS_IN_PARENT_REPOS)) {
178
+ void update();
179
+ eventEmitter.fire();
180
180
  }
181
181
  }));
182
182
  disposables.add(this.onDidChangeWorkspaceFolders()(() => {
183
- void update(true);
183
+ void update();
184
+ eventEmitter.fire();
184
185
  }));
185
186
  disposables.add(this.workspaceTrustManagementService.onDidChangeTrustedFolders(() => {
186
- void update(true);
187
+ void update();
188
+ eventEmitter.fire();
187
189
  }));
188
190
  disposables.add(this.fileService.onDidFilesChange(e => {
189
191
  if (e.affects(userDataFolder)) {
@@ -196,7 +198,7 @@ let PromptFilesLocator = class PromptFilesLocator {
196
198
  }
197
199
  }));
198
200
  disposables.add(this.fileService.watch(userDataFolder));
199
- void update(false);
201
+ void update();
200
202
  return {
201
203
  event: eventEmitter.event,
202
204
  dispose: () => disposables.dispose()
@@ -613,11 +615,14 @@ let PromptFilesLocator = class PromptFilesLocator {
613
615
  return [];
614
616
  }
615
617
  const results = await this.findAgentSkillsInFolder(uri, token);
616
- allResults.push(...( results.map(uri => ({
617
- fileUri: uri,
618
- source,
619
- storage
620
- }))));
618
+ for (const skillUri of results) {
619
+ allResults.push({
620
+ uri: skillUri,
621
+ source,
622
+ storage,
623
+ type: PromptsType.skill
624
+ });
625
+ }
621
626
  }
622
627
  return allResults;
623
628
  }
@@ -1,24 +1,36 @@
1
1
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
2
  import { IObservable } 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
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
4
5
  import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
6
+ import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
5
7
  import { IChatArtifactsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/chatArtifactsService.service";
8
+ export interface IArtifactGroupConfig {
9
+ readonly groupName: string;
10
+ readonly onlyShowGroup?: boolean;
11
+ }
6
12
  export interface IChatArtifact {
7
13
  readonly label: string;
8
14
  readonly uri: string;
9
15
  readonly toolCallId?: string;
10
16
  readonly dataPartIndex?: number;
11
17
  readonly type: "devServer" | "screenshot" | "plan" | undefined;
18
+ readonly groupName?: string;
19
+ readonly onlyShowGroup?: boolean;
20
+ }
21
+ export interface IChatArtifacts {
22
+ readonly artifacts: IObservable<readonly IChatArtifact[]>;
23
+ readonly mutable: IObservable<boolean>;
24
+ set(artifacts: IChatArtifact[]): void;
25
+ clear(): void;
26
+ migrate(target: IChatArtifacts): void;
12
27
  }
13
28
  export declare class ChatArtifactsService extends Disposable implements IChatArtifactsService {
29
+ private readonly _chatService;
30
+ private readonly _configurationService;
14
31
  readonly _serviceBrand: undefined;
15
- private readonly _onDidUpdateArtifacts;
16
- readonly onDidUpdateArtifacts: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<URI>;
17
32
  private readonly _storage;
18
- private readonly _observables;
19
- constructor(storageService: IStorageService);
20
- getArtifacts(sessionResource: URI): readonly IChatArtifact[];
21
- setArtifacts(sessionResource: URI, artifacts: IChatArtifact[]): void;
22
- migrateArtifacts(oldSessionResource: URI, newSessionResource: URI): void;
23
- artifacts(sessionResource: URI): IObservable<readonly IChatArtifact[]>;
33
+ private readonly _instances;
34
+ constructor(storageService: IStorageService, _chatService: IChatService, _configurationService: IConfigurationService);
35
+ getArtifacts(sessionResource: URI): IChatArtifacts;
24
36
  }
@@ -1,75 +1,215 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
4
- import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
3
+ import { Disposable, DisposableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
4
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
5
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
6
6
  import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
7
7
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
8
8
  import { Memento } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/memento';
9
+ import { extractArtifactsFromResponse } from '../chatArtifactExtraction.js';
10
+ import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
11
+ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
12
+ import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
9
13
  import { chatSessionResourceToId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
14
+ import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
15
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
16
+ import { constObservable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/constObservable';
17
+ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
10
18
  import { observableValueOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValueOpts';
11
19
 
12
20
  let ChatArtifactsStorage = class ChatArtifactsStorage {
13
21
  constructor(storageService) {
14
22
  this._memento = ( new Memento("chat-artifacts", storageService));
15
23
  }
16
- getArtifacts(sessionResource) {
24
+ get(key) {
17
25
  const storage = this._memento.getMemento(StorageScope.WORKSPACE, StorageTarget.MACHINE);
18
- return storage[this._toKey(sessionResource)] || [];
26
+ return storage[key] || [];
19
27
  }
20
- setArtifacts(sessionResource, artifacts) {
28
+ set(key, artifacts) {
21
29
  const storage = this._memento.getMemento(StorageScope.WORKSPACE, StorageTarget.MACHINE);
22
- storage[this._toKey(sessionResource)] = artifacts;
30
+ storage[key] = artifacts;
23
31
  this._memento.saveMemento();
24
32
  }
25
- migrateArtifacts(oldSessionResource, newSessionResource) {
26
- const artifacts = this.getArtifacts(oldSessionResource);
27
- if (artifacts.length > 0) {
28
- this.setArtifacts(newSessionResource, artifacts);
29
- const storage = this._memento.getMemento(StorageScope.WORKSPACE, StorageTarget.MACHINE);
30
- delete storage[this._toKey(oldSessionResource)];
31
- this._memento.saveMemento();
32
- }
33
- }
34
- _toKey(sessionResource) {
35
- return chatSessionResourceToId(sessionResource);
33
+ delete(key) {
34
+ const storage = this._memento.getMemento(StorageScope.WORKSPACE, StorageTarget.MACHINE);
35
+ delete storage[key];
36
+ this._memento.saveMemento();
36
37
  }
37
38
  };
38
39
  ChatArtifactsStorage = ( __decorate([( __param(0, IStorageService))], ChatArtifactsStorage));
39
- let ChatArtifactsService = class ChatArtifactsService extends Disposable {
40
- constructor(storageService) {
40
+ class RulesChatArtifacts extends Disposable {
41
+ constructor(sessionResource, chatService, configurationService) {
41
42
  super();
42
- this._onDidUpdateArtifacts = this._register(( new Emitter()));
43
- this.onDidUpdateArtifacts = this._onDidUpdateArtifacts.event;
44
- this._observables = ( new Map());
45
- this._storage = ( new ChatArtifactsStorage(storageService));
43
+ this.mutable = constObservable(false);
44
+ this._responseCache = ( new Map());
45
+ const configByMimeType = observableFromEvent(
46
+ this,
47
+ configurationService.onDidChangeConfiguration,
48
+ () => configurationService.getValue(ChatConfiguration.ArtifactsRulesByMimeType) ?? {}
49
+ );
50
+ const configByFilePath = observableFromEvent(
51
+ this,
52
+ configurationService.onDidChangeConfiguration,
53
+ () => configurationService.getValue(ChatConfiguration.ArtifactsRulesByFilePath) ?? {}
54
+ );
55
+ const modelSignal = observableFromEvent(
56
+ this,
57
+ chatService.onDidCreateModel,
58
+ () => chatService.getSession(sessionResource)
59
+ );
60
+ this.artifacts = derived(reader => {
61
+ const byMimeType = configByMimeType.read(reader);
62
+ const byFilePath = configByFilePath.read(reader);
63
+ const model = modelSignal.read(reader);
64
+ if (!model) {
65
+ return [];
66
+ }
67
+ const requestsSignal = observableSignalFromEvent(this, model.onDidChange);
68
+ requestsSignal.read(reader);
69
+ const requests = model.getRequests();
70
+ const allArtifacts = [];
71
+ const activeResponseIds = ( new Set());
72
+ const seenKeys = ( new Set());
73
+ for (const request of requests) {
74
+ const response = request.response;
75
+ if (!response) {
76
+ continue;
77
+ }
78
+ activeResponseIds.add(response.id);
79
+ const responseValue = response.response;
80
+ const partsLength = responseValue.value.length;
81
+ let completedToolCount = 0;
82
+ for (const part of responseValue.value) {
83
+ if ((part.kind === "toolInvocation" || part.kind === "toolInvocationSerialized") && IChatToolInvocation.resultDetails(part) !== undefined) {
84
+ completedToolCount++;
85
+ }
86
+ }
87
+ const cached = this._responseCache.get(response.id);
88
+ let extracted;
89
+ if (cached && cached.partsLength === partsLength && cached.completedToolCount === completedToolCount && cached.byMimeType === byMimeType && cached.byFilePath === byFilePath) {
90
+ extracted = cached.artifacts;
91
+ } else {
92
+ extracted = extractArtifactsFromResponse(responseValue, sessionResource, byMimeType, byFilePath);
93
+ this._responseCache.set(response.id, {
94
+ partsLength,
95
+ completedToolCount,
96
+ byMimeType,
97
+ byFilePath,
98
+ artifacts: extracted
99
+ });
100
+ }
101
+ for (const artifact of extracted) {
102
+ const key = artifact.toolCallId ? `${artifact.toolCallId}:${artifact.dataPartIndex}` : artifact.uri;
103
+ if (( seenKeys.has(key))) {
104
+ const idx = allArtifacts.findIndex(
105
+ a => a.toolCallId ? `${a.toolCallId}:${a.dataPartIndex}` === key : a.uri === key
106
+ );
107
+ if (idx !== -1) {
108
+ allArtifacts.splice(idx, 1);
109
+ }
110
+ }
111
+ seenKeys.add(key);
112
+ allArtifacts.push(artifact);
113
+ }
114
+ }
115
+ for (const key of ( this._responseCache.keys())) {
116
+ if (!( activeResponseIds.has(key))) {
117
+ this._responseCache.delete(key);
118
+ }
119
+ }
120
+ return allArtifacts;
121
+ });
46
122
  }
47
- getArtifacts(sessionResource) {
48
- return this._storage.getArtifacts(sessionResource);
123
+ set() {
124
+ throw ( new Error("Artifacts are not mutable in rules mode"));
49
125
  }
50
- setArtifacts(sessionResource, artifacts) {
51
- this._storage.setArtifacts(sessionResource, artifacts);
52
- const key = chatSessionResourceToId(sessionResource);
53
- this._observables.get(key)?.set(artifacts, undefined);
54
- this._onDidUpdateArtifacts.fire(sessionResource);
126
+ clear() {
127
+ throw ( new Error("Artifacts are not mutable in rules mode"));
128
+ }
129
+ migrate() {}
130
+ }
131
+ class StorageChatArtifacts {
132
+ constructor(_storageKey, _storage) {
133
+ this._storageKey = _storageKey;
134
+ this._storage = _storage;
135
+ this.mutable = constObservable(true);
136
+ this._artifacts = observableValueOpts({
137
+ owner: this,
138
+ equalsFn: () => false
139
+ }, []);
140
+ this.artifacts = this._artifacts;
141
+ this._artifacts.set(this._storage.get(this._storageKey), undefined);
142
+ }
143
+ set(artifacts) {
144
+ this._artifacts.set(artifacts, undefined);
145
+ this._storage.set(this._storageKey, artifacts);
55
146
  }
56
- migrateArtifacts(oldSessionResource, newSessionResource) {
57
- this._storage.migrateArtifacts(oldSessionResource, newSessionResource);
58
- this._onDidUpdateArtifacts.fire(newSessionResource);
147
+ clear() {
148
+ this._artifacts.set([], undefined);
149
+ this._storage.set(this._storageKey, []);
59
150
  }
60
- artifacts(sessionResource) {
151
+ migrate(target) {
152
+ const current = this._artifacts.get();
153
+ if (current.length > 0 && target.mutable.get()) {
154
+ target.set([...current]);
155
+ }
156
+ this._artifacts.set([], undefined);
157
+ this._storage.delete(this._storageKey);
158
+ }
159
+ }
160
+ class SwitchingChatArtifacts extends Disposable {
161
+ constructor(sessionResource, storageKey, storage, chatService, configurationService) {
162
+ super();
163
+ this._rules = this._register(( new RulesChatArtifacts(sessionResource, chatService, configurationService)));
164
+ this._storage = ( new StorageChatArtifacts(storageKey, storage));
165
+ const modeObs = observableFromEvent(
166
+ this,
167
+ configurationService.onDidChangeConfiguration,
168
+ () => configurationService.getValue(ChatConfiguration.ArtifactsMode) ?? "rules"
169
+ );
170
+ this._active = derived(reader => {
171
+ const mode = modeObs.read(reader);
172
+ return mode === "tool" ? this._storage : this._rules;
173
+ });
174
+ this.mutable = derived(reader => this._active.read(reader).mutable.read(reader));
175
+ this.artifacts = derived(reader => this._active.read(reader).artifacts.read(reader));
176
+ }
177
+ set(artifacts) {
178
+ const active = this._active.get();
179
+ active.set(artifacts);
180
+ }
181
+ clear() {
182
+ const active = this._active.get();
183
+ active.clear();
184
+ }
185
+ migrate(target) {
186
+ this._storage.migrate(target);
187
+ }
188
+ }
189
+ let ChatArtifactsService = class ChatArtifactsService extends Disposable {
190
+ constructor(storageService, _chatService, _configurationService) {
191
+ super();
192
+ this._chatService = _chatService;
193
+ this._configurationService = _configurationService;
194
+ this._instances = this._register(( new DisposableMap()));
195
+ this._storage = ( new ChatArtifactsStorage(storageService));
196
+ }
197
+ getArtifacts(sessionResource) {
61
198
  const key = chatSessionResourceToId(sessionResource);
62
- let obs = this._observables.get(key);
63
- if (!obs) {
64
- obs = observableValueOpts({
65
- owner: this,
66
- equalsFn: () => false
67
- }, this._storage.getArtifacts(sessionResource));
68
- this._observables.set(key, obs);
199
+ let instance = this._instances.get(key);
200
+ if (!instance) {
201
+ instance = ( new SwitchingChatArtifacts(
202
+ sessionResource,
203
+ key,
204
+ this._storage,
205
+ this._chatService,
206
+ this._configurationService
207
+ ));
208
+ this._instances.set(key, instance);
69
209
  }
70
- return obs;
210
+ return instance;
71
211
  }
72
212
  };
73
- ChatArtifactsService = ( __decorate([( __param(0, IStorageService))], ChatArtifactsService));
213
+ ChatArtifactsService = ( __decorate([( __param(0, IStorageService)), ( __param(1, IChatService)), ( __param(2, IConfigurationService))], ChatArtifactsService));
74
214
 
75
215
  export { ChatArtifactsService };
@@ -20,7 +20,7 @@ var PhraseTextType;
20
20
  })(PhraseTextType || (PhraseTextType = {}));
21
21
  const VoiceChatInProgress = ( new RawContextKey("voiceChatInProgress", false, {
22
22
  type: "boolean",
23
- description: ( localize(7632, "A speech-to-text session is in progress for chat."))
23
+ description: ( localize(7697, "A speech-to-text session is in progress for chat."))
24
24
  }));
25
25
  let VoiceChatService = class VoiceChatService extends Disposable {
26
26
  static {
@@ -26,7 +26,7 @@ let ChatResponseResourceFileSystemProvider = class ChatResponseResourceFileSyste
26
26
  this._associated = ( new ResourceMap());
27
27
  this._sessionAssociations = ( new ResourceMap());
28
28
  this._register(this.chatService.onDidDisposeSession(e => {
29
- for (const sessionResource of e.sessionResource) {
29
+ for (const sessionResource of e.sessionResources) {
30
30
  const uris = this._sessionAssociations.get(sessionResource);
31
31
  if (uris) {
32
32
  for (const uri of uris) {
@@ -2,7 +2,6 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { EditSuggestionId } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/textModelEditSource';
4
4
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
5
- import { TelemetryTrustedValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetryUtils';
6
5
  import { DataChannelForwardingTelemetryService, forwardToChannelIf, isCopilotLikeExtension } from '@codingame/monaco-vscode-api/vscode/vs/platform/dataChannel/browser/forwardingTelemetryService';
7
6
  import { IRandomService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/editTelemetry/browser/randomService.service';
8
7
 
@@ -28,7 +27,7 @@ let AiEditTelemetryServiceImpl = class AiEditTelemetryServiceImpl {
28
27
  editLinesInserted: data.editDeltaInfo?.linesAdded,
29
28
  editLinesDeleted: data.editDeltaInfo?.linesRemoved,
30
29
  modeId: data.modeId,
31
- modelId: ( new TelemetryTrustedValue(data.modelId)),
30
+ modelId: data.modelId?.replace(/[\/\\]/g, "_"),
32
31
  applyCodeBlockSuggestionId: data.applyCodeBlockSuggestionId,
33
32
  ...forwardToChannelIf(isCopilotLikeExtension(data.source?.extensionId))
34
33
  });
@@ -49,7 +48,7 @@ let AiEditTelemetryServiceImpl = class AiEditTelemetryServiceImpl {
49
48
  editLinesInserted: data.editDeltaInfo?.linesAdded,
50
49
  editLinesDeleted: data.editDeltaInfo?.linesRemoved,
51
50
  modeId: data.modeId,
52
- modelId: ( new TelemetryTrustedValue(data.modelId)),
51
+ modelId: data.modelId?.replace(/[\/\\]/g, "_"),
53
52
  applyCodeBlockSuggestionId: data.applyCodeBlockSuggestionId,
54
53
  acceptanceMethod: data.acceptanceMethod,
55
54
  ...forwardToChannelIf(isCopilotLikeExtension(data.source?.extensionId))
@@ -36,7 +36,7 @@ const editActionMenuItem = {
36
36
  order: 0,
37
37
  command: {
38
38
  id: ChatSubmitAction.ID,
39
- title: ( localize(9860, "Edit Code"))
39
+ title: ( localize(9925, "Edit Code"))
40
40
  },
41
41
  when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), CTX_INLINE_CHAT_EDITING, CTX_INLINE_CHAT_V1_ENABLED))
42
42
  };
@@ -45,7 +45,7 @@ const generateActionMenuItem = {
45
45
  order: 0,
46
46
  command: {
47
47
  id: ChatSubmitAction.ID,
48
- title: ( localize(9861, "Generate"))
48
+ title: ( localize(9926, "Generate"))
49
49
  },
50
50
  when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), ( CTX_INLINE_CHAT_EDITING.toNegated()), CTX_INLINE_CHAT_V1_ENABLED))
51
51
  };
@@ -56,8 +56,8 @@ const cancelActionMenuItem = {
56
56
  order: 0,
57
57
  command: {
58
58
  id: CancelAction.ID,
59
- title: ( localize(9862, "Cancel Request")),
60
- shortTitle: ( localize(9863, "Cancel"))
59
+ title: ( localize(9927, "Cancel Request")),
60
+ shortTitle: ( localize(9928, "Cancel"))
61
61
  },
62
62
  when: ( ContextKeyExpr.and(CTX_INLINE_CHAT_REQUEST_IN_PROGRESS))
63
63
  };