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

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 +2 -2
  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
@@ -61,7 +61,7 @@ class CellDiffPlaceholderElement extends Disposable {
61
61
  constructor(placeholder, templateData) {
62
62
  super();
63
63
  templateData.body.classList.remove("left", "right", "full");
64
- const text = (placeholder.hiddenCells.length === 1) ? ( localize(11661, "{0} hidden cell", placeholder.hiddenCells.length)) : ( localize(11662, "{0} hidden cells", placeholder.hiddenCells.length));
64
+ const text = (placeholder.hiddenCells.length === 1) ? ( localize(11788, "{0} hidden cell", placeholder.hiddenCells.length)) : ( localize(11789, "{0} hidden cells", placeholder.hiddenCells.length));
65
65
  templateData.placeholder.innerText = text;
66
66
  this._register(addDisposableListener(templateData.placeholder, "dblclick", e => {
67
67
  if (e.button !== 0) {
@@ -1902,7 +1902,7 @@ class CollapsedCellOverlayWidget extends Disposable {
1902
1902
  display: "flex"
1903
1903
  }
1904
1904
  }, [$("a", {
1905
- title: ( localize(11663, "Show Unchanged Cells")),
1905
+ title: ( localize(11790, "Show Unchanged Cells")),
1906
1906
  role: "button",
1907
1907
  onclick: () => {
1908
1908
  this._action.fire();
@@ -1935,7 +1935,7 @@ class UnchangedCellOverlayWidget extends Disposable {
1935
1935
  display: "flex"
1936
1936
  }
1937
1937
  }, [$("a", {
1938
- title: ( localize(11664, "Hide Unchanged Cells")),
1938
+ title: ( localize(11791, "Hide Unchanged Cells")),
1939
1939
  role: "button",
1940
1940
  onclick: () => {
1941
1941
  this._action.fire();
@@ -48,7 +48,7 @@ class OutputElement extends Disposable {
48
48
  mimeTypePicker.classList.add(...ThemeIcon.asClassNameArray(mimetypeIcon));
49
49
  mimeTypePicker.tabIndex = 0;
50
50
  mimeTypePicker.title = ( localize(
51
- 11665,
51
+ 11792,
52
52
  "Choose a different output mimetype, available mimetypes: {0}",
53
53
  ( mimeTypes.map(mimeType => mimeType.mimeType)).join(", ")
54
54
  ));
@@ -105,13 +105,13 @@ class OutputElement extends Disposable {
105
105
  }
106
106
  _renderMissingRenderer(viewModel, preferredMimeType) {
107
107
  if (!viewModel.model.outputs.length) {
108
- return this._renderMessage(viewModel, ( localize(11666, "Cell has no output")));
108
+ return this._renderMessage(viewModel, ( localize(11793, "Cell has no output")));
109
109
  }
110
110
  if (!preferredMimeType) {
111
111
  const mimeTypes = ( viewModel.model.outputs.map(op => op.mime));
112
112
  const mimeTypesMessage = mimeTypes.join(", ");
113
113
  return this._renderMessage(viewModel, ( localize(
114
- 11667,
114
+ 11794,
115
115
  "No renderer could be found for output. It has the following mimetypes: {0}",
116
116
  mimeTypesMessage
117
117
  )));
@@ -154,16 +154,16 @@ class OutputElement extends Disposable {
154
154
  index: index,
155
155
  picked: index === currIndex,
156
156
  detail: this.generateRendererInfo(mimeType.rendererId),
157
- description: index === currIndex ? ( localize(11668, "Currently Active")) : undefined
157
+ description: index === currIndex ? ( localize(11795, "Currently Active")) : undefined
158
158
  })));
159
159
  const disposables = ( new DisposableStore());
160
160
  const picker = disposables.add(this._quickInputService.createQuickPick());
161
161
  picker.items = items;
162
162
  picker.activeItems = items.filter(item => !!item.picked);
163
163
  picker.placeholder = items.length !== mimeTypes.length ? ( localize(
164
- 11669,
164
+ 11796,
165
165
  "Select mimetype to render for current output. Rich mimetypes are available only when the notebook is trusted"
166
- )) : ( localize(11670, "Select mimetype to render for current output"));
166
+ )) : ( localize(11797, "Select mimetype to render for current output"));
167
167
  const pick = await ( new Promise(resolve => {
168
168
  disposables.add(picker.onDidAccept(() => {
169
169
  resolve(
@@ -195,7 +195,7 @@ class OutputElement extends Disposable {
195
195
  const displayName = renderInfo.displayName !== "" ? renderInfo.displayName : renderInfo.id;
196
196
  return `${displayName} (${renderInfo.extensionId.value})`;
197
197
  }
198
- return localize(11671, "built-in");
198
+ return localize(11798, "built-in");
199
199
  }
200
200
  getCellOutputCurrentIndex() {
201
201
  return this._diffElementViewModel.getNestedCellViewModel(this._diffSide).outputs.indexOf(this.output.model);
@@ -316,7 +316,7 @@ let NotebookTextDiffEditor = class NotebookTextDiffEditor extends EditorPane {
316
316
  return null;
317
317
  },
318
318
  getWidgetAriaLabel() {
319
- return localize(11692, "Notebook Text Diff");
319
+ return localize(11819, "Notebook Text Diff");
320
320
  }
321
321
  }
322
322
  }
@@ -14,18 +14,18 @@ const NOTEBOOK_DIFF_CELL_IGNORE_WHITESPACE_KEY = "notebook.diffEditor.cell.ignor
14
14
  const NOTEBOOK_DIFF_CELL_IGNORE_WHITESPACE = ( new RawContextKey(NOTEBOOK_DIFF_CELL_IGNORE_WHITESPACE_KEY, false));
15
15
  const NOTEBOOK_DIFF_CELL_PROPERTY = ( new RawContextKey("notebook.diffEditor.cell.property.changed", false));
16
16
  const NOTEBOOK_DIFF_CELL_PROPERTY_EXPANDED = ( new RawContextKey("notebook.diffEditor.cell.property.expanded", false));
17
- const NOTEBOOK_DIFF_CELLS_COLLAPSED = ( new RawContextKey("notebook.diffEditor.allCollapsed", undefined, ( localize(11693, "Whether all cells in notebook diff editor are collapsed"))));
18
- const NOTEBOOK_DIFF_HAS_UNCHANGED_CELLS = ( new RawContextKey("notebook.diffEditor.hasUnchangedCells", undefined, ( localize(11694, "Whether there are unchanged cells in the notebook diff editor"))));
17
+ const NOTEBOOK_DIFF_CELLS_COLLAPSED = ( new RawContextKey("notebook.diffEditor.allCollapsed", undefined, ( localize(11820, "Whether all cells in notebook diff editor are collapsed"))));
18
+ const NOTEBOOK_DIFF_HAS_UNCHANGED_CELLS = ( new RawContextKey("notebook.diffEditor.hasUnchangedCells", undefined, ( localize(11821, "Whether there are unchanged cells in the notebook diff editor"))));
19
19
  const NOTEBOOK_DIFF_UNCHANGED_CELLS_HIDDEN = ( new RawContextKey("notebook.diffEditor.unchangedCellsAreHidden", undefined, ( localize(
20
- 11695,
20
+ 11822,
21
21
  "Whether the unchanged cells in the notebook diff editor are hidden"
22
22
  ))));
23
23
  const NOTEBOOK_DIFF_ITEM_KIND = ( new RawContextKey("notebook.diffEditor.item.kind", undefined, ( localize(
24
- 11696,
24
+ 11823,
25
25
  "The kind of item in the notebook diff editor, Cell, Metadata or Output"
26
26
  ))));
27
27
  const NOTEBOOK_DIFF_ITEM_DIFF_STATE = ( new RawContextKey("notebook.diffEditor.item.state", undefined, ( localize(
28
- 11697,
28
+ 11824,
29
29
  "The diff state of item in the notebook diff editor, delete, insert, modified or unchanged"
30
30
  ))));
31
31
 
@@ -82,7 +82,7 @@ let CellDiffPlaceholderRenderer = class CellDiffPlaceholderRenderer {
82
82
  const marginOverlay = ( new CollapsedCellOverlayWidget(body));
83
83
  const contents = append(body, $(".contents"));
84
84
  const placeholder = append(contents, $("span.text", {
85
- title: ( localize(11698, "Double click to show"))
85
+ title: ( localize(11825, "Double click to show"))
86
86
  }));
87
87
  return {
88
88
  body,
@@ -243,7 +243,7 @@ let ReplEditor = class ReplEditor extends EditorPane {
243
243
  ...editorOptions,
244
244
  ...editorOptionsOverride,
245
245
  ...{
246
- ariaLabel: ( localize(12656, "REPL Input")),
246
+ ariaLabel: ( localize(12786, "REPL Input")),
247
247
  glyphMargin: true,
248
248
  padding: {
249
249
  top: INPUT_EDITOR_PADDING,
@@ -23,7 +23,7 @@ import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscod
23
23
  import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
24
24
 
25
25
  var ReplEditorInput_1;
26
- const replTabIcon = registerIcon("repl-editor-label-icon", Codicon.debugLineByLine, ( localize(12670, "Icon of the REPL editor label.")));
26
+ const replTabIcon = registerIcon("repl-editor-label-icon", Codicon.debugLineByLine, ( localize(12800, "Icon of the REPL editor label.")));
27
27
  let ReplEditorInput = class ReplEditorInput extends NotebookEditorInput {
28
28
  static {
29
29
  ReplEditorInput_1 = this;
@@ -166,7 +166,7 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
166
166
  const firstSubcommandFirstWord = unapprovedSubCommands.length > 0 ? unapprovedSubCommands[0].split(" ")[0] : "";
167
167
  if (firstSubcommandFirstWord !== commandLine && !( commandsWithSubcommands.has(commandLine)) && !( commandsWithSubSubCommands.has(commandLine))) {
168
168
  actions.push({
169
- label: ( localize(14311, "Allow Exact Command Line in this Session")),
169
+ label: ( localize(14441, "Allow Exact Command Line in this Session")),
170
170
  data: {
171
171
  type: "newRule",
172
172
  rule: {
@@ -180,7 +180,7 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
180
180
  }
181
181
  });
182
182
  actions.push({
183
- label: ( localize(14312, "Allow Exact Command Line in this Workspace")),
183
+ label: ( localize(14442, "Allow Exact Command Line in this Workspace")),
184
184
  data: {
185
185
  type: "newRule",
186
186
  rule: {
@@ -194,7 +194,7 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
194
194
  }
195
195
  });
196
196
  actions.push({
197
- label: ( localize(14313, "Always Allow Exact Command Line")),
197
+ label: ( localize(14443, "Always Allow Exact Command Line")),
198
198
  data: {
199
199
  type: "newRule",
200
200
  rule: {
@@ -213,15 +213,15 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
213
213
  actions.push(( new Separator()));
214
214
  }
215
215
  actions.push({
216
- label: ( localize(14314, "Allow All Commands in this Session")),
217
- tooltip: ( localize(14315, "Allow this tool to run in this session without confirmation.")),
216
+ label: ( localize(14444, "Allow All Commands in this Session")),
217
+ tooltip: ( localize(14445, "Allow this tool to run in this session without confirmation.")),
218
218
  data: {
219
219
  type: "sessionApproval"
220
220
  }
221
221
  });
222
222
  actions.push(( new Separator()));
223
223
  actions.push({
224
- label: ( localize(14316, "Configure Auto Approve...")),
224
+ label: ( localize(14446, "Configure Auto Approve...")),
225
225
  data: {
226
226
  type: "configure"
227
227
  }
@@ -119,6 +119,7 @@ let ToolTerminalCreator = class ToolTerminalCreator {
119
119
  _createCopilotTerminal(shellOrProfile, os) {
120
120
  const shellPath = isString(shellOrProfile) ? shellOrProfile : shellOrProfile.path;
121
121
  const env = {
122
+ COPILOT_AGENT: "1",
122
123
  GIT_PAGER: "cat",
123
124
  GIT_MERGE_AUTOEDIT: "no",
124
125
  GIT_EDITOR: ":"
@@ -129,6 +130,9 @@ let ToolTerminalCreator = class ToolTerminalCreator {
129
130
  env["VSCODE_PREVENT_SHELL_HISTORY"] = "1";
130
131
  }
131
132
  }
133
+ if (isZsh(shellPath, os)) {
134
+ env["VSCODE_AGENT_ZSH_FIXUPS"] = "1";
135
+ }
132
136
  const config = {
133
137
  icon: ThemeIcon.fromId(Codicon.chatSparkle.id),
134
138
  hideFromUser: true,
@@ -154,7 +154,7 @@ let NpmScriptAutoApprover = class NpmScriptAutoApprover extends Disposable {
154
154
  isAutoApproved: true,
155
155
  scriptName,
156
156
  autoApproveInfo: ( new MarkdownString(( localize(
157
- 14319,
157
+ 14449,
158
158
  "Auto approved as {0} is defined in package.json",
159
159
  `\`${scriptName}\``
160
160
  ))))
@@ -56,7 +56,7 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
56
56
  isAutoApproved: true,
57
57
  isAutoApproveAllowed: true,
58
58
  disclaimers: [],
59
- autoApproveInfo: ( new MarkdownString(`${( localize(14320, "Auto approved for this session"))} ([${( localize(14321, "Disable"))}](${( disableUri.toString())}))`, mdTrustSettings))
59
+ autoApproveInfo: ( new MarkdownString(`${( localize(14450, "Auto approved for this session"))} ([${( localize(14451, "Disable"))}](${( disableUri.toString())}))`, mdTrustSettings))
60
60
  };
61
61
  }
62
62
  const trimmedCommandLine = options.commandLine.trimStart();
@@ -158,7 +158,7 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
158
158
  const subCommandsLowerFirstWordOnly = ( subCommands.map(command => command.split(" ")[0].toLowerCase()));
159
159
  if (!isAutoApproved && (( subCommandsLowerFirstWordOnly.some(command => promptInjectionWarningCommandsLower.includes(command))) || (isPowerShell(options.shell, options.os) && ( subCommandsLowerFirstWordOnly.some(command => promptInjectionWarningCommandsLowerPwshOnly.includes(command)))))) {
160
160
  disclaimers.push(( localize(
161
- 14322,
161
+ 14452,
162
162
  "Web content may contain malicious code or attempt prompt injection attacks."
163
163
  )));
164
164
  }
@@ -199,10 +199,10 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
199
199
  return ( asArray(result).filter(e => isAutoApproveRule(e.rule)).map(e => {
200
200
  const escapedSourceText = e.rule.sourceText.replaceAll("$", "\\$");
201
201
  if (e.rule.sourceTarget === "session") {
202
- return localize(14323, "{0} (session)", `\`${escapedSourceText}\``);
202
+ return localize(14453, "{0} (session)", `\`${escapedSourceText}\``);
203
203
  }
204
204
  const settingsUri = createCommandUri(TerminalChatCommandId.OpenTerminalSettingsLink, e.rule.sourceTarget);
205
- const tooltip = ( localize(14324, "View rule in settings"));
205
+ const tooltip = ( localize(14454, "View rule in settings"));
206
206
  let label = escapedSourceText;
207
207
  switch (e.rule?.sourceTarget) {
208
208
  case ConfigurationTarget.DEFAULT:
@@ -233,9 +233,9 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
233
233
  if (isGlobalAutoApproved) {
234
234
  const settingsUri = createCommandUri(TerminalChatCommandId.OpenTerminalSettingsLink, "global");
235
235
  return (new MarkdownString(`${( localize(
236
- 14325,
236
+ 14455,
237
237
  "Auto approved by setting {0}",
238
- `[\`${ChatConfiguration.GlobalAutoApprove}\`](${( settingsUri.toString())} "${( localize(14326, "View settings"))}")`
238
+ `[\`${ChatConfiguration.GlobalAutoApprove}\`](${( settingsUri.toString())} "${( localize(14456, "View settings"))}")`
239
239
  ))}`, mdTrustSettings));
240
240
  }
241
241
  if (isAutoApproved) {
@@ -244,7 +244,7 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
244
244
  {
245
245
  if (isAutoApproveRule(commandLineResult.rule)) {
246
246
  return (new MarkdownString(
247
- localize(14327, "Auto approved by rule {0}", formatRuleLinks(commandLineResult)),
247
+ localize(14457, "Auto approved by rule {0}", formatRuleLinks(commandLineResult)),
248
248
  mdTrustSettings
249
249
  ));
250
250
  }
@@ -259,12 +259,12 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
259
259
  const uniqueRules = dedupeRules(subCommandResults);
260
260
  if (uniqueRules.length === 1) {
261
261
  return (new MarkdownString(
262
- localize(14327, "Auto approved by rule {0}", formatRuleLinks(uniqueRules)),
262
+ localize(14457, "Auto approved by rule {0}", formatRuleLinks(uniqueRules)),
263
263
  mdTrustSettings
264
264
  ));
265
265
  } else if (uniqueRules.length > 1) {
266
266
  return (new MarkdownString(
267
- localize(14328, "Auto approved by rules {0}", formatRuleLinks(uniqueRules)),
267
+ localize(14458, "Auto approved by rules {0}", formatRuleLinks(uniqueRules)),
268
268
  mdTrustSettings
269
269
  ));
270
270
  }
@@ -277,7 +277,7 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
277
277
  {
278
278
  if (commandLineResult.rule) {
279
279
  return (new MarkdownString(localize(
280
- 14329,
280
+ 14459,
281
281
  "Auto approval denied by rule {0}",
282
282
  formatRuleLinks(commandLineResult)
283
283
  ), mdTrustSettings));
@@ -289,12 +289,12 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
289
289
  const uniqueRules = dedupeRules(subCommandResults.filter(e => e.result === "denied"));
290
290
  if (uniqueRules.length === 1) {
291
291
  return (new MarkdownString(
292
- localize(14329, "Auto approval denied by rule {0}", formatRuleLinks(uniqueRules)),
292
+ localize(14459, "Auto approval denied by rule {0}", formatRuleLinks(uniqueRules)),
293
293
  mdTrustSettings
294
294
  ));
295
295
  } else if (uniqueRules.length > 1) {
296
296
  return (new MarkdownString(
297
- localize(14330, "Auto approval denied by rules {0}", formatRuleLinks(uniqueRules)),
297
+ localize(14460, "Auto approval denied by rules {0}", formatRuleLinks(uniqueRules)),
298
298
  mdTrustSettings
299
299
  ));
300
300
  }
@@ -114,10 +114,10 @@ let CommandLineFileWriteAnalyzer = class CommandLineFileWriteAnalyzer extends Di
114
114
  }
115
115
  }
116
116
  const fileUri = URI.isUri(fileWrite) ? fileWrite : URI.file(fileWrite);
117
- if (fileUri.fsPath.match(/[$\(\){}`]/)) {
117
+ if (fileUri.fsPath.match(/[$\(\){}`~]/)) {
118
118
  isAutoApproveAllowed = false;
119
119
  this._log(
120
- "File write blocked due to likely containing a variable or sub-command",
120
+ "File write blocked due to likely containing a variable, sub-command, or tilde expansion",
121
121
  ( fileUri.toString())
122
122
  );
123
123
  break;
@@ -152,12 +152,12 @@ let CommandLineFileWriteAnalyzer = class CommandLineFileWriteAnalyzer extends Di
152
152
  )).join(", ");
153
153
  if (!isAutoApproveAllowed) {
154
154
  disclaimers.push(( localize(
155
- 14331,
155
+ 14461,
156
156
  "File write operations detected that cannot be auto approved: {0}",
157
157
  fileWritesList
158
158
  )));
159
159
  } else {
160
- disclaimers.push(( localize(14332, "File write operations detected: {0}", fileWritesList)));
160
+ disclaimers.push(( localize(14462, "File write operations detected: {0}", fileWritesList)));
161
161
  }
162
162
  }
163
163
  return {
@@ -129,15 +129,37 @@ export declare function matchTerminalPromptOption(options: readonly string[], su
129
129
  */
130
130
  export declare function detectsHighConfidenceInputPattern(cursorLine: string): boolean;
131
131
  /**
132
- * Full set of input-required patterns including broader heuristics (bare `:` and
133
- * `?` with trailing space). These may produce false positives on normal command
134
- * output, so they should only be used **after** the terminal has been confirmed
135
- * idle through normal polling (consecutive idle events with no data). In
136
- * `_waitForIdle`, these are checked only when `recentlyIdle` is true (to handle
137
- * active executions that are actually waiting for input). For the unconditional
138
- * fast-path, use {@link detectsHighConfidenceInputPattern} instead.
132
+ * Strict input-required detection. Returns true only for patterns that are
133
+ * specific enough to avoid false positives on normal command output (build
134
+ * logs, status lines, error messages). Safe to call from any code path,
135
+ * including unconditionally on the last line of a finished command.
136
+ *
137
+ * For the broader heuristics (bare `:` / `?` with trailing space), use
138
+ * {@link detectsLikelyInputRequiredPattern} — but only from a call site that
139
+ * has independent evidence the command is still running and consuming stdin
140
+ * (e.g. `execution.isActive() === true`). Those broad patterns cannot
141
+ * reliably distinguish a real prompt like `Enter your name: ` from log
142
+ * output like `Last Command: ` on a single line.
139
143
  */
140
144
  export declare function detectsInputRequiredPattern(cursorLine: string): boolean;
145
+ /**
146
+ * Strict patterns plus broader heuristics (bare `:` and `?` with trailing
147
+ * space). These broad patterns may produce false positives on normal command
148
+ * output that happens to end with those characters (e.g. `Last Command: `,
149
+ * `[INFO] Starting: `, `find: /tmp/x: No such file: `). They are
150
+ * syntactically indistinguishable from real prompts like `Enter your name: `
151
+ * on a single cursor line.
152
+ *
153
+ * Therefore this function is only safe to call when the caller has
154
+ * independent evidence that the terminal is currently consuming stdin —
155
+ * specifically, `execution.isActive() === true` at a moment when the output
156
+ * stream has been quiet (idle) for several poll intervals. `_waitForIdle`
157
+ * applies that gate; new call sites should preserve it.
158
+ *
159
+ * For unconditional checks (e.g. on the last line of a finished command),
160
+ * use {@link detectsInputRequiredPattern} instead.
161
+ */
162
+ export declare function detectsLikelyInputRequiredPattern(cursorLine: string): boolean;
141
163
  export declare function detectsNonInteractiveHelpPattern(cursorLine: string): boolean;
142
164
  /**
143
165
  * Detects VS Code's specific task completion messages like:
@@ -282,8 +282,24 @@ let OutputMonitor = class OutputMonitor extends Disposable {
282
282
  shouldContinuePolling: true
283
283
  };
284
284
  }
285
+ let shouldFireInputNeeded = detectsInputRequiredPattern(outputLastLine);
286
+ if (!shouldFireInputNeeded && detectsLikelyInputRequiredPattern(outputLastLine)) {
287
+ const isActive = this._execution.isActive ? await this._execution.isActive() : undefined;
288
+ if (isActive === true) {
289
+ shouldFireInputNeeded = true;
290
+ }
291
+ }
292
+ if (shouldFireInputNeeded && this._userInputtedSinceIdleDetected) {
293
+ this._logService.trace(
294
+ "OutputMonitor: User input detected during isActive await; skipping prompt and continuing polling"
295
+ );
296
+ this._cleanupIdleInputListener();
297
+ return {
298
+ shouldContinuePolling: true
299
+ };
300
+ }
285
301
  if (this._asyncMode) {
286
- if (detectsInputRequiredPattern(outputLastLine)) {
302
+ if (shouldFireInputNeeded) {
287
303
  if (detectsSensitiveInputPrompt(outputLastLine)) {
288
304
  this._logService.trace(
289
305
  "OutputMonitor: Async mode - sensitive input prompt detected, signaling sensitive UI"
@@ -302,7 +318,7 @@ let OutputMonitor = class OutputMonitor extends Disposable {
302
318
  output
303
319
  };
304
320
  }
305
- if (detectsInputRequiredPattern(outputLastLine)) {
321
+ if (shouldFireInputNeeded) {
306
322
  if (detectsSensitiveInputPrompt(outputLastLine)) {
307
323
  this._logService.trace("OutputMonitor: Sensitive input prompt detected, signaling sensitive UI");
308
324
  this._onDidDetectSensitiveInputNeeded.fire();
@@ -399,7 +415,7 @@ let OutputMonitor = class OutputMonitor extends Disposable {
399
415
  this._setupIdleInputListener();
400
416
  return this._state;
401
417
  }
402
- if (recentlyIdle && isActive === true && detectsInputRequiredPattern(currentLastLine)) {
418
+ if (recentlyIdle && isActive === true && detectsLikelyInputRequiredPattern(currentLastLine)) {
403
419
  this._logService.trace(
404
420
  `OutputMonitor: waitForIdle -> broad input pattern detected while active+idle (waited=${waited}ms, lastLine=${this._formatLastLineForLog(currentTail)})`
405
421
  );
@@ -445,7 +461,7 @@ function detectsHighConfidenceInputPattern(cursorLine) {
445
461
  /(?:\(|\[)\s*(?:y(?:es)?\s*\/\s*n(?:o)?|n(?:o)?\s*\/\s*y(?:es)?)\s*(?:\]|\))\s+$/i,
446
462
  /[?:]\s*(?:\(|\[)?\s*y(?:es)?\s*\/\s*n(?:o)?\s*(?:\]|\))?\s+$/i,
447
463
  /\(y\) +$/i,
448
- /:\s*\([^)]*\) +$/,
464
+ /:\s+\([^)]*\) +$/,
449
465
  /\(END\)$/,
450
466
  /password(?: for [^:]+)?:\s*$/i,
451
467
  /press a(?:ny)? key/i,
@@ -453,6 +469,9 @@ function detectsHighConfidenceInputPattern(cursorLine) {
453
469
  ].some(e => e.test(cursorLine)));
454
470
  }
455
471
  function detectsInputRequiredPattern(cursorLine) {
472
+ return detectsHighConfidenceInputPattern(cursorLine);
473
+ }
474
+ function detectsLikelyInputRequiredPattern(cursorLine) {
456
475
  if (detectsHighConfidenceInputPattern(cursorLine)) {
457
476
  return true;
458
477
  }
@@ -475,9 +494,9 @@ function detectsNonInteractiveHelpPattern(cursorLine) {
475
494
  ].some(e => e.test(cursorLine)));
476
495
  }
477
496
  const taskFinishMessages = [(
478
- localize(14345, "Terminal will be reused by tasks, press any key to close it.")), ( localize(14346, "Terminal will be reused by tasks, press any key to close it.")), (
479
- localize(14347, "Press any key to close the terminal.")), ( localize(14348, "Press any key to close the terminal.")), (
480
- localize(14349, "The terminal will be reused by tasks. Press any key to close."))];
497
+ localize(14475, "Terminal will be reused by tasks, press any key to close it.")), ( localize(14476, "Terminal will be reused by tasks, press any key to close it.")), (
498
+ localize(14477, "Press any key to close the terminal.")), ( localize(14478, "Press any key to close the terminal.")), (
499
+ localize(14479, "The terminal will be reused by tasks. Press any key to close."))];
481
500
  const normalizedTaskFinishMessages = ( taskFinishMessages.map(msg => msg.replace(/[\s.,:;!?"'`()[\]{}<>\-_/\\]+/g, "").toLowerCase()));
482
501
  function detectsVSCodeTaskFinishMessage(cursorLine) {
483
502
  const compact = cursorLine.replace(/[\s.,:;!?"'`()[\]{}<>\-_/\\]+/g, "").toLowerCase();
@@ -490,4 +509,4 @@ function detectsGenericPressAnyKeyPattern(cursorLine) {
490
509
  return /press a(?:ny)? key/i.test(cursorLine);
491
510
  }
492
511
 
493
- export { OutputMonitor, detectsGenericPressAnyKeyPattern, detectsHighConfidenceInputPattern, detectsInputRequiredPattern, detectsNonInteractiveHelpPattern, detectsSensitiveInputPrompt, detectsVSCodeTaskFinishMessage, getLastLine };
512
+ export { OutputMonitor, detectsGenericPressAnyKeyPattern, detectsHighConfidenceInputPattern, detectsInputRequiredPattern, detectsLikelyInputRequiredPattern, detectsNonInteractiveHelpPattern, detectsSensitiveInputPrompt, detectsVSCodeTaskFinishMessage, getLastLine };
@@ -11,6 +11,7 @@ import { ITerminalProfile } from "@codingame/monaco-vscode-api/vscode/vs/platfor
11
11
  import { ITerminalLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service";
12
12
  import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
13
13
  import { IHistoryService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/history/common/history.service";
14
+ import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service";
14
15
  import { IRemoteAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteAgentService.service";
15
16
  import { IAgentSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.service";
16
17
  import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
@@ -112,13 +113,20 @@ export declare class RunInTerminalTool extends Disposable implements IToolImpl {
112
113
  * after an `inputNeeded` race disposes the prior OutputMonitor.
113
114
  */
114
115
  private readonly _backgroundNotifications;
116
+ /**
117
+ * Set when VS Code is shutting down. Suppresses "terminal exited"
118
+ * notifications that would otherwise be generated when background
119
+ * terminals are disposed during shutdown and then persist as
120
+ * undeliverable steering messages after restart.
121
+ */
122
+ private _isShuttingDown;
115
123
  protected readonly _osBackend: Promise<OperatingSystem>;
116
124
  private static readonly _activeExecutions;
117
125
  /**
118
- * Terminal IDs currently being disposed by `kill_terminal`. Used to
119
- * suppress redundant steering messages in `_registerCompletionNotification`'s
120
- * `onDisposed` handler the agent already receives the output through the
121
- * `kill_terminal` tool result.
126
+ * Terminal IDs being programmatically disposed (by `kill_terminal` or
127
+ * automatic background-terminal cleanup). Used to suppress the redundant
128
+ * "terminal exited" steering message in `_registerCompletionNotification`'s
129
+ * `onDisposed` handler.
122
130
  */
123
131
  private static readonly _killedByTool;
124
132
  static getBackgroundOutput(id: string): string;
@@ -153,7 +161,7 @@ export declare class RunInTerminalTool extends Disposable implements IToolImpl {
153
161
  * sandboxing enablement for the running window.
154
162
  */
155
163
  protected get _enableCommandLineSandboxRewriting(): boolean;
156
- constructor(_chatService: IChatService, _configurationService: IConfigurationService, _fileService: IFileService, _historyService: IHistoryService, _instantiationService: IInstantiationService, _labelService: ILabelService, _languageModelToolsService: ILanguageModelToolsService, _remoteAgentService: IRemoteAgentService, _storageService: IStorageService, _terminalChatService: ITerminalChatService, _logService: ITerminalLogService, _terminalService: ITerminalService, _terminalSandboxService: ITerminalSandboxService, _workspaceContextService: IWorkspaceContextService, _chatWidgetService: IChatWidgetService, _agentSessionsService: IAgentSessionsService);
164
+ constructor(_chatService: IChatService, _configurationService: IConfigurationService, _fileService: IFileService, _historyService: IHistoryService, _instantiationService: IInstantiationService, _labelService: ILabelService, _languageModelToolsService: ILanguageModelToolsService, _remoteAgentService: IRemoteAgentService, _storageService: IStorageService, _terminalChatService: ITerminalChatService, _logService: ITerminalLogService, _terminalService: ITerminalService, _terminalSandboxService: ITerminalSandboxService, _workspaceContextService: IWorkspaceContextService, _chatWidgetService: IChatWidgetService, _agentSessionsService: IAgentSessionsService, lifecycleService: ILifecycleService);
157
165
  handleToolStream(context: IToolInvocationStreamContext, _token: CancellationToken): Promise<IStreamedToolInvocation | undefined>;
158
166
  prepareToolInvocation(context: IToolInvocationPreparationContext, token: CancellationToken): Promise<IPreparedToolInvocation | undefined>;
159
167
  private _formatBlockedDomainsForTitle;
@@ -190,9 +198,10 @@ export declare class RunInTerminalTool extends Disposable implements IToolImpl {
190
198
  * tokens) must never be routed through `vscode_askQuestions`
191
199
  * because answers to that tool are sent through the model — the
192
200
  * user is told to type those values directly into the terminal.
193
- * `kill_terminal` is only advertised on the timeout branch suggesting it
194
- * in the general case leads the model to terminate valid interactive
195
- * sessions (e.g. `npm init`) instead of driving them.
201
+ * `kill_terminal` is only advertised when the command may be hung
202
+ * (`'timeout'` or `'idleSilence'`) suggesting it in the general case
203
+ * leads the model to terminate valid interactive sessions (e.g.
204
+ * `npm init`) instead of driving them.
196
205
  */
197
206
  private _buildInputNeededSteeringText;
198
207
  private _getOutputAnalyzerMessage;