@codingame/monaco-vscode-chat-service-override 31.0.0 → 32.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/index.d.ts +1 -1
  2. package/index.js +21 -5
  3. package/package.json +5 -5
  4. package/vscode/src/vs/base/common/defaultAccount.d.ts +69 -0
  5. package/vscode/src/vs/base/common/defaultAccount.js +12 -0
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +91 -22
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +301 -68
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +24 -5
  9. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +89 -16
  10. package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.d.ts +17 -5
  11. package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.js +73 -10
  12. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +32 -6
  13. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +32 -20
  14. package/vscode/src/vs/platform/agentHost/common/agentHostPermissionService.d.ts +37 -0
  15. package/vscode/src/vs/platform/agentHost/common/agentHostPermissionService.js +15 -0
  16. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +242 -201
  17. package/vscode/src/vs/platform/agentHost/common/agentService.js +3 -1
  18. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.d.ts +35 -0
  19. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.js +106 -0
  20. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +38 -30
  21. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +2 -1
  22. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +114 -4
  23. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +10 -10
  24. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +52 -19
  25. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +42 -0
  26. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +7 -0
  27. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +42 -41
  28. package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.d.ts +6 -6
  29. package/vscode/src/vs/platform/agentHost/common/transportConstants.d.ts +15 -0
  30. package/vscode/src/vs/platform/agentHost/common/transportConstants.js +6 -0
  31. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +4 -3
  32. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +4 -3
  33. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +4 -2
  34. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +15 -7
  35. package/vscode/src/vs/workbench/contrib/browserView/common/browserChatToolReferenceNames.d.ts +19 -0
  36. package/vscode/src/vs/workbench/contrib/browserView/common/browserChatToolReferenceNames.js +17 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -10
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +64 -59
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +31 -16
  44. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +18 -9
  45. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.d.ts +16 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +8 -8
  47. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +30 -5
  48. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  49. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +8 -7
  50. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  51. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  52. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  53. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +12 -12
  54. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
  55. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +27 -18
  56. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  57. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
  58. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  59. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +21 -20
  60. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +22 -22
  61. package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.d.ts +12 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.js +171 -0
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +4 -4
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +1 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +3 -2
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +12 -10
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.d.ts +28 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +99 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.d.ts +2 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.js +11 -4
  74. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +9 -3
  75. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +63 -53
  76. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +2 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +10 -7
  78. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +3 -3
  79. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  81. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +5 -4
  83. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +25 -48
  84. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  85. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  86. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +5 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +8 -4
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +99 -39
  89. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +2 -2
  90. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +17 -30
  91. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +78 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +38 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +35 -37
  94. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +347 -326
  95. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +6 -2
  96. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +1 -11
  97. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +113 -109
  98. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +37 -15
  99. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +436 -134
  100. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +2 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +52 -26
  103. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +7 -1
  104. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +2 -1
  105. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +13 -5
  106. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.d.ts +23 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +60 -0
  108. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.d.ts +25 -0
  109. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +93 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +9 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +73 -104
  112. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +272 -41
  113. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +12 -2
  114. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +30 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +430 -185
  116. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +5 -2
  117. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +44 -3
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +480 -279
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.d.ts +138 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.js +221 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.d.ts +84 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +1216 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +2 -1
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +32 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +26 -19
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +28 -25
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +25 -24
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +2 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +68 -33
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +3 -2
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.js +1 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +650 -6
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +46 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +533 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +29 -0
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +390 -0
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +101 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +509 -0
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +18 -3
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +11 -11
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -2
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +130 -0
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +276 -0
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -7
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +1 -7
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +6 -87
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +1 -1
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +116 -182
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +12 -39
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +31 -31
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +61 -41
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +27 -27
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +2 -0
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +16 -13
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +20 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +106 -36
  179. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +25 -7
  180. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +629 -425
  181. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +9 -1
  182. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +105 -29
  183. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.d.ts +1 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +175 -148
  185. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +20 -33
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +9 -2
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  188. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  189. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  190. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  191. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  192. package/vscode/src/vs/workbench/contrib/chat/browser/githubRepoFetcher.d.ts +58 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/githubRepoFetcher.js +339 -0
  194. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/media/planReviewFeedback.css +160 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.d.ts +9 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +123 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.d.ts +37 -0
  199. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +572 -0
  200. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackService.d.ts +36 -0
  201. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackService.js +167 -0
  202. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.d.ts +49 -7
  203. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +315 -19
  204. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +45 -24
  205. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
  206. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
  207. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  208. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +44 -40
  209. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +5 -5
  210. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  211. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileContributions.js +4 -1
  212. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  213. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  214. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  215. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  216. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  217. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  218. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  219. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +9 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +111 -52
  221. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +3 -7
  222. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +13 -47
  223. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +3 -2
  224. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +4 -8
  225. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.d.ts +18 -0
  226. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.js +56 -0
  227. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +3 -7
  228. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +14 -52
  229. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  230. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.d.ts +3 -1
  231. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +17 -2
  232. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
  233. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +23 -12
  234. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.d.ts +39 -0
  235. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +136 -0
  236. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletionsBase.d.ts +72 -0
  237. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletionsBase.js +56 -0
  238. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.d.ts +7 -0
  239. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.js +14 -1
  240. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +41 -26
  241. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +30 -12
  242. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  243. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  244. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +2 -5
  245. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +25 -6
  246. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  247. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +2 -2
  248. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +5 -4
  249. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -0
  250. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +108 -45
  251. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +7 -3
  252. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +3 -1
  253. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +20 -1
  254. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +65 -26
  255. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +5 -3
  256. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +38 -11
  257. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +17 -1
  258. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +165 -16
  259. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +1 -0
  260. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +62 -1
  261. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
  262. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +2 -1
  263. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  264. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -3
  265. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +15 -21
  266. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +1 -3
  267. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +18 -24
  268. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +4 -2
  269. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +203 -180
  270. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  271. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.d.ts +30 -0
  272. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.js +35 -0
  273. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +2 -1
  274. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +27 -2
  275. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
  276. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +14 -49
  277. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +0 -16
  278. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +35 -177
  279. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -8
  280. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.d.ts +1 -2
  281. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +2 -3
  282. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +4 -4
  283. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -11
  284. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  285. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +13 -13
  287. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  288. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  289. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +29 -3
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +129 -3
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -2
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +2 -1
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +14 -6
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +1 -4
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +12 -38
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +4 -4
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.d.ts +12 -7
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +77 -70
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.d.ts +32 -0
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.js +232 -0
  311. package/vscode/src/vs/workbench/services/agentHost/common/agentHostPermissionService.d.ts +83 -0
  312. package/vscode/src/vs/workbench/services/agentHost/common/agentHostPermissionService.js +243 -0
  313. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +0 -749
  314. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.js +0 -14
  315. package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.d.ts +0 -17
  316. package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.js +0 -5
  317. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +0 -40
  318. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.js +0 -14
  319. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +0 -61
  320. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +0 -638
  321. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +0 -131
  322. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +0 -363
  323. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +0 -24
  324. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +0 -306
  325. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -23
  326. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +0 -97
  327. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatStatusWidget.css +0 -57
  328. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +0 -50
  329. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +0 -29
  330. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +0 -50
  331. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +0 -78
  332. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +0 -77
  333. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +0 -120
  334. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +0 -10
  335. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +0 -23
  336. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +0 -242
  337. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +0 -1701
  338. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +0 -191
  339. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +0 -728
  340. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +0 -14
  341. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +0 -69
