@codingame/monaco-vscode-katex-common 32.0.2 → 33.0.9

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 (142) hide show
  1. package/package.json +3 -3
  2. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
  3. package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.d.ts +30 -0
  4. package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.js +8 -0
  5. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +32 -0
  6. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +13 -0
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +56 -36
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +45 -0
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +114 -0
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +87 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +502 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +45 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +188 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +153 -0
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +2 -2
  23. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
  24. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
  25. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +30 -30
  26. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +52 -52
  27. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +4 -4
  31. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  32. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  33. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
  34. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.d.ts +1 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +23 -20
  36. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +13 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +40 -13
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +4 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +217 -13
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +44 -44
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +10 -10
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +2 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +36 -23
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +12 -9
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -3
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +8 -13
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +16 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +6 -6
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +24 -21
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +6 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +72 -23
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +2 -4
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +7 -22
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +3 -3
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/media/toolRiskBadge.css +3 -3
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +1 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +25 -5
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +9 -1
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +41 -27
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +31 -25
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +1 -1
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +4 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +89 -27
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +4 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +203 -107
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +6 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +3 -3
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +5 -5
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +1 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +18 -18
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +32 -81
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +4 -4
  112. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
  113. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +6 -6
  114. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
  115. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
  116. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  117. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -2
  119. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
  120. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  121. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  122. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  123. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  124. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  125. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  126. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  127. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  128. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  129. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  130. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  131. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  132. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  133. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +4 -0
  134. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  135. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  136. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +4 -4
  137. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +29 -7
  138. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +27 -8
  139. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +17 -8
  140. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -69
  141. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -2
  142. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +9 -14
@@ -148,8 +148,13 @@ export declare class ChatTerminalThinkingCollapsibleWrapper extends ChatCollapsi
148
148
  private readonly _isSandboxWrapped;
149
149
  private _isComplete;
150
150
  private readonly _isSkipped;
151
- constructor(commandText: string, isSandboxWrapped: boolean, contentElement: HTMLElement, context: IChatContentPartRenderContext, initialExpanded: boolean, isComplete: boolean, isSkipped: boolean, hoverService: IHoverService, configurationService: IConfigurationService);
151
+ private _isRunningInBackground;
152
+ private readonly _onFocusTerminal;
153
+ private readonly _showLinkDisposables;
154
+ private _showLinkElement;
155
+ constructor(commandText: string, isSandboxWrapped: boolean, contentElement: HTMLElement, context: IChatContentPartRenderContext, initialExpanded: boolean, isComplete: boolean, isSkipped: boolean, isRunningInBackground: boolean, onFocusTerminal: (() => void) | undefined, hoverService: IHoverService, configurationService: IConfigurationService);
152
156
  private _setCodeFormattedTitle;
157
+ private _updateShowLink;
153
158
  markComplete(): void;
154
159
  protected initContent(): HTMLElement;
155
160
  expand(): void;
@@ -1,7 +1,7 @@
1
1
 
2
2
  import { registerCss } from '@codingame/monaco-vscode-api/css';
