@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
@@ -134,14 +134,14 @@ function renderCustomizationDiscoveryContent(
134
134
  const container = $("div.chat-debug-file-list");
135
135
  container.tabIndex = 0;
136
136
  const capitalizedType = content.discoveryType.charAt(0).toUpperCase() + content.discoveryType.slice(1);
137
- append(container, $("div.chat-debug-file-list-title", undefined, ( localize(5849, "{0} Discovery Results", capitalizedType))));
138
- append(container, $("div.chat-debug-file-list-summary", undefined, ( localize(5850, "Total files: {0}", content.files.length))));
137
+ append(container, $("div.chat-debug-file-list-title", undefined, ( localize(5975, "{0} Discovery Results", capitalizedType))));
138
+ append(container, $("div.chat-debug-file-list-summary", undefined, ( localize(5976, "Total files: {0}", content.files.length))));
139
139
  const loaded = content.files.filter(f => f.status === "loaded");
140
140
  if (loaded.length > 0) {
141
141
  const section = append(container, $("div.chat-debug-file-list-section"));
142
142
  append(
143
143
  section,
144
- $("div.chat-debug-file-list-section-title", undefined, ( localize(5851, "Loaded ({0})", loaded.length)))
144
+ $("div.chat-debug-file-list-section-title", undefined, ( localize(5977, "Loaded ({0})", loaded.length)))
145
145
  );
146
146
  const groups = ( new Map());
147
147
  for (const file of loaded) {
@@ -155,7 +155,7 @@ function renderCustomizationDiscoveryContent(
155
155
  }
156
156
  const listEl = append(section, $("div.chat-debug-file-list-rows"));
157
157
  listEl.setAttribute("role", "list");
158
- listEl.setAttribute("aria-label", ( localize(5852, "Loaded files")));
158
+ listEl.setAttribute("aria-label", ( localize(5978, "Loaded files")));
159
159
  const rows = [];
160
160
  for (const [locationLabel, files] of groups) {
161
161
  const groupHeader = append(listEl, $("div.chat-debug-file-list-group-header"));
@@ -168,7 +168,7 @@ function renderCustomizationDiscoveryContent(
168
168
  link.textContent = locationLabel;
169
169
  link.tabIndex = -1;
170
170
  disposables.add(
171
- hoverService.setupManagedHover(getDefaultHoverDelegate("element"), link, ( localize(5853, "Open {0} in Extensions", firstFile.extensionId)))
171
+ hoverService.setupManagedHover(getDefaultHoverDelegate("element"), link, ( localize(5979, "Open {0} in Extensions", firstFile.extensionId)))
172
172
  );
173
173
  disposables.add(addDisposableListener(link, EventType.CLICK, e => {
174
174
  e.preventDefault();
@@ -224,11 +224,11 @@ function renderCustomizationDiscoveryContent(
224
224
  const section = append(container, $("div.chat-debug-file-list-section"));
225
225
  append(
226
226
  section,
227
- $("div.chat-debug-file-list-section-title", undefined, ( localize(5854, "Skipped ({0})", skipped.length)))
227
+ $("div.chat-debug-file-list-section-title", undefined, ( localize(5980, "Skipped ({0})", skipped.length)))
228
228
  );
229
229
  const groups = ( new Map());
230
230
  for (const file of skipped) {
231
- const key = file.skipReason ?? ( localize(5855, "unknown"));
231
+ const key = file.skipReason ?? ( localize(5981, "unknown"));
232
232
  let group = groups.get(key);
233
233
  if (!group) {
234
234
  group = [];
@@ -238,7 +238,7 @@ function renderCustomizationDiscoveryContent(
238
238
  }
239
239
  const listEl = append(section, $("div.chat-debug-file-list-rows"));
240
240
  listEl.setAttribute("role", "list");
241
- listEl.setAttribute("aria-label", ( localize(5856, "Skipped files")));
241
+ listEl.setAttribute("aria-label", ( localize(5982, "Skipped files")));
242
242
  const rows = [];
243
243
  for (const [reasonLabel, files] of groups) {
244
244
  const groupHeader = append(listEl, $("div.chat-debug-file-list-group-header"));
@@ -260,7 +260,7 @@ function renderCustomizationDiscoveryContent(
260
260
  if (detail) {
261
261
  detail += ", ";
262
262
  }
263
- detail += ( localize(5857, "duplicate of {0}", file.duplicateOf.path));
263
+ detail += ( localize(5983, "duplicate of {0}", file.duplicateOf.path));
264
264
  }
265
265
  row.appendChild(createInlineFileLink(
266
266
  file.uri,
@@ -299,13 +299,13 @@ function renderCustomizationDiscoveryContent(
299
299
  const chevron = append(header, $("span.chat-debug-message-section-chevron"));
300
300
  append(
301
301
  header,
302
- $("span.chat-debug-message-section-title", undefined, ( localize(5858, "Sources ({0})", content.sourceFolders.length)))
302
+ $("span.chat-debug-message-section-title", undefined, ( localize(5984, "Sources ({0})", content.sourceFolders.length)))
303
303
  );
304
304
  const settingsKey = getSettingsKeyForDiscoveryType(content.discoveryType);
305
305
  if (settingsKey) {
306
306
  const gearBtn = disposables.add(( new Button(header, {
307
- title: ( localize(5859, "Configure locations")),
308
- ariaLabel: ( localize(5860, "Configure locations")),
307
+ title: ( localize(5985, "Configure locations")),
308
+ ariaLabel: ( localize(5986, "Configure locations")),
309
309
  hoverDelegate: getDefaultHoverDelegate("mouse")
310
310
  })));
311
311
  gearBtn.icon = Codicon.settingsGear;
@@ -334,13 +334,13 @@ function renderCustomizationDiscoveryContent(
334
334
  const contentEl = append(sectionEl, $("div.chat-debug-source-folder-content"));
335
335
  contentEl.tabIndex = 0;
336
336
  contentEl.setAttribute("role", "region");
337
- contentEl.setAttribute("aria-label", ( localize(5861, "Source folders")));
337
+ contentEl.setAttribute("aria-label", ( localize(5987, "Source folders")));
338
338
  const capitalizedType = content.discoveryType.charAt(0).toUpperCase() + content.discoveryType.slice(1);
339
339
  const sourcesCaption = capitalizedType.endsWith("s") ? capitalizedType : capitalizedType + "s";
340
340
  append(
341
341
  contentEl,
342
342
  $("div.chat-debug-source-folder-note", undefined, ( localize(
343
- 5862,
343
+ 5988,
344
344
  "{0} were discovered by checking the following sources in order:",
345
345
  sourcesCaption
346
346
  )))
@@ -368,13 +368,13 @@ function renderCustomizationDiscoveryContent(
368
368
  function fileListToPlainText(content) {
369
369
  const lines = [];
370
370
  const capitalizedType = content.discoveryType.charAt(0).toUpperCase() + content.discoveryType.slice(1);
371
- lines.push(( localize(5863, "{0} Discovery Results", capitalizedType)));
372
- lines.push(( localize(5864, "Total files: {0}", content.files.length)));
371
+ lines.push(( localize(5989, "{0} Discovery Results", capitalizedType)));
372
+ lines.push(( localize(5990, "Total files: {0}", content.files.length)));
373
373
  lines.push("");
374
374
  const loaded = content.files.filter(f => f.status === "loaded");
375
375
  const skipped = content.files.filter(f => f.status === "skipped");
376
376
  if (loaded.length > 0) {
377
- lines.push(( localize(5865, "Loaded ({0})", loaded.length)));
377
+ lines.push(( localize(5991, "Loaded ({0})", loaded.length)));
378
378
  const groups = ( new Map());
379
379
  for (const f of loaded) {
380
380
  const parentDir = content.discoveryType === "skill" ? dirname(dirname(f.uri)) : dirname(f.uri);
@@ -396,10 +396,10 @@ function fileListToPlainText(content) {
396
396
  lines.push("");
397
397
  }
398
398
  if (skipped.length > 0) {
399
- lines.push(( localize(5866, "Skipped ({0})", skipped.length)));
399
+ lines.push(( localize(5992, "Skipped ({0})", skipped.length)));
400
400
  const skippedGroups = ( new Map());
401
401
  for (const f of skipped) {
402
- const key = f.skipReason ?? ( localize(5867, "unknown"));
402
+ const key = f.skipReason ?? ( localize(5993, "unknown"));
403
403
  let group = skippedGroups.get(key);
404
404
  if (!group) {
405
405
  group = [];
@@ -418,7 +418,7 @@ function fileListToPlainText(content) {
418
418
  parts.push(f.errorMessage);
419
419
  }
420
420
  if (f.duplicateOf) {
421
- parts.push(( localize(5868, "duplicate of {0}", f.duplicateOf.path)));
421
+ parts.push(( localize(5994, "duplicate of {0}", f.duplicateOf.path)));
422
422
  }
423
423
  detail += ` (${parts.join(", ")})`;
424
424
  }
@@ -428,7 +428,7 @@ function fileListToPlainText(content) {
428
428
  }
429
429
  if (content.sourceFolders && content.sourceFolders.length > 0) {
430
430
  lines.push("");
431
- lines.push(( localize(5869, "Sources ({0})", content.sourceFolders.length)));
431
+ lines.push(( localize(5995, "Sources ({0})", content.sourceFolders.length)));
432
432
  for (const folder of content.sourceFolders) {
433
433
  lines.push(` ${folder.uri.path}`);
434
434
  }
@@ -438,17 +438,17 @@ function fileListToPlainText(content) {
438
438
  function getCategorySectionTitle(category, count) {
439
439
  switch (category) {
440
440
  case "applying":
441
- return localize(5870, "Instructions ({0})", count);
441
+ return localize(5996, "Instructions ({0})", count);
442
442
  case "referenced":
443
- return localize(5871, "Referenced ({0})", count);
443
+ return localize(5997, "Referenced ({0})", count);
444
444
  case "skill":
445
- return localize(5872, "Skills ({0})", count);
445
+ return localize(5998, "Skills ({0})", count);
446
446
  case "custom-agent":
447
- return localize(5873, "Agents ({0})", count);
447
+ return localize(5999, "Agents ({0})", count);
448
448
  case "hook":
449
- return localize(5874, "Hooks ({0})", count);
449
+ return localize(6000, "Hooks ({0})", count);
450
450
  case "skipped":
451
- return localize(5875, "Skipped ({0})", count);
451
+ return localize(6001, "Skipped ({0})", count);
452
452
  }
453
453
  }
454
454
  function renderCustomizationSummaryContent(
@@ -464,11 +464,11 @@ function renderCustomizationSummaryContent(
464
464
  const container = $("div.chat-debug-customization-summary");
465
465
  container.tabIndex = 0;
466
466
  const mainSection = append(container, $("div.chat-debug-file-list"));
467
- append(mainSection, $("div.chat-debug-file-list-title", undefined, ( localize(5876, "Customization Resolution Results"))));
467
+ append(mainSection, $("div.chat-debug-file-list-title", undefined, ( localize(6002, "Customization Resolution Results"))));
468
468
  append(
469
469
  mainSection,
470
470
  $("div.chat-debug-file-list-summary", undefined, ( localize(
471
- 5877,
471
+ 6003,
472
472
  "{0} instructions, {1} skills, {2} agents, {3} hooks, {4} skipped in {5}ms",
473
473
  content.counts.instructions,
474
474
  content.counts.skills,
@@ -614,7 +614,7 @@ function renderCustomizationSummaryContent(
614
614
  if (content.resolutionLogs.length === 0) {
615
615
  append(
616
616
  mainSection,
617
- $("div.chat-debug-file-list-summary", undefined, ( localize(5878, "No resolution logs")))
617
+ $("div.chat-debug-file-list-summary", undefined, ( localize(6004, "No resolution logs")))
618
618
  );
619
619
  }
620
620
  return {
@@ -624,9 +624,9 @@ function renderCustomizationSummaryContent(
624
624
  }
625
625
  function customizationSummaryToPlainText(content) {
626
626
  const lines = [];
627
- lines.push(( localize(5879, "Customization Resolution Results")));
627
+ lines.push(( localize(6005, "Customization Resolution Results")));
628
628
  lines.push(( localize(
629
- 5880,
629
+ 6006,
630
630
  "{0} instructions, {1} skills, {2} agents, {3} hooks, {4} skipped in {5}ms",
631
631
  content.counts.instructions,
632
632
  content.counts.skills,
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Pure helpers used by the Cache Explorer to compare two model-turn requests
3
+ * (A and B) and identify where the prompt prefix diverges.
4
+ *
5
+ * The engine works on the {@link IChatDebugEventModelTurnContent.sections}
6
+ * "Input Messages" section, which is a JSON-stringified array of
7
+ * `[{ role, name?, parts: [{ type: 'text', content, name? }, ...] }]`
8
+ * matching the OpenTelemetry GenAI semantic convention used by
9
+ * `chatParticipantTelemetry.ts`.
10
+ *
11
+ * All functions are pure — no DOM, no services — so they can be unit tested
12
+ * in isolation.
13
+ */
14
+ /**
15
+ * A normalized request message used by the diff engine.
16
+ */
17
+ export interface INormalizedMessage {
18
+ readonly role: string;
19
+ readonly name?: string;
20
+ /** Concatenation of all `text` parts in the message. */
21
+ readonly text: string;
22
+ /** Character length of `text` as a UTF-16 code unit count (`text.length`). */
23
+ readonly charLength: number;
24
+ }
25
+ /** Classification of a single signature token when comparing A and B. */
26
+ export declare enum CacheDiffKind {
27
+ /** Same role+name and same charLength in both A and B. */
28
+ Identical = "identical",
29
+ /** Same role+name and same charLength but different content. */
30
+ ContentDrift = "contentDrift",
31
+ /** Same role+name but different charLength. */
32
+ LengthChange = "lengthChange",
33
+ /** Position exists only in A. */
34
+ OnlyInA = "onlyInA",
35
+ /** Position exists only in B. */
36
+ OnlyInB = "onlyInB"
37
+ }
38
+ /**
39
+ * A single token in the side-by-side prompt signature.
40
+ *
41
+ * The signature is computed by zipping A's and B's normalized messages
42
+ * positionally and classifying each index independently. The first
43
+ * divergence is what breaks the prompt cache, but later positions can
44
+ * still be reported as {@link CacheDiffKind.Identical} if their content
45
+ * happens to match \u2014 we surface per-position truth here and let the
46
+ * UI decide how to interpret it (the cache-break marker, summary copy,
47
+ * and "Where the cache broke" line all key off the *first* divergent
48
+ * index, not the last).
49
+ */
50
+ export interface ICacheSignatureToken {
51
+ readonly index: number;
52
+ readonly kind: CacheDiffKind;
53
+ readonly aRole?: string;
54
+ readonly aName?: string;
55
+ readonly aCharLength?: number;
56
+ readonly bRole?: string;
57
+ readonly bName?: string;
58
+ readonly bCharLength?: number;
59
+ }
60
+ /**
61
+ * The first place where A and B's prompt prefix diverges. Anything after
62
+ * this index cannot be served from the prompt cache.
63
+ */
64
+ export interface ICacheBreak {
65
+ readonly index: number;
66
+ readonly kind: Exclude<CacheDiffKind, CacheDiffKind.Identical>;
67
+ }
68
+ /**
69
+ * A single drifting component (e.g. a message at index N).
70
+ */
71
+ export interface IComponentDrift {
72
+ readonly name: string;
73
+ readonly role?: string;
74
+ readonly status: CacheDiffKind;
75
+ readonly aSize: number;
76
+ readonly bSize: number;
77
+ }
78
+ /**
79
+ * Aggregate result of comparing two requests.
80
+ */
81
+ export interface ICacheDiffResult {
82
+ readonly signature: readonly ICacheSignatureToken[];
83
+ readonly break: ICacheBreak | undefined;
84
+ readonly drift: readonly IComponentDrift[];
85
+ /**
86
+ * Counts of identical / drift / one-sided positions across the whole
87
+ * signature. Useful for the summary pills.
88
+ */
89
+ readonly counts: {
90
+ readonly identical: number;
91
+ readonly contentDrift: number;
92
+ readonly lengthChange: number;
93
+ readonly onlyInA: number;
94
+ readonly onlyInB: number;
95
+ };
96
+ }
97
+ /**
98
+ * Parse a JSON-encoded `inputMessages` payload into normalized messages.
99
+ *
100
+ * Returns an empty array on any parse error so callers can render a clear
101
+ * empty-state without try/catch boilerplate.
102
+ */
103
+ export declare function parseInputMessages(inputMessagesJson: string | undefined): readonly INormalizedMessage[];
104
+ /**
105
+ * Compute the per-position diff between two normalized message arrays.
106
+ *
107
+ * The algorithm is intentionally simple (positional zip) rather than a full
108
+ * Myers diff: prompt caches are prefix-based, so the moment two messages at
109
+ * the same index diverge in role, length, or content the cache breaks.
110
+ * Reporting that first divergence is far more useful than computing a
111
+ * minimum edit script.
112
+ */
113
+ export declare function diffPromptSignature(a: readonly INormalizedMessage[], b: readonly INormalizedMessage[]): ICacheDiffResult;
114
+ /**
115
+ * Add a "system" drift entry to the report when the system instructions
116
+ * differ between the two requests. Inserted at the canonical
117
+ * {@link PREFIX_COMPONENT_ORDER} position regardless of what's already in
118
+ * the drift list.
119
+ */
120
+ export declare function appendSystemDrift(drift: IComponentDrift[], aSystem: string | undefined, bSystem: string | undefined): IComponentDrift[];
121
+ /**
122
+ * Add a "tools" drift entry to the report when the tool definitions catalog
123
+ * differs between the two requests. The catalog is part of the cache key on
124
+ * every model provider, so a change here \u2014 even a pure reorder \u2014 can break
125
+ * the prompt cache. We intentionally do not normalize (sort, hash, parse)
126
+ * the JSON: providers vary in how they hash the catalog, so the safest
127
+ * stance is to surface any byte-level change and let the user judge.
128
+ *
129
+ * Inserted at the canonical {@link PREFIX_COMPONENT_ORDER} position so the
130
+ * order is always `[system, tools, ...messages]` regardless of call order
131
+ * relative to {@link appendSystemDrift}.
132
+ */
133
+ export declare function appendToolsDrift(drift: IComponentDrift[], aTools: string | undefined, bTools: string | undefined): IComponentDrift[];
134
+ /**
135
+ * Format a normalized message into a single-line `role[-name]:bytes` token,
136
+ * matching the convention used by the existing `promptTypes` telemetry.
137
+ */
138
+ export declare function formatSignatureToken(token: ICacheSignatureToken): string;
@@ -0,0 +1,221 @@
1
+
2
+
3
+ var CacheDiffKind;
4
+ (function (CacheDiffKind) {
5
+ CacheDiffKind["Identical"] = "identical";
6
+ CacheDiffKind["ContentDrift"] = "contentDrift";
7
+ CacheDiffKind["LengthChange"] = "lengthChange";
8
+ CacheDiffKind["OnlyInA"] = "onlyInA";
9
+ CacheDiffKind["OnlyInB"] = "onlyInB";
10
+ })(CacheDiffKind || (CacheDiffKind = {}));
11
+ function parseInputMessages(inputMessagesJson) {
12
+ if (!inputMessagesJson) {
13
+ return [];
14
+ }
15
+ let raw;
16
+ try {
17
+ raw = JSON.parse(inputMessagesJson);
18
+ }
19
+ catch {
20
+ return [];
21
+ }
22
+ if (!Array.isArray(raw)) {
23
+ return [];
24
+ }
25
+ const out = [];
26
+ for (const m of raw) {
27
+ if (!m || typeof m !== 'object') {
28
+ continue;
29
+ }
30
+ let role = typeof m.role === 'string' ? m.role : 'unknown';
31
+ const name = typeof m.name === 'string' ? m.name : undefined;
32
+ let text = '';
33
+ let hasToolResponse = false;
34
+ let hasToolCall = false;
35
+ let hasToolSearchOutput = false;
36
+ let hasText = false;
37
+ if (Array.isArray(m.parts)) {
38
+ for (const p of m.parts) {
39
+ if (!p || typeof p !== 'object') {
40
+ continue;
41
+ }
42
+ switch (p.type) {
43
+ case undefined:
44
+ case 'text':
45
+ case 'reasoning':
46
+ if (typeof p.content === 'string') {
47
+ text += p.content;
48
+ hasText = true;
49
+ }
50
+ break;
51
+ case 'tool_call_response':
52
+ case 'tool_result':
53
+ if (typeof p.response === 'string') {
54
+ text += p.response;
55
+ }
56
+ else if (p.response !== undefined) {
57
+ text += stableStringify(p.response);
58
+ }
59
+ else if (typeof p.content === 'string') {
60
+ text += p.content;
61
+ }
62
+ else if (p.content !== undefined) {
63
+ text += stableStringify(p.content);
64
+ }
65
+ hasToolResponse = true;
66
+ break;
67
+ case 'tool_call':
68
+ if (p.name) {
69
+ text += `call:${p.name}`;
70
+ }
71
+ if (p.arguments !== undefined) {
72
+ text += stableStringify(p.arguments);
73
+ }
74
+ hasToolCall = true;
75
+ break;
76
+ case 'tool_search_output':
77
+ text += stableStringify({
78
+ id: p.id,
79
+ status: p.status,
80
+ tools: p.tools,
81
+ });
82
+ hasToolSearchOutput = true;
83
+ break;
84
+ }
85
+ }
86
+ }
87
+ if (hasToolSearchOutput && !hasText) {
88
+ role = 'tool_search';
89
+ }
90
+ else if (hasToolResponse && !hasText) {
91
+ role = 'tool';
92
+ }
93
+ else if (hasToolCall && !hasText && role === 'assistant') {
94
+ role = 'assistant';
95
+ }
96
+ if (text.length === 0 && role === 'unknown') {
97
+ text = stableStringify(m);
98
+ }
99
+ out.push({ role, name, text, charLength: text.length });
100
+ }
101
+ return out;
102
+ }
103
+ function stableStringify(value) {
104
+ try {
105
+ return JSON.stringify(value);
106
+ }
107
+ catch {
108
+ return String(value);
109
+ }
110
+ }
111
+ function messagesEqual(a, b) {
112
+ return a.role === b.role && a.name === b.name && a.charLength === b.charLength && a.text === b.text;
113
+ }
114
+ function diffPromptSignature(a, b) {
115
+ const signature = [];
116
+ const drift = [];
117
+ const counts = { identical: 0, contentDrift: 0, lengthChange: 0, onlyInA: 0, onlyInB: 0 };
118
+ let breakResult;
119
+ let broken = false;
120
+ const max = Math.max(a.length, b.length);
121
+ for (let i = 0; i < max; i++) {
122
+ const ai = a[i];
123
+ const bi = b[i];
124
+ if (ai && !bi) {
125
+ counts.onlyInA++;
126
+ signature.push({ index: i, kind: CacheDiffKind.OnlyInA, aRole: ai.role, aName: ai.name, aCharLength: ai.charLength });
127
+ drift.push({ name: `messages[${i}]`, role: ai.role, status: CacheDiffKind.OnlyInA, aSize: ai.charLength, bSize: 0 });
128
+ if (!broken) {
129
+ broken = true;
130
+ breakResult = { index: i, kind: CacheDiffKind.OnlyInA };
131
+ }
132
+ continue;
133
+ }
134
+ if (bi && !ai) {
135
+ counts.onlyInB++;
136
+ signature.push({ index: i, kind: CacheDiffKind.OnlyInB, bRole: bi.role, bName: bi.name, bCharLength: bi.charLength });
137
+ drift.push({ name: `messages[${i}]`, role: bi.role, status: CacheDiffKind.OnlyInB, aSize: 0, bSize: bi.charLength });
138
+ if (!broken) {
139
+ broken = true;
140
+ breakResult = { index: i, kind: CacheDiffKind.OnlyInB };
141
+ }
142
+ continue;
143
+ }
144
+ if (!ai || !bi) {
145
+ continue;
146
+ }
147
+ if (messagesEqual(ai, bi)) {
148
+ counts.identical++;
149
+ signature.push({
150
+ index: i, kind: CacheDiffKind.Identical,
151
+ aRole: ai.role, aName: ai.name, aCharLength: ai.charLength,
152
+ bRole: bi.role, bName: bi.name, bCharLength: bi.charLength,
153
+ });
154
+ continue;
155
+ }
156
+ const kind = ai.charLength === bi.charLength ? CacheDiffKind.ContentDrift : CacheDiffKind.LengthChange;
157
+ if (kind === CacheDiffKind.ContentDrift) {
158
+ counts.contentDrift++;
159
+ }
160
+ else {
161
+ counts.lengthChange++;
162
+ }
163
+ signature.push({
164
+ index: i, kind,
165
+ aRole: ai.role, aName: ai.name, aCharLength: ai.charLength,
166
+ bRole: bi.role, bName: bi.name, bCharLength: bi.charLength,
167
+ });
168
+ drift.push({ name: `messages[${i}]`, role: ai.role, status: kind, aSize: ai.charLength, bSize: bi.charLength });
169
+ if (!broken) {
170
+ broken = true;
171
+ breakResult = { index: i, kind };
172
+ }
173
+ }
174
+ return { signature, break: breakResult, drift, counts };
175
+ }
176
+ const PREFIX_COMPONENT_ORDER = ['system', 'tools'];
177
+ function insertPrefixComponent(drift, entry) {
178
+ const prefixEntries = [];
179
+ const rest = [];
180
+ for (const d of drift) {
181
+ if (PREFIX_COMPONENT_ORDER.includes(d.name)) {
182
+ if (d.name !== entry.name) {
183
+ prefixEntries.push(d);
184
+ }
185
+ }
186
+ else {
187
+ rest.push(d);
188
+ }
189
+ }
190
+ prefixEntries.push(entry);
191
+ prefixEntries.sort((a, b) => PREFIX_COMPONENT_ORDER.indexOf(a.name) - PREFIX_COMPONENT_ORDER.indexOf(b.name));
192
+ return [...prefixEntries, ...rest];
193
+ }
194
+ function classifyStringDrift(a, b) {
195
+ if (a === b) {
196
+ return undefined;
197
+ }
198
+ if (!a) {
199
+ return CacheDiffKind.OnlyInB;
200
+ }
201
+ if (!b) {
202
+ return CacheDiffKind.OnlyInA;
203
+ }
204
+ return a.length === b.length ? CacheDiffKind.ContentDrift : CacheDiffKind.LengthChange;
205
+ }
206
+ function appendSystemDrift(drift, aSystem, bSystem) {
207
+ const status = classifyStringDrift(aSystem, bSystem);
208
+ if (status === undefined) {
209
+ return drift;
210
+ }
211
+ return insertPrefixComponent(drift, { name: 'system', status, aSize: aSystem?.length ?? 0, bSize: bSystem?.length ?? 0 });
212
+ }
213
+ function appendToolsDrift(drift, aTools, bTools) {
214
+ const status = classifyStringDrift(aTools, bTools);
215
+ if (status === undefined) {
216
+ return drift;
217
+ }
218
+ return insertPrefixComponent(drift, { name: 'tools', status, aSize: aTools?.length ?? 0, bSize: bTools?.length ?? 0 });
219
+ }
220
+
221
+ export { CacheDiffKind, appendSystemDrift, appendToolsDrift, diffPromptSignature, parseInputMessages };
@@ -0,0 +1,84 @@
1
+ import { Disposable } 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 { IChatDebugService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatDebugService.service";
4
+ import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
5
+ /**
6
+ * Navigation events fired by the Cache Explorer breadcrumb.
7
+ */
8
+ export declare enum CacheExplorerNavigation {
9
+ Home = "home",
10
+ Overview = "overview"
11
+ }
12
+ /**
13
+ * Cache Explorer view — the third entry under "Explore Trace Data". Shows a
14
+ * left rail of model turns with their cache hit %, plus a side-by-side prompt
15
+ * signature diff that pinpoints where the prefix breaks.
16
+ *
17
+ * v1 reads {@link IChatDebugEventModelTurnContent} from the in-memory chat
18
+ * debug service via {@link IChatDebugService.resolveEvent}. Content may be
19
+ * truncated by the OTel attribute cap; the file-logger backed full-fidelity
20
+ * provider is a follow-up.
21
+ */
22
+ export declare class ChatDebugCacheExplorerView extends Disposable {
23
+ private readonly chatService;
24
+ private readonly chatDebugService;
25
+ private readonly _onNavigate;
26
+ readonly onNavigate: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<CacheExplorerNavigation>;
27
+ readonly container: HTMLElement;
28
+ private readonly breadcrumbWidget;
29
+ private readonly rail;
30
+ private readonly railList;
31
+ private readonly content;
32
+ private readonly sash;
33
+ private railWidth;
34
+ private readonly loadDisposables;
35
+ private readonly refreshScheduler;
36
+ private currentSessionResource;
37
+ private modelTurns;
38
+ /** Selected turn (B side). A is computed as `selectedIndex - 1`. -1 = no explicit selection yet. */
39
+ private selectedIndex;
40
+ /**
41
+ * Monotonically-increasing render token. Each call to {@link render}
42
+ * captures the current value, then re-checks it after each await; if a
43
+ * newer render has started in the meantime, the older one bails out
44
+ * before mutating the DOM. Avoids races where a slow model-turn
45
+ * resolve from one session writes into another's panel.
46
+ */
47
+ private renderToken;
48
+ /** Cache of resolved model-turn content keyed by event id. */
49
+ private readonly resolvedCache;
50
+ /** Components currently expanded (by component name). */
51
+ private readonly openComponents;
52
+ /** Rail groups currently collapsed (by group key — the parent event id). */
53
+ private readonly collapsedGroups;
54
+ constructor(parent: HTMLElement, chatService: IChatService, chatDebugService: IChatDebugService);
55
+ setSession(sessionResource: URI): void;
56
+ show(): void;
57
+ hide(): void;
58
+ refresh(): void;
59
+ updateBreadcrumb(): void;
60
+ private render;
61
+ private resolveSide;
62
+ private renderRail;
63
+ private renderTitleRow;
64
+ private renderSummary;
65
+ private renderSideCard;
66
+ /**
67
+ * Render the summary cards alone when there is no prior turn to diff
68
+ * against (e.g. the first request in a brand-new session). The OTel-
69
+ * reported cache hit is still useful here — the system prompt and tool
70
+ * definitions can already be cached from previous sessions.
71
+ */
72
+ private renderSingleSummary;
73
+ private appendKv;
74
+ private renderSignature;
75
+ /**
76
+ * Render the per-key request-options table. Shows every cache-keying
77
+ * option captured from the model provider request body, with a column
78
+ * for the previous turn and one for the current turn. Rows whose
79
+ * values differ are highlighted.
80
+ */
81
+ private renderRequestOptions;
82
+ private renderComponents;
83
+ private renderComponentDiff;
84
+ }