@codingame/monaco-vscode-chat-service-override 25.1.2 → 26.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 (334) hide show
  1. package/index.js +24 -3
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +23 -3
  4. package/vscode/src/vs/platform/browserElements/common/browserElements.js +13 -6
  5. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +4 -4
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +42 -27
  8. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +14 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +218 -74
  10. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.js +6 -8
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -9
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +165 -168
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +27 -25
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +141 -140
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +189 -121
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +14 -15
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +60 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +435 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +28 -12
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +10 -12
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +37 -16
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.d.ts +11 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +54 -24
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +73 -34
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +71 -30
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +151 -89
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +12 -15
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +39 -40
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +90 -125
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +5 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +263 -143
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +4 -4
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +188 -126
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +37 -28
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +21 -9
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +392 -226
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +31 -27
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +25 -23
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +1 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.d.ts +2 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +13 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +20 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +83 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +68 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +319 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.d.ts +1 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +215 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +179 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +951 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agentsessionprojection.css +20 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +388 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/unifiedQuickAccess.css +195 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +120 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +394 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.d.ts +38 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +95 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +31 -29
  61. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +49 -47
  62. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +4 -6
  63. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +188 -151
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +1012 -639
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +256 -151
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +8 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +182 -101
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +79 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +193 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +9 -7
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.d.ts +68 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +253 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +69 -50
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +52 -33
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +5 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +274 -155
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +2 -10
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +130 -104
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +12 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +385 -160
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +53 -36
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +112 -75
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +19 -10
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +31 -11
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +39 -17
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.js +10 -14
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +0 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +25 -16
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +265 -203
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +29 -26
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.js +114 -60
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +16 -19
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +44 -30
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +119 -45
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +152 -136
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +12 -8
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +51 -31
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +323 -217
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +653 -401
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +52 -40
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +5 -2
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +43 -28
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +182 -136
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +33 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +548 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +222 -138
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +3 -3
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +151 -113
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +6 -4
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +453 -217
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +162 -88
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/media/chatSetup.css +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +0 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -13
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +309 -233
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +55 -53
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.js +3 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +37 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +109 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +35 -23
  132. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.d.ts +9 -4
  133. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +73 -33
  134. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +47 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +333 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +39 -25
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +9 -5
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +23 -20
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +20 -16
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +65 -57
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +48 -36
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +20 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +52 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +155 -159
  147. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +24 -14
  148. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +521 -246
  149. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +107 -76
  150. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +28 -24
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.js +10 -6
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.d.ts +16 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.js +57 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatLayoutService.js +4 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +56 -44
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -3
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +37 -47
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatEditorInputContentProvider.js +5 -7
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +10 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +1284 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +179 -125
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +9 -11
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/editorHoverWrapper.js +7 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +96 -78
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +58 -53
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +25 -11
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +484 -292
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.d.ts +1 -6
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +65 -92
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +16 -19
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +1 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +9 -1
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +331 -189
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +81 -93
  175. package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.js +1 -3
  176. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -3
  177. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +6 -7
  178. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +36 -8
  179. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +169 -31
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.d.ts +6 -0
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +141 -0
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -4
  183. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +218 -144
  184. package/vscode/src/vs/workbench/contrib/chat/common/model/chatTransferService.js +20 -10
  185. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +109 -0
  186. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +349 -0
  187. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +9 -8
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +9 -0
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +139 -36
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +3 -6
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +64 -51
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +49 -34
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +21 -13
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +125 -97
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +91 -131
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +8 -5
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +488 -222
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +32 -12
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +58 -13
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +717 -200
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +79 -18
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +371 -130
  205. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +0 -1
  206. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +3 -7
  207. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +79 -61
  208. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +27 -21
  209. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +7 -10
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +26 -32
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +2 -2
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -60
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +115 -426
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +15 -0
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +127 -0
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -37
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +16 -0
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +21 -0
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +51 -0
  221. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +334 -0
  222. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +41 -0
  223. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +424 -0
  224. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +4 -0
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +58 -0
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.d.ts +7 -0
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +195 -0
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.d.ts +8 -0
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +368 -0
  230. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.d.ts +2 -0
  231. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +7 -0
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +23 -25
  235. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/common/remoteCodingAgentsService.js +7 -8
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +34 -38
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +8 -12
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +103 -95
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +28 -16
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +4 -5
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +12 -8
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +65 -54
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +86 -60
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +13 -26
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -1
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +56 -46
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +2 -2
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +63 -31
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +2 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +35 -30
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -1
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +44 -37
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +3 -4
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +3 -3
  258. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -0
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +70 -50
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +26 -394
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +85 -49
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +68 -27
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +1 -0
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +67 -45
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +12 -0
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +106 -0
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +2 -2
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +177 -97
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +136 -49
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +2 -1
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +128 -112
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +51 -49
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +8 -0
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +25 -0
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +12 -0
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +21 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +5 -14
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +2 -4
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +1 -0
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +29 -0
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +30 -31
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -17
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +19 -20
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.d.ts +11 -0
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +58 -0
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +31 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +325 -199
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +1 -1
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +33 -38
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +45 -5
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +746 -456
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +145 -98
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +88 -37
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +120 -51
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +25 -28
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +5 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +58 -12
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +12 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +17 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +8 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +47 -28
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +37 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +171 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +0 -58
  314. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +0 -213
  315. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +0 -39
  316. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +0 -243
  317. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +0 -7
  318. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +0 -41
  319. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +0 -166
  320. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +0 -607
  321. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +0 -255
  322. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  323. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -396
  324. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -9
  325. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -379
  326. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -117
  327. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +0 -141
  328. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +0 -961
  329. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +0 -36
  330. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +0 -447
  331. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +0 -6
  332. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.js +0 -251
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.d.ts +0 -10
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -42
@@ -0,0 +1,548 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import { relativePath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
5
+ import { linesDiffComputers } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/diff/linesDiffComputers';
6
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
7
+ import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
8
+ import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
9
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
10
+ import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
11
+ import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
12
+ import { ISCMService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/common/scm.service';
13
+ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
14
+ import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
15
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
16
+
17
+ const MAX_CHANGES = 100;
18
+ const MAX_DIFFS_SIZE_BYTES = 900 * 1024;
19
+ const MAX_SESSIONS_WITH_FULL_DIFFS = 5;
20
+ const RemoteMatcher = /^\s*url\s*=\s*(.+\S)\s*$/mg;
21
+ function getRawRemotes(text) {
22
+ const remotes = [];
23
+ let match;
24
+ while (match = RemoteMatcher.exec(text)) {
25
+ remotes.push(match[1]);
26
+ }
27
+ return remotes;
28
+ }
29
+ function getRemoteHost(remoteUrl) {
30
+ try {
31
+ const url = ( new URL(remoteUrl));
32
+ return url.hostname.toLowerCase();
33
+ } catch {
34
+ const atIndex = remoteUrl.lastIndexOf("@");
35
+ const hostAndPath = atIndex !== -1 ? remoteUrl.slice(atIndex + 1) : remoteUrl;
36
+ const colonIndex = hostAndPath.indexOf(":");
37
+ if (colonIndex !== -1) {
38
+ const host = hostAndPath.slice(0, colonIndex);
39
+ return host ? host.toLowerCase() : undefined;
40
+ }
41
+ const slashIndex = hostAndPath.indexOf("/");
42
+ if (slashIndex !== -1) {
43
+ const host = hostAndPath.slice(0, slashIndex);
44
+ return host ? host.toLowerCase() : undefined;
45
+ }
46
+ return undefined;
47
+ }
48
+ }
49
+ function determineChangeType(resource, groupId) {
50
+ const contextValue = resource.contextValue?.toLowerCase() ?? "";
51
+ const groupIdLower = groupId.toLowerCase();
52
+ if (contextValue.includes("untracked") || contextValue.includes("add")) {
53
+ return "added";
54
+ }
55
+ if (contextValue.includes("delete")) {
56
+ return "deleted";
57
+ }
58
+ if (contextValue.includes("rename")) {
59
+ return "renamed";
60
+ }
61
+ if (groupIdLower.includes("untracked")) {
62
+ return "added";
63
+ }
64
+ if (resource.decorations.strikeThrough) {
65
+ return "deleted";
66
+ }
67
+ if (!resource.multiDiffEditorOriginalUri) {
68
+ return "added";
69
+ }
70
+ return "modified";
71
+ }
72
+ async function generateUnifiedDiff(fileService, relPath, originalUri, modifiedUri, changeType) {
73
+ try {
74
+ let originalContent = "";
75
+ let modifiedContent = "";
76
+ if (originalUri && changeType !== "added") {
77
+ try {
78
+ const originalFile = await fileService.readFile(originalUri);
79
+ originalContent = ( originalFile.value.toString());
80
+ } catch {
81
+ if (changeType === "modified") {
82
+ return undefined;
83
+ }
84
+ }
85
+ }
86
+ if (changeType !== "deleted") {
87
+ try {
88
+ const modifiedFile = await fileService.readFile(modifiedUri);
89
+ modifiedContent = ( modifiedFile.value.toString());
90
+ } catch {
91
+ return undefined;
92
+ }
93
+ }
94
+ const originalLines = originalContent.split("\n");
95
+ const modifiedLines = modifiedContent.split("\n");
96
+ const originalEndsWithNewline = originalContent.length > 0 && originalContent.endsWith("\n");
97
+ const modifiedEndsWithNewline = modifiedContent.length > 0 && modifiedContent.endsWith("\n");
98
+ if (originalEndsWithNewline && originalLines.length > 0 && originalLines[originalLines.length - 1] === "") {
99
+ originalLines.pop();
100
+ }
101
+ if (modifiedEndsWithNewline && modifiedLines.length > 0 && modifiedLines[modifiedLines.length - 1] === "") {
102
+ modifiedLines.pop();
103
+ }
104
+ const diffLines = [];
105
+ const aPath = changeType === "added" ? "/dev/null" : `a/${relPath}`;
106
+ const bPath = changeType === "deleted" ? "/dev/null" : `b/${relPath}`;
107
+ diffLines.push(`--- ${aPath}`);
108
+ diffLines.push(`+++ ${bPath}`);
109
+ if (changeType === "added") {
110
+ if (modifiedLines.length > 0) {
111
+ diffLines.push(`@@ -0,0 +1,${modifiedLines.length} @@`);
112
+ for (const line of modifiedLines) {
113
+ diffLines.push(`+${line}`);
114
+ }
115
+ if (!modifiedEndsWithNewline) {
116
+ diffLines.push("\");
117
+ }
118
+ }
119
+ } else if (changeType === "deleted") {
120
+ if (originalLines.length > 0) {
121
+ diffLines.push(`@@ -1,${originalLines.length} +0,0 @@`);
122
+ for (const line of originalLines) {
123
+ diffLines.push(`-${line}`);
124
+ }
125
+ if (!originalEndsWithNewline) {
126
+ diffLines.push("\");
127
+ }
128
+ }
129
+ } else {
130
+ const hunks = computeDiffHunks(
131
+ originalLines,
132
+ modifiedLines,
133
+ originalEndsWithNewline,
134
+ modifiedEndsWithNewline
135
+ );
136
+ for (const hunk of hunks) {
137
+ diffLines.push(hunk);
138
+ }
139
+ }
140
+ return diffLines.join("\n");
141
+ } catch {
142
+ return undefined;
143
+ }
144
+ }
145
+ function computeDiffHunks(
146
+ originalLines,
147
+ modifiedLines,
148
+ originalEndsWithNewline,
149
+ modifiedEndsWithNewline
150
+ ) {
151
+ const contextSize = 3;
152
+ const result = [];
153
+ const diffComputer = linesDiffComputers.getDefault();
154
+ const diffResult = diffComputer.computeDiff(originalLines, modifiedLines, {
155
+ ignoreTrimWhitespace: false,
156
+ maxComputationTimeMs: 1000,
157
+ computeMoves: false
158
+ });
159
+ if (diffResult.changes.length === 0) {
160
+ return result;
161
+ }
162
+ const hunkGroups = [];
163
+ let currentGroup = [];
164
+ for (const change of diffResult.changes) {
165
+ if (currentGroup.length === 0) {
166
+ currentGroup.push(change);
167
+ } else {
168
+ const lastChange = currentGroup[currentGroup.length - 1];
169
+ const lastContextEnd = lastChange.original.endLineNumberExclusive - 1 + contextSize;
170
+ const currentContextStart = change.original.startLineNumber - contextSize;
171
+ if (currentContextStart <= lastContextEnd + 1) {
172
+ currentGroup.push(change);
173
+ } else {
174
+ hunkGroups.push(currentGroup);
175
+ currentGroup = [change];
176
+ }
177
+ }
178
+ }
179
+ if (currentGroup.length > 0) {
180
+ hunkGroups.push(currentGroup);
181
+ }
182
+ for (const group of hunkGroups) {
183
+ const firstChange = group[0];
184
+ const lastChange = group[group.length - 1];
185
+ const hunkOrigStart = Math.max(1, firstChange.original.startLineNumber - contextSize);
186
+ const hunkOrigEnd = Math.min(
187
+ originalLines.length,
188
+ lastChange.original.endLineNumberExclusive - 1 + contextSize
189
+ );
190
+ const hunkModStart = Math.max(1, firstChange.modified.startLineNumber - contextSize);
191
+ const hunkLines = [];
192
+ let lastOriginalLineIndex = -1;
193
+ let lastModifiedLineIndex = -1;
194
+ let origLineNum = hunkOrigStart;
195
+ let origCount = 0;
196
+ let modCount = 0;
197
+ for (const change of group) {
198
+ const origStart = change.original.startLineNumber;
199
+ const origEnd = change.original.endLineNumberExclusive;
200
+ const modStart = change.modified.startLineNumber;
201
+ const modEnd = change.modified.endLineNumberExclusive;
202
+ while (origLineNum < origStart) {
203
+ const idx = hunkLines.length;
204
+ hunkLines.push(` ${originalLines[origLineNum - 1]}`);
205
+ if (origLineNum === originalLines.length) {
206
+ lastOriginalLineIndex = idx;
207
+ }
208
+ const modLineNum = hunkModStart + modCount;
209
+ if (modLineNum === modifiedLines.length) {
210
+ lastModifiedLineIndex = idx;
211
+ }
212
+ origLineNum++;
213
+ origCount++;
214
+ modCount++;
215
+ }
216
+ for (let i = origStart; i < origEnd; i++) {
217
+ const idx = hunkLines.length;
218
+ hunkLines.push(`-${originalLines[i - 1]}`);
219
+ if (i === originalLines.length) {
220
+ lastOriginalLineIndex = idx;
221
+ }
222
+ origLineNum++;
223
+ origCount++;
224
+ }
225
+ for (let i = modStart; i < modEnd; i++) {
226
+ const idx = hunkLines.length;
227
+ hunkLines.push(`+${modifiedLines[i - 1]}`);
228
+ if (i === modifiedLines.length) {
229
+ lastModifiedLineIndex = idx;
230
+ }
231
+ modCount++;
232
+ }
233
+ }
234
+ while (origLineNum <= hunkOrigEnd) {
235
+ const idx = hunkLines.length;
236
+ hunkLines.push(` ${originalLines[origLineNum - 1]}`);
237
+ if (origLineNum === originalLines.length) {
238
+ lastOriginalLineIndex = idx;
239
+ }
240
+ const modLineNum = hunkModStart + modCount;
241
+ if (modLineNum === modifiedLines.length) {
242
+ lastModifiedLineIndex = idx;
243
+ }
244
+ origLineNum++;
245
+ origCount++;
246
+ modCount++;
247
+ }
248
+ result.push(`@@ -${hunkOrigStart},${origCount} +${hunkModStart},${modCount} @@`);
249
+ for (let i = 0; i < hunkLines.length; i++) {
250
+ result.push(hunkLines[i]);
251
+ const isLastOriginal = i === lastOriginalLineIndex;
252
+ const isLastModified = i === lastModifiedLineIndex;
253
+ if (isLastOriginal && isLastModified) {
254
+ if (!originalEndsWithNewline || !modifiedEndsWithNewline) {
255
+ result.push("\");
256
+ }
257
+ } else if (isLastOriginal && !originalEndsWithNewline) {
258
+ result.push("\");
259
+ } else if (isLastModified && !modifiedEndsWithNewline) {
260
+ result.push("\");
261
+ }
262
+ }
263
+ }
264
+ return result;
265
+ }
266
+ async function captureRepoInfo(scmService, fileService) {
267
+ const repositories = [...scmService.repositories];
268
+ if (repositories.length === 0) {
269
+ return undefined;
270
+ }
271
+ const repository = repositories[0];
272
+ const rootUri = repository.provider.rootUri;
273
+ if (!rootUri) {
274
+ return undefined;
275
+ }
276
+ let hasGit = false;
277
+ try {
278
+ const gitDirUri = rootUri.with({
279
+ path: `${rootUri.path}/.git`
280
+ });
281
+ hasGit = await fileService.exists(gitDirUri);
282
+ } catch {}
283
+ if (!hasGit) {
284
+ return {
285
+ workspaceType: "plain-folder",
286
+ syncStatus: "no-git",
287
+ diffs: undefined
288
+ };
289
+ }
290
+ let remoteUrl;
291
+ try {
292
+ const gitConfigUri = rootUri.with({
293
+ path: `${rootUri.path}/.git/config`
294
+ });
295
+ const exists = await fileService.exists(gitConfigUri);
296
+ if (exists) {
297
+ const content = await fileService.readFile(gitConfigUri);
298
+ const remotes = getRawRemotes(( content.value.toString()));
299
+ remoteUrl = remotes[0];
300
+ }
301
+ } catch {}
302
+ let localBranch;
303
+ let localHeadCommit;
304
+ let remoteTrackingBranch;
305
+ let remoteHeadCommit;
306
+ let remoteBaseBranch;
307
+ const historyProvider = repository.provider.historyProvider?.get();
308
+ if (historyProvider) {
309
+ const historyItemRef = historyProvider.historyItemRef.get();
310
+ localBranch = historyItemRef?.name;
311
+ localHeadCommit = historyItemRef?.revision;
312
+ const historyItemRemoteRef = historyProvider.historyItemRemoteRef.get();
313
+ if (historyItemRemoteRef) {
314
+ remoteTrackingBranch = historyItemRemoteRef.name;
315
+ remoteHeadCommit = historyItemRemoteRef.revision;
316
+ }
317
+ const historyItemBaseRef = historyProvider.historyItemBaseRef.get();
318
+ if (historyItemBaseRef) {
319
+ remoteBaseBranch = historyItemBaseRef.name;
320
+ }
321
+ }
322
+ let workspaceType;
323
+ let syncStatus;
324
+ if (!remoteUrl) {
325
+ workspaceType = "local-git";
326
+ syncStatus = "local-only";
327
+ } else {
328
+ workspaceType = "remote-git";
329
+ if (!remoteTrackingBranch) {
330
+ syncStatus = "unpublished";
331
+ } else if (localHeadCommit === remoteHeadCommit) {
332
+ syncStatus = "synced";
333
+ } else {
334
+ syncStatus = "unpushed";
335
+ }
336
+ }
337
+ let remoteVendor;
338
+ if (remoteUrl) {
339
+ const host = getRemoteHost(remoteUrl);
340
+ if (host === "github.com") {
341
+ remoteVendor = "github";
342
+ } else if (host === "dev.azure.com" || (host && host.endsWith(".visualstudio.com"))) {
343
+ remoteVendor = "ado";
344
+ } else {
345
+ remoteVendor = "other";
346
+ }
347
+ }
348
+ let totalChangeCount = 0;
349
+ for (const group of repository.provider.groups) {
350
+ totalChangeCount += group.resources.length;
351
+ }
352
+ const baseRepoData = {
353
+ workspaceType,
354
+ syncStatus,
355
+ remoteUrl,
356
+ remoteVendor,
357
+ localBranch,
358
+ remoteTrackingBranch,
359
+ remoteBaseBranch,
360
+ localHeadCommit,
361
+ remoteHeadCommit
362
+ };
363
+ if (totalChangeCount === 0) {
364
+ return {
365
+ ...baseRepoData,
366
+ diffs: undefined,
367
+ diffsStatus: "noChanges",
368
+ changedFileCount: 0
369
+ };
370
+ }
371
+ if (totalChangeCount > MAX_CHANGES) {
372
+ return {
373
+ ...baseRepoData,
374
+ diffs: undefined,
375
+ diffsStatus: "tooManyChanges",
376
+ changedFileCount: totalChangeCount
377
+ };
378
+ }
379
+ const diffs = [];
380
+ const diffPromises = [];
381
+ for (const group of repository.provider.groups) {
382
+ for (const resource of group.resources) {
383
+ const relPath = relativePath(rootUri, resource.sourceUri) ?? resource.sourceUri.path;
384
+ const changeType = determineChangeType(resource, group.id);
385
+ const diffPromise = (async () => {
386
+ const unifiedDiff = await generateUnifiedDiff(
387
+ fileService,
388
+ relPath,
389
+ resource.multiDiffEditorOriginalUri,
390
+ resource.sourceUri,
391
+ changeType
392
+ );
393
+ return {
394
+ relativePath: relPath,
395
+ changeType,
396
+ status: group.label || group.id,
397
+ unifiedDiff
398
+ };
399
+ })();
400
+ diffPromises.push(diffPromise);
401
+ }
402
+ }
403
+ const generatedDiffs = await Promise.all(diffPromises);
404
+ for (const diff of generatedDiffs) {
405
+ if (diff) {
406
+ diffs.push(diff);
407
+ }
408
+ }
409
+ const diffsJson = JSON.stringify(diffs);
410
+ const diffsSizeBytes = ( new TextEncoder()).encode(diffsJson).length;
411
+ if (diffsSizeBytes > MAX_DIFFS_SIZE_BYTES) {
412
+ return {
413
+ ...baseRepoData,
414
+ diffs: undefined,
415
+ diffsStatus: "tooLarge",
416
+ changedFileCount: totalChangeCount
417
+ };
418
+ }
419
+ return {
420
+ ...baseRepoData,
421
+ diffs,
422
+ diffsStatus: "included",
423
+ changedFileCount: totalChangeCount
424
+ };
425
+ }
426
+ let ChatRepoInfoContribution = class ChatRepoInfoContribution extends Disposable {
427
+ static {
428
+ this.ID = "workbench.contrib.chatRepoInfo";
429
+ }
430
+ constructor(
431
+ chatService,
432
+ chatEntitlementService,
433
+ scmService,
434
+ fileService,
435
+ logService,
436
+ configurationService
437
+ ) {
438
+ super();
439
+ this.chatService = chatService;
440
+ this.chatEntitlementService = chatEntitlementService;
441
+ this.scmService = scmService;
442
+ this.fileService = fileService;
443
+ this.logService = logService;
444
+ this.configurationService = configurationService;
445
+ this._configurationRegistered = false;
446
+ this.registerConfigurationIfInternal();
447
+ this._register(this.chatEntitlementService.onDidChangeEntitlement(() => {
448
+ this.registerConfigurationIfInternal();
449
+ }));
450
+ this._register(this.chatService.onDidSubmitRequest(async (
451
+ {
452
+ chatSessionResource
453
+ }
454
+ ) => {
455
+ const model = this.chatService.getSession(chatSessionResource);
456
+ if (!model) {
457
+ return;
458
+ }
459
+ await this.captureAndSetRepoData(model);
460
+ }));
461
+ }
462
+ registerConfigurationIfInternal() {
463
+ if (this._configurationRegistered) {
464
+ return;
465
+ }
466
+ if (!this.chatEntitlementService.isInternal) {
467
+ return;
468
+ }
469
+ const registry = ( Registry.as(Extensions.Configuration));
470
+ registry.registerConfiguration({
471
+ id: "chatRepoInfo",
472
+ title: ( localize(5471, "Chat Repository Info")),
473
+ type: "object",
474
+ properties: {
475
+ [ChatConfiguration.RepoInfoEnabled]: {
476
+ type: "boolean",
477
+ description: ( localize(
478
+ 5472,
479
+ "Controls whether repository information (branch, commit, working tree diffs) is captured at the start of chat sessions for internal diagnostics."
480
+ )),
481
+ default: true
482
+ }
483
+ }
484
+ });
485
+ this._configurationRegistered = true;
486
+ this.logService.debug("[ChatRepoInfo] Configuration registered for internal user");
487
+ }
488
+ async captureAndSetRepoData(model) {
489
+ if (!this.chatEntitlementService.isInternal) {
490
+ return;
491
+ }
492
+ if (!this.configurationService.getValue(ChatConfiguration.RepoInfoEnabled)) {
493
+ return;
494
+ }
495
+ if (model.repoData) {
496
+ return;
497
+ }
498
+ try {
499
+ const repoData = await captureRepoInfo(this.scmService, this.fileService);
500
+ if (repoData) {
501
+ model.setRepoData(repoData);
502
+ if (!repoData.localHeadCommit && repoData.workspaceType !== "plain-folder") {
503
+ this.logService.warn(
504
+ "[ChatRepoInfo] Captured repo data without commit hash - git history may not be ready"
505
+ );
506
+ }
507
+ this.trimOldSessionDiffs();
508
+ } else {
509
+ this.logService.debug("[ChatRepoInfo] No SCM repository available for chat session");
510
+ }
511
+ } catch (error) {
512
+ this.logService.warn("[ChatRepoInfo] Failed to capture repo info:", error);
513
+ }
514
+ }
515
+ trimOldSessionDiffs() {
516
+ try {
517
+ const sessionsWithDiffs = [];
518
+ for (const model of this.chatService.chatModels.get()) {
519
+ if (model.repoData?.diffs && model.repoData.diffs.length > 0 && model.repoData.diffsStatus === "included") {
520
+ sessionsWithDiffs.push({
521
+ model,
522
+ timestamp: model.timestamp
523
+ });
524
+ }
525
+ }
526
+ sessionsWithDiffs.sort((a, b) => b.timestamp - a.timestamp);
527
+ for (let i = MAX_SESSIONS_WITH_FULL_DIFFS; i < sessionsWithDiffs.length; i++) {
528
+ const {
529
+ model
530
+ } = sessionsWithDiffs[i];
531
+ if (model.repoData) {
532
+ const trimmedRepoData = {
533
+ ...model.repoData,
534
+ diffs: undefined,
535
+ diffsStatus: "trimmedForStorage"
536
+ };
537
+ model.setRepoData(trimmedRepoData);
538
+ this.logService.trace(`[ChatRepoInfo] Trimmed diffs from older session: ${( model.sessionResource.toString())}`);
539
+ }
540
+ }
541
+ } catch (error) {
542
+ this.logService.warn("[ChatRepoInfo] Failed to trim old session diffs:", error);
543
+ }
544
+ }
545
+ };
546
+ ChatRepoInfoContribution = ( __decorate([( __param(0, IChatService)), ( __param(1, IChatEntitlementService)), ( __param(2, ISCMService)), ( __param(3, IFileService)), ( __param(4, ILogService)), ( __param(5, IConfigurationService))], ChatRepoInfoContribution));
547
+
548
+ export { ChatRepoInfoContribution, captureRepoInfo };
@@ -34,7 +34,6 @@ export declare class ChatTeardownContribution extends Disposable implements IWor
34
34
  private readonly viewDescriptorService;
35
35
  private readonly layoutService;
36
36
  static readonly ID = "workbench.contrib.chatTeardown";
37
- static readonly CHAT_DISABLED_CONFIGURATION_KEY = "chat.disableAIFeatures";
38
37
  constructor(chatEntitlementService: ChatEntitlementService, configurationService: IConfigurationService, extensionsWorkbenchService: IExtensionsWorkbenchService, extensionEnablementService: IWorkbenchExtensionEnablementService, viewDescriptorService: IViewDescriptorService, layoutService: IWorkbenchLayoutService);
39
38
  private handleChatDisabled;
40
39
  private registerListeners;