@@ -0,0 +1,136 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { DisposableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
5
+ import { assertType } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
6
+ import { CompletionItemKind } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
7
+ import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service';
8
+ import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands';
9
+ import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
10
+ import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
11
+ import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
12
+ import { ChatDynamicVariableModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables';
13
+ import { isAgentHostTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
14
+ import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
15
+ import { getChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
16
+ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
17
+ import { AgentHostInputCompletionsBase } from './agentHostInputCompletionsBase.js';
18
+
19
+ var AgentHostInputCompletions_1;
20
+ let AgentHostInputCompletions = class AgentHostInputCompletions extends AgentHostInputCompletionsBase {
21
+ static {
22
+ AgentHostInputCompletions_1 = this;
23
+ }
24
+ static {
25
+ this.addReferenceCommand = "_chatAgentHostAddReferenceCmd";
26
+ }
27
+ constructor(languageFeaturesService, _chatWidgetService, chatSessionsService) {
28
+ super(languageFeaturesService, chatSessionsService);
29
+ this._chatWidgetService = _chatWidgetService;
30
+ this._registrations = this._register(( new DisposableMap()));
31
+ this._register(
32
+ CommandsRegistry.registerCommand(AgentHostInputCompletions_1.addReferenceCommand, (_services, arg) => {
33
+ assertType(arg instanceof AgentHostReferenceArgument);
34
+ arg.widget.getContrib(ChatDynamicVariableModel.ID)?.addReference({
35
+ id: ( arg.uri.toString()),
36
+ range: arg.range,
37
+ isFile: !arg.isDirectory,
38
+ isDirectory: arg.isDirectory,
39
+ fullName: arg.displayName,
40
+ data: arg.uri,
41
+ _meta: arg._meta
42
+ });
43
+ })
44
+ );
45
+ for (const scheme of this._chatSessionsService.getContentProviderSchemes()) {
46
+ void this._registerForScheme(scheme);
47
+ }
48
+ this._register(this._chatSessionsService.onDidChangeContentProviderSchemes((
49
+ {
50
+ added,
51
+ removed
52
+ }
53
+ ) => {
54
+ for (const scheme of removed) {
55
+ this._registrations.deleteAndDispose(scheme);
56
+ }
57
+ for (const scheme of added) {
58
+ void this._registerForScheme(scheme);
59
+ }
60
+ }));
61
+ }
62
+ async _registerForScheme(scheme) {
63
+ if (!isAgentHostTarget(scheme)) {
64
+ return;
65
+ }
66
+ const triggerCharacters = await this._chatSessionsService.getChatInputCompletionTriggerCharacters(scheme);
67
+ if (!triggerCharacters || triggerCharacters.length === 0) {
68
+ return;
69
+ }
70
+ if (!this._chatSessionsService.getContentProviderSchemes().includes(scheme)) {
71
+ return;
72
+ }
73
+ this._registrations.set(scheme, this._registerProvider({
74
+ scheme: Schemas.vscodeChatInput,
75
+ hasAccessToAllModels: true
76
+ }, `agentHostChatInputCompletions[${scheme}]`, triggerCharacters, scheme));
77
+ }
78
+ _resolveContext(model, scheme) {
79
+ const widget = this._chatWidgetService.getWidgetByInputUri(model.uri);
80
+ if (!widget?.viewModel) {
81
+ return undefined;
82
+ }
83
+ const sessionResource = widget.viewModel.model.sessionResource;
84
+ if (getChatSessionType(sessionResource) !== scheme) {
85
+ return undefined;
86
+ }
87
+ return {
88
+ sessionResource,
89
+ context: widget
90
+ };
91
+ }
92
+ _buildItem(position, item, widget) {
93
+ const replaceRange = AgentHostInputCompletions_1.computeRange(position, item);
94
+ const label = item.attachment.displayName ?? item.insertText;
95
+ const description = item.attachment.uri.path;
96
+ return {
97
+ label: {
98
+ label,
99
+ description
100
+ },
101
+ insertText: item.insertText,
102
+ filterText: item.insertText,
103
+ range: replaceRange,
104
+ kind: item.attachment.isDirectory ? CompletionItemKind.Folder : CompletionItemKind.File,
105
+ command: {
106
+ id: AgentHostInputCompletions_1.addReferenceCommand,
107
+ title: "",
108
+ arguments: [( new AgentHostReferenceArgument(
109
+ widget,
110
+ item.attachment.uri,
111
+ item.attachment.displayName,
112
+ !!item.attachment.isDirectory,
113
+ replaceRange.replace.setEndPosition(
114
+ replaceRange.replace.startLineNumber,
115
+ replaceRange.replace.startColumn + item.insertText.length
116
+ ),
117
+ item.attachment._meta
118
+ ))]
119
+ }
120
+ };
121
+ }
122
+ };
123
+ AgentHostInputCompletions = AgentHostInputCompletions_1 = ( __decorate([( __param(0, ILanguageFeaturesService)), ( __param(1, IChatWidgetService)), ( __param(2, IChatSessionsService))], AgentHostInputCompletions));
124
+ class AgentHostReferenceArgument {
125
+ constructor(widget, uri, displayName, isDirectory, range, _meta) {
126
+ this.widget = widget;
127
+ this.uri = uri;
128
+ this.displayName = displayName;
129
+ this.isDirectory = isDirectory;
130
+ this.range = range;
131
+ this._meta = _meta;
132
+ }
133
+ }
134
+ ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(AgentHostInputCompletions, LifecyclePhase.Eventually);
135
+
136
+ export { AgentHostInputCompletions };
@@ -0,0 +1,72 @@
1
+ import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
3
+ import { Position } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/position";
4
+ import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
5
+ import { CompletionItem } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages";
6
+ import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model";
7
+ import { LanguageFilter } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languageSelector";
8
+ import { ILanguageFeaturesService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service";
9
+ import { IChatInputCompletionItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService";
10
+ import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service";
11
+ /**
12
+ * Shared plumbing for Monaco completion providers that delegate to an
13
+ * agent host's `provideChatInputCompletions` RPC.
14
+ *
15
+ * Subclasses own the registration lifecycle (per-scheme, per-active-
16
+ * session, etc.) and supply two pieces of behaviour:
17
+ *
18
+ * - {@link _resolveContext}: how to find the session resource for a
19
+ * given input model, plus any subclass-specific data ({@link TContext})
20
+ * that needs to flow into the accept command. Receives the per-
21
+ * registration data ({@link TRegData}) the subclass passed to
22
+ * {@link _registerProvider} so it can short-circuit when the model
23
+ * does not belong to *this* registration (e.g. a different scheme).
24
+ * - {@link _buildItem}: how to produce the final Monaco
25
+ * {@link CompletionItem} including the command that runs when the
26
+ * user accepts a suggestion.
27
+ *
28
+ * The base handles the cross-cutting concerns: gating on trigger
29
+ * characters, performing the host RPC, cancellation, and registering
30
+ * the Monaco provider with the host-announced trigger characters.
31
+ */
32
+ export declare abstract class AgentHostInputCompletionsBase<TContext, TRegData = void> extends Disposable {
33
+ protected readonly _languageFeaturesService: ILanguageFeaturesService;
34
+ protected readonly _chatSessionsService: IChatSessionsService;
35
+ constructor(_languageFeaturesService: ILanguageFeaturesService, _chatSessionsService: IChatSessionsService);
36
+ /**
37
+ * Resolve the session resource whose host should answer completions
38
+ * for `model`, along with any subclass-specific context that should
39
+ * flow into {@link _buildItem}. Return `undefined` to skip.
40
+ */
41
+ protected abstract _resolveContext(model: ITextModel, regData: TRegData): {
42
+ sessionResource: URI;
43
+ context: TContext;
44
+ } | undefined;
45
+ /**
46
+ * Build the Monaco completion item — including the accept command —
47
+ * for one item returned by the host.
48
+ */
49
+ protected abstract _buildItem(position: Position, item: IChatInputCompletionItem, context: TContext): CompletionItem;
50
+ /**
51
+ * Register a Monaco completion provider that delegates to this
52
+ * instance. Subclasses call this once their lifecycle decides a
53
+ * registration should exist (e.g. once a content provider becomes
54
+ * available, or once the active session changes to an AHP-backed
55
+ * one). The opaque {@link regData} is forwarded to
56
+ * {@link _resolveContext} so the subclass can identify which
57
+ * registration is firing (e.g. its scheme) and ignore models that
58
+ * don't belong to it.
59
+ */
60
+ protected _registerProvider(filter: LanguageFilter, debugName: string, triggerCharacters: readonly string[], regData: TRegData): IDisposable;
61
+ private _provide;
62
+ /**
63
+ * Compute the insert/replace ranges for an item. Positions returned
64
+ * by the host are already 1-based Monaco positions, so they can be
65
+ * used directly. When omitted, the ranges default to a zero-length
66
+ * span at the cursor (Monaco then inserts without replacing).
67
+ */
68
+ protected static computeRange(position: Position, item: IChatInputCompletionItem): {
69
+ insert: Range;
70
+ replace: Range;
71
+ };
72
+ }
@@ -0,0 +1,56 @@
1
+
2
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
3
+ import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
4
+ import { isAtTriggerCharacterToken } from './chatInputCompletionUtils.js';
5
+
6
+ class AgentHostInputCompletionsBase extends Disposable {
7
+ constructor(_languageFeaturesService, _chatSessionsService) {
8
+ super();
9
+ this._languageFeaturesService = _languageFeaturesService;
10
+ this._chatSessionsService = _chatSessionsService;
11
+ }
12
+ _registerProvider(filter, debugName, triggerCharacters, regData) {
13
+ return this._languageFeaturesService.completionProvider.register(filter, {
14
+ _debugDisplayName: debugName,
15
+ triggerCharacters: [...triggerCharacters],
16
+ provideCompletionItems: (model, position, _context, token) => this._provide(model, position, token, triggerCharacters, regData)
17
+ });
18
+ }
19
+ async _provide(model, position, token, triggerCharacters, regData) {
20
+ if (!isAtTriggerCharacterToken(model, position, triggerCharacters)) {
21
+ return null;
22
+ }
23
+ const ctx = this._resolveContext(model, regData);
24
+ if (!ctx) {
25
+ return null;
26
+ }
27
+ const text = model.getValue();
28
+ const offset = model.getOffsetAt(position);
29
+ const result = await this._chatSessionsService.provideChatInputCompletions(ctx.sessionResource, {
30
+ text,
31
+ offset
32
+ }, token);
33
+ if (token.isCancellationRequested || !result) {
34
+ return null;
35
+ }
36
+ const suggestions = [];
37
+ for (const item of result.items) {
38
+ suggestions.push(this._buildItem(position, item, ctx.context));
39
+ }
40
+ return {
41
+ suggestions
42
+ };
43
+ }
44
+ static computeRange(position, item) {
45
+ const start = item.start ?? position;
46
+ const end = item.end ?? position;
47
+ const replace = ( new Range(start.lineNumber, start.column, end.lineNumber, end.column));
48
+ const insert = ( new Range(start.lineNumber, start.column, position.lineNumber, position.column));
49
+ return {
50
+ insert,
51
+ replace
52
+ };
53
+ }
54
+ }
55
+
56
+ export { AgentHostInputCompletionsBase };
@@ -10,3 +10,10 @@ export interface IChatCompletionRangeResult {
10
10
  }
11
11
  export declare function computeCompletionRanges(model: ITextModel, position: Position, reg: RegExp, onlyOnWordStart?: boolean): IChatCompletionRangeResult | undefined;
12
12
  export declare function isEmptyUpToCompletionWord(model: ITextModel, rangeResult: IChatCompletionRangeResult): boolean;
13
+ /**
14
+ * Returns `true` when the cursor sits inside a non-empty token whose first
15
+ * character is one of the given trigger characters (or is positioned right
16
+ * after such a token). Used to gate completion providers so they only run
17
+ * when the user is actively editing a trigger-led token.
18
+ */
19
+ export declare function isAtTriggerCharacterToken(model: ITextModel, position: Position, triggerCharacters: readonly string[]): boolean;
@@ -58,5 +58,18 @@ function isEmptyUpToCompletionWord(model, rangeResult) {
58
58
  const startToCompletionWordStart = ( new Range(1, 1, rangeResult.replace.startLineNumber, rangeResult.replace.startColumn));
59
59
  return !!model.getValueInRange(startToCompletionWordStart).match(/^\s*$/);
60
60
  }
61
+ function isAtTriggerCharacterToken(model, position, triggerCharacters) {
62
+ if (triggerCharacters.length === 0) {
63
+ return false;
64
+ }
65
+ const line = model.getLineContent(position.lineNumber);
66
+ const beforeCursor = line.slice(0, position.column - 1);
67
+ const wsIdx = beforeCursor.search(/\s\S*$/);
68
+ const token = wsIdx >= 0 ? beforeCursor.slice(wsIdx + 1) : beforeCursor;
69
+ if (token.length === 0) {
70
+ return false;
71
+ }
72
+ return triggerCharacters.includes(token[0]);
73
+ }
61
74
 
62
- export { computeCompletionRanges, escapeForCharClass, isEmptyUpToCompletionWord };
75
+ export { computeCompletionRanges, escapeForCharClass, isAtTriggerCharacterToken, isEmptyUpToCompletionWord };
@@ -47,12 +47,10 @@ import { ChatRequestAgentPart, chatSubcommandLeader, chatAgentLeader, ChatReques
47
47
  import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service';
48
48
  import { ChatModeKind, ChatAgentLocation, isSupportedChatFileScheme } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
49
49
  import { isToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
50
+ import { isAgentHostTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
50
51
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
51
- import { getActiveHarnessSlashCommands } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService';
52
52
  import { ICustomizationHarnessService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService.service';
53
53
  import { matchesSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
54
- import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
55
- import { Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
56
54
  import { ChatSubmitAction } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatExecuteActions';
57
55
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
58
56
  import { resizeImage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatImageUtils';
@@ -65,12 +63,15 @@ import { AgentSessionProviders, getAgentSessionProviderIcon } from '@codingame/m
65
63
  var BuiltinDynamicCompletions_1, ToolCompletions_1;
66
64
  const SlashCommandWord = /\/[\p{L}0-9_.:-]*/gu;
67
65
  const AgentOrSlashCommandWord = /(@|\/)[\p{L}0-9_.:-]*/gu;
66
+ function isAgentHostBackedWidget(widget) {
67
+ const sessionResource = widget.viewModel?.model.sessionResource;
68
+ return !!sessionResource && isAgentHostTarget(getChatSessionType(sessionResource));
69
+ }
68
70
  let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
69
71
  constructor(
70
72
  languageFeaturesService,
71
73
  chatWidgetService,
72
74
  chatSlashCommandService,
73
- promptsService,
74
75
  harnessService,
75
76
  chatService,
76
77
  chatSessionsService,
@@ -80,7 +81,6 @@ let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
80
81
  this.languageFeaturesService = languageFeaturesService;
81
82
  this.chatWidgetService = chatWidgetService;
82
83
  this.chatSlashCommandService = chatSlashCommandService;
83
- this.promptsService = promptsService;
84
84
  this.harnessService = harnessService;
85
85
  this._register(this.languageFeaturesService.completionProvider.register({
86
86
  scheme: Schemas.vscodeChatInput,
@@ -93,11 +93,6 @@ let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
93
93
  if (!widget || !widget.viewModel) {
94
94
  return null;
95
95
  }
96
- let customAgentTarget = undefined;
97
- if (widget.lockedAgentId) {
98
- const sessionResource = widget.viewModel.model.sessionResource;
99
- customAgentTarget = (sessionResource ? chatSessionsService.getCustomAgentTargetForSessionType(getChatSessionType(sessionResource)) : undefined) ?? Target.Undefined;
100
- }
101
96
  const range = computeCompletionRanges(model, position, SlashCommandWord);
102
97
  if (!range) {
103
98
  return null;
@@ -114,6 +109,7 @@ let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
114
109
  if (!slashCommands) {
115
110
  return null;
116
111
  }
112
+ const sessionType = getChatSessionType(widget.viewModel.model.sessionResource);
117
113
  return {
118
114
  suggestions: ( slashCommands.filter(c => {
119
115
  if (!c.silent && !widget.attachmentCapabilities.supportsPromptAttachments) {
@@ -122,15 +118,15 @@ let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
122
118
  if (c.when && !widget.scopedContextKeyService.contextMatchesRules(c.when)) {
123
119
  return false;
124
120
  }
121
+ if (!matchesSessionType(c.sessionTypes, sessionType)) {
122
+ return false;
123
+ }
125
124
  if (!widget.lockedAgentId) {
126
125
  return true;
127
126
  }
128
127
  if (c.modes && c.modes.length && !c.modes.includes(ChatModeKind.Agent)) {
129
128
  return false;
130
129
  }
131
- if (c.targets && customAgentTarget && !c.targets.includes(customAgentTarget)) {
132
- return false;
133
- }
134
130
  return true;
135
131
  }).map((c, i) => {
136
132
  const withSlash = `/${c.command}`;
@@ -182,8 +178,9 @@ let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
182
178
  if (widget.lockedAgentId) {
183
179
  return null;
184
180
  }
181
+ const currentSessionType = getChatSessionType(widget.viewModel.model.sessionResource);
185
182
  return {
186
- suggestions: ( slashCommands.filter(c => !c.when || widget.scopedContextKeyService.contextMatchesRules(c.when)).map((c, i) => {
183
+ suggestions: ( slashCommands.filter(c => !c.when || widget.scopedContextKeyService.contextMatchesRules(c.when)).filter(c => matchesSessionType(c.sessionTypes, currentSessionType)).map((c, i) => {
187
184
  const withSlash = `${chatSubcommandLeader}${c.command}`;
188
185
  return {
189
186
  label: {
@@ -232,14 +229,14 @@ let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
232
229
  if (usedAgent) {
233
230
  return;
234
231
  }
235
- const promptCommands = await getActiveHarnessSlashCommands(this.harnessService, this.promptsService, token);
232
+ const currentSessionType = getChatSessionType(widget.viewModel.model.sessionResource);
233
+ const promptCommands = await this.harnessService.getSlashCommands(currentSessionType, token);
236
234
  if (promptCommands.length === 0) {
237
235
  return null;
238
236
  }
239
237
  if (widget.lockedAgentId && !widget.attachmentCapabilities.supportsPromptAttachments) {
240
238
  return null;
241
239
  }
242
- const currentSessionType = widget.viewModel.model.sessionResource ? getChatSessionType(widget.viewModel.model.sessionResource) : undefined;
243
240
  const userInvocableCommands = promptCommands.filter(c => c.userInvocable).filter(c => matchesSessionType(c.sessionTypes, currentSessionType));
244
241
  if (userInvocableCommands.length === 0) {
245
242
  return null;
@@ -307,7 +304,7 @@ let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
307
304
  }));
308
305
  }
309
306
  };
310
- SlashCommandCompletions = ( __decorate([( __param(0, ILanguageFeaturesService)), ( __param(1, IChatWidgetService)), ( __param(2, IChatSlashCommandService)), ( __param(3, IPromptsService)), ( __param(4, ICustomizationHarnessService)), ( __param(5, IChatService)), ( __param(6, IChatSessionsService)), ( __param(7, IMcpService))], SlashCommandCompletions));
307
+ SlashCommandCompletions = ( __decorate([( __param(0, ILanguageFeaturesService)), ( __param(1, IChatWidgetService)), ( __param(2, IChatSlashCommandService)), ( __param(3, ICustomizationHarnessService)), ( __param(4, IChatService)), ( __param(5, IChatSessionsService)), ( __param(6, IMcpService))], SlashCommandCompletions));
311
308
  ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(SlashCommandCompletions, LifecyclePhase.Eventually);
312
309
  let AgentCompletions = class AgentCompletions extends Disposable {
313
310
  constructor(
@@ -331,6 +328,9 @@ let AgentCompletions = class AgentCompletions extends Disposable {
331
328
  if (!widget || !widget.viewModel) {
332
329
  return;
333
330
  }
331
+ if (isAgentHostBackedWidget(widget)) {
332
+ return;
333
+ }
334
334
  const range = computeCompletionRanges(model, position, SlashCommandWord);
335
335
  if (!range) {
336
336
  return;
@@ -369,6 +369,9 @@ let AgentCompletions = class AgentCompletions extends Disposable {
369
369
  if (!widget || !viewModel) {
370
370
  return;
371
371
  }
372
+ if (isAgentHostBackedWidget(widget)) {
373
+ return;
374
+ }
372
375
  if (widget.lockedAgentId) {
373
376
  return null;
374
377
  }
@@ -470,6 +473,9 @@ let AgentCompletions = class AgentCompletions extends Disposable {
470
473
  if (!widget || !viewModel) {
471
474
  return;
472
475
  }
476
+ if (isAgentHostBackedWidget(widget)) {
477
+ return;
478
+ }
473
479
  if (widget.lockedAgentId) {
474
480
  return null;
475
481
  }
@@ -542,6 +548,9 @@ let AgentCompletions = class AgentCompletions extends Disposable {
542
548
  if (widget?.location !== ChatAgentLocation.Chat || widget.input.currentModeKind !== ChatModeKind.Ask) {
543
549
  return;
544
550
  }
551
+ if (isAgentHostBackedWidget(widget)) {
552
+ return;
553
+ }
545
554
  if (widget.lockedAgentId) {
546
555
  return null;
547
556
  }
@@ -552,7 +561,7 @@ let AgentCompletions = class AgentCompletions extends Disposable {
552
561
  if (!isEmptyUpToCompletionWord(model, range)) {
553
562
  return;
554
563
  }
555
- const label = ( localize(7202, "Install Chat Extensions..."));
564
+ const label = ( localize(7507, "Install Chat Extensions..."));
556
565
  const item = {
557
566
  label,
558
567
  insertText: "",
@@ -700,7 +709,7 @@ class StartParameterizedPromptAction extends Action2 {
700
709
  messages = await prompt.resolve(args, cts.token);
701
710
  } catch (e) {
702
711
  if (!cts.token.isCancellationRequested) {
703
- notificationService.error(( localize(7203, "Error resolving prompt: {0}", String(e))));
712
+ notificationService.error(( localize(7508, "Error resolving prompt: {0}", String(e))));
704
713
  }
705
714
  replaceTextWith("");
706
715
  return;
@@ -728,15 +737,15 @@ class StartParameterizedPromptAction extends Action2 {
728
737
  id: generateUuid(),
729
738
  kind: "generic",
730
739
  value: contents,
731
- name: ( localize(7204, "Prompt Resource"))
740
+ name: ( localize(7509, "Prompt Resource"))
732
741
  });
733
742
  }
734
743
  } else if (mimeType && getAttachableImageExtension(mimeType)) {
735
744
  const resized = await resizeImage(contents).catch(() => decodeBase64(contents).buffer);
736
745
  chatWidget.attachmentModel.addContext({
737
746
  id: generateUuid(),
738
- name: ( localize(7205, "Prompt Image")),
739
- fullName: ( localize(7205, "Prompt Image")),
747
+ name: ( localize(7510, "Prompt Image")),
748
+ fullName: ( localize(7510, "Prompt Image")),
740
749
  value: resized,
741
750
  kind: "image",
742
751
  references: validURI && [{
@@ -1033,7 +1042,7 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1033
1042
  result.suggestions.push({
1034
1043
  label: {
1035
1044
  label: sessionPrefix,
1036
- description: ( localize(7206, "Attach a chat session"))
1045
+ description: ( localize(7511, "Attach a chat session"))
1037
1046
  },
1038
1047
  filterText: sessionPrefix,
1039
1048
  insertText: `${sessionPrefix}:`,
@@ -1094,6 +1103,9 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1094
1103
  if (!widget) {
1095
1104
  return;
1096
1105
  }
1106
+ if (isAgentHostBackedWidget(widget)) {
1107
+ return;
1108
+ }
1097
1109
  const range = computeCompletionRanges(model, position, wordPattern, true);
1098
1110
  if (range) {
1099
1111
  return provider({
@@ -1116,7 +1128,7 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1116
1128
  const uriLabel = this.labelService.getUriLabel(resource, {
1117
1129
  relative: true
1118
1130
  });
1119
- const labelDescription = description ? ( localize(7207, "{0} ({1})", uriLabel, description)) : uriLabel;
1131
+ const labelDescription = description ? ( localize(7512, "{0} ({1})", uriLabel, description)) : uriLabel;
1120
1132
  const sortText = boostPriority ? " " : "!";
1121
1133
  return {
1122
1134
  label: {
@@ -1168,7 +1180,7 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
1168
1180
  }
1169
1181
  }
1170
1182
  seen.add(resource);
1171
- const newLen = result.suggestions.push(makeCompletionItem(resource, FileKind.FILE, i === 0 ? ( localize(7208, "Active file")) : undefined, i === 0));
1183
+ const newLen = result.suggestions.push(makeCompletionItem(resource, FileKind.FILE, i === 0 ? ( localize(7513, "Active file")) : undefined, i === 0));
1172
1184
  if (newLen - len >= 5) {
1173
1185
  break;
1174
1186
  }
@@ -1320,6 +1332,9 @@ let ToolCompletions = class ToolCompletions extends Disposable {
1320
1332
  if (!widget) {
1321
1333
  return null;
1322
1334
  }
1335
+ if (isAgentHostBackedWidget(widget)) {
1336
+ return null;
1337
+ }
1323
1338
  if (widget.lockedAgentId) {
1324
1339
  const agent = this.chatAgentService.getAgent(widget.lockedAgentId);
1325
1340
  if (agent && !agent.capabilities?.supportsToolAttachments) {
@@ -1354,7 +1369,7 @@ let ToolCompletions = class ToolCompletions extends Disposable {
1354
1369
  name = item.referenceName;
1355
1370
  } else {
1356
1371
  const source = item.source;
1357
- detail = ( localize(7209, "{0}: {1}", source.label, item.displayName));
1372
+ detail = ( localize(7514, "{0}: {1}", source.label, item.displayName));
1358
1373
  name = item.toolReferenceName ?? item.displayName;
1359
1374
  documentation = item.userDescription ?? item.modelDescription;
1360
1375
  }