@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.
- package/package.json +2 -2
- 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
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js
CHANGED
|
@@ -56,7 +56,7 @@ class TodoListRenderer {
|
|
|
56
56
|
statusIcon.style.color = this.getStatusIconColor(todo.status);
|
|
57
57
|
iconLabel.setLabel(todo.title);
|
|
58
58
|
const statusText = this.getStatusText(todo.status);
|
|
59
|
-
const ariaLabel = ( localize(
|
|
59
|
+
const ariaLabel = ( localize(7347, "{0}, {1}", todo.title, statusText));
|
|
60
60
|
todoElement.setAttribute("aria-label", ariaLabel);
|
|
61
61
|
}
|
|
62
62
|
disposeTemplate(templateData) {
|
|
@@ -65,12 +65,12 @@ class TodoListRenderer {
|
|
|
65
65
|
getStatusText(status) {
|
|
66
66
|
switch (status) {
|
|
67
67
|
case "completed":
|
|
68
|
-
return localize(
|
|
68
|
+
return localize(7348, "completed");
|
|
69
69
|
case "in-progress":
|
|
70
|
-
return localize(
|
|
70
|
+
return localize(7349, "in progress");
|
|
71
71
|
case "not-started":
|
|
72
72
|
default:
|
|
73
|
-
return localize(
|
|
73
|
+
return localize(7350, "not started");
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
getStatusIconClass(status) {
|
|
@@ -142,7 +142,7 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
142
142
|
this.expandIcon.setAttribute("aria-hidden", "true");
|
|
143
143
|
this.titleElement = $(".todo-list-title");
|
|
144
144
|
this.titleElement.id = "todo-list-title";
|
|
145
|
-
this.titleElement.textContent = ( localize(
|
|
145
|
+
this.titleElement.textContent = ( localize(7351, "Todos"));
|
|
146
146
|
this.clearButtonContainer = $(".todo-clear-button-container");
|
|
147
147
|
this.createClearButton();
|
|
148
148
|
titleSection.appendChild(this.expandIcon);
|
|
@@ -164,7 +164,7 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
164
164
|
createClearButton() {
|
|
165
165
|
this.clearButton = ( new Button(this.clearButtonContainer, {
|
|
166
166
|
supportIcons: true,
|
|
167
|
-
ariaLabel: ( localize(
|
|
167
|
+
ariaLabel: ( localize(7352, "Clear all todos"))
|
|
168
168
|
}));
|
|
169
169
|
this.clearButton.element.tabIndex = 0;
|
|
170
170
|
this.clearButton.icon = Codicon.clearAll;
|
|
@@ -249,9 +249,9 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
249
249
|
accessibilityProvider: {
|
|
250
250
|
getAriaLabel: todo => {
|
|
251
251
|
const statusText = this.getStatusText(todo.status);
|
|
252
|
-
return localize(
|
|
252
|
+
return localize(7347, "{0}, {1}", todo.title, statusText);
|
|
253
253
|
},
|
|
254
|
-
getWidgetAriaLabel: () => ( localize(
|
|
254
|
+
getWidgetAriaLabel: () => ( localize(7353, "Chat Todo List"))
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
));
|
|
@@ -307,9 +307,9 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
307
307
|
const shouldDisable = isRequestInProgress && hasInProgressTask;
|
|
308
308
|
this.clearButton.enabled = !shouldDisable;
|
|
309
309
|
if (shouldDisable) {
|
|
310
|
-
this.clearButton.setTitle(( localize(
|
|
310
|
+
this.clearButton.setTitle(( localize(7354, "Cannot clear todos while a task is in progress")));
|
|
311
311
|
} else {
|
|
312
|
-
this.clearButton.setTitle(( localize(
|
|
312
|
+
this.clearButton.setTitle(( localize(7352, "Clear all todos")));
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
315
|
updateTitleElement(titleElement, todoList) {
|
|
@@ -321,12 +321,12 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
321
321
|
const notStartedTodos = todoList.filter(todo => todo.status === "not-started");
|
|
322
322
|
const firstNotStartedTodo = notStartedTodos.length > 0 ? notStartedTodos[0] : undefined;
|
|
323
323
|
const currentTaskNumber = inProgressTodos.length > 0 ? completedCount + 1 : Math.max(1, completedCount);
|
|
324
|
-
const expandButtonLabel = this._isExpanded ? ( localize(
|
|
324
|
+
const expandButtonLabel = this._isExpanded ? ( localize(7355, "Collapse Todos")) : ( localize(7356, "Expand Todos"));
|
|
325
325
|
this.expandoButton.element.setAttribute("aria-label", expandButtonLabel);
|
|
326
326
|
this.expandoButton.element.setAttribute("aria-expanded", this._isExpanded ? "true" : "false");
|
|
327
327
|
if (this._isExpanded) {
|
|
328
328
|
const titleText = $("span");
|
|
329
|
-
titleText.textContent = totalCount > 0 ? ( localize(
|
|
329
|
+
titleText.textContent = totalCount > 0 ? ( localize(7357, "Todos ({0}/{1})", currentTaskNumber, totalCount)) : ( localize(7351, "Todos"));
|
|
330
330
|
titleElement.appendChild(titleText);
|
|
331
331
|
} else {
|
|
332
332
|
const todoToShow = firstInProgressTodo || firstNotStartedTodo;
|
|
@@ -343,7 +343,7 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
343
343
|
icon.style.verticalAlign = "middle";
|
|
344
344
|
titleElement.appendChild(icon);
|
|
345
345
|
const todoText = $("span");
|
|
346
|
-
todoText.textContent = ( localize(
|
|
346
|
+
todoText.textContent = ( localize(7358, "{0} ({1}/{2})", todoToShow.title, currentTaskNumber, totalCount));
|
|
347
347
|
todoText.style.verticalAlign = "middle";
|
|
348
348
|
todoText.style.overflow = "hidden";
|
|
349
349
|
todoText.style.textOverflow = "ellipsis";
|
|
@@ -353,7 +353,7 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
353
353
|
}
|
|
354
354
|
else if (completedCount > 0 && completedCount === totalCount) {
|
|
355
355
|
const doneText = $("span");
|
|
356
|
-
doneText.textContent = ( localize(
|
|
356
|
+
doneText.textContent = ( localize(7357, "Todos ({0}/{1})", totalCount, totalCount));
|
|
357
357
|
doneText.style.verticalAlign = "middle";
|
|
358
358
|
titleElement.appendChild(doneText);
|
|
359
359
|
}
|
|
@@ -362,12 +362,12 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
362
362
|
getStatusText(status) {
|
|
363
363
|
switch (status) {
|
|
364
364
|
case "completed":
|
|
365
|
-
return localize(
|
|
365
|
+
return localize(7348, "completed");
|
|
366
366
|
case "in-progress":
|
|
367
|
-
return localize(
|
|
367
|
+
return localize(7349, "in progress");
|
|
368
368
|
case "not-started":
|
|
369
369
|
default:
|
|
370
|
-
return localize(
|
|
370
|
+
return localize(7350, "not started");
|
|
371
371
|
}
|
|
372
372
|
}
|
|
373
373
|
};
|
|
@@ -10,7 +10,6 @@ import { LanguageModelPartAudience } from "@codingame/monaco-vscode-api/vscode/v
|
|
|
10
10
|
import { ChatTreeItem, IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
11
11
|
import { ICodeBlockRenderOptions } from "./codeBlockPart.js";
|
|
12
12
|
import { IChatContentPartRenderContext } from "./chatContentParts.js";
|
|
13
|
-
import { IChatMarkdownAnchorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service";
|
|
14
13
|
export interface IChatCollapsibleIOCodePart {
|
|
15
14
|
kind: "code";
|
|
16
15
|
data: string;
|
|
@@ -44,7 +43,6 @@ export declare class ChatCollapsibleInputOutputContentPart extends Disposable {
|
|
|
44
43
|
private readonly output;
|
|
45
44
|
private readonly contextKeyService;
|
|
46
45
|
private readonly _instantiationService;
|
|
47
|
-
private readonly chatMarkdownAnchorService;
|
|
48
46
|
private readonly configurationService;
|
|
49
47
|
private readonly _editorReferences;
|
|
50
48
|
private readonly _titlePart;
|
|
@@ -56,7 +54,7 @@ export declare class ChatCollapsibleInputOutputContentPart extends Disposable {
|
|
|
56
54
|
get title(): string | IMarkdownString;
|
|
57
55
|
private readonly _expanded;
|
|
58
56
|
get expanded(): boolean;
|
|
59
|
-
constructor(title: IMarkdownString | string, subtitle: string | IMarkdownString | undefined, progressTooltip: IMarkdownString | string | undefined, context: IChatContentPartRenderContext, input: IChatCollapsibleInputData, output: IChatCollapsibleOutputData | undefined, isError: boolean, initiallyExpanded: boolean, shimmer: boolean, contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, hoverService: IHoverService,
|
|
57
|
+
constructor(title: IMarkdownString | string, subtitle: string | IMarkdownString | undefined, progressTooltip: IMarkdownString | string | undefined, context: IChatContentPartRenderContext, input: IChatCollapsibleInputData, output: IChatCollapsibleOutputData | undefined, isError: boolean, initiallyExpanded: boolean, shimmer: boolean, contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, hoverService: IHoverService, configurationService: IConfigurationService);
|
|
60
58
|
private createMessageContents;
|
|
61
59
|
private addCodeBlock;
|
|
62
60
|
hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
|
|
@@ -17,8 +17,7 @@ import { AccessibilityWorkbenchSettingId } from '@codingame/monaco-vscode-api/vs
|
|
|
17
17
|
import { CodeBlockPart } from './codeBlockPart.js';
|
|
18
18
|
import { ChatQueryTitlePart } from './chatConfirmationWidget.js';
|
|
19
19
|
import { ChatToolOutputContentSubPart } from './chatToolOutputContentSubPart.js';
|
|
20
|
-
import {
|
|
21
|
-
import { IChatMarkdownAnchorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service';
|
|
20
|
+
import { getChatMarkdownRenderOptions } from '../chatContentMarkdownRenderer.js';
|
|
22
21
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
23
22
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
24
23
|
|
|
@@ -49,7 +48,6 @@ let ChatCollapsibleInputOutputContentPart = class ChatCollapsibleInputOutputCont
|
|
|
49
48
|
contextKeyService,
|
|
50
49
|
_instantiationService,
|
|
51
50
|
hoverService,
|
|
52
|
-
chatMarkdownAnchorService,
|
|
53
51
|
configurationService
|
|
54
52
|
) {
|
|
55
53
|
super();
|
|
@@ -58,7 +56,6 @@ let ChatCollapsibleInputOutputContentPart = class ChatCollapsibleInputOutputCont
|
|
|
58
56
|
this.output = output;
|
|
59
57
|
this.contextKeyService = contextKeyService;
|
|
60
58
|
this._instantiationService = _instantiationService;
|
|
61
|
-
this.chatMarkdownAnchorService = chatMarkdownAnchorService;
|
|
62
59
|
this.configurationService = configurationService;
|
|
63
60
|
this._editorReferences = [];
|
|
64
61
|
this._contentInitialized = false;
|
|
@@ -70,12 +67,10 @@ let ChatCollapsibleInputOutputContentPart = class ChatCollapsibleInputOutputCont
|
|
|
70
67
|
this._titlePart = this._register(
|
|
71
68
|
_instantiationService.createInstance(ChatQueryTitlePart, titleEl.root, title, subtitle)
|
|
72
69
|
);
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
this._store
|
|
78
|
-
);
|
|
70
|
+
this._titlePart.setOptions({
|
|
71
|
+
markdownRenderOptions: getChatMarkdownRenderOptions(),
|
|
72
|
+
renderFileWidgets: true
|
|
73
|
+
});
|
|
79
74
|
const spacer = createElement("span");
|
|
80
75
|
spacer.style.flexGrow = "1";
|
|
81
76
|
const btn = this._register(( new ButtonWithIcon(elements.root, {})));
|
|
@@ -143,13 +138,13 @@ let ChatCollapsibleInputOutputContentPart = class ChatCollapsibleInputOutputCont
|
|
|
143
138
|
input,
|
|
144
139
|
output
|
|
145
140
|
} = this;
|
|
146
|
-
contents.inputTitle.textContent = ( localize(
|
|
141
|
+
contents.inputTitle.textContent = ( localize(7359, "Input"));
|
|
147
142
|
this.addCodeBlock(input, contents.input);
|
|
148
143
|
if (!output) {
|
|
149
144
|
contents.output.remove();
|
|
150
145
|
contents.outputTitle.remove();
|
|
151
146
|
} else {
|
|
152
|
-
contents.outputTitle.textContent = ( localize(
|
|
147
|
+
contents.outputTitle.textContent = ( localize(7360, "Output"));
|
|
153
148
|
const outputSubPart = this._register(
|
|
154
149
|
this._instantiationService.createInstance(ChatToolOutputContentSubPart, this.context, output.parts)
|
|
155
150
|
);
|
|
@@ -182,6 +177,6 @@ let ChatCollapsibleInputOutputContentPart = class ChatCollapsibleInputOutputCont
|
|
|
182
177
|
this._outputSubPart?.layout(width);
|
|
183
178
|
}
|
|
184
179
|
};
|
|
185
|
-
ChatCollapsibleInputOutputContentPart = ( __decorate([( __param(9, IContextKeyService)), ( __param(10, IInstantiationService)), ( __param(11, IHoverService)), ( __param(12,
|
|
180
|
+
ChatCollapsibleInputOutputContentPart = ( __decorate([( __param(9, IContextKeyService)), ( __param(10, IInstantiationService)), ( __param(11, IHoverService)), ( __param(12, IConfigurationService))], ChatCollapsibleInputOutputContentPart));
|
|
186
181
|
|
|
187
182
|
export { ChatCollapsibleInputOutputContentPart };
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js
CHANGED
|
@@ -83,7 +83,7 @@ let TreePool = class TreePool extends Disposable {
|
|
|
83
83
|
},
|
|
84
84
|
accessibilityProvider: {
|
|
85
85
|
getAriaLabel: element => element.label,
|
|
86
|
-
getWidgetAriaLabel: () => ( localize(
|
|
86
|
+
getWidgetAriaLabel: () => ( localize(7361, "File Tree"))
|
|
87
87
|
},
|
|
88
88
|
alwaysConsumeMouseWheel: false
|
|
89
89
|
}
|
|
@@ -45,15 +45,15 @@ let ChatWorkspaceEditContentPart = class ChatWorkspaceEditContentPart extends Di
|
|
|
45
45
|
for (const edit of workspaceEdit.edits) {
|
|
46
46
|
if (edit.oldResource && !edit.newResource) {
|
|
47
47
|
renderEntry(( localize(
|
|
48
|
-
|
|
48
|
+
7362,
|
|
49
49
|
"Deleted `{0}`",
|
|
50
50
|
this.labelService.getUriBasenameLabel(edit.oldResource)
|
|
51
51
|
)), Codicon.trash);
|
|
52
52
|
} else if (!edit.oldResource && edit.newResource) {
|
|
53
|
-
renderEntry(( localize(
|
|
53
|
+
renderEntry(( localize(7363, "Created []({0})", (edit.newResource.toString()))), Codicon.newFile);
|
|
54
54
|
} else if (edit.oldResource && edit.newResource) {
|
|
55
55
|
renderEntry(( localize(
|
|
56
|
-
|
|
56
|
+
7364,
|
|
57
57
|
"Renamed {0} to []({1})",
|
|
58
58
|
this.labelService.getUriBasenameLabel(edit.oldResource),
|
|
59
59
|
(edit.newResource.toString())
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js
CHANGED
|
@@ -135,7 +135,7 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
|
|
|
135
135
|
multipleDefinitions: "goto",
|
|
136
136
|
multipleImplementations: "goto"
|
|
137
137
|
},
|
|
138
|
-
ariaLabel: ( localize(
|
|
138
|
+
ariaLabel: ( localize(7365, "Code block")),
|
|
139
139
|
overflowWidgetsDomNode,
|
|
140
140
|
tabFocusMode: true,
|
|
141
141
|
...this.getEditorOptionsFromConfig()
|
|
@@ -387,11 +387,11 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
|
|
|
387
387
|
});
|
|
388
388
|
if (!this.editor.getOption(EditorOption.ariaLabel)) {
|
|
389
389
|
this.editor.updateOptions({
|
|
390
|
-
ariaLabel: ( localize(
|
|
390
|
+
ariaLabel: ( localize(7366, "Code block {0}", data.codeBlockIndex + 1))
|
|
391
391
|
});
|
|
392
392
|
}
|
|
393
393
|
this.layout(width);
|
|
394
|
-
const toolbarAriaLabel = ( localize(
|
|
394
|
+
const toolbarAriaLabel = ( localize(7367, "Code block {0}", data.codeBlockIndex + 1));
|
|
395
395
|
if (this.toolbar) {
|
|
396
396
|
this.toolbar.setAriaLabel(toolbarAriaLabel);
|
|
397
397
|
} else {
|
|
@@ -454,7 +454,7 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
|
|
|
454
454
|
if (!this.currentCodeBlockData || !this.currentCodeBlockData.vulns) {
|
|
455
455
|
return "";
|
|
456
456
|
}
|
|
457
|
-
const referencesLabel = this.currentCodeBlockData.vulns.length > 1 ? ( localize(
|
|
457
|
+
const referencesLabel = this.currentCodeBlockData.vulns.length > 1 ? ( localize(7368, "{0} vulnerabilities", this.currentCodeBlockData.vulns.length)) : ( localize(7369, "{0} vulnerability", 1));
|
|
458
458
|
const icon = element => element.vulnerabilitiesListExpanded ? Codicon.chevronDown : Codicon.chevronRight;
|
|
459
459
|
return `${referencesLabel} $(${icon(this.currentCodeBlockData.element).id})`;
|
|
460
460
|
}
|
|
@@ -589,7 +589,7 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
|
|
|
589
589
|
multipleDefinitions: "goto",
|
|
590
590
|
multipleImplementations: "goto"
|
|
591
591
|
},
|
|
592
|
-
ariaLabel: ( localize(
|
|
592
|
+
ariaLabel: ( localize(7365, "Code block")),
|
|
593
593
|
overflowWidgetsDomNode,
|
|
594
594
|
...this.getEditorOptionsFromConfig()
|
|
595
595
|
});
|
|
@@ -668,8 +668,8 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
|
|
|
668
668
|
stickyScroll: {
|
|
669
669
|
enabled: false
|
|
670
670
|
},
|
|
671
|
-
originalAriaLabel: ( localize(
|
|
672
|
-
modifiedAriaLabel: ( localize(
|
|
671
|
+
originalAriaLabel: ( localize(7370, "Original")),
|
|
672
|
+
modifiedAriaLabel: ( localize(7371, "Modified")),
|
|
673
673
|
diffAlgorithm: "advanced",
|
|
674
674
|
readOnly: false,
|
|
675
675
|
isInEmbeddedEditor: true,
|
|
@@ -710,7 +710,7 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
|
|
|
710
710
|
const toolbarElt = this.toolbar.getElement();
|
|
711
711
|
toolbarElt.style.display = "block";
|
|
712
712
|
if (this.accessibilityService.isScreenReaderOptimized()) {
|
|
713
|
-
toolbarElt.ariaLabel = ( localize(
|
|
713
|
+
toolbarElt.ariaLabel = ( localize(7372, "Code block toolbar"));
|
|
714
714
|
}
|
|
715
715
|
}
|
|
716
716
|
getEditorOptionsFromConfig() {
|
|
@@ -751,7 +751,7 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
|
|
|
751
751
|
await this.updateEditor(data, token);
|
|
752
752
|
this.layout(width);
|
|
753
753
|
this.diffEditor.updateOptions({
|
|
754
|
-
ariaLabel: ( localize(
|
|
754
|
+
ariaLabel: ( localize(7373, "Code Edits")),
|
|
755
755
|
readOnly: !!data.isReadOnly
|
|
756
756
|
});
|
|
757
757
|
this.resourceLabel.element.setFile(data.edit.uri, {
|
|
@@ -786,12 +786,12 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
|
|
|
786
786
|
});
|
|
787
787
|
let template;
|
|
788
788
|
if (data.edit.state.applied === 1) {
|
|
789
|
-
template = ( localize(
|
|
789
|
+
template = ( localize(7374, "Applied 1 change in [[``{0}``]]", uriLabel));
|
|
790
790
|
} else if (data.edit.state.applied < 0) {
|
|
791
|
-
template = ( localize(
|
|
791
|
+
template = ( localize(7375, "Edits in [[``{0}``]] have been rejected", uriLabel));
|
|
792
792
|
} else {
|
|
793
793
|
template = ( localize(
|
|
794
|
-
|
|
794
|
+
7376,
|
|
795
795
|
"Applied {0} changes in [[``{1}``]]",
|
|
796
796
|
data.edit.state.applied,
|
|
797
797
|
uriLabel
|
|
@@ -921,8 +921,8 @@ let DefaultChatTextEditor = class DefaultChatTextEditor {
|
|
|
921
921
|
async _checkSha1(model, item) {
|
|
922
922
|
if (item.state?.sha1 && this._sha1.computeSHA1(model) && this._sha1.computeSHA1(model) !== item.state.sha1) {
|
|
923
923
|
const result = await this.dialogService.confirm({
|
|
924
|
-
message: ( localize(
|
|
925
|
-
detail: ( localize(
|
|
924
|
+
message: ( localize(7377, "The original file has been modified.")),
|
|
925
|
+
detail: ( localize(7378, "Do you want to apply the changes anyway?"))
|
|
926
926
|
});
|
|
927
927
|
if (!result.confirmed) {
|
|
928
928
|
return false;
|
|
@@ -239,3 +239,19 @@ div.chat-terminal-content-part.progress-step > div.chat-terminal-output-containe
|
|
|
239
239
|
color: var(--vscode-descriptionForeground);
|
|
240
240
|
font-size: var(--vscode-chat-font-size-body-xs);
|
|
241
241
|
}
|
|
242
|
+
|
|
243
|
+
.chat-used-context-label .chat-terminal-show-link {
|
|
244
|
+
color: var(--vscode-textLink-foreground);
|
|
245
|
+
cursor: pointer;
|
|
246
|
+
text-decoration: none;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.chat-used-context-label .chat-terminal-show-link:hover {
|
|
250
|
+
text-decoration: underline;
|
|
251
|
+
color: var(--vscode-textLink-activeForeground);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.chat-terminal-show-link-container {
|
|
255
|
+
display: inline;
|
|
256
|
+
white-space: nowrap;
|
|
257
|
+
}
|
|
@@ -70,7 +70,7 @@ let AbstractToolConfirmationSubPart = class AbstractToolConfirmationSubPart exte
|
|
|
70
70
|
data: primaryAction.data,
|
|
71
71
|
moreActions: moreActions.length > 0 ? moreActions : undefined
|
|
72
72
|
}, {
|
|
73
|
-
label: ( localize(
|
|
73
|
+
label: ( localize(7379, "Skip")),
|
|
74
74
|
tooltip: skipTooltip,
|
|
75
75
|
data: () => {
|
|
76
76
|
this.confirmWith(toolInvocation, {
|
|
@@ -46,9 +46,9 @@ let ExtensionsInstallConfirmationWidgetSubPart = class ExtensionsInstallConfirma
|
|
|
46
46
|
append(this.domNode, chatExtensionsContentPart.domNode);
|
|
47
47
|
const state = toolInvocation.state.get();
|
|
48
48
|
if (state.type === IChatToolInvocation.StateKind.WaitingForConfirmation) {
|
|
49
|
-
const allowLabel = ( localize(
|
|
49
|
+
const allowLabel = ( localize(7380, "Allow"));
|
|
50
50
|
const allowTooltip = keybindingService.appendKeybinding(allowLabel, AcceptToolConfirmationActionId);
|
|
51
|
-
const cancelLabel = ( localize(
|
|
51
|
+
const cancelLabel = ( localize(7381, "Cancel"));
|
|
52
52
|
const cancelTooltip = keybindingService.appendKeybinding(cancelLabel, CancelChatActionId);
|
|
53
53
|
const enableAllowButtonEvent = this._register(( new Emitter()));
|
|
54
54
|
const buttons = [{
|
|
@@ -68,9 +68,9 @@ let ExtensionsInstallConfirmationWidgetSubPart = class ExtensionsInstallConfirma
|
|
|
68
68
|
tooltip: cancelTooltip
|
|
69
69
|
}];
|
|
70
70
|
const confirmWidget = this._register(instantiationService.createInstance(ChatConfirmationWidget, context, {
|
|
71
|
-
title: state.confirmationMessages?.title ?? ( localize(
|
|
71
|
+
title: state.confirmationMessages?.title ?? ( localize(7382, "Install Extensions")),
|
|
72
72
|
message: state.confirmationMessages?.message ?? ( localize(
|
|
73
|
-
|
|
73
|
+
7383,
|
|
74
74
|
"Click the Install button on the extension and then press Allow when finished."
|
|
75
75
|
)),
|
|
76
76
|
buttons
|
|
@@ -84,7 +84,7 @@ let ChatMcpAppModel = class ChatMcpAppModel extends Disposable {
|
|
|
84
84
|
this._height = ChatMcpAppModel_1.heightCache.get(this.toolInvocation) ?? 300;
|
|
85
85
|
this._webview = this._register(this._webviewService.createWebviewElement({
|
|
86
86
|
origin: this._webviewOrigin,
|
|
87
|
-
title: ( localize(
|
|
87
|
+
title: ( localize(7384, "MCP App")),
|
|
88
88
|
options: {
|
|
89
89
|
purpose: WebviewContentPurpose.ChatOutputItem,
|
|
90
90
|
enableFindWidget: false,
|
|
@@ -100,7 +100,7 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
|
|
|
100
100
|
{
|
|
101
101
|
container.style.display = "none";
|
|
102
102
|
const progressMessage = $("span");
|
|
103
|
-
progressMessage.textContent = ( localize(
|
|
103
|
+
progressMessage.textContent = ( localize(7385, "Loading MCP App..."));
|
|
104
104
|
const progressPart = this._instantiationService.createInstance(
|
|
105
105
|
ChatProgressSubPart,
|
|
106
106
|
progressMessage,
|
|
@@ -130,12 +130,12 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
|
|
|
130
130
|
_showError(container, error) {
|
|
131
131
|
const errorNode = $(".mcp-app-error");
|
|
132
132
|
const errorMessage = ( new MarkdownString());
|
|
133
|
-
errorMessage.appendText(( localize(
|
|
133
|
+
errorMessage.appendText(( localize(7386, "Error loading MCP App: {0}", error.message || String(error))));
|
|
134
134
|
const errorWidget = this._register(( new ChatErrorWidget(ChatErrorLevel.Error, errorMessage, this._markdownRendererService)));
|
|
135
135
|
errorNode.appendChild(errorWidget.domNode);
|
|
136
136
|
const buttonContainer = append(errorNode, $(".chat-buttons-container"));
|
|
137
137
|
const retryButton = this._register(( new Button(buttonContainer, defaultButtonStyles)));
|
|
138
|
-
retryButton.label = ( localize(
|
|
138
|
+
retryButton.label = ( localize(7387, "Retry"));
|
|
139
139
|
this._register(retryButton.onDidClick(() => {
|
|
140
140
|
this._model.retry();
|
|
141
141
|
}));
|
|
@@ -38,8 +38,8 @@ let ChatMissingSandboxDepsConfirmationSubPart = class ChatMissingSandboxDepsConf
|
|
|
38
38
|
this.render({
|
|
39
39
|
allowActionId: AcceptToolConfirmationActionId,
|
|
40
40
|
skipActionId: SkipToolConfirmationActionId,
|
|
41
|
-
allowLabel: ( localize(
|
|
42
|
-
skipLabel: ( localize(
|
|
41
|
+
allowLabel: ( localize(7388, "Install")),
|
|
42
|
+
skipLabel: ( localize(7389, "Cancel")),
|
|
43
43
|
partType: "chatMissingSandboxDepsConfirmation"
|
|
44
44
|
});
|
|
45
45
|
}
|
|
@@ -137,7 +137,7 @@ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSu
|
|
|
137
137
|
const addedSpan = append(countsContainer, $(".working-set-lines-added"));
|
|
138
138
|
const removedSpan = append(countsContainer, $(".working-set-lines-removed"));
|
|
139
139
|
titleButton.element.appendChild(countsContainer);
|
|
140
|
-
const filesLabel = data.modifiedFiles.length === 1 ? ( localize(
|
|
140
|
+
const filesLabel = data.modifiedFiles.length === 1 ? ( localize(7390, "1 file changed")) : ( localize(7391, "{0} files changed", data.modifiedFiles.length));
|
|
141
141
|
titleButton.label = filesLabel;
|
|
142
142
|
let added = 0;
|
|
143
143
|
let removed = 0;
|
|
@@ -153,13 +153,13 @@ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSu
|
|
|
153
153
|
addedSpan.textContent = `+${added}`;
|
|
154
154
|
removedSpan.textContent = `-${removed}`;
|
|
155
155
|
titleButton.element.setAttribute("aria-label", ( localize(
|
|
156
|
-
|
|
156
|
+
7392,
|
|
157
157
|
"{0}, {1} lines added, {2} lines removed",
|
|
158
158
|
filesLabel,
|
|
159
159
|
added,
|
|
160
160
|
removed
|
|
161
161
|
)));
|
|
162
|
-
countsContainer.setAttribute("aria-label", ( localize(
|
|
162
|
+
countsContainer.setAttribute("aria-label", ( localize(7393, "{0} lines added, {1} lines removed", added, removed)));
|
|
163
163
|
} else {
|
|
164
164
|
countsContainer.remove();
|
|
165
165
|
titleButton.element.setAttribute("aria-label", filesLabel);
|
|
@@ -169,8 +169,8 @@ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSu
|
|
|
169
169
|
secondary: true,
|
|
170
170
|
small: true,
|
|
171
171
|
supportIcons: true,
|
|
172
|
-
ariaLabel: ( localize(
|
|
173
|
-
title: ( localize(
|
|
172
|
+
ariaLabel: ( localize(7394, "View All Changes")),
|
|
173
|
+
title: ( localize(7394, "View All Changes"))
|
|
174
174
|
})));
|
|
175
175
|
viewAllChangesButton.element.classList.add("default-colors");
|
|
176
176
|
viewAllChangesButton.icon = Codicon.diffMultiple;
|
|
@@ -260,7 +260,7 @@ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSu
|
|
|
260
260
|
}
|
|
261
261
|
async openAllChanges(data) {
|
|
262
262
|
await this.commandService.executeCommand("_workbench.openMultiDiffEditor", {
|
|
263
|
-
title: ( localize(
|
|
263
|
+
title: ( localize(7395, "All Changes")),
|
|
264
264
|
resources: ( data.modifiedFiles.map(file => ({
|
|
265
265
|
originalUri: file.originalContentUri ? URI.revive(file.originalContentUri) : file.originalUri ? URI.revive(file.originalUri) : undefined,
|
|
266
266
|
modifiedUri: file.modifiedContentUri ? URI.revive(file.modifiedContentUri) : URI.revive(file.uri)
|
|
@@ -112,7 +112,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
112
112
|
moreActions = [];
|
|
113
113
|
if (!autoApproveWarningAccepted) {
|
|
114
114
|
moreActions.push({
|
|
115
|
-
label: ( localize(
|
|
115
|
+
label: ( localize(7396, "Enable Auto Approve...")),
|
|
116
116
|
data: {
|
|
117
117
|
type: "enable"
|
|
118
118
|
}
|
|
@@ -200,7 +200,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
200
200
|
const detailParts = [];
|
|
201
201
|
if (terminalData.requestUnsandboxedExecution) {
|
|
202
202
|
const reasonText = (terminalData.requestUnsandboxedExecutionReason && terminalData.requestUnsandboxedExecutionReason.trim()) || ( localize(
|
|
203
|
-
|
|
203
|
+
7397,
|
|
204
204
|
"The model did not provide a reason for requesting unsandboxed execution."
|
|
205
205
|
));
|
|
206
206
|
const inline = ( new MarkdownString(undefined, {
|
|
@@ -210,7 +210,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
210
210
|
inline.appendText(reasonText);
|
|
211
211
|
detailParts.push({
|
|
212
212
|
inline,
|
|
213
|
-
hoverLabel: ( localize(
|
|
213
|
+
hoverLabel: ( localize(7398, "Sandbox insufficient:")),
|
|
214
214
|
hoverBody: escapeMarkdownSyntaxTokens(reasonText),
|
|
215
215
|
isTrusted: undefined
|
|
216
216
|
});
|
|
@@ -220,7 +220,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
220
220
|
const hoverBody = inline.value.replace(/^\s*\$\([^)]+\)\s*/, "");
|
|
221
221
|
detailParts.push({
|
|
222
222
|
inline,
|
|
223
|
-
hoverLabel: ( localize(
|
|
223
|
+
hoverLabel: ( localize(7399, "Approval needed:")),
|
|
224
224
|
hoverBody,
|
|
225
225
|
isTrusted: inline.isTrusted
|
|
226
226
|
});
|
|
@@ -379,7 +379,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
379
379
|
}
|
|
380
380
|
const target = scope === "workspace" ? ConfigurationTarget.WORKSPACE : ConfigurationTarget.USER;
|
|
381
381
|
const settingsUri = createCommandUri(TerminalContribCommandId.OpenTerminalSettingsLink, target);
|
|
382
|
-
return `[\`${e.key}\`](${( settingsUri.toString())} "${( localize(
|
|
382
|
+
return `[\`${e.key}\`](${( settingsUri.toString())} "${( localize(7400, "View rule in settings"))}")`;
|
|
383
383
|
})).join(", ");
|
|
384
384
|
}
|
|
385
385
|
const mdTrustSettings = {
|
|
@@ -390,33 +390,33 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
390
390
|
const parts = [];
|
|
391
391
|
if (sessionRules.length > 0) {
|
|
392
392
|
parts.push(sessionRules.length === 1 ? ( localize(
|
|
393
|
-
|
|
393
|
+
7401,
|
|
394
394
|
"Session auto approve rule {0} added",
|
|
395
395
|
formatRuleLinks(sessionRules, "session")
|
|
396
396
|
)) : ( localize(
|
|
397
|
-
|
|
397
|
+
7402,
|
|
398
398
|
"Session auto approve rules {0} added",
|
|
399
399
|
formatRuleLinks(sessionRules, "session")
|
|
400
400
|
)));
|
|
401
401
|
}
|
|
402
402
|
if (workspaceRules.length > 0) {
|
|
403
403
|
parts.push(workspaceRules.length === 1 ? ( localize(
|
|
404
|
-
|
|
404
|
+
7403,
|
|
405
405
|
"Workspace auto approve rule {0} added",
|
|
406
406
|
formatRuleLinks(workspaceRules, "workspace")
|
|
407
407
|
)) : ( localize(
|
|
408
|
-
|
|
408
|
+
7404,
|
|
409
409
|
"Workspace auto approve rules {0} added",
|
|
410
410
|
formatRuleLinks(workspaceRules, "workspace")
|
|
411
411
|
)));
|
|
412
412
|
}
|
|
413
413
|
if (userRules.length > 0) {
|
|
414
414
|
parts.push(userRules.length === 1 ? ( localize(
|
|
415
|
-
|
|
415
|
+
7405,
|
|
416
416
|
"User auto approve rule {0} added",
|
|
417
417
|
formatRuleLinks(userRules, "user")
|
|
418
418
|
)) : ( localize(
|
|
419
|
-
|
|
419
|
+
7406,
|
|
420
420
|
"User auto approve rules {0} added",
|
|
421
421
|
formatRuleLinks(userRules, "user")
|
|
422
422
|
)));
|
|
@@ -446,7 +446,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
446
446
|
enabledCommands: [TerminalContribCommandId.DisableSessionAutoApproval]
|
|
447
447
|
}
|
|
448
448
|
};
|
|
449
|
-
terminalData.autoApproveInfo = ( new MarkdownString(`${( localize(
|
|
449
|
+
terminalData.autoApproveInfo = ( new MarkdownString(`${( localize(7407, "All commands will be auto approved for this session"))} ([${( localize(7408, "Disable"))}](${( disableUri.toString())}))`, mdTrustSettings));
|
|
450
450
|
toolConfirmKind = ToolConfirmKind.UserAction;
|
|
451
451
|
break;
|
|
452
452
|
}
|
|
@@ -472,11 +472,11 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
472
472
|
};
|
|
473
473
|
};
|
|
474
474
|
return [{
|
|
475
|
-
...getLabelAndTooltip(( localize(
|
|
475
|
+
...getLabelAndTooltip(( localize(7409, "Allow")), AcceptToolConfirmationActionId),
|
|
476
476
|
data: true,
|
|
477
477
|
moreActions
|
|
478
478
|
}, {
|
|
479
|
-
...getLabelAndTooltip(( localize(
|
|
479
|
+
...getLabelAndTooltip(( localize(7410, "Skip")), SkipToolConfirmationActionId, ( localize(7411, "Proceed without executing this command"))),
|
|
480
480
|
data: {
|
|
481
481
|
type: "skip"
|
|
482
482
|
},
|
|
@@ -486,9 +486,9 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
486
486
|
async _showAutoApproveWarning() {
|
|
487
487
|
const promptResult = await this.dialogService.prompt({
|
|
488
488
|
type: Severity.Info,
|
|
489
|
-
message: ( localize(
|
|
489
|
+
message: ( localize(7412, "Enable terminal auto approve?")),
|
|
490
490
|
buttons: [{
|
|
491
|
-
label: ( localize(
|
|
491
|
+
label: ( localize(7413, "Enable")),
|
|
492
492
|
run: () => true
|
|
493
493
|
}],
|
|
494
494
|
cancelButton: true,
|
|
@@ -496,11 +496,11 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
496
496
|
icon: Codicon.shield,
|
|
497
497
|
markdownDetails: [{
|
|
498
498
|
markdown: ( new MarkdownString(( localize(
|
|
499
|
-
|
|
499
|
+
7414,
|
|
500
500
|
"This will enable a configurable subset of commands to run in the terminal autonomously. It provides *best effort protections* and assumes the agent is not acting maliciously."
|
|
501
501
|
))))
|
|
502
502
|
}, {
|
|
503
|
-
markdown: ( new MarkdownString(`[${( localize(
|
|
503
|
+
markdown: ( new MarkdownString(`[${( localize(7415, "Learn more about the potential risks and how to avoid them."))}](https://code.visualstudio.com/docs/copilot/security#_security-considerations)`))
|
|
504
504
|
}]
|
|
505
505
|
}
|
|
506
506
|
});
|
|
@@ -520,11 +520,12 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
520
520
|
widget.setAssessment(cached);
|
|
521
521
|
} else {
|
|
522
522
|
widget.setLoading();
|
|
523
|
-
const cts =
|
|
523
|
+
const cts = ( new CancellationTokenSource());
|
|
524
|
+
this._register(toDisposable(() => cts.dispose(true)));
|
|
524
525
|
(async () => {
|
|
525
526
|
try {
|
|
526
527
|
const result = await this.riskAssessmentService.assess(tool, parameters, cts.token);
|
|
527
|
-
if (cts.token.isCancellationRequested) {
|
|
528
|
+
if (cts.token.isCancellationRequested || widget.isDisposed) {
|
|
528
529
|
return;
|
|
529
530
|
}
|
|
530
531
|
if (!result) {
|
|
@@ -533,7 +534,9 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
533
534
|
}
|
|
534
535
|
widget.setAssessment(result);
|
|
535
536
|
} catch {
|
|
536
|
-
widget.
|
|
537
|
+
if (!widget.isDisposed) {
|
|
538
|
+
widget.setHidden();
|
|
539
|
+
}
|
|
537
540
|
}
|
|
538
541
|
})();
|
|
539
542
|
}
|