3
3
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
- import { h, addDisposableListener, EventType, DisposableResizeObserver, clearNode, getActiveWindow, getComputedStyle, createTextNode, createElement, $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
+ import { h, addDisposableListener, EventType, DisposableResizeObserver, clearNode, getActiveWindow, getComputedStyle, createTextNode, createElement, $, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
5
  import { MarkdownString, isMarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
6
6
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
7
7
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
@@ -27,6 +27,8 @@ import { Event, Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/comm
27
27
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
28
28
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
29
29
  import { getTerminalCommandDecorationTooltip, getTerminalCommandDecorationState, DecorationSelector } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/xterm/decorationStyles';
30
+ import { StandardKeyboardEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/keyboardEvent';
31
+ import { KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
30
32
  import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
31
33
  import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
32
34
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
@@ -325,7 +327,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
325
327
  const markdownOptions = {
326
328
  codeBlockRenderOptions,
327
329
  accessibilityOptions: pastTenseMessage ? {
328
- statusMessage: ( localize(7341, "{0}", stripIcons(pastTenseMessage)))
330
+ statusMessage: ( localize(7416, "{0}", stripIcons(pastTenseMessage)))
329
331
  } : undefined
330
332
  };
331
333
  this.markdownPart = this._register(_instantiationService.createInstance(
@@ -410,7 +412,10 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
410
412
  }
411
413
  _createCollapsibleWrapper(contentElement, commandText, toolInvocation, context) {
412
414
  const truncatedCommand = commandText.length > MAX_COMMAND_TITLE_LENGTH ? commandText.substring(0, MAX_COMMAND_TITLE_LENGTH) + "..." : commandText;
413
- const isComplete = IChatToolInvocation.isComplete(toolInvocation);
415
+ const toolInvocationComplete = IChatToolInvocation.isComplete(toolInvocation);
416
+ const commandHasNotFinished = this._terminalData.terminalCommandState?.exitCode === undefined;
417
+ const isRunningInBackground = toolInvocationComplete && commandHasNotFinished && (this._terminalData.isBackground === true || this._terminalData.didContinueInBackground === true);
418
+ const isComplete = toolInvocationComplete && !isRunningInBackground;
414
419
  const isSkipped = IChatToolInvocation.executionConfirmedOrDenied(toolInvocation)?.type === ToolConfirmKind.Skipped;
415
420
  const autoExpandFailures = this._configurationService.getValue(ChatConfiguration.AutoExpandToolFailures);
416
421
  const hasError = autoExpandFailures && this._terminalData.terminalCommandState?.exitCode !== undefined && this._terminalData.terminalCommandState.exitCode !== 0;
@@ -423,7 +428,9 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
423
428
  context,
424
429
  initialExpanded,
425
430
  isComplete,
426
- isSkipped
431
+ isSkipped,
432
+ isRunningInBackground,
433
+ () => this.focusTerminal()
427
434
  ));
428
435
  this._thinkingCollapsibleWrapper = wrapper;
429
436
  let isFirstRun = true;
@@ -531,12 +538,12 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
531
538
  this._actionBarActions.clear();
532
539
  const actions = [];
533
540
  if (this._toolbarCanContinueInBackground) {
534
- const action = ( new Action(TerminalContribCommandId.ContinueInBackground, ( localize(7342, "Continue in Background")), ThemeIcon.asClassName(Codicon.debugContinue), true, () => this.continueInBackground()));
541
+ const action = ( new Action(TerminalContribCommandId.ContinueInBackground, ( localize(7417, "Continue in Background")), ThemeIcon.asClassName(Codicon.debugContinue), true, () => this.continueInBackground()));
535
542
  this._actionBarActions.add(action);
536
543
  actions.push(action);
537
544
  }
538
545
  if (this._toolbarHasInstance) {
539
- const focusLabel = this._toolbarIsHiddenTerminal ? ( localize(7343, "Show and Focus Terminal")) : ( localize(7344, "Focus Terminal"));
546
+ const focusLabel = this._toolbarIsHiddenTerminal ? ( localize(7418, "Show and Focus Terminal")) : ( localize(7419, "Focus Terminal"));
540
547
  const action = ( new Action(
541
548
  TerminalContribCommandId.FocusChatInstanceAction,
542
549
  focusLabel,
@@ -549,7 +556,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
549
556
  }
550
557
  if (this._toolbarHasOutput && !this._usesCollapsibleWrapper) {
551
558
  const toggleIcon = this._toolbarOutputExpanded ? Codicon.chevronDown : Codicon.chevronRight;
552
- const toggleLabel = this._toolbarOutputExpanded ? ( localize(7345, "Hide Output")) : ( localize(7346, "Show Output"));
559
+ const toggleLabel = this._toolbarOutputExpanded ? ( localize(7420, "Hide Output")) : ( localize(7421, "Show Output"));
553
560
  const action = ( new Action(
554
561
  TerminalContribCommandId.ToggleChatTerminalOutput,
555
562
  toggleLabel,
@@ -777,7 +784,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
777
784
  widget?.focusInput();
778
785
  }
779
786
  async focusTerminal() {
780
- const instance = this._terminalInstance;
787
+ const instance = await this._ensureTerminalInstance();
781
788
  let target = "none";
782
789
  let location = "panel";
783
790
  if (instance) {
@@ -982,7 +989,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
982
989
  if (!commandText) {
983
990
  return;
984
991
  }
985
- const ariaLabel = ( localize(7347, "Terminal output for {0}", commandText));
992
+ const ariaLabel = ( localize(7422, "Terminal output for {0}", commandText));
986
993
  const scrollableDomNode = this._scrollableContainer.getDomNode();
987
994
  scrollableDomNode.setAttribute("role", "region");
988
995
  const accessibleViewHint = this._accessibleViewService.getOpenAriaHint(AccessibilityVerbositySettingId.TerminalChatOutput);
@@ -995,26 +1002,26 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
995
1002
  if (!commandText) {
996
1003
  return undefined;
997
1004
  }
998
- const commandHeader = ( localize(7348, "Command: {0}", commandText));
1005
+ const commandHeader = ( localize(7423, "Command: {0}", commandText));
999
1006
  if (command) {
1000
1007
  const rawOutput = command.getOutput();
1001
1008
  if (!rawOutput || rawOutput.trim().length === 0) {
1002
- return `${commandHeader}\n${( localize(7349, "No output was produced by the command."))}`;
1009
+ return `${commandHeader}\n${( localize(7424, "No output was produced by the command."))}`;
1003
1010
  }
1004
1011
  const lines = rawOutput.split("\n");
1005
1012
  return `${commandHeader}\n${lines.join("\n").trimEnd()}`;
1006
1013
  }
1007
1014
  const snapshot = this._getTerminalCommandOutput();
1008
1015
  if (!snapshot) {
1009
- return `${commandHeader}\n${( localize(7350, "Command output is no longer available."))}`;
1016
+ return `${commandHeader}\n${( localize(7425, "Command output is no longer available."))}`;
1010
1017
  }
1011
1018
  const plain = removeAnsiEscapeCodes((snapshot.text ?? ""));
1012
1019
  if (!plain.trim().length) {
1013
- return `${commandHeader}\n${( localize(7349, "No output was produced by the command."))}`;
1020
+ return `${commandHeader}\n${( localize(7424, "No output was produced by the command."))}`;
1014
1021
  }
1015
1022
  let outputText = plain.trimEnd();
1016
1023
  if (snapshot.truncated) {
1017
- outputText += `\n${( localize(7351, "Output truncated."))}`;
1024
+ outputText += `\n${( localize(7426, "Output truncated."))}`;
1018
1025
  }
1019
1026
  return `${commandHeader}\n${outputText}`;
1020
1027
  }
@@ -1126,7 +1133,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
1126
1133
  }
1127
1134
  if (!hasOutput) {
1128
1135
  if (commandFinished) {
1129
- this._showEmptyMessage(( localize(7349, "No output was produced by the command.")));
1136
+ this._showEmptyMessage(( localize(7424, "No output was produced by the command.")));
1130
1137
  }
1131
1138
  } else {
1132
1139
  this._hideEmptyMessage();
@@ -1153,7 +1160,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
1153
1160
  if (hasText) {
1154
1161
  this._hideEmptyMessage();
1155
1162
  } else {
1156
- this._showEmptyMessage(( localize(7349, "No output was produced by the command.")));
1163
+ this._showEmptyMessage(( localize(7424, "No output was produced by the command.")));
1157
1164
  }
1158
1165
  const lineCount = result?.lineCount ?? snapshot.lineCount ?? 0;
1159
1166
  this._layoutOutput(lineCount);
@@ -1162,9 +1169,9 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
1162
1169
  clearNode(this._terminalContainer);
1163
1170
  this._lastRenderedLineCount = undefined;
1164
1171
  if (!liveTerminalInstance) {
1165
- this._showEmptyMessage(( localize(7352, "Terminal is no longer available.")));
1172
+ this._showEmptyMessage(( localize(7427, "Terminal is no longer available.")));
1166
1173
  } else {
1167
- this._showEmptyMessage(( localize(7353, "Command information is not available.")));
1174
+ this._showEmptyMessage(( localize(7428, "Command information is not available.")));
1168
1175
  }
1169
1176
  }
1170
1177
  async _resolveLiveTerminal() {
@@ -1286,21 +1293,27 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
1286
1293
  initialExpanded,
1287
1294
  isComplete,
1288
1295
  isSkipped,
1296
+ isRunningInBackground,
1297
+ onFocusTerminal,
1289
1298
  hoverService,
1290
1299
  configurationService
1291
1300
  ) {
1292
- const title = isSkipped ? ( localize(7354, "Skipped {0}", commandText)) : isComplete ? ( localize(7355, "Ran {0}", commandText)) : ( localize(7356, "Running {0}", commandText));
1301
+ const title = isSkipped ? ( localize(7429, "Skipped {0}", commandText)) : isRunningInBackground ? ( localize(7430, "Running {0} in background", commandText)) : isComplete ? ( localize(7431, "Ran {0}", commandText)) : ( localize(7432, "Running {0}", commandText));
1293
1302
  super(title, context, undefined, hoverService, configurationService);
1303
+ this._showLinkDisposables = this._register(( new MutableDisposable()));
1294
1304
  this._terminalContentElement = contentElement;
1295
1305
  this._commandText = commandText;
1296
1306
  this._isSandboxWrapped = isSandboxWrapped;
1297
1307
  this._isComplete = isComplete;
1298
1308
  this._isSkipped = isSkipped;
1309
+ this._isRunningInBackground = isRunningInBackground;
1310
+ this._onFocusTerminal = onFocusTerminal;
1299
1311
  this.domNode.classList.add("chat-terminal-thinking-collapsible");
1300
1312
  if (isComplete) {
1301
1313
  this.icon = Codicon.check;
1302
1314
  }
1303
1315
  this._setCodeFormattedTitle();
1316
+ this._updateShowLink();
1304
1317
  this.setExpanded(initialExpanded);
1305
1318
  }
1306
1319
  _setCodeFormattedTitle() {
@@ -1310,8 +1323,8 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
1310
1323
  const labelElement = this._collapseButton.labelElement;
1311
1324
  labelElement.textContent = "";
1312
1325
  if (this._isSandboxWrapped) {
1313
- const prefixText = this._isSkipped ? ( localize(7357, "Skipped ")) : this._isComplete ? ( localize(7358, "Ran ")) : ( localize(7359, "Running "));
1314
- const suffixText = ( localize(7360, " in sandbox"));
1326
+ const prefixText = this._isSkipped ? ( localize(7433, "Skipped ")) : this._isComplete ? ( localize(7434, "Ran ")) : ( localize(7435, "Running "));
1327
+ const suffixText = this._isRunningInBackground ? ( localize(7436, " in sandbox (background)")) : ( localize(7437, " in sandbox"));
1315
1328
  labelElement.appendChild(createTextNode(prefixText));
1316
1329
  const codeElement = createElement("code");
1317
1330
  codeElement.textContent = this._commandText;
@@ -1319,20 +1332,56 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
1319
1332
  labelElement.appendChild(createTextNode(suffixText));
1320
1333
  return;
1321
1334
  }
1322
- const prefixText = this._isSkipped ? ( localize(7361, "Skipped ")) : this._isComplete ? ( localize(7362, "Ran ")) : ( localize(7363, "Running "));
1335
+ const prefixText = this._isSkipped ? ( localize(7438, "Skipped ")) : this._isComplete ? ( localize(7439, "Ran ")) : ( localize(7440, "Running "));
1323
1336
  const ranText = createTextNode(prefixText);
1324
1337
  const codeElement = createElement("code");
1325
1338
  codeElement.textContent = this._commandText;
1326
1339
  labelElement.appendChild(ranText);
1327
1340
  labelElement.appendChild(codeElement);
1341
+ if (this._isRunningInBackground) {
1342
+ labelElement.appendChild(createTextNode(( localize(7441, " in background"))));
1343
+ }
1344
+ }
1345
+ _updateShowLink() {
1346
+ this._showLinkElement?.remove();
1347
+ this._showLinkElement = undefined;
1348
+ this._showLinkDisposables.value = undefined;
1349
+ if (!this._isRunningInBackground || !this._onFocusTerminal || !this._collapseButton) {
1350
+ return;
1351
+ }
1352
+ const labelElement = this._collapseButton.labelElement;
1353
+ const store = ( new DisposableStore());
1354
+ this._showLinkDisposables.value = store;
1355
+ const container = $("span.chat-terminal-show-link-container");
1356
+ container.appendChild(createTextNode(" — "));
1357
+ const showLink = $("span.chat-terminal-show-link");
1358
+ showLink.textContent = ( localize(7442, "Show"));
1359
+ showLink.role = "button";
1360
+ showLink.tabIndex = 0;
1361
+ store.add(addDisposableListener(showLink, EventType.CLICK, e => {
1362
+ EventHelper.stop(e, true);
1363
+ this._onFocusTerminal?.();
1364
+ }));
1365
+ store.add(addDisposableListener(showLink, EventType.KEY_DOWN, e => {
1366
+ const keyboardEvent = ( new StandardKeyboardEvent(e));
1367
+ if (keyboardEvent.equals(KeyCode.Enter) || keyboardEvent.equals(KeyCode.Space)) {
1368
+ EventHelper.stop(e, true);
1369
+ this._onFocusTerminal?.();
1370
+ }
1371
+ }));
1372
+ container.appendChild(showLink);
1373
+ labelElement.appendChild(container);
1374
+ this._showLinkElement = container;
1328
1375
  }
1329
1376
  markComplete() {
1330
1377
  if (this._isComplete) {
1331
1378
  return;
1332
1379
  }
1333
1380
  this._isComplete = true;
1381
+ this._isRunningInBackground = false;
1334
1382
  this.icon = Codicon.check;
1335
1383
  this._setCodeFormattedTitle();
1384
+ this._updateShowLink();
1336
1385
  }
1337
1386
  initContent() {
1338
1387
  const listWrapper = $(".chat-used-context-list.chat-terminal-thinking-content");
@@ -1346,6 +1395,6 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
1346
1395
  return false;
1347
1396
  }
1348
1397
  };
1349
- ChatTerminalThinkingCollapsibleWrapper = ( __decorate([( __param(7, IHoverService)), ( __param(8, IConfigurationService))], ChatTerminalThinkingCollapsibleWrapper));
1398
+ ChatTerminalThinkingCollapsibleWrapper = ( __decorate([( __param(9, IHoverService)), ( __param(10, IConfigurationService))], ChatTerminalThinkingCollapsibleWrapper));
1350
1399
 
1351
1400
  export { ChatTerminalThinkingCollapsibleWrapper, ChatTerminalToolProgressPart };
@@ -54,7 +54,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
54
54
  this.domNode = elements.root;
55
55
  this.domNode.tabIndex = -1;
56
56
  this.domNode.setAttribute("role", "group");
57
- this.domNode.setAttribute("aria-label", ( localize(7364, "Tool confirmation carousel")));
57
+ this.domNode.setAttribute("aria-label", ( localize(7443, "Tool confirmation carousel")));
58
58
  this.collapsedTitle = elements.collapsedTitle;
59
59
  this.agentLabel = elements.agentLabel;
60
60
  this.contentContainer = elements.content;
@@ -74,7 +74,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
74
74
  small: true
75
75
  })));
76
76
  this.allowAllButton.element.classList.add("chat-tool-carousel-allow-all-button");
77
- this.allowAllButton.label = ( localize(7365, "Allow All"));
77
+ this.allowAllButton.label = ( localize(7444, "Allow All"));
78
78
  this._register(this.allowAllButton.onDidClick(() => this.allowAll()));
79
79
  this.expandContentButton = this._register(( new Button(elements.overlayActions, {
80
80
  ...defaultButtonStyles,
@@ -96,7 +96,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
96
96
  })));
97
97
  this.dismissButton.element.classList.add("chat-tool-carousel-dismiss-button");
98
98
  this.dismissButton.label = `$(${Codicon.close.id})`;
99
- const dismissButtonLabel = this.items.length === 1 ? ( localize(7366, "Skip")) : ( localize(7367, "Skip All"));
99
+ const dismissButtonLabel = this.items.length === 1 ? ( localize(7445, "Skip")) : ( localize(7446, "Skip All"));
100
100
  this.dismissButton.element.setAttribute("aria-label", dismissButtonLabel);
101
101
  this.dismissButton.element.title = dismissButtonLabel;
102
102
  this._register(this.dismissButton.onDidClick(() => this.skipAll()));
@@ -107,7 +107,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
107
107
  })));
108
108
  this.prevButton.element.classList.add("chat-tool-carousel-nav-arrow");
109
109
  this.prevButton.label = `$(${Codicon.chevronLeft.id})`;
110
- this.prevButton.element.setAttribute("aria-label", ( localize(7368, "Previous")));
110
+ this.prevButton.element.setAttribute("aria-label", ( localize(7447, "Previous")));
111
111
  this._register(this.prevButton.onDidClick(() => this.navigateRelative(-1)));
112
112
  this.nextButton = this._register(( new Button(elements.navArrows, {
113
113
  ...defaultButtonStyles,
@@ -116,7 +116,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
116
116
  })));
117
117
  this.nextButton.element.classList.add("chat-tool-carousel-nav-arrow");
118
118
  this.nextButton.label = `$(${Codicon.chevronRight.id})`;
119
- this.nextButton.element.setAttribute("aria-label", ( localize(7369, "Next")));
119
+ this.nextButton.element.setAttribute("aria-label", ( localize(7448, "Next")));
120
120
  this._register(this.nextButton.onDidClick(() => this.navigateRelative(1)));
121
121
  this._register(addDisposableListener(this.agentLabel, "click", e => {
122
122
  e.preventDefault();
@@ -308,7 +308,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
308
308
  if (item?.agentName) {
309
309
  this.agentLabel.textContent = `\u2014 ${item.agentName}`;
310
310
  this.agentLabel.disabled = !item.subAgentInvocationId || !item.scrollToSubagent;
311
- this.agentLabel.title = ( localize(7370, "Scroll to {0}", item.agentName));
311
+ this.agentLabel.title = ( localize(7449, "Scroll to {0}", item.agentName));
312
312
  this.agentLabel.setAttribute("aria-label", this.agentLabel.title);
313
313
  show(this.agentLabel);
314
314
  } else {
@@ -326,7 +326,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
326
326
  setVisibility(multi, this.nextButton.element);
327
327
  setVisibility(multi, this.allowAllButton.element);
328
328
  setVisibility(this.canExpandContent, this.expandContentButton.element);
329
- this.allowAllButton.label = multi ? ( localize(7365, "Allow All")) : ( localize(7371, "Allow"));
329
+ this.allowAllButton.label = multi ? ( localize(7444, "Allow All")) : ( localize(7450, "Allow"));
330
330
  this.updateExpandContentButton();
331
331
  }
332
332
  renderActiveContent() {
@@ -381,7 +381,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
381
381
  }
382
382
  updateExpandContentButton() {
383
383
  const expanded = this.canExpandContent && this._isContentExpanded;
384
- const label = expanded ? ( localize(7372, "Restore Confirmation Size")) : ( localize(7373, "Expand Confirmation Up"));
384
+ const label = expanded ? ( localize(7451, "Restore Confirmation Size")) : ( localize(7452, "Expand Confirmation Up"));
385
385
  this.expandContentButton.label = expanded ? `$(${Codicon.screenNormal.id})` : `$(${Codicon.screenFull.id})`;
386
386
  this.expandContentButton.element.setAttribute("aria-label", label);
387
387
  this.expandContentButton.element.setAttribute("aria-expanded", String(expanded));
@@ -78,8 +78,8 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
78
78
  this.render({
79
79
  allowActionId: AcceptToolConfirmationActionId,
80
80
  skipActionId: SkipToolConfirmationActionId,
81
- allowLabel: state.confirmationMessages.confirmResults ? ( localize(7374, "Allow and Review Once")) : ( localize(7375, "Allow Once")),
82
- skipLabel: ( localize(7376, "Proceed without running this tool")),
81
+ allowLabel: state.confirmationMessages.confirmResults ? ( localize(7453, "Allow and Review Once")) : ( localize(7454, "Allow Once")),
82
+ skipLabel: ( localize(7455, "Proceed without running this tool")),
83
83
  partType: "chatToolConfirmation",
84
84
  subtitle: typeof toolInvocation.originMessage === "string" ? toolInvocation.originMessage : toolInvocation.originMessage?.value
85
85
  });
@@ -125,7 +125,7 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
125
125
  }
126
126
  if (state.confirmationMessages?.confirmResults) {
127
127
  actions.unshift({
128
- label: ( localize(7377, "Allow and Skip Reviewing Result")),
128
+ label: ( localize(7456, "Allow and Skip Reviewing Result")),
129
129
  data: () => {
130
130
  state.confirmationMessages.confirmResults = undefined;
131
131
  this.confirmWith(this.toolInvocation, {
@@ -167,11 +167,11 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
167
167
  };
168
168
  const elements = h("div", [h(".message@messageContainer", [
169
169
  h(".message-wrapper@message"),
170
- h(".see-more@showMore", [h("a", [( localize(7378, "Show More"))])])
170
+ h(".see-more@showMore", [h("a", [( localize(7457, "Show More"))])])
171
171
  ]), h(".editor@editor"), h(".disclaimer@disclaimer")]);
172
172
  if (toolInvocation.toolSpecificData?.kind === "input" && toolInvocation.toolSpecificData.rawInput && !isEmptyObject(toolInvocation.toolSpecificData.rawInput)) {
173
173
  const titleEl = createElement("h3");
174
- titleEl.textContent = ( localize(7379, "Input"));
174
+ titleEl.textContent = ( localize(7458, "Input"));
175
175
  elements.editor.appendChild(titleEl);
176
176
  const inputData = toolInvocation.toolSpecificData;
177
177
  const codeBlockRenderOptions = {
@@ -241,7 +241,7 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
241
241
  elements.editor.append(editor.object.element);
242
242
  if (canSeeMore) {
243
243
  const seeMore = h("div.see-more", [h("a@link")]);
244
- seeMore.link.textContent = ( localize(7380, "See more"));
244
+ seeMore.link.textContent = ( localize(7459, "See more"));
245
245
  this._register(addDisposableGenericMouseDownListener(seeMore.link, () => {
246
246
  try {
247
247
  const parsed = JSON.parse(model.getValue());
@@ -2,22 +2,20 @@ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"
2
2
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
3
3
  import { IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
4
4
  import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
5
- import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
6
5
  import { IChatOutputRendererService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.service";
7
6
  import { IChatContentPartRenderContext } from "../chatContentParts.js";
7
+ import { IChatOutputPartStateCache } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatOutputPartStateCache.service";
8
8
  import { BaseChatToolInvocationSubPart } from "./chatToolInvocationSubPart.js";
9
- import { IChatToolOutputStateCache } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.service";
10
9
  export declare class ChatToolOutputSubPart extends BaseChatToolInvocationSubPart {
11
10
  private readonly context;
12
11
  private readonly onDidRemount;
13
12
  private readonly chatOutputItemRendererService;
14
- private readonly chatWidgetService;
15
13
  private readonly instantiationService;
16
14
  private readonly stateCache;
17
15
  readonly domNode: HTMLElement;
18
16
  readonly codeblocks: IChatCodeBlockInfo[];
19
17
  private readonly _disposeCts;
20
- constructor(toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, context: IChatContentPartRenderContext, onDidRemount: Event<void>, chatOutputItemRendererService: IChatOutputRendererService, chatWidgetService: IChatWidgetService, instantiationService: IInstantiationService, stateCache: IChatToolOutputStateCache);
18
+ constructor(toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, context: IChatContentPartRenderContext, onDidRemount: Event<void>, chatOutputItemRendererService: IChatOutputRendererService, instantiationService: IInstantiationService, stateCache: IChatOutputPartStateCache);
21
19
  dispose(): void;
22
20
  private createOutputPart;
23
21
  }
@@ -7,15 +7,13 @@ import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/
7
7
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
8
8
  import { isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
9
9
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
10
- import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
11
10
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
12
11
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
13
12
  import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
14
- import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
15
13
  import { IChatOutputRendererService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.service';
16
14
  import { ChatProgressSubPart } from '../chatProgressContentPart.js';
15
+ import { IChatOutputPartStateCache } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatOutputPartStateCache.service';
17
16
  import { BaseChatToolInvocationSubPart } from './chatToolInvocationSubPart.js';
18
- import { IChatToolOutputStateCache } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.service';
19
17
 
20
18
  let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvocationSubPart {
21
19
  constructor(
@@ -23,7 +21,6 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
23
21
  context,
24
22
  onDidRemount,
25
23
  chatOutputItemRendererService,
26
- chatWidgetService,
27
24
  instantiationService,
28
25
  stateCache
29
26
  ) {
@@ -31,7 +28,6 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
31
28
  this.context = context;
32
29
  this.onDidRemount = onDidRemount;
33
30
  this.chatOutputItemRendererService = chatOutputItemRendererService;
34
- this.chatWidgetService = chatWidgetService;
35
31
  this.instantiationService = instantiationService;
36
32
  this.stateCache = stateCache;
37
33
  this.codeblocks = [];
@@ -64,18 +60,14 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
64
60
  const parent = $("div.webview-output");
65
61
  parent.style.maxHeight = "80vh";
66
62
  const partState = this.stateCache.get(toolInvocation.toolCallId) ?? {
67
- height: 0,
68
- webviewOrigin: generateUuid()
63
+ height: 0
69
64
  };
70
65
  this.stateCache.set(toolInvocation.toolCallId, partState);
71
66
  if (partState.height) {
72
67
  parent.style.height = `${partState.height}px`;
73
68
  }
74
- if (partState.webviewOrigin) {
75
- partState.webviewOrigin = partState.webviewOrigin;
76
- }
77
69
  const progressMessage = $("span");
78
- progressMessage.textContent = ( localize(7381, "Rendering tool output..."));
70
+ progressMessage.textContent = ( localize(7460, "Rendering tool output..."));
79
71
  const progressPart = this._register(this.instantiationService.createInstance(
80
72
  ChatProgressSubPart,
81
73
  progressMessage,
@@ -84,8 +76,8 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
84
76
  ));
85
77
  parent.appendChild(progressPart.domNode);
86
78
  this.chatOutputItemRendererService.renderOutputPart(details.output.mimeType, details.output.value.buffer, parent, {
87
- origin: partState.webviewOrigin,
88
- webviewState: partState.webviewState
79
+ webviewState: partState.webviewState,
80
+ chatSessionResource: this.context.element.sessionResource
89
81
  }, this._disposeCts.token).then(renderedItem => {
90
82
  if (this._disposeCts.token.isCancellationRequested) {
91
83
  return;
@@ -98,13 +90,6 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
98
90
  this._register(renderedItem.onDidChangeHeight(newHeight => {
99
91
  partState.height = newHeight;
100
92
  }));
101
- this._register(renderedItem.webview.onDidWheel(e => {
102
- this.chatWidgetService.getWidgetBySessionResource(this.context.element.sessionResource)?.delegateScrollFromMouseWheelEvent({
103
- ...e,
104
- preventDefault: () => {},
105
- stopPropagation: () => {}
106
- });
107
- }));
108
93
  this._register(this.context.onDidChangeVisibility(visible => {
109
94
  if (visible) {
110
95
  renderedItem.reinitialize();
@@ -125,7 +110,7 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
125
110
  iconElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.error));
126
111
  errorHeaderNode.append(iconElement);
127
112
  const errorTitleNode = $(".output-error-title");
128
- errorTitleNode.textContent = ( localize(7382, "Error rendering the tool output"));
113
+ errorTitleNode.textContent = ( localize(7461, "Error rendering the tool output"));
129
114
  errorHeaderNode.append(errorTitleNode);
130
115
  const errorMessageNode = $(".output-error-details");
131
116
  errorMessageNode.textContent = error?.message || String(error);
@@ -135,6 +120,6 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
135
120
  return parent;
136
121
  }
137
122
  };
138
- ChatToolOutputSubPart = ( __decorate([( __param(3, IChatOutputRendererService)), ( __param(4, IChatWidgetService)), ( __param(5, IInstantiationService)), ( __param(6, IChatToolOutputStateCache))], ChatToolOutputSubPart));
123
+ ChatToolOutputSubPart = ( __decorate([( __param(3, IChatOutputRendererService)), ( __param(4, IInstantiationService)), ( __param(5, IChatOutputPartStateCache))], ChatToolOutputSubPart));
139
124
 
140
125
  export { ChatToolOutputSubPart };
@@ -26,20 +26,20 @@ function getApprovalMessageFromReason(reason) {
26
26
  let md;
27
27
  switch (reason.type) {
28
28
  case ToolConfirmKind.Setting:
29
- md = ( localize(7383, "Auto approved by {0}", createMarkdownCommandLink({
29
+ md = ( localize(7462, "Auto approved by {0}", createMarkdownCommandLink({
30
30
  text: "`" + reason.id + "`",
31
31
  id: "workbench.action.openSettings",
32
32
  arguments: [reason.id],
33
- tooltip: ( localize(7384, "Open settings"))
33
+ tooltip: ( localize(7463, "Open settings"))
34
34
  }, false)));
35
35
  break;
36
36
  case ToolConfirmKind.LmServicePerTool:
37
- md = reason.scope === "session" ? ( localize(7385, "Auto approved for this session")) : reason.scope === "workspace" ? ( localize(7386, "Auto approved for this workspace")) : ( localize(7387, "Auto approved for this profile"));
37
+ md = reason.scope === "session" ? ( localize(7464, "Auto approved for this session")) : reason.scope === "workspace" ? ( localize(7465, "Auto approved for this workspace")) : ( localize(7466, "Auto approved for this profile"));
38
38
  md += " (" + createMarkdownCommandLink({
39
- text: ( localize(7388, "Edit")),
39
+ text: ( localize(7467, "Edit")),
40
40
  id: "workbench.action.chat.editToolApproval",
41
41
  arguments: [reason.scope],
42
- tooltip: ( localize(7389, "Edit tool approval settings"))
42
+ tooltip: ( localize(7468, "Edit tool approval settings"))
43
43
  }) + ")";
44
44
  break;
45
45
  case ToolConfirmKind.ConfirmationNotNeeded:
@@ -46,8 +46,8 @@ let ChatToolPostExecuteConfirmationPart = class ChatToolPostExecuteConfirmationP
46
46
  this.render({
47
47
  allowActionId: AcceptToolPostConfirmationActionId,
48
48
  skipActionId: SkipToolPostConfirmationActionId,
49
- allowLabel: ( localize(7390, "Allow Once")),
50
- skipLabel: ( localize(7391, "Skip Results")),
49
+ allowLabel: ( localize(7469, "Allow Once")),
50
+ skipLabel: ( localize(7470, "Skip Results")),
51
51
  partType: "chatToolPostConfirmation",
52
52
  subtitle: typeof subtitle === "string" ? subtitle : subtitle?.value
53
53
  });
@@ -63,7 +63,7 @@ let ChatToolPostExecuteConfirmationPart = class ChatToolPostExecuteConfirmationP
63
63
  return this.createResultsDisplay(this.toolInvocation, state.contentForModel);
64
64
  }
65
65
  getTitle() {
66
- return localize(7392, "Approve Tool Result");
66
+ return localize(7471, "Approve Tool Result");
67
67
  }
68
68
  additionalPrimaryActions() {
69
69
  const actions = super.additionalPrimaryActions();
@@ -99,7 +99,7 @@ let ChatToolPostExecuteConfirmationPart = class ChatToolPostExecuteConfirmationP
99
99
  createResultsDisplay(toolInvocation, contentForModel) {
100
100
  const container = $(".tool-postconfirm-display");
101
101
  if (!contentForModel || contentForModel.length === 0) {
102
- container.textContent = ( localize(7393, "No results to display"));
102
+ container.textContent = ( localize(7472, "No results to display"));
103
103
  return container;
104
104
  }
105
105
  const parts = [];
@@ -214,7 +214,7 @@ let ChatToolPostExecuteConfirmationPart = class ChatToolPostExecuteConfirmationP
214
214
  outputSubPart.domNode.classList.add("tool-postconfirm-display");
215
215
  return outputSubPart.domNode;
216
216
  }
217
- container.textContent = ( localize(7394, "No displayable results"));
217
+ container.textContent = ( localize(7473, "No displayable results"));
218
218
  return container;
219
219
  }
220
220
  };
@@ -35,7 +35,7 @@ let ChatToolProgressSubPart = class ChatToolProgressSubPart extends BaseChatTool
35
35
  }
36
36
  createProgressPart() {
37
37
  const isComplete = IChatToolInvocation.isComplete(this.toolInvocation);
38
- if (isComplete && this.toolIsConfirmed && this.toolInvocation.pastTenseMessage) {
38
+ if (isComplete && this.toolIsConfirmed && (this.toolInvocation.pastTenseMessage || this.toolInvocation.invocationMessage)) {
39
39
  const key = this.getAnnouncementKey("complete");
40
40
  const completionContent = this.toolInvocation.pastTenseMessage ?? this.toolInvocation.invocationMessage;
41
41
  if (!this.hasMeaningfulContent(completionContent)) {
@@ -55,8 +55,8 @@ let ChatToolProgressSubPart = class ChatToolProgressSubPart extends BaseChatTool
55
55
  if (state.type === IChatToolInvocation.StateKind.Cancelled && state.reasonMessage) {
56
56
  progressContent = state.reasonMessage;
57
57
  } else if (state.type === IChatToolInvocation.StateKind.Executing) {
58
- const progress = state.progress.read(reader);
59
- progressContent = progress?.message ?? this.toolInvocation.invocationMessage;
58
+ const progressMessage = state.progress.read(reader)?.message;
59
+ progressContent = this.hasMeaningfulContent(progressMessage) ? progressMessage : this.toolInvocation.invocationMessage;
60
60
  } else {
61
61
  progressContent = this.toolInvocation.invocationMessage;
62
62
  }
@@ -25,8 +25,8 @@
25
25
  display: inline-flex;
26
26
  align-items: center;
27
27
  justify-content: center;
28
- min-width: 13px;
29
- font-size: 13px;
28
+ min-width: 12px;
29
+ font-size: 12px;
30
30
  line-height: 1;
31
31
  color: var(--tool-risk-accent, var(--vscode-descriptionForeground));
32
32
  }
@@ -48,7 +48,7 @@
48
48
  display: inline-flex;
49
49
  align-items: center;
50
50
  justify-content: center;
51
- font-size: 13px;
51
+ font-size: 12px;
52
52
  line-height: 1;
53
53
  color: var(--vscode-descriptionForeground);
54
54
  cursor: pointer;
@@ -6,6 +6,7 @@ import { IToolRiskAssessment } from "../../../tools/chatToolRiskAssessmentServic
6
6
  export declare class ToolRiskBadgeWidget extends Disposable {
7
7
  private readonly _hoverService;
8
8
  readonly domNode: HTMLElement;
9
+ get isDisposed(): boolean;
9
10
  private readonly _iconEl;
10
11
  private readonly _textEl;
11
12
  private readonly _detailsIconEl;