@codingame/monaco-vscode-katex-common 32.0.0 → 32.0.2
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 +2 -2
- 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 +3 -3
- 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/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.js +2 -2
- 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.js +6 -6
- 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.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -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.js +2 -2
- 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/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 +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +18 -18
- 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.js +2 -2
- 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/toolRiskBadgeWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +15 -15
- 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.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +41 -41
- 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/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +2 -2
- 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/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/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 +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +53 -53
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +4 -4
|
@@ -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(14320, "Auto approved for this session"))} ([${( localize(14321, "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
|
+
14322,
|
|
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(14323, "{0} (session)", `\`${escapedSourceText}\``);
|
|
203
203
|
}
|
|
204
204
|
const settingsUri = createCommandUri(TerminalChatCommandId.OpenTerminalSettingsLink, e.rule.sourceTarget);
|
|
205
|
-
const tooltip = ( localize(
|
|
205
|
+
const tooltip = ( localize(14324, "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
|
+
14325,
|
|
237
237
|
"Auto approved by setting {0}",
|
|
238
|
-
`[\`${ChatConfiguration.GlobalAutoApprove}\`](${( settingsUri.toString())} "${( localize(
|
|
238
|
+
`[\`${ChatConfiguration.GlobalAutoApprove}\`](${( settingsUri.toString())} "${( localize(14326, "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(14327, "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(14327, "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(14328, "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
|
+
14329,
|
|
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(14329, "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(14330, "Auto approval denied by rules {0}", formatRuleLinks(uniqueRules)),
|
|
298
298
|
mdTrustSettings
|
|
299
299
|
));
|
|
300
300
|
}
|
|
@@ -152,12 +152,12 @@ let CommandLineFileWriteAnalyzer = class CommandLineFileWriteAnalyzer extends Di
|
|
|
152
152
|
)).join(", ");
|
|
153
153
|
if (!isAutoApproveAllowed) {
|
|
154
154
|
disclaimers.push(( localize(
|
|
155
|
-
|
|
155
|
+
14331,
|
|
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(14332, "File write operations detected: {0}", fileWritesList)));
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
return {
|
|
@@ -475,9 +475,9 @@ function detectsNonInteractiveHelpPattern(cursorLine) {
|
|
|
475
475
|
].some(e => e.test(cursorLine)));
|
|
476
476
|
}
|
|
477
477
|
const taskFinishMessages = [(
|
|
478
|
-
localize(
|
|
479
|
-
localize(
|
|
480
|
-
localize(
|
|
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."))];
|
|
481
481
|
const normalizedTaskFinishMessages = ( taskFinishMessages.map(msg => msg.replace(/[\s.,:;!?"'`()[\]{}<>\-_/\\]+/g, "").toLowerCase()));
|
|
482
482
|
function detectsVSCodeTaskFinishMessage(cursorLine) {
|
|
483
483
|
const compact = cursorLine.replace(/[\s.,:;!?"'`()[\]{}<>\-_/\\]+/g, "").toLowerCase();
|
|
@@ -323,9 +323,9 @@ async function createRunInTerminalToolData(accessor) {
|
|
|
323
323
|
id: TerminalToolId.RunInTerminal,
|
|
324
324
|
toolReferenceName: TOOL_REFERENCE_NAME,
|
|
325
325
|
legacyToolReferenceFullNames: LEGACY_TOOL_REFERENCE_FULL_NAMES,
|
|
326
|
-
displayName: ( localize(
|
|
326
|
+
displayName: ( localize(14352, "Run in Terminal")),
|
|
327
327
|
modelDescription: `${modelDescription}\n\nExecution mode:\n- mode='sync': wait for completion (optionally capped by timeout); if still running when timeout elapses, return with a terminal ID.\n- mode='async': wait for an initial idle/output signal, then return with terminal output snapshot and ID. Timeout caps how long to wait for the initial idle/output signal.\n- Prefer mode='sync' for commands that will prompt for interactive input (e.g., npm init, interactive installers, configuration wizards).\n\nTimeout parameter: For one-shot long-running commands, set a generous timeout as a safety net (e.g. 600000 for installs, longer for big builds). Omit timeout only for processes that should run indefinitely (servers, daemons). If the timeout elapses, you get a terminal ID and can check output later.\n\nTerminal notifications: When an async command finishes or a sync command times out, you will be automatically notified on your next turn with the exit code and terminal output. You will also be notified if the terminal needs input. Do NOT poll or sleep to wait for completion.`,
|
|
328
|
-
userDescription: ( localize(
|
|
328
|
+
userDescription: ( localize(14353, "Run commands in the terminal")),
|
|
329
329
|
source: ToolDataSource.Internal,
|
|
330
330
|
icon: Codicon.terminal,
|
|
331
331
|
inputSchema: {
|
|
@@ -365,7 +365,7 @@ function shouldAutomaticallyRetryUnsandboxed(options) {
|
|
|
365
365
|
const telemetryIgnoredSequences = [
|
|
366
366
|
"\u001b[I",
|
|
367
367
|
"\u001b[O"];
|
|
368
|
-
const altBufferMessage = "\n" + ( localize(
|
|
368
|
+
const altBufferMessage = "\n" + ( localize(14354, "The command opened the alternate buffer."));
|
|
369
369
|
let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
370
370
|
static {
|
|
371
371
|
RunInTerminalTool_1 = this;
|
|
@@ -433,7 +433,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
433
433
|
}
|
|
434
434
|
_getUnsandboxedExecutionDisabledMessage() {
|
|
435
435
|
return localize(
|
|
436
|
-
|
|
436
|
+
14355,
|
|
437
437
|
"The command was not executed because it requested to run outside the terminal sandbox, but running commands outside the sandbox is disabled by chat.agent.sandbox.allowUnsandboxedCommands. Run the command in the sandbox instead, or enable the setting to allow unsandboxed execution."
|
|
438
438
|
);
|
|
439
439
|
}
|
|
@@ -553,13 +553,13 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
553
553
|
const partialInput = context.rawInput;
|
|
554
554
|
if (partialInput && typeof partialInput === "object" && partialInput.command) {
|
|
555
555
|
const truncatedCommand = buildCommandDisplayText(partialInput.command);
|
|
556
|
-
const invocationMessage = ( new MarkdownString(( localize(
|
|
556
|
+
const invocationMessage = ( new MarkdownString(( localize(14356, "Running `{0}`", escapeMarkdownSyntaxTokens(truncatedCommand)))));
|
|
557
557
|
return {
|
|
558
558
|
invocationMessage
|
|
559
559
|
};
|
|
560
560
|
}
|
|
561
561
|
return {
|
|
562
|
-
invocationMessage: ( localize(
|
|
562
|
+
invocationMessage: ( localize(14357, "Running command"))
|
|
563
563
|
};
|
|
564
564
|
}
|
|
565
565
|
async prepareToolInvocation(context, token) {
|
|
@@ -600,7 +600,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
600
600
|
const commandToDisplay = normalizeTerminalCommandForDisplay(args.command);
|
|
601
601
|
return {
|
|
602
602
|
invocationMessage: ( new MarkdownString(( localize(
|
|
603
|
-
|
|
603
|
+
14358,
|
|
604
604
|
"Not running `{0}` because unsandboxed execution is disabled",
|
|
605
605
|
escapeMarkdownSyntaxTokens(buildCommandDisplayText(commandToDisplay))
|
|
606
606
|
)))),
|
|
@@ -657,19 +657,19 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
657
657
|
if (missingDependencies) {
|
|
658
658
|
const depsList = missingDependencies.join(", ");
|
|
659
659
|
sandboxConfirmationMessageForMissingDeps = {
|
|
660
|
-
title: ( localize(
|
|
660
|
+
title: ( localize(14359, "Missing Sandbox Dependencies")),
|
|
661
661
|
message: ( new MarkdownString(( localize(
|
|
662
|
-
|
|
662
|
+
14360,
|
|
663
663
|
"The following dependencies required for sandboxed execution are not installed: {0}. Would you like to install them?",
|
|
664
664
|
depsList
|
|
665
665
|
)))),
|
|
666
666
|
customOptions: [{
|
|
667
667
|
id: "install",
|
|
668
|
-
label: ( localize(
|
|
668
|
+
label: ( localize(14361, "Install")),
|
|
669
669
|
kind: ConfirmationOptionKind.Approve
|
|
670
670
|
}, {
|
|
671
671
|
id: "cancel",
|
|
672
|
-
label: ( localize(
|
|
672
|
+
label: ( localize(14362, "Cancel")),
|
|
673
673
|
kind: ConfirmationOptionKind.Deny
|
|
674
674
|
}]
|
|
675
675
|
};
|
|
@@ -766,12 +766,12 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
766
766
|
cwdLabel: directoryLabel,
|
|
767
767
|
cdPrefix
|
|
768
768
|
};
|
|
769
|
-
confirmationTitle = ( localize(
|
|
769
|
+
confirmationTitle = ( localize(14363, "Run `{0}` command within `{1}`?", shellType, directoryLabel));
|
|
770
770
|
} else {
|
|
771
771
|
toolSpecificData.confirmation = {
|
|
772
772
|
commandLine: commandToDisplay
|
|
773
773
|
};
|
|
774
|
-
confirmationTitle = ( localize(
|
|
774
|
+
confirmationTitle = ( localize(14364, "Run `{0}` command?", shellType));
|
|
775
775
|
}
|
|
776
776
|
const commandForPresenter = extractedCd?.command ?? commandToDisplay;
|
|
777
777
|
let presenterInput = commandForPresenter;
|
|
@@ -792,7 +792,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
792
792
|
if (extractedCd && toolSpecificData.confirmation?.cwdLabel) {
|
|
793
793
|
if (presenterResult.languageDisplayName) {
|
|
794
794
|
confirmationTitle = ( localize(
|
|
795
|
-
|
|
795
|
+
14365,
|
|
796
796
|
"Run `{0}` command in `{1}` within `{2}`?",
|
|
797
797
|
presenterResult.languageDisplayName,
|
|
798
798
|
shellType,
|
|
@@ -800,7 +800,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
800
800
|
));
|
|
801
801
|
} else {
|
|
802
802
|
confirmationTitle = ( localize(
|
|
803
|
-
|
|
803
|
+
14366,
|
|
804
804
|
"Run command in `{0}` within `{1}`?",
|
|
805
805
|
shellType,
|
|
806
806
|
toolSpecificData.confirmation.cwdLabel
|
|
@@ -809,13 +809,13 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
809
809
|
} else {
|
|
810
810
|
if (presenterResult.languageDisplayName) {
|
|
811
811
|
confirmationTitle = ( localize(
|
|
812
|
-
|
|
812
|
+
14367,
|
|
813
813
|
"Run `{0}` command in `{1}`?",
|
|
814
814
|
presenterResult.languageDisplayName,
|
|
815
815
|
shellType
|
|
816
816
|
));
|
|
817
817
|
} else {
|
|
818
|
-
confirmationTitle = ( localize(
|
|
818
|
+
confirmationTitle = ( localize(14368, "Run command in `{0}`?", shellType));
|
|
819
819
|
}
|
|
820
820
|
}
|
|
821
821
|
if (!presenterResult.processOtherPresenters) {
|
|
@@ -826,28 +826,28 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
826
826
|
}
|
|
827
827
|
if (requiresUnsandboxConfirmation) {
|
|
828
828
|
confirmationTitle = blockedDomains?.length ? ( localize(
|
|
829
|
-
|
|
829
|
+
14369,
|
|
830
830
|
"Run `{0}` command outside the [sandbox]({1}) to access {2}?",
|
|
831
831
|
shellType,
|
|
832
832
|
TERMINAL_SANDBOX_DOCUMENTATION_URL,
|
|
833
833
|
this._formatBlockedDomainsForTitle(blockedDomains)
|
|
834
834
|
)) : ( localize(
|
|
835
|
-
|
|
835
|
+
14370,
|
|
836
836
|
"Run `{0}` command outside the [sandbox]({1})?",
|
|
837
837
|
shellType,
|
|
838
838
|
TERMINAL_SANDBOX_DOCUMENTATION_URL
|
|
839
839
|
));
|
|
840
840
|
}
|
|
841
841
|
const shouldShowConfirmation = (!isFinalAutoApproved && !isSessionAutoApproved) || context.forceConfirmationReason !== undefined;
|
|
842
|
-
const explanation = args.explanation || ( localize(
|
|
843
|
-
const goal = args.goal || ( localize(
|
|
842
|
+
const explanation = args.explanation || ( localize(14371, "No explanation provided"));
|
|
843
|
+
const goal = args.goal || ( localize(14372, "No goal provided"));
|
|
844
844
|
const confirmationMessage = requiresUnsandboxConfirmation ? ( new MarkdownString(( localize(
|
|
845
|
-
|
|
845
|
+
14373,
|
|
846
846
|
"Explanation: {0}\n\nGoal: {1}\n\nReason for leaving the sandbox: {2}",
|
|
847
847
|
explanation,
|
|
848
848
|
goal,
|
|
849
|
-
requestUnsandboxedExecutionReason || ( localize(
|
|
850
|
-
)))) : ( new MarkdownString(( localize(
|
|
849
|
+
requestUnsandboxedExecutionReason || ( localize(14374, "The model indicated that this command needs unsandboxed access."))
|
|
850
|
+
)))) : ( new MarkdownString(( localize(14375, "Explanation: {0}\n\nGoal: {1}", explanation, goal))));
|
|
851
851
|
const confirmationMessages = shouldShowConfirmation ? {
|
|
852
852
|
title: confirmationTitle,
|
|
853
853
|
message: confirmationMessage,
|
|
@@ -858,10 +858,10 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
858
858
|
const rawDisplayCommand = toolSpecificData.commandLine.forDisplay ?? toolSpecificData.commandLine.toolEdited ?? toolSpecificData.commandLine.original;
|
|
859
859
|
const displayCommand = rawDisplayCommand.length > 80 ? rawDisplayCommand.substring(0, 77) + "..." : rawDisplayCommand;
|
|
860
860
|
const invocationMessage = toolSpecificData.commandLine.isSandboxWrapped ? ( new MarkdownString(( localize(
|
|
861
|
-
|
|
861
|
+
14376,
|
|
862
862
|
"Running `{0}` in sandbox",
|
|
863
863
|
escapeMarkdownSyntaxTokens(displayCommand)
|
|
864
|
-
)))) : ( new MarkdownString(( localize(
|
|
864
|
+
)))) : ( new MarkdownString(( localize(14377, "Running `{0}`", escapeMarkdownSyntaxTokens(displayCommand)))));
|
|
865
865
|
return {
|
|
866
866
|
invocationMessage,
|
|
867
867
|
icon: toolSpecificData.commandLine.isSandboxWrapped ? Codicon.terminalSecure : Codicon.terminal,
|
|
@@ -874,7 +874,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
874
874
|
return `\`${blockedDomains[0]}\``;
|
|
875
875
|
}
|
|
876
876
|
return localize(
|
|
877
|
-
|
|
877
|
+
14378,
|
|
878
878
|
"`{0}` and {1} more domains",
|
|
879
879
|
blockedDomains[0],
|
|
880
880
|
blockedDomains.length - 1
|
|
@@ -884,13 +884,13 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
884
884
|
if (deniedDomains.length === blockedDomains.length && deniedDomains.length > 0) {
|
|
885
885
|
if (blockedDomains.length === 1) {
|
|
886
886
|
return localize(
|
|
887
|
-
|
|
887
|
+
14379,
|
|
888
888
|
"This command accesses {0}, which is blocked by chat.agent.deniedNetworkDomains.",
|
|
889
889
|
blockedDomains[0]
|
|
890
890
|
);
|
|
891
891
|
}
|
|
892
892
|
return localize(
|
|
893
|
-
|
|
893
|
+
14380,
|
|
894
894
|
"This command accesses {0} and {1} more domains that are blocked by chat.agent.deniedNetworkDomains.",
|
|
895
895
|
blockedDomains[0],
|
|
896
896
|
blockedDomains.length - 1
|
|
@@ -899,13 +899,13 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
899
899
|
if (deniedDomains.length > 0) {
|
|
900
900
|
if (blockedDomains.length === 1) {
|
|
901
901
|
return localize(
|
|
902
|
-
|
|
902
|
+
14381,
|
|
903
903
|
"This command accesses {0}, which is blocked by chat.agent.deniedNetworkDomains or not added to chat.agent.allowedNetworkDomains.",
|
|
904
904
|
blockedDomains[0]
|
|
905
905
|
);
|
|
906
906
|
}
|
|
907
907
|
return localize(
|
|
908
|
-
|
|
908
|
+
14382,
|
|
909
909
|
"This command accesses {0} and {1} more domains that are blocked by chat.agent.deniedNetworkDomains or not added to chat.agent.allowedNetworkDomains.",
|
|
910
910
|
blockedDomains[0],
|
|
911
911
|
blockedDomains.length - 1
|
|
@@ -913,13 +913,13 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
913
913
|
}
|
|
914
914
|
if (blockedDomains.length === 1) {
|
|
915
915
|
return localize(
|
|
916
|
-
|
|
916
|
+
14383,
|
|
917
917
|
"This command accesses {0}, which is not permitted by the current chat.agent.sandbox configuration.",
|
|
918
918
|
blockedDomains[0]
|
|
919
919
|
);
|
|
920
920
|
}
|
|
921
921
|
return localize(
|
|
922
|
-
|
|
922
|
+
14384,
|
|
923
923
|
"This command accesses {0} and {1} more domains that are not permitted by the current chat.agent.sandbox configuration.",
|
|
924
924
|
blockedDomains[0],
|
|
925
925
|
blockedDomains.length - 1
|
|
@@ -1008,13 +1008,13 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
1008
1008
|
const part = ( new ChatElicitationRequestPart(
|
|
1009
1009
|
this._getAutomaticUnsandboxRetryTitle(shellType, blockedDomains),
|
|
1010
1010
|
( new MarkdownString(( localize(
|
|
1011
|
-
|
|
1011
|
+
14385,
|
|
1012
1012
|
"`{0}`",
|
|
1013
1013
|
escapeMarkdownSyntaxTokens(buildCommandDisplayText(command))
|
|
1014
1014
|
)))),
|
|
1015
1015
|
"",
|
|
1016
|
-
( localize(
|
|
1017
|
-
( localize(
|
|
1016
|
+
( localize(14386, "Allow")),
|
|
1017
|
+
( localize(14387, "Skip")),
|
|
1018
1018
|
async () => {
|
|
1019
1019
|
resolveOnce(true);
|
|
1020
1020
|
part.hide();
|
|
@@ -1039,11 +1039,11 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
1039
1039
|
}
|
|
1040
1040
|
_getAutomaticUnsandboxRetryTitle(shellType, blockedDomains) {
|
|
1041
1041
|
return blockedDomains?.length ? ( new MarkdownString(( localize(
|
|
1042
|
-
|
|
1042
|
+
14388,
|
|
1043
1043
|
"Run `{0}` command outside the sandbox to access {1}?",
|
|
1044
1044
|
shellType,
|
|
1045
1045
|
this._formatBlockedDomainsForTitle(blockedDomains)
|
|
1046
|
-
)))) : ( new MarkdownString(( localize(
|
|
1046
|
+
)))) : ( new MarkdownString(( localize(14389, "Run `{0}` command outside the sandbox?", shellType))));
|
|
1047
1047
|
}
|
|
1048
1048
|
_registerSensitiveInputElicitation(
|
|
1049
1049
|
chatSessionResource,
|
|
@@ -1071,10 +1071,10 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
1071
1071
|
if (chatModel instanceof ChatModel) {
|
|
1072
1072
|
const request = chatModel.getRequests().at(-1);
|
|
1073
1073
|
if (request) {
|
|
1074
|
-
const infoPart = ( new ChatElicitationRequestPart(( new MarkdownString(( localize(
|
|
1075
|
-
|
|
1074
|
+
const infoPart = ( new ChatElicitationRequestPart(( new MarkdownString(( localize(14390, "Terminal command cancelled — sensitive input required")))), ( new MarkdownString(( localize(
|
|
1075
|
+
14391,
|
|
1076
1076
|
"The terminal command was prompting for a password or other secret. Auto-approve / autopilot mode cannot safely supply secrets, so the command was cancelled. Run the command interactively if you want to provide the secret."
|
|
1077
|
-
)))), "", ( localize(
|
|
1077
|
+
)))), "", ( localize(14392, "Dismiss")), "", async () => {
|
|
1078
1078
|
infoPart.hide();
|
|
1079
1079
|
return ElicitationState.Accepted;
|
|
1080
1080
|
}, async () => {
|
|
@@ -1098,10 +1098,10 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
1098
1098
|
if (!request) {
|
|
1099
1099
|
return;
|
|
1100
1100
|
}
|
|
1101
|
-
const part = ( new ChatElicitationRequestPart(( new MarkdownString(( localize(
|
|
1102
|
-
|
|
1101
|
+
const part = ( new ChatElicitationRequestPart(( new MarkdownString(( localize(14393, "Terminal is waiting for sensitive input")))), ( new MarkdownString(( localize(
|
|
1102
|
+
14394,
|
|
1103
1103
|
"The terminal command appears to be prompting for a password or other sensitive value. Focus the terminal to type it directly — secrets must not be sent through chat."
|
|
1104
|
-
)))), "", ( localize(
|
|
1104
|
+
)))), "", ( localize(14395, "Focus Terminal")), ( localize(14396, "Cancel Command")), async () => {
|
|
1105
1105
|
pending = undefined;
|
|
1106
1106
|
part.hide();
|
|
1107
1107
|
try {
|
|
@@ -1146,10 +1146,10 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
1146
1146
|
const progress = {
|
|
1147
1147
|
kind: "externalToolInvocationUpdate",
|
|
1148
1148
|
toolCallId,
|
|
1149
|
-
toolName: ( localize(
|
|
1149
|
+
toolName: ( localize(14352, "Run in Terminal")),
|
|
1150
1150
|
isComplete,
|
|
1151
1151
|
invocationMessage: ( new MarkdownString(( localize(
|
|
1152
|
-
|
|
1152
|
+
14397,
|
|
1153
1153
|
"Running `{0}` outside the sandbox",
|
|
1154
1154
|
escapeMarkdownSyntaxTokens(displayCommand)
|
|
1155
1155
|
)))),
|
|
@@ -1215,7 +1215,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
1215
1215
|
content: [{
|
|
1216
1216
|
kind: "text",
|
|
1217
1217
|
value: ( localize(
|
|
1218
|
-
|
|
1218
|
+
14398,
|
|
1219
1219
|
"Sandbox dependency installation failed (exit code {0}). The command was not executed.",
|
|
1220
1220
|
exitCode
|
|
1221
1221
|
))
|
|
@@ -1227,7 +1227,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
1227
1227
|
content: [{
|
|
1228
1228
|
kind: "text",
|
|
1229
1229
|
value: ( localize(
|
|
1230
|
-
|
|
1230
|
+
14399,
|
|
1231
1231
|
"Could not determine whether sandbox dependency installation succeeded. The command was not executed."
|
|
1232
1232
|
))
|
|
1233
1233
|
}]
|
|
@@ -1241,7 +1241,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
1241
1241
|
return {
|
|
1242
1242
|
content: [{
|
|
1243
1243
|
kind: "text",
|
|
1244
|
-
value: ( localize(
|
|
1244
|
+
value: ( localize(14400, "Sandbox dependency installation was cancelled by the user."))
|
|
1245
1245
|
}]
|
|
1246
1246
|
};
|
|
1247
1247
|
}
|
|
@@ -1273,7 +1273,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
1273
1273
|
}
|
|
1274
1274
|
let error;
|
|
1275
1275
|
const automaticUnsandboxRetryReason = ( localize(
|
|
1276
|
-
|
|
1276
|
+
14401,
|
|
1277
1277
|
"The sandboxed execution output indicated the sandbox blocked the command."
|
|
1278
1278
|
));
|
|
1279
1279
|
const isNewSession = !executionOptions.persistentSession && !( this._sessionTerminalAssociations.has(chatSessionResource));
|
|
@@ -2248,7 +2248,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
2248
2248
|
...sendOptions,
|
|
2249
2249
|
queue: ChatRequestQueueKind.Steering,
|
|
2250
2250
|
isSystemInitiated: true,
|
|
2251
|
-
systemInitiatedLabel: ( localize(
|
|
2251
|
+
systemInitiatedLabel: ( localize(14402, "`{0}` may need input", commandName)),
|
|
2252
2252
|
terminalExecutionId: termId
|
|
2253
2253
|
}).catch(e => {
|
|
2254
2254
|
this._logService.warn(
|
|
@@ -2287,7 +2287,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
2287
2287
|
...sendOptions,
|
|
2288
2288
|
queue: ChatRequestQueueKind.Steering,
|
|
2289
2289
|
isSystemInitiated: true,
|
|
2290
|
-
systemInitiatedLabel: ( localize(
|
|
2290
|
+
systemInitiatedLabel: ( localize(14403, "`{0}` completed", commandName)),
|
|
2291
2291
|
terminalExecutionId: termId
|
|
2292
2292
|
}).catch(e => {
|
|
2293
2293
|
this._logService.warn(
|
|
@@ -2317,7 +2317,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
2317
2317
|
...sendOptions,
|
|
2318
2318
|
queue: ChatRequestQueueKind.Steering,
|
|
2319
2319
|
isSystemInitiated: true,
|
|
2320
|
-
systemInitiatedLabel: ( localize(
|
|
2320
|
+
systemInitiatedLabel: ( localize(14404, "`{0}` terminal exited", commandName)),
|
|
2321
2321
|
terminalExecutionId: termId
|
|
2322
2322
|
}).catch(e => {
|
|
2323
2323
|
this._logService.warn(
|
|
@@ -108,7 +108,7 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
108
108
|
}
|
|
109
109
|
e.join(this._cleanupSandboxTempDir(), {
|
|
110
110
|
id: "join.deleteFilesInSandboxTempDir",
|
|
111
|
-
label: ( localize(
|
|
111
|
+
label: ( localize(14520, "Delete Files in Sandbox Temp Dir")),
|
|
112
112
|
order: WillShutdownJoinerOrder.Default
|
|
113
113
|
});
|
|
114
114
|
}));
|
|
@@ -329,10 +329,10 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
329
329
|
if (!request) {
|
|
330
330
|
return ( new DisposableStore());
|
|
331
331
|
}
|
|
332
|
-
const part = ( new ChatElicitationRequestPart(( localize(
|
|
333
|
-
|
|
332
|
+
const part = ( new ChatElicitationRequestPart(( localize(14521, "The terminal is awaiting input.")), ( new MarkdownString(( localize(
|
|
333
|
+
14522,
|
|
334
334
|
"Installing missing sandbox dependencies may prompt for your sudo password. Select Focus Terminal to type it in the terminal."
|
|
335
|
-
)))), "", ( localize(
|
|
335
|
+
)))), "", ( localize(14523, "Focus Terminal")), undefined, async () => {
|
|
336
336
|
await promptContext.focusTerminal();
|
|
337
337
|
return ElicitationState.Pending;
|
|
338
338
|
}));
|