@codingame/monaco-vscode-chat-service-override 32.0.2 → 33.0.4

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 (257) hide show
  1. package/index.d.ts +1 -1
  2. package/index.js +15 -5
  3. package/package.json +5 -5
  4. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +170 -24
  5. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +372 -66
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +18 -1
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +160 -31
  8. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.d.ts +8 -0
  9. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +19 -0
  10. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +134 -0
  11. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +257 -0
  12. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +84 -3
  13. package/vscode/src/vs/platform/agentHost/common/agentService.js +9 -1
  14. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +61 -1
  15. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +61 -1
  16. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.js +3 -1
  17. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +1 -1
  18. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +1 -1
  19. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +1 -1
  20. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +4 -4
  21. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +1 -1
  22. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +2 -7
  23. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +8 -29
  24. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  25. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +60 -60
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +10 -6
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +10 -1
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +180 -174
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +12 -12
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +12 -12
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
  44. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  45. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  46. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
  47. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +64 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +330 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.d.ts +24 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +77 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +6 -6
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +51 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +267 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +4 -3
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +53 -53
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +5 -4
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +30 -28
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +26 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -6
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +150 -119
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +45 -44
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +0 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +58 -76
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +2 -2
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +2 -6
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +88 -70
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +82 -56
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +10 -8
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +2 -6
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +89 -71
  89. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.d.ts +1 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +2 -2843
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.d.ts +1 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +2934 -0
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -4
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +53 -20
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +131 -61
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +23 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +91 -15
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -21
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -28
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +14 -14
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +15 -4
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +203 -163
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +1 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +31 -54
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.d.ts +1 -0
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +88 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  146. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +17 -4
  147. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.d.ts +8 -0
  148. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +91 -0
  149. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +52 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +82 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +21 -1
  152. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +55 -18
  153. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  154. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  155. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.d.ts +51 -0
  156. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.js +106 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +4 -2
  158. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  159. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  160. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +38 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +59 -0
  162. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  163. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +25 -25
  164. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
  165. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
  166. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  167. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  168. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  169. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  170. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileContributions.js +4 -6
  171. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  172. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  173. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  174. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  175. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  176. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  177. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  178. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +1 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +38 -28
  180. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -7
  181. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.d.ts +5 -1
  182. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.js +106 -7
  183. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -8
  184. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.d.ts +28 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +75 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  187. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.d.ts → chatOutputPartStateCache.d.ts} +5 -6
  188. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.js → chatOutputPartStateCache.js} +19 -11
  189. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  190. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +58 -26
  191. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +9 -9
  192. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
  193. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  194. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  196. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +18 -9
  197. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  198. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +13 -5
  199. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +6 -2
  200. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
  201. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +19 -18
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -2
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  205. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +6 -7
  206. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +14 -15
  207. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +155 -156
  208. package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.d.ts +6 -0
  209. package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.js +12 -0
  210. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.d.ts +88 -0
  211. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.js +25 -0
  212. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  213. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.d.ts +1 -0
  214. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +237 -0
  215. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.d.ts +66 -0
  216. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +600 -0
  217. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.d.ts +18 -0
  218. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +47 -0
  219. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.d.ts +22 -0
  220. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.js +7 -0
  221. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/media/imageCarousel.css +298 -0
  222. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  223. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  224. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  225. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  230. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +12 -1
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +78 -7
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +15 -11
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -9
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -16
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.d.ts +60 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.js +286 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.d.ts +24 -0
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.js +285 -0
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.d.ts +19 -12
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.js +415 -47
  252. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.d.ts +2 -7
  253. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.js +1 -1
  254. package/vscode/src/vs/base/common/defaultAccount.d.ts +0 -69
  255. package/vscode/src/vs/base/common/defaultAccount.js +0 -12
  256. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +0 -15
  257. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +0 -85
@@ -79,7 +79,7 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
79
79
  });
80
80
  }
81
81
  _progress.report({
82
- message: ( new MarkdownString(( localize(14415, "Resolving the task"))))
82
+ message: ( new MarkdownString(( localize(14545, "Resolving the task"))))
83
83
  });
84
84
  let task;
85
85
  const start = Date.now();
@@ -96,7 +96,7 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
96
96
  kind: "text",
97
97
  value: `Task not found: ${args.task.label}`
98
98
  }],
99
- toolResultMessage: ( new MarkdownString(( localize(14416, "Task not found: `{0}`", args.task.label))))
99
+ toolResultMessage: ( new MarkdownString(( localize(14546, "Task not found: `{0}`", args.task.label))))
100
100
  };
101
101
  }
102
102
  const preRunMarkersStore = ( new DisposableStore());
@@ -113,7 +113,7 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
113
113
  }
114
114
  }
115
115
  _progress.report({
116
- message: ( new MarkdownString(( localize(14417, "Running task `{0}`", args.task.label))))
116
+ message: ( new MarkdownString(( localize(14547, "Running task `{0}`", args.task.label))))
117
117
  });
118
118
  const raceResult = await Promise.race([
119
119
  this._tasksService.run(task, undefined, TaskRunSource.ChatAgent),
@@ -131,7 +131,7 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
131
131
  value: `Task started but no terminal was found for: ${args.task.label}`
132
132
  }],
133
133
  toolResultMessage: ( new MarkdownString(( localize(
134
- 14418,
134
+ 14548,
135
135
  "Task started but no terminal was found for: `{0}`",
136
136
  args.task.label
137
137
  ))))
@@ -201,26 +201,26 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
201
201
  const allTasks = await this._tasksService.tasks();
202
202
  if (allTasks?.find(t => t._label === task.label)) {
203
203
  return {
204
- invocationMessage: ( new MarkdownString(( localize(14419, "Task `{0}` already exists.", task.label)))),
205
- pastTenseMessage: ( new MarkdownString(( localize(14420, "Task `{0}` already exists.", task.label)))),
204
+ invocationMessage: ( new MarkdownString(( localize(14549, "Task `{0}` already exists.", task.label)))),
205
+ pastTenseMessage: ( new MarkdownString(( localize(14550, "Task `{0}` already exists.", task.label)))),
206
206
  confirmationMessages: undefined
207
207
  };
208
208
  }
209
209
  const activeTasks = await this._tasksService.getActiveTasks();
210
210
  if (activeTasks.find(t => t._label === task.label)) {
211
211
  return {
212
- invocationMessage: ( new MarkdownString(( localize(14421, "Task `{0}` is already running.", task.label)))),
213
- pastTenseMessage: ( new MarkdownString(( localize(14421, "Task `{0}` is already running.", task.label)))),
212
+ invocationMessage: ( new MarkdownString(( localize(14551, "Task `{0}` is already running.", task.label)))),
213
+ pastTenseMessage: ( new MarkdownString(( localize(14551, "Task `{0}` is already running.", task.label)))),
214
214
  confirmationMessages: undefined
215
215
  };
216
216
  }
217
217
  return {
218
- invocationMessage: ( new MarkdownString(( localize(14422, "Created task `{0}`", task.label)))),
219
- pastTenseMessage: ( new MarkdownString(( localize(14423, "Created task `{0}`", task.label)))),
218
+ invocationMessage: ( new MarkdownString(( localize(14552, "Created task `{0}`", task.label)))),
219
+ pastTenseMessage: ( new MarkdownString(( localize(14553, "Created task `{0}`", task.label)))),
220
220
  confirmationMessages: {
221
- title: ( localize(14424, "Allow task creation and execution?")),
221
+ title: ( localize(14554, "Allow task creation and execution?")),
222
222
  message: ( new MarkdownString(( localize(
223
- 14425,
223
+ 14555,
224
224
  "A task `{0}` with command `{1}`{2} will be created.",
225
225
  task.label,
226
226
  task.command,
@@ -235,9 +235,9 @@ const CreateAndRunTaskToolData = {
235
235
  id: TerminalToolId.CreateAndRunTask,
236
236
  toolReferenceName: "createAndRunTask",
237
237
  legacyToolReferenceFullNames: ["runTasks/createAndRunTask"],
238
- displayName: ( localize(14426, "Create and run Task")),
238
+ displayName: ( localize(14556, "Create and run Task")),
239
239
  modelDescription: "Creates and runs a build, run, or custom task for the workspace by generating or adding to a tasks.json file based on the project structure (such as package.json or README.md). If the user asks to build, run, launch and they have no tasks.json file, use this tool. If they ask to create or add a task, use this tool.",
240
- userDescription: ( localize(14427, "Create and run a task in the workspace")),
240
+ userDescription: ( localize(14557, "Create and run a task in the workspace")),
241
241
  source: ToolDataSource.Internal,
242
242
  inputSchema: {
243
243
  "type": "object",
@@ -7,7 +7,6 @@ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/pl
7
7
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
8
8
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
9
9
  import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
10
- import { TasksAvailableContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService';
11
10
  import { ITaskService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService.service';
12
11
  import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
13
12
  import { getTaskDefinition, getTaskForTool, resolveDependencyTasks, collectTerminalResults, tasksMatch } from '../../taskHelpers.js';
@@ -18,10 +17,9 @@ const GetTaskOutputToolData = {
18
17
  id: TerminalToolId.GetTaskOutput,
19
18
  toolReferenceName: "getTaskOutput",
20
19
  legacyToolReferenceFullNames: ["runTasks/getTaskOutput"],
21
- displayName: ( localize(14428, "Get Task Output")),
20
+ displayName: ( localize(14558, "Get Task Output")),
22
21
  modelDescription: "Get the output of a task",
23
22
  source: ToolDataSource.Internal,
24
- when: TasksAvailableContext,
25
23
  inputSchema: {
26
24
  type: "object",
27
25
  properties: {
@@ -65,19 +63,19 @@ let GetTaskOutputTool = class GetTaskOutputTool extends Disposable {
65
63
  );
66
64
  if (!task) {
67
65
  return {
68
- invocationMessage: ( new MarkdownString(( localize(14429, "Task not found: `{0}`", args.id))))
66
+ invocationMessage: ( new MarkdownString(( localize(14559, "Task not found: `{0}`", args.id))))
69
67
  };
70
68
  }
71
69
  const taskLabel = task._label;
72
70
  const activeTasks = await this._tasksService.getActiveTasks();
73
71
  if (activeTasks.includes(task)) {
74
72
  return {
75
- invocationMessage: ( new MarkdownString(( localize(14430, "The task `{0}` is already running.", taskLabel))))
73
+ invocationMessage: ( new MarkdownString(( localize(14560, "The task `{0}` is already running.", taskLabel))))
76
74
  };
77
75
  }
78
76
  return {
79
- invocationMessage: ( new MarkdownString(( localize(14431, "Checking output for task `{0}`", taskLabel)))),
80
- pastTenseMessage: ( new MarkdownString(( localize(14432, "Checked output for task `{0}`", taskLabel))))
77
+ invocationMessage: ( new MarkdownString(( localize(14561, "Checking output for task `{0}`", taskLabel)))),
78
+ pastTenseMessage: ( new MarkdownString(( localize(14562, "Checked output for task `{0}`", taskLabel))))
81
79
  };
82
80
  }
83
81
  async invoke(invocation, _countTokens, _progress, token) {
@@ -97,7 +95,7 @@ let GetTaskOutputTool = class GetTaskOutputTool extends Disposable {
97
95
  kind: "text",
98
96
  value: `Task not found: ${args.id}`
99
97
  }],
100
- toolResultMessage: ( new MarkdownString(( localize(14429, "Task not found: `{0}`", args.id))))
98
+ toolResultMessage: ( new MarkdownString(( localize(14559, "Task not found: `{0}`", args.id))))
101
99
  };
102
100
  }
103
101
  const dependencyTasks = await resolveDependencyTasks(task, args.workspaceFolder, this._configurationService, this._tasksService);
@@ -112,7 +110,7 @@ let GetTaskOutputTool = class GetTaskOutputTool extends Disposable {
112
110
  kind: "text",
113
111
  value: `Terminal not found for task ${taskLabel}`
114
112
  }],
115
- toolResultMessage: ( new MarkdownString(( localize(14433, "Terminal not found for task `{0}`", taskLabel))))
113
+ toolResultMessage: ( new MarkdownString(( localize(14563, "Terminal not found for task `{0}`", taskLabel))))
116
114
  };
117
115
  }
118
116
  const startMarkersByTerminalInstanceId = task.configurationProperties.isBackground ? ( new Map()) : undefined;
@@ -4,7 +4,6 @@ import { timeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/asyn
4
4
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
5
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
6
6
  import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
7
- import { TasksAvailableContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService';
8
7
  import { ITaskService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService.service';
9
8
  import { TaskRunSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/tasks';
10
9
  import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
@@ -57,7 +56,7 @@ let RunTaskTool = class RunTaskTool {
57
56
  kind: "text",
58
57
  value: `Task not found: ${args.id}`
59
58
  }],
60
- toolResultMessage: ( new MarkdownString(( localize(14434, "Task not found: `{0}`", args.id))))
59
+ toolResultMessage: ( new MarkdownString(( localize(14564, "Task not found: `{0}`", args.id))))
61
60
  };
62
61
  }
63
62
  const taskLabel = task._label;
@@ -68,7 +67,7 @@ let RunTaskTool = class RunTaskTool {
68
67
  kind: "text",
69
68
  value: `The task ${taskLabel} is already running.`
70
69
  }],
71
- toolResultMessage: ( new MarkdownString(( localize(14435, "The task `{0}` is already running.", taskLabel))))
70
+ toolResultMessage: ( new MarkdownString(( localize(14565, "The task `{0}` is already running.", taskLabel))))
72
71
  };
73
72
  }
74
73
  const dependencyTasks = await resolveDependencyTasks(task, args.workspaceFolder, this._configurationService, this._tasksService);
@@ -94,7 +93,7 @@ let RunTaskTool = class RunTaskTool {
94
93
  kind: "text",
95
94
  value: `Task started but no terminal was found for: ${taskLabel}`
96
95
  }],
97
- toolResultMessage: ( new MarkdownString(( localize(14436, "Task started but no terminal was found for: `{0}`", taskLabel))))
96
+ toolResultMessage: ( new MarkdownString(( localize(14566, "Task started but no terminal was found for: `{0}`", taskLabel))))
98
97
  };
99
98
  }
100
99
  const terminals = this._terminalService.instances.filter(t => ( resources.some(r => r.path === t.resource.path && r.scheme === t.resource.scheme)));
@@ -104,7 +103,7 @@ let RunTaskTool = class RunTaskTool {
104
103
  kind: "text",
105
104
  value: `Task started but no terminal was found for: ${taskLabel}`
106
105
  }],
107
- toolResultMessage: ( new MarkdownString(( localize(14436, "Task started but no terminal was found for: `{0}`", taskLabel))))
106
+ toolResultMessage: ( new MarkdownString(( localize(14566, "Task started but no terminal was found for: `{0}`", taskLabel))))
108
107
  };
109
108
  }
110
109
  const store = ( new DisposableStore());
@@ -179,29 +178,29 @@ let RunTaskTool = class RunTaskTool {
179
178
  );
180
179
  if (!task) {
181
180
  return {
182
- invocationMessage: ( new MarkdownString(( localize(14434, "Task not found: `{0}`", args.id))))
181
+ invocationMessage: ( new MarkdownString(( localize(14564, "Task not found: `{0}`", args.id))))
183
182
  };
184
183
  }
185
184
  const taskLabel = task._label;
186
185
  const activeTasks = await this._tasksService.getActiveTasks();
187
186
  if (task && activeTasks.includes(task)) {
188
187
  return {
189
- invocationMessage: ( new MarkdownString(( localize(14437, "The task is already running."))))
188
+ invocationMessage: ( new MarkdownString(( localize(14567, "The task is already running."))))
190
189
  };
191
190
  }
192
191
  if (await this._isTaskActive(task)) {
193
192
  return {
194
- invocationMessage: ( new MarkdownString(( localize(14438, "`{0}` is already running.", taskLabel)))),
195
- pastTenseMessage: ( new MarkdownString(( localize(14439, "`{0}` was already running.", taskLabel)))),
193
+ invocationMessage: ( new MarkdownString(( localize(14568, "`{0}` is already running.", taskLabel)))),
194
+ pastTenseMessage: ( new MarkdownString(( localize(14569, "`{0}` was already running.", taskLabel)))),
196
195
  confirmationMessages: undefined
197
196
  };
198
197
  }
199
198
  return {
200
- invocationMessage: ( new MarkdownString(( localize(14440, "Running `{0}`", taskLabel)))),
201
- pastTenseMessage: ( new MarkdownString(task?.configurationProperties.isBackground ? ( localize(14441, "Started `{0}`", taskLabel)) : ( localize(14442, "Ran `{0}`", taskLabel)))),
199
+ invocationMessage: ( new MarkdownString(( localize(14570, "Running `{0}`", taskLabel)))),
200
+ pastTenseMessage: ( new MarkdownString(task?.configurationProperties.isBackground ? ( localize(14571, "Started `{0}`", taskLabel)) : ( localize(14572, "Ran `{0}`", taskLabel)))),
202
201
  confirmationMessages: task ? {
203
- title: ( localize(14443, "Allow task run?")),
204
- message: ( localize(14444, "Allow to run the task `{0}`?", taskLabel))
202
+ title: ( localize(14573, "Allow task run?")),
203
+ message: ( localize(14574, "Allow to run the task `{0}`?", taskLabel))
205
204
  } : undefined
206
205
  };
207
206
  }
@@ -211,12 +210,11 @@ const RunTaskToolData = {
211
210
  id: TerminalToolId.RunTask,
212
211
  toolReferenceName: "runTask",
213
212
  legacyToolReferenceFullNames: ["runTasks/runTask"],
214
- displayName: ( localize(14445, "Run Task")),
213
+ displayName: ( localize(14575, "Run Task")),
215
214
  modelDescription: `Runs a VS Code task.\n\n- If you see that an appropriate task exists for building or running code, prefer to use this tool to run the task instead of using the ${TerminalToolId.RunInTerminal} tool.\n- Make sure that any appropriate build or watch task is running before trying to run tests or execute code.\n- If the user asks to run a task, use this tool to do so.`,
216
- userDescription: ( localize(14446, "Run tasks in the workspace")),
215
+ userDescription: ( localize(14576, "Run tasks in the workspace")),
217
216
  icon: Codicon.tools,
218
217
  source: ToolDataSource.Internal,
219
- when: TasksAvailableContext,
220
218
  inputSchema: {
221
219
  "type": "object",
222
220
  "properties": {
@@ -26,7 +26,7 @@ function toolResultMessageFromResponse(
26
26
  ) {
27
27
  let resultSummary = "";
28
28
  if (result?.exitCode) {
29
- resultSummary = ( localize(14447, "Task `{0}` failed with exit code {1}.", taskLabel, result.exitCode));
29
+ resultSummary = ( localize(14577, "Task `{0}` failed with exit code {1}.", taskLabel, result.exitCode));
30
30
  } else {
31
31
  resultSummary += `\`${taskLabel}\` task `;
32
32
  const problemCount = toolResultDetails.length;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Tokenize a single command segment (no `|`, `&&`, `||`, `;`) into argv-style
3
+ * words. Respects single quotes (no escaping), double quotes (with `\\`,
4
+ * `\"`, `\$`, `\`` escapes), and backslash-escapes outside of quotes.
5
+ *
6
+ * Returns `[]` for empty input. Never throws on malformed input — unterminated
7
+ * quotes are treated as if they ran to end of string.
8
+ */
9
+ export declare function tokenize(segment: string): string[];
10
+ export type SegmentSeparator = "|" | "&&" | "||" | ";" | "|&";
11
+ export interface ICommandSegment {
12
+ readonly raw: string;
13
+ /** Argv-style tokens after stripping env prefixes / wrappers. */
14
+ readonly tokens: readonly string[];
15
+ /** Argv as written, before stripping env prefixes / wrappers. */
16
+ readonly rawTokens: readonly string[];
17
+ /** Env assignments stripped from the head, in source order. */
18
+ readonly envPrefixes: readonly string[];
19
+ /** Wrapper programs stripped from the head, in source order. */
20
+ readonly wrappers: readonly string[];
21
+ /** Separator that ended this segment, or `undefined` for the last segment. */
22
+ readonly trailingSeparator: SegmentSeparator | undefined;
23
+ }
24
+ export interface IParsedCommand {
25
+ readonly raw: string;
26
+ readonly segments: readonly ICommandSegment[];
27
+ }
28
+ /**
29
+ * Parse a full command line into segments. Each segment carries both the raw
30
+ * tokens and the "effective" tokens (with env / wrapper prefixes stripped).
31
+ */
32
+ export declare function parseCommand(command: string | undefined): IParsedCommand | undefined;
33
+ /**
34
+ * Returns the head program (after stripping env / wrappers) and the first
35
+ * subcommand-like token. Long flags (`--no-pager`) are skipped between head
36
+ * and sub. Returns `undefined` when the segment has no tokens.
37
+ */
38
+ export declare function segmentHead(segment: ICommandSegment): {
39
+ head: string;
40
+ sub: string | undefined;
41
+ } | undefined;
42
+ /** Convenience: parse + return head of first segment. */
43
+ export declare function parseCommandHead(command: string | undefined): {
44
+ head: string;
45
+ sub: string | undefined;
46
+ } | undefined;
47
+ /**
48
+ * Does the segment's flag set contain any of `flags`? Recognizes both
49
+ * short-bundled flags (`-la` contains `l` and `a`) and long flags.
50
+ */
51
+ export declare function segmentHasFlag(segment: ICommandSegment, flags: readonly string[]): boolean;
52
+ /**
53
+ * Iterate over every segment in the parsed command. Useful for filters that
54
+ * want to act on any segment of a pipeline (e.g. `cat foo.txt | grep bar`
55
+ * — the `cat` filter wants to fire on the first segment).
56
+ */
57
+ export declare function findSegments(parsed: IParsedCommand, predicate: (head: {
58
+ head: string;
59
+ sub: string | undefined;
60
+ }, segment: ICommandSegment) => boolean): ICommandSegment[];
@@ -0,0 +1,286 @@
1
+
2
+
3
+ const WRAPPER_PROGRAMS = ( new Set([
4
+ "sudo",
5
+ "doas",
6
+ "time",
7
+ "command",
8
+ "builtin",
9
+ "exec",
10
+ "nice",
11
+ "ionice",
12
+ "nohup",
13
+ "env",
14
+ "xargs",
15
+ "stdbuf",
16
+ "unbuffer",
17
+ "script",
18
+ "timeout"
19
+ ]));
20
+ const ENV_ASSIGN_RE = /^[A-Za-z_][A-Za-z0-9_]*=.*$/;
21
+ function tokenize(segment) {
22
+ const tokens = [];
23
+ let cur = "";
24
+ let inSingle = false;
25
+ let inDouble = false;
26
+ let hasContent = false;
27
+ for (let i = 0; i < segment.length; i++) {
28
+ const ch = segment[i];
29
+ if (inSingle) {
30
+ if (ch === "'") {
31
+ inSingle = false;
32
+ } else {
33
+ cur += ch;
34
+ }
35
+ continue;
36
+ }
37
+ if (inDouble) {
38
+ if (ch === "\\" && i + 1 < segment.length) {
39
+ const next = segment[i + 1];
40
+ if (next === "\\" || next === "\"" || next === "$" || next === "`") {
41
+ cur += next;
42
+ i++;
43
+ continue;
44
+ }
45
+ cur += ch;
46
+ continue;
47
+ }
48
+ if (ch === "\"") {
49
+ inDouble = false;
50
+ } else {
51
+ cur += ch;
52
+ }
53
+ continue;
54
+ }
55
+ if (ch === "\\" && i + 1 < segment.length) {
56
+ cur += segment[i + 1];
57
+ i++;
58
+ hasContent = true;
59
+ continue;
60
+ }
61
+ if (ch === "'") {
62
+ inSingle = true;
63
+ hasContent = true;
64
+ continue;
65
+ }
66
+ if (ch === "\"") {
67
+ inDouble = true;
68
+ hasContent = true;
69
+ continue;
70
+ }
71
+ if (/\s/.test(ch)) {
72
+ if (cur.length > 0 || hasContent) {
73
+ tokens.push(cur);
74
+ cur = "";
75
+ hasContent = false;
76
+ }
77
+ continue;
78
+ }
79
+ cur += ch;
80
+ hasContent = true;
81
+ }
82
+ if (cur.length > 0 || hasContent) {
83
+ tokens.push(cur);
84
+ }
85
+ return tokens;
86
+ }
87
+ function splitSegments(command) {
88
+ const out = [];
89
+ let cur = "";
90
+ let inSingle = false;
91
+ let inDouble = false;
92
+ const push = sep => {
93
+ const trimmed = cur.trim();
94
+ if (trimmed.length > 0 || sep !== undefined) {
95
+ out.push({
96
+ raw: trimmed,
97
+ sep
98
+ });
99
+ }
100
+ cur = "";
101
+ };
102
+ for (let i = 0; i < command.length; i++) {
103
+ const ch = command[i];
104
+ if (inSingle) {
105
+ cur += ch;
106
+ if (ch === "'") {
107
+ inSingle = false;
108
+ }
109
+ continue;
110
+ }
111
+ if (inDouble) {
112
+ if (ch === "\\" && i + 1 < command.length) {
113
+ cur += ch + command[i + 1];
114
+ i++;
115
+ continue;
116
+ }
117
+ cur += ch;
118
+ if (ch === "\"") {
119
+ inDouble = false;
120
+ }
121
+ continue;
122
+ }
123
+ if (ch === "\\" && i + 1 < command.length) {
124
+ cur += ch + command[i + 1];
125
+ i++;
126
+ continue;
127
+ }
128
+ if (ch === "'") {
129
+ inSingle = true;
130
+ cur += ch;
131
+ continue;
132
+ }
133
+ if (ch === "\"") {
134
+ inDouble = true;
135
+ cur += ch;
136
+ continue;
137
+ }
138
+ if (ch === "|" && command[i + 1] === "|") {
139
+ push("||");
140
+ i++;
141
+ continue;
142
+ }
143
+ if (ch === "|" && command[i + 1] === "&") {
144
+ push("|&");
145
+ i++;
146
+ continue;
147
+ }
148
+ if (ch === "|") {
149
+ push("|");
150
+ continue;
151
+ }
152
+ if (ch === "&" && command[i + 1] === "&") {
153
+ push("&&");
154
+ i++;
155
+ continue;
156
+ }
157
+ if (ch === ";") {
158
+ push(";");
159
+ continue;
160
+ }
161
+ cur += ch;
162
+ }
163
+ push(undefined);
164
+ return out;
165
+ }
166
+ function stripPrefixesAndWrappers(rawTokens) {
167
+ const envPrefixes = [];
168
+ const wrappers = [];
169
+ let i = 0;
170
+ while (i < rawTokens.length && ENV_ASSIGN_RE.test(rawTokens[i])) {
171
+ envPrefixes.push(rawTokens[i]);
172
+ i++;
173
+ }
174
+ while (i < rawTokens.length) {
175
+ const tok = rawTokens[i];
176
+ if (( WRAPPER_PROGRAMS.has(tok))) {
177
+ wrappers.push(tok);
178
+ i++;
179
+ while (i < rawTokens.length) {
180
+ const next = rawTokens[i];
181
+ if (next === "--") {
182
+ i++;
183
+ break;
184
+ }
185
+ if (next.startsWith("-")) {
186
+ i++;
187
+ continue;
188
+ }
189
+ if (ENV_ASSIGN_RE.test(next)) {
190
+ envPrefixes.push(next);
191
+ i++;
192
+ continue;
193
+ }
194
+ if ((tok === "timeout" || tok === "nice" || tok === "ionice") && /^\d/.test(next)) {
195
+ i++;
196
+ continue;
197
+ }
198
+ break;
199
+ }
200
+ continue;
201
+ }
202
+ break;
203
+ }
204
+ return {
205
+ tokens: rawTokens.slice(i),
206
+ envPrefixes,
207
+ wrappers
208
+ };
209
+ }
210
+ function parseCommand(command) {
211
+ if (!command) {
212
+ return undefined;
213
+ }
214
+ const trimmed = command.trim();
215
+ if (!trimmed) {
216
+ return undefined;
217
+ }
218
+ const rawSegments = splitSegments(trimmed);
219
+ if (rawSegments.length === 0) {
220
+ return undefined;
221
+ }
222
+ const segments = ( rawSegments.map(seg => {
223
+ const rawTokens = tokenize(seg.raw);
224
+ const {
225
+ tokens,
226
+ envPrefixes,
227
+ wrappers
228
+ } = stripPrefixesAndWrappers(rawTokens);
229
+ return {
230
+ raw: seg.raw,
231
+ rawTokens,
232
+ tokens,
233
+ envPrefixes,
234
+ wrappers,
235
+ trailingSeparator: seg.sep
236
+ };
237
+ }));
238
+ return {
239
+ raw: trimmed,
240
+ segments
241
+ };
242
+ }
243
+ function segmentHead(segment) {
244
+ const tokens = segment.tokens;
245
+ if (tokens.length === 0) {
246
+ return undefined;
247
+ }
248
+ const head = tokens[0];
249
+ let sub;
250
+ for (let i = 1; i < tokens.length; i++) {
251
+ if (tokens[i].startsWith("--")) {
252
+ continue;
253
+ }
254
+ sub = tokens[i];
255
+ break;
256
+ }
257
+ return {
258
+ head,
259
+ sub
260
+ };
261
+ }
262
+ function segmentHasFlag(segment, flags) {
263
+ const longFlags = ( flags.filter(f => f.length > 1).map(f => `--${f}`));
264
+ const shortFlags = flags.filter(f => f.length === 1);
265
+ for (const tok of segment.tokens) {
266
+ if (!tok.startsWith("-") || tok === "--") {
267
+ continue;
268
+ }
269
+ if (tok.startsWith("--")) {
270
+ const name = tok.slice(2).split("=")[0];
271
+ if (longFlags.includes(`--${name}`)) {
272
+ return true;
273
+ }
274
+ continue;
275
+ }
276
+ const bundled = tok.slice(1);
277
+ for (const f of shortFlags) {
278
+ if (bundled.includes(f)) {
279
+ return true;
280
+ }
281
+ }
282
+ }
283
+ return false;
284
+ }
285
+
286
+ export { parseCommand, segmentHasFlag, segmentHead, tokenize };
@@ -0,0 +1,24 @@
1
+ import { IToolResultCache, IToolResultCacheHit } from "../../../../chat/common/tools/toolResultCompressor.js";
2
+ import { TerminalToolId } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/terminalToolIds";
3
+ export declare enum CacheClass {
4
+ /** `git status`, `ls`, `pwd` — likely to change quickly. */
5
+ Fast = "fast",
6
+ /** test runners. */
7
+ Medium = "medium",
8
+ /** `git log`, `find`, `tree`. */
9
+ Slow = "slow"
10
+ }
11
+ export declare class TerminalOutputCache implements IToolResultCache {
12
+ readonly id = "terminal.session-dedup";
13
+ readonly toolIds: TerminalToolId[];
14
+ private readonly _entries;
15
+ private readonly _now;
16
+ constructor(now?: () => number);
17
+ private _key;
18
+ observe(_toolId: string, input: unknown): void;
19
+ lookup(_toolId: string, input: unknown): IToolResultCacheHit | undefined;
20
+ record(_toolId: string, input: unknown, text: string): void;
21
+ /** External hook for editor file-write notifications etc. */
22
+ invalidateCwd(cwd: string): void;
23
+ private _invalidateByProgram;
24
+ }