@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.
- package/package.json +3 -3
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
- package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.d.ts +30 -0
- package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.js +8 -0
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +32 -0
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +56 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +114 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +87 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +502 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +188 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +153 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +52 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +23 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +40 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +217 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +44 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +36 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +12 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +8 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +24 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +72 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +2 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +7 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/media/toolRiskBadge.css +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +25 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +41 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +31 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +89 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +203 -107
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +32 -81
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +4 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +29 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +27 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +17 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -69
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -2
- 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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
164
|
+
11796,
|
|
165
165
|
"Select mimetype to render for current output. Rich mimetypes are available only when the notebook is trusted"
|
|
166
|
-
)) : ( localize(
|
|
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(
|
|
198
|
+
return localize(11798, "built-in");
|
|
199
199
|
}
|
|
200
200
|
getCellOutputCurrentIndex() {
|
|
201
201
|
return this._diffElementViewModel.getNestedCellViewModel(this._diffSide).outputs.indexOf(this.output.model);
|
|
@@ -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(
|
|
18
|
-
const NOTEBOOK_DIFF_HAS_UNCHANGED_CELLS = ( new RawContextKey("notebook.diffEditor.hasUnchangedCells", undefined, ( localize(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
217
|
-
tooltip: ( localize(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
202
|
+
return localize(14453, "{0} (session)", `\`${escapedSourceText}\``);
|
|
203
203
|
}
|
|
204
204
|
const settingsUri = createCommandUri(TerminalChatCommandId.OpenTerminalSettingsLink, e.rule.sourceTarget);
|
|
205
|
-
const tooltip = ( localize(
|
|
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
|
-
|
|
236
|
+
14455,
|
|
237
237
|
"Auto approved by setting {0}",
|
|
238
|
-
`[\`${ChatConfiguration.GlobalAutoApprove}\`](${( settingsUri.toString())} "${( localize(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
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 (
|
|
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 (
|
|
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 &&
|
|
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(
|
|
479
|
-
localize(
|
|
480
|
-
localize(
|
|
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
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
* `
|
|
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
|
|
194
|
-
*
|
|
195
|
-
*
|
|
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;
|