@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
@@ -1,19 +1,24 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { mainWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/window';
4
+ import { decodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
4
5
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
5
6
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
7
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
8
  import { ConfigurationTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration';
8
9
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
9
10
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
11
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
10
12
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
11
13
  import { IURLService } from '@codingame/monaco-vscode-api/vscode/vs/platform/url/common/url.service';
14
+ import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
12
15
  import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service';
16
+ import { IExtensionsWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service';
17
+ import { AgentPluginEditorInput } from './agentPluginEditor/agentPluginEditorInput.js';
18
+ import { AgentPluginItemKind } from './agentPluginEditor/agentPluginItems.js';
13
19
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
14
20
  import { parseMarketplaceReference, MarketplaceReferenceKind, parseMarketplaceReferences } from '../common/plugins/marketplaceReference.js';
15
21
  import { IPluginInstallService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginInstallService.service';
16
- import { decodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
17
22
 
18
23
  let PluginUrlHandler = class PluginUrlHandler extends Disposable {
19
24
  static {
@@ -24,15 +29,21 @@ let PluginUrlHandler = class PluginUrlHandler extends Disposable {
24
29
  _pluginInstallService,
25
30
  _dialogService,
26
31
  _configurationService,
32
+ _extensionsWorkbenchService,
27
33
  _hostService,
28
- _logService
34
+ _logService,
35
+ _editorService,
36
+ _instantiationService
29
37
  ) {
30
38
  super();
31
39
  this._pluginInstallService = _pluginInstallService;
32
40
  this._dialogService = _dialogService;
33
41
  this._configurationService = _configurationService;
42
+ this._extensionsWorkbenchService = _extensionsWorkbenchService;
34
43
  this._hostService = _hostService;
35
44
  this._logService = _logService;
45
+ this._editorService = _editorService;
46
+ this._instantiationService = _instantiationService;
36
47
  this._register(urlService.registerHandler(this));
37
48
  }
38
49
  async handleURL(uri) {
@@ -64,17 +75,21 @@ let PluginUrlHandler = class PluginUrlHandler extends Disposable {
64
75
  return true;
65
76
  }
66
77
  await this._hostService.focus(mainWindow);
78
+ const pluginName = this._decodeStringParam(uri, "plugin");
79
+ if (pluginName) {
80
+ return this._handleInstallTargetedPlugin(source, ref.displayLabel, pluginName);
81
+ }
67
82
  const {
68
83
  confirmed
69
84
  } = await this._dialogService.confirm({
70
85
  type: "question",
71
- message: ( localize(6414, "Install Plugin from '{0}'?", ref.displayLabel)),
86
+ message: ( localize(6466, "Install Plugin from '{0}'?", ref.displayLabel)),
72
87
  detail: ( localize(
73
- 6415,
88
+ 6467,
74
89
  "An external application wants to install a plugin from this source. Plugins can run code on your machine. Only install plugins from sources you trust.\n\nSource: {0}",
75
90
  ref.rawValue
76
91
  )),
77
- primaryButton: ( localize(6416, "&&Install")),
92
+ primaryButton: ( localize(6468, "&&Install")),
78
93
  custom: {
79
94
  icon: Codicon.shield
80
95
  }
@@ -83,6 +98,38 @@ let PluginUrlHandler = class PluginUrlHandler extends Disposable {
83
98
  return true;
84
99
  }
85
100
  await this._pluginInstallService.installPluginFromSource(source);
101
+ this._extensionsWorkbenchService.openSearch(`@agentPlugins ${ref.displayLabel}`);
102
+ return true;
103
+ }
104
+ async _handleInstallTargetedPlugin(source, displayLabel, pluginName) {
105
+ const result = await this._pluginInstallService.installPluginFromValidatedSource(source, {
106
+ plugin: pluginName
107
+ });
108
+ if (!result.success) {
109
+ if (result.message) {
110
+ this._logService.warn(`[PluginUrlHandler] ${result.message}`);
111
+ }
112
+ this._extensionsWorkbenchService.openSearch(`@agentPlugins ${displayLabel}`);
113
+ return true;
114
+ }
115
+ if (!result.matchedPlugin) {
116
+ this._extensionsWorkbenchService.openSearch(`@agentPlugins ${displayLabel}`);
117
+ return true;
118
+ }
119
+ const plugin = result.matchedPlugin;
120
+ const item = {
121
+ kind: AgentPluginItemKind.Marketplace,
122
+ name: plugin.name,
123
+ description: plugin.description,
124
+ source: plugin.source,
125
+ sourceDescriptor: plugin.sourceDescriptor,
126
+ marketplace: plugin.marketplace,
127
+ marketplaceReference: plugin.marketplaceReference,
128
+ marketplaceType: plugin.marketplaceType,
129
+ readmeUri: plugin.readmeUri
130
+ };
131
+ const input = this._instantiationService.createInstance(AgentPluginEditorInput, item);
132
+ await this._editorService.openEditor(input);
86
133
  return true;
87
134
  }
88
135
  async _handleAddMarketplace(uri) {
@@ -101,13 +148,13 @@ let PluginUrlHandler = class PluginUrlHandler extends Disposable {
101
148
  confirmed
102
149
  } = await this._dialogService.confirm({
103
150
  type: "question",
104
- message: ( localize(6417, "Add Plugin Marketplace '{0}'?", ref.displayLabel)),
151
+ message: ( localize(6469, "Add Plugin Marketplace '{0}'?", ref.displayLabel)),
105
152
  detail: ( localize(
106
- 6418,
153
+ 6470,
107
154
  "An external application wants to add a plugin marketplace. Plugins from this marketplace will appear in the plugin catalog and can be installed.\n\nSource: {0}",
108
155
  ref.rawValue
109
156
  )),
110
- primaryButton: ( localize(6419, "&&Add Marketplace")),
157
+ primaryButton: ( localize(6471, "&&Add Marketplace")),
111
158
  custom: {
112
159
  icon: Codicon.shield
113
160
  }
@@ -124,6 +171,7 @@ let PluginUrlHandler = class PluginUrlHandler extends Disposable {
124
171
  ConfigurationTarget.USER
125
172
  );
126
173
  }
174
+ this._extensionsWorkbenchService.openSearch(`@agentPlugins ${ref.displayLabel}`);
127
175
  return true;
128
176
  }
129
177
  _decodeQueryParam(uri, key) {
@@ -132,15 +180,25 @@ let PluginUrlHandler = class PluginUrlHandler extends Disposable {
132
180
  if (!raw) {
133
181
  return undefined;
134
182
  }
183
+ const decoded = this._tryBase64Decode(raw);
184
+ if (decoded && parseMarketplaceReference(decoded)) {
185
+ return decoded;
186
+ }
187
+ return parseMarketplaceReference(raw) ? raw : undefined;
188
+ }
189
+ _decodeStringParam(uri, key) {
190
+ const params = ( new URLSearchParams(uri.query));
191
+ return params.get(key) ?? undefined;
192
+ }
193
+ _tryBase64Decode(raw) {
135
194
  try {
136
195
  const decoded = ( decodeBase64(raw).toString());
137
- if (parseMarketplaceReference(decoded)) {
138
- return decoded;
139
- }
140
- } catch {}
141
- return raw;
196
+ return decoded || undefined;
197
+ } catch {
198
+ return undefined;
199
+ }
142
200
  }
143
201
  };
144
- PluginUrlHandler = ( __decorate([( __param(0, IURLService)), ( __param(1, IPluginInstallService)), ( __param(2, IDialogService)), ( __param(3, IConfigurationService)), ( __param(4, IHostService)), ( __param(5, ILogService))], PluginUrlHandler));
202
+ PluginUrlHandler = ( __decorate([( __param(0, IURLService)), ( __param(1, IPluginInstallService)), ( __param(2, IDialogService)), ( __param(3, IConfigurationService)), ( __param(4, IExtensionsWorkbenchService)), ( __param(5, IHostService)), ( __param(6, ILogService)), ( __param(7, IEditorService)), ( __param(8, IInstantiationService))], PluginUrlHandler));
145
203
 
146
204
  export { PluginUrlHandler };
@@ -17,7 +17,7 @@ class ConfigAgentActionImpl extends Action2 {
17
17
  const openerService = accessor.get(IOpenerService);
18
18
  const pickers = instaService.createInstance(PromptFilePickers);
19
19
  const placeholder = ( localize(
20
- 6426,
20
+ 6478,
21
21
  "Select the custom agents to open and configure visibility in the agent picker"
22
22
  ));
23
23
  const result = await pickers.selectPromptFile({
@@ -35,8 +35,8 @@ const PICKER_CONFIGURE_AGENTS_ACTION_ID = "workbench.action.chat.picker.customag
35
35
  function createPickerConfigureAgentsActionConfig(disabled) {
36
36
  const config = {
37
37
  id: disabled ? PICKER_CONFIGURE_AGENTS_ACTION_ID + ".disabled" : PICKER_CONFIGURE_AGENTS_ACTION_ID,
38
- title: ( localize2(6427, "Configure Custom Agents...")),
39
- tooltip: disabled ? ( localize(6428, "Managed by your organization")) : undefined,
38
+ title: ( localize2(6479, "Configure Custom Agents...")),
39
+ tooltip: disabled ? ( localize(6480, "Managed by your organization")) : undefined,
40
40
  icon: disabled ? Codicon.lock : undefined,
41
41
  category: CHAT_CATEGORY,
42
42
  f1: false,
@@ -62,8 +62,8 @@ const CONFIGURE_AGENTS_ACTION_ID = "workbench.action.chat.configure.customagents
62
62
  function createManageAgentsActionConfig(disabled) {
63
63
  const base = {
64
64
  id: disabled ? CONFIGURE_AGENTS_ACTION_ID + ".disabled" : CONFIGURE_AGENTS_ACTION_ID,
65
- title: ( localize2(6429, "Configure Custom Agents...")),
66
- shortTitle: ( localize(6430, "Custom Agents")),
65
+ title: ( localize2(6481, "Configure Custom Agents...")),
66
+ shortTitle: ( localize(6482, "Custom Agents")),
67
67
  icon: disabled ? Codicon.lock : Codicon.bookmark,
68
68
  f1: !disabled,
69
69
  precondition: disabled ? ( ContextKeyExpr.false()) : ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.Modes.agentModeDisabledByPolicy.negate()))),
@@ -77,7 +77,7 @@ function createManageAgentsActionConfig(disabled) {
77
77
  };
78
78
  return disabled ? {
79
79
  ...base,
80
- tooltip: ( localize(6428, "Managed by your organization"))
80
+ tooltip: ( localize(6480, "Managed by your organization"))
81
81
  } : base;
82
82
  }
83
83
  class ManageAgentsAction extends ConfigAgentActionImpl {
@@ -74,7 +74,7 @@ async function addHookToFile(
74
74
  }
75
75
  } catch {
76
76
  notificationService.error(( localize(
77
- 6431,
77
+ 6483,
78
78
  "Failed to parse existing hooks file. Please fix the JSON syntax errors and try again."
79
79
  )));
80
80
  await editorService.openEditor({
@@ -157,7 +157,7 @@ async function addHookToFile(
157
157
  range: ( new Range(1, 1, Number.MAX_SAFE_INTEGER, 1)),
158
158
  text: jsonContent
159
159
  }))], {
160
- label: ( localize(6432, "Add Hook"))
160
+ label: ( localize(6484, "Add Hook"))
161
161
  });
162
162
  const selection = findHookCommandSelection(jsonContent, keyToUse, newHookIndex, "command");
163
163
  await editorService.openEditor({
@@ -182,7 +182,7 @@ async function addHookToFile(
182
182
  range: ( new Range(1, 1, Number.MAX_SAFE_INTEGER, 1)),
183
183
  text: jsonContent
184
184
  }))], {
185
- label: ( localize(6432, "Add Hook"))
185
+ label: ( localize(6484, "Add Hook"))
186
186
  });
187
187
  }
188
188
  const selection = findHookCommandSelection(jsonContent, keyToUse, newHookIndex, "command");
@@ -308,29 +308,29 @@ async function showConfigureHooksQuickPick(accessor, options) {
308
308
  if (shared.length > 0) {
309
309
  pickerItems.push({
310
310
  type: "separator",
311
- label: ( localize(6433, "Local/Copilot CLI Agents"))
311
+ label: ( localize(6485, "Local/Copilot CLI Agents"))
312
312
  });
313
313
  pickerItems.push(...( shared.map(makeItem)));
314
314
  }
315
315
  if (vscodeOnly.length > 0) {
316
316
  pickerItems.push({
317
317
  type: "separator",
318
- label: ( localize(6434, "Local Agents"))
318
+ label: ( localize(6486, "Local Agents"))
319
319
  });
320
320
  pickerItems.push(...( vscodeOnly.map(makeItem)));
321
321
  }
322
322
  if (copilotOnly.length > 0) {
323
323
  pickerItems.push({
324
324
  type: "separator",
325
- label: ( localize(6435, "Copilot CLI Agents"))
325
+ label: ( localize(6487, "Copilot CLI Agents"))
326
326
  });
327
327
  pickerItems.push(...( copilotOnly.map(makeItem)));
328
328
  }
329
329
  }
330
330
  picker.items = pickerItems;
331
331
  picker.value = "";
332
- picker.placeholder = ( localize(6436, "Select a lifecycle event"));
333
- picker.title = ( localize(6437, "Hooks"));
332
+ picker.placeholder = ( localize(6488, "Select a lifecycle event"));
333
+ picker.title = ( localize(6489, "Hooks"));
334
334
  picker.buttons = [];
335
335
  const result = await awaitPick(picker, backButton);
336
336
  if (!result || result === "back") {
@@ -348,14 +348,14 @@ async function showConfigureHooksQuickPick(accessor, options) {
348
348
  const agentHooks = hooksOfType.filter(h => h.agentName);
349
349
  const hookItems = [];
350
350
  hookItems.push({
351
- label: `$(plus) ${( localize(6438, "Add new hook..."))}`,
351
+ label: `$(plus) ${( localize(6490, "Add new hook..."))}`,
352
352
  isAddNewHook: true,
353
353
  alwaysShow: true
354
354
  });
355
355
  if (fileHooks.length > 0) {
356
356
  hookItems.push({
357
357
  type: "separator",
358
- label: ( localize(6439, "Existing Hooks"))
358
+ label: ( localize(6491, "Existing Hooks"))
359
359
  });
360
360
  for (const entry of fileHooks) {
361
361
  const description = labelService.getUriLabel(entry.fileUri, {
@@ -373,7 +373,7 @@ async function showConfigureHooksQuickPick(accessor, options) {
373
373
  for (const agentName of agentNames) {
374
374
  hookItems.push({
375
375
  type: "separator",
376
- label: ( localize(6440, "Agent: {0}", agentName))
376
+ label: ( localize(6492, "Agent: {0}", agentName))
377
377
  });
378
378
  for (const entry of agentHooks.filter(h => h.agentName === agentName)) {
379
379
  const description = labelService.getUriLabel(entry.fileUri, {
@@ -392,7 +392,7 @@ async function showConfigureHooksQuickPick(accessor, options) {
392
392
  } else {
393
393
  picker.items = hookItems;
394
394
  picker.value = "";
395
- picker.placeholder = ( localize(6441, "Select a hook to open or add a new one"));
395
+ picker.placeholder = ( localize(6493, "Select a hook to open or add a new one"));
396
396
  picker.title = selectedHookType.hookTypeMeta.label;
397
397
  picker.buttons = [backButton];
398
398
  const result = await awaitPick(picker, backButton);
@@ -449,14 +449,14 @@ async function showConfigureHooksQuickPick(accessor, options) {
449
449
  const hookFiles = await promptsService.listPromptFilesForStorage(PromptsType.hook, PromptsStorage.local, CancellationToken.None);
450
450
  const fileItems = [];
451
451
  fileItems.push({
452
- label: `$(new-file) ${( localize(6442, "Create new hook config file..."))}`,
452
+ label: `$(new-file) ${( localize(6494, "Create new hook config file..."))}`,
453
453
  isCreateNewFile: true,
454
454
  alwaysShow: true
455
455
  });
456
456
  if (hookFiles.length > 0) {
457
457
  fileItems.push({
458
458
  type: "separator",
459
- label: ( localize(6443, "Existing Hook Files"))
459
+ label: ( localize(6495, "Existing Hook Files"))
460
460
  });
461
461
  for (const hookFile of hookFiles) {
462
462
  const relativePath = labelService.getUriLabel(hookFile.uri, {
@@ -473,8 +473,8 @@ async function showConfigureHooksQuickPick(accessor, options) {
473
473
  } else {
474
474
  picker.items = fileItems;
475
475
  picker.value = "";
476
- picker.placeholder = ( localize(6444, "Select a hook file or create a new one"));
477
- picker.title = ( localize(6445, "Add Hook"));
476
+ picker.placeholder = ( localize(6496, "Select a hook file or create a new one"));
477
+ picker.title = ( localize(6497, "Add Hook"));
478
478
  picker.buttons = [backButton];
479
479
  const result = await awaitPick(picker, backButton);
480
480
  if (result === "back") {
@@ -507,7 +507,7 @@ async function showConfigureHooksQuickPick(accessor, options) {
507
507
  const allFolders = await promptsService.getSourceFolders(PromptsType.hook);
508
508
  const localFolders = allFolders.filter(f => f.storage === PromptsStorage.local);
509
509
  if (localFolders.length === 0) {
510
- notificationService.error(( localize(6446, "Please open a workspace folder to configure hooks.")));
510
+ notificationService.error(( localize(6498, "Please open a workspace folder to configure hooks.")));
511
511
  return;
512
512
  }
513
513
  selectedFolder = localFolders[0];
@@ -520,8 +520,8 @@ async function showConfigureHooksQuickPick(accessor, options) {
520
520
  })));
521
521
  picker.items = folderItems;
522
522
  picker.value = "";
523
- picker.placeholder = ( localize(6447, "Select a location for the hook file"));
524
- picker.title = ( localize(6448, "Hook File Location"));
523
+ picker.placeholder = ( localize(6499, "Select a location for the hook file"));
524
+ picker.title = ( localize(6500, "Hook File Location"));
525
525
  picker.buttons = [backButton];
526
526
  const result = await awaitPick(picker, backButton);
527
527
  if (result === "back") {
@@ -551,20 +551,20 @@ async function showConfigureHooksQuickPick(accessor, options) {
551
551
  };
552
552
  const inputDisposables = ( new DisposableStore());
553
553
  const inputBox = inputDisposables.add(quickInputService.createInputBox());
554
- inputBox.prompt = ( localize(6449, "Enter hook file name"));
555
- inputBox.placeholder = ( localize(6450, "e.g., hooks, diagnostics, security"));
556
- inputBox.title = ( localize(6451, "Hook File Name"));
554
+ inputBox.prompt = ( localize(6501, "Enter hook file name"));
555
+ inputBox.placeholder = ( localize(6502, "e.g., hooks, diagnostics, security"));
556
+ inputBox.title = ( localize(6503, "Hook File Name"));
557
557
  inputBox.buttons = [backButton];
558
558
  inputBox.ignoreFocusOut = true;
559
559
  inputDisposables.add(inputBox.onDidAccept(async () => {
560
560
  const value = inputBox.value;
561
561
  if (!value || !value.trim()) {
562
- inputBox.validationMessage = ( localize(6452, "File name is required"));
562
+ inputBox.validationMessage = ( localize(6504, "File name is required"));
563
563
  return;
564
564
  }
565
565
  const name = value.trim();
566
566
  if (/[/\\:*?"<>|]/.test(name)) {
567
- inputBox.validationMessage = ( localize(6453, "File name contains invalid characters"));
567
+ inputBox.validationMessage = ( localize(6505, "File name contains invalid characters"));
568
568
  return;
569
569
  }
570
570
  done(name);
@@ -651,8 +651,8 @@ class ManageHooksAction extends Action2 {
651
651
  constructor() {
652
652
  super({
653
653
  id: CONFIGURE_HOOKS_ACTION_ID,
654
- title: ( localize2(6454, "Configure Hooks...")),
655
- shortTitle: ( localize2(6455, "Hooks")),
654
+ title: ( localize2(6506, "Configure Hooks...")),
655
+ shortTitle: ( localize2(6507, "Hooks")),
656
656
  icon: Codicon.zap,
657
657
  f1: true,
658
658
  precondition: ChatContextKeys.enabled,
@@ -126,7 +126,7 @@ async function parseAllHookFiles(
126
126
  }
127
127
  for (let i = 0; i < commands.length; i++) {
128
128
  const command = commands[i];
129
- const commandLabel = formatHookCommandLabel(command, os) || ( localize(6456, "(empty command)"));
129
+ const commandLabel = formatHookCommandLabel(command, os) || ( localize(6508, "(empty command)"));
130
130
  parsedHooks.push({
131
131
  hookType,
132
132
  hookTypeLabel: hookTypeMeta.label,
@@ -163,7 +163,7 @@ async function parseAllHookFiles(
163
163
  }
164
164
  for (let i = 0; i < commands.length; i++) {
165
165
  const command = commands[i];
166
- const commandLabel = formatHookCommandLabel(command, os) || ( localize(6456, "(empty command)"));
166
+ const commandLabel = formatHookCommandLabel(command, os) || ( localize(6508, "(empty command)"));
167
167
  parsedHooks.push({
168
168
  hookType,
169
169
  hookTypeLabel: hookTypeMeta.label,
@@ -201,7 +201,7 @@ async function parseAllHookFiles(
201
201
  }
202
202
  for (let i = 0; i < commands.length; i++) {
203
203
  const command = commands[i];
204
- const commandLabel = formatHookCommandLabel(command, os) || ( localize(6456, "(empty command)"));
204
+ const commandLabel = formatHookCommandLabel(command, os) || ( localize(6508, "(empty command)"));
205
205
  parsedHooks.push({
206
206
  hookType: hookTypeValue,
207
207
  hookTypeLabel: hookTypeMeta.label,
@@ -38,11 +38,11 @@ let PromptCodingAgentActionOverlayWidget = class PromptCodingAgentActionOverlayW
38
38
  this._domNode = $(".prompt-coding-agent-action-overlay");
39
39
  this._button = this._register(( new Button(this._domNode, {
40
40
  supportIcons: true,
41
- title: ( localize(6539, "Run prompt file in a remote coding agent"))
41
+ title: ( localize(6590, "Run prompt file in a remote coding agent"))
42
42
  })));
43
43
  this._button.element.style.background = "var(--vscode-button-background)";
44
44
  this._button.element.style.color = "var(--vscode-button-foreground)";
45
- this._button.label = ( localize(6540, "{0} Delegate to Copilot coding agent", "$(cloud-upload)"));
45
+ this._button.label = ( localize(6591, "{0} Delegate to Copilot coding agent", "$(cloud-upload)"));
46
46
  this._register(this._button.onDidClick(async () => {
47
47
  await this._execute();
48
48
  }));
@@ -0,0 +1,181 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { PromptLinkProvider } from '../../common/promptSyntax/languageProviders/promptLinkProvider.js';
4
+ import { PromptBodyAutocompletion } from '../../common/promptSyntax/languageProviders/promptBodyAutocompletion.js';
5
+ import { PromptHeaderAutocompletion } from '../../common/promptSyntax/languageProviders/promptHeaderAutocompletion.js';
6
+ import { PromptHoverProvider } from '../../common/promptSyntax/languageProviders/promptHovers.js';
7
+ import { PromptHeaderDefinitionProvider } from '../../common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js';
8
+ import { PromptValidator, MARKERS_OWNER_ID } from '../../common/promptSyntax/languageProviders/promptValidator.js';
9
+ import { PromptDocumentSemanticTokensProvider } from '../../common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js';
10
+ import { PromptCodeActionProvider } from '../../common/promptSyntax/languageProviders/promptCodeActions.js';
11
+ import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service';
12
+ import { Disposable, DisposableStore, toDisposable, DisposableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
13
+ import { ALL_PROMPTS_LANGUAGE_SELECTOR, getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
14
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
15
+ import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service';
16
+ import { IMarkerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markers/common/markers.service';
17
+ import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
18
+ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
19
+ import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
20
+ import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
21
+ import { Delayer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
22
+ import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
23
+
24
+ let PromptLanguageFeaturesProvider = class PromptLanguageFeaturesProvider extends Disposable {
25
+ static {
26
+ this.ID = "chat.promptLanguageFeatures";
27
+ }
28
+ constructor(languageService, instantiationService) {
29
+ super();
30
+ this._register(languageService.linkProvider.register(
31
+ ALL_PROMPTS_LANGUAGE_SELECTOR,
32
+ instantiationService.createInstance(PromptLinkProvider)
33
+ ));
34
+ this._register(languageService.completionProvider.register(
35
+ ALL_PROMPTS_LANGUAGE_SELECTOR,
36
+ instantiationService.createInstance(PromptBodyAutocompletion)
37
+ ));
38
+ this._register(languageService.completionProvider.register(
39
+ ALL_PROMPTS_LANGUAGE_SELECTOR,
40
+ instantiationService.createInstance(PromptHeaderAutocompletion)
41
+ ));
42
+ this._register(languageService.hoverProvider.register(
43
+ ALL_PROMPTS_LANGUAGE_SELECTOR,
44
+ instantiationService.createInstance(PromptHoverProvider)
45
+ ));
46
+ this._register(languageService.definitionProvider.register(
47
+ ALL_PROMPTS_LANGUAGE_SELECTOR,
48
+ instantiationService.createInstance(PromptHeaderDefinitionProvider)
49
+ ));
50
+ this._register(languageService.documentSemanticTokensProvider.register(
51
+ ALL_PROMPTS_LANGUAGE_SELECTOR,
52
+ instantiationService.createInstance(PromptDocumentSemanticTokensProvider)
53
+ ));
54
+ this._register(languageService.codeActionProvider.register(
55
+ ALL_PROMPTS_LANGUAGE_SELECTOR,
56
+ instantiationService.createInstance(PromptCodeActionProvider)
57
+ ));
58
+ this._register(instantiationService.createInstance(PromptValidatorContribution));
59
+ }
60
+ };
61
+ PromptLanguageFeaturesProvider = ( __decorate([( __param(0, ILanguageFeaturesService)), ( __param(1, IInstantiationService))], PromptLanguageFeaturesProvider));
62
+ let PromptValidatorContribution = class PromptValidatorContribution extends Disposable {
63
+ constructor(
64
+ codeEditorService,
65
+ instantiationService,
66
+ markerService,
67
+ promptsService,
68
+ languageModelsService,
69
+ languageModelToolsService,
70
+ chatModeService
71
+ ) {
72
+ super();
73
+ this.codeEditorService = codeEditorService;
74
+ this.markerService = markerService;
75
+ this.promptsService = promptsService;
76
+ this.languageModelsService = languageModelsService;
77
+ this.languageModelToolsService = languageModelToolsService;
78
+ this.chatModeService = chatModeService;
79
+ this.localDisposables = this._register(( new DisposableStore()));
80
+ this.validator = instantiationService.createInstance(PromptValidator);
81
+ this.updateRegistration();
82
+ }
83
+ updateRegistration() {
84
+ this.localDisposables.clear();
85
+ const trackers = ( new ResourceMap());
86
+ this.localDisposables.add(toDisposable(() => {
87
+ trackers.forEach(tracker => tracker.dispose());
88
+ trackers.clear();
89
+ }));
90
+ const acquire = editor => {
91
+ const model = editor.getModel();
92
+ if (!model) {
93
+ return;
94
+ }
95
+ const promptType = getPromptsTypeForLanguageId(model.getLanguageId());
96
+ if (promptType) {
97
+ const existing = trackers.get(model.uri);
98
+ if (existing) {
99
+ existing.refCount++;
100
+ return;
101
+ }
102
+ trackers.set(model.uri, ( new ModelTracker(model, promptType, this.validator, this.promptsService, this.markerService)));
103
+ }
104
+ };
105
+ const release = uri => {
106
+ const tracker = trackers.get(uri);
107
+ if (tracker && --tracker.refCount === 0) {
108
+ tracker.dispose();
109
+ trackers.delete(uri);
110
+ }
111
+ };
112
+ const perEditorDisposables = ( new DisposableMap());
113
+ this.localDisposables.add(perEditorDisposables);
114
+ const onCodeEditorAdd = editor => {
115
+ acquire(editor);
116
+ const store = ( new DisposableStore());
117
+ store.add(editor.onDidChangeModel(e => {
118
+ if (e.oldModelUrl) {
119
+ release(e.oldModelUrl);
120
+ }
121
+ acquire(editor);
122
+ }));
123
+ store.add(editor.onDidChangeModelLanguage(e => {
124
+ const model = editor.getModel();
125
+ if (model) {
126
+ release(model.uri);
127
+ acquire(editor);
128
+ }
129
+ }));
130
+ perEditorDisposables.set(editor.getId(), store);
131
+ };
132
+ for (const editor of this.codeEditorService.listCodeEditors()) {
133
+ onCodeEditorAdd(editor);
134
+ }
135
+ this.localDisposables.add(this.codeEditorService.onCodeEditorAdd(editor => {
136
+ onCodeEditorAdd(editor);
137
+ }));
138
+ this.localDisposables.add(this.codeEditorService.onCodeEditorRemove(editor => {
139
+ perEditorDisposables.deleteAndDispose(editor.getId());
140
+ const model = editor.getModel();
141
+ if (model) {
142
+ release(model.uri);
143
+ }
144
+ }));
145
+ const validateAll = () => trackers.forEach(tracker => tracker.validate());
146
+ this.localDisposables.add(this.languageModelToolsService.onDidChangeTools(() => validateAll()));
147
+ this.localDisposables.add(this.chatModeService.onDidChangeChatModes(() => validateAll()));
148
+ this.localDisposables.add(this.languageModelsService.onDidChangeLanguageModels(() => validateAll()));
149
+ }
150
+ };
151
+ PromptValidatorContribution = ( __decorate([( __param(0, ICodeEditorService)), ( __param(1, IInstantiationService)), ( __param(2, IMarkerService)), ( __param(3, IPromptsService)), ( __param(4, ILanguageModelsService)), ( __param(5, ILanguageModelToolsService)), ( __param(6, IChatModeService))], PromptValidatorContribution));
152
+ class ModelTracker extends Disposable {
153
+ constructor(textModel, promptType, validator, promptsService, markerService) {
154
+ super();
155
+ this.textModel = textModel;
156
+ this.promptType = promptType;
157
+ this.validator = validator;
158
+ this.promptsService = promptsService;
159
+ this.markerService = markerService;
160
+ this.refCount = 1;
161
+ this.delayer = this._register(( new Delayer(200)));
162
+ this._register(textModel.onDidChangeContent(() => this.validate()));
163
+ this.validate();
164
+ }
165
+ validate() {
166
+ this.delayer.trigger(async () => {
167
+ const markers = [];
168
+ const ast = this.promptsService.getParsedPromptFile(this.textModel);
169
+ await this.validator.validate(ast, this.promptType, m => markers.push(m));
170
+ if (!this._store.isDisposed) {
171
+ this.markerService.changeOne(MARKERS_OWNER_ID, this.textModel.uri, markers);
172
+ }
173
+ });
174
+ }
175
+ dispose() {
176
+ this.markerService.remove(MARKERS_OWNER_ID, [this.textModel.uri]);
177
+ super.dispose();
178
+ }
179
+ }
180
+
181
+ export { PromptLanguageFeaturesProvider };
@@ -7,7 +7,7 @@ import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs
7
7
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
8
8
  import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands';
9
9
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
10
- import { showToolsPicker } from '../actions/chatToolPicker.js';
10
+ import { showToolsPicker } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatToolPicker';
11
11
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
12
12
  import { ALL_PROMPTS_LANGUAGE_SELECTOR, getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
13
13
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
@@ -72,7 +72,7 @@ let PromptToolsCodeLensProvider = class PromptToolsCodeLensProvider extends Disp
72
72
  const codeLens = {
73
73
  range: toolsAttr.range.collapseToStart(),
74
74
  command: {
75
- title: ( localize(6541, "Configure Tools...")),
75
+ title: ( localize(6592, "Configure Tools...")),
76
76
  id: this.cmdId,
77
77
  arguments: [
78
78
  model,
@@ -89,7 +89,7 @@ let PromptToolsCodeLensProvider = class PromptToolsCodeLensProvider extends Disp
89
89
  }
90
90
  async updateTools(model, range, isString, selectedTools, target) {
91
91
  const selectedToolsNow = () => this.languageModelToolsService.toToolAndToolSetEnablementMap(selectedTools, undefined);
92
- const newSelectedAfter = await this.instantiationService.invokeFunction(showToolsPicker, ( localize(6542, "Select tools")), "codeLens", undefined, selectedToolsNow);
92
+ const newSelectedAfter = await this.instantiationService.invokeFunction(showToolsPicker, ( localize(6593, "Select tools")), "codeLens", undefined, selectedToolsNow);
93
93
  if (!newSelectedAfter) {
94
94
  return;
95
95
  }