@codingame/monaco-vscode-katex-common 26.1.1 → 26.2.0
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/actions/chatContinueInAction.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +45 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +23 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +31 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +33 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +47 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- 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/chatCollapsibleContentPart.d.ts +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 +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +55 -0
- 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.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +55 -0
- 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 +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +96 -53
- 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/chatSubagentContentPart.d.ts +15 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +83 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
- 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 +26 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +5 -5
- 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/chatDisabledClaudeHooksContent.css +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatHookContentPart.css +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +15 -22
- 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/chatTerminalToolConfirmationSubPart.js +15 -15
- 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/chatToolConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +3 -1
- 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 +3 -3
- 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 +14 -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 +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +206 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +12 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPendingDragAndDrop.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPendingDragAndDrop.js +148 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +108 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +14 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +59 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.js +1 -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.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +13 -5
- 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 +90 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +14 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +5 -5
- 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 +32 -32
- 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/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
|
@@ -216,9 +216,9 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
216
216
|
}
|
|
217
217
|
else {
|
|
218
218
|
if (session.element.status === ChatSessionStatus.InProgress) {
|
|
219
|
-
template.description.textContent = ( localize(
|
|
219
|
+
template.description.textContent = ( localize(4990, "Working..."));
|
|
220
220
|
} else if (session.element.status === ChatSessionStatus.NeedsInput) {
|
|
221
|
-
template.description.textContent = ( localize(
|
|
221
|
+
template.description.textContent = ( localize(4991, "Input needed."));
|
|
222
222
|
} else if (hasBadge && session.element.status === ChatSessionStatus.Completed) {
|
|
223
223
|
template.description.textContent = "";
|
|
224
224
|
} else if (session.element.timing.lastRequestEnded && session.element.timing.lastRequestStarted && session.element.timing.lastRequestEnded > session.element.timing.lastRequestStarted) {
|
|
@@ -228,16 +228,16 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
228
228
|
false,
|
|
229
229
|
true
|
|
230
230
|
);
|
|
231
|
-
template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(
|
|
231
|
+
template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(4992, "Failed after {0}.", duration)) : ( localize(4993, "Completed in {0}.", duration));
|
|
232
232
|
} else {
|
|
233
|
-
template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(
|
|
233
|
+
template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(4994, "Failed")) : ( localize(4995, "Completed"));
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
toDuration(startTime, endTime, useFullTimeWords, disallowNow) {
|
|
238
238
|
const elapsed = Math.max(Math.round((endTime - startTime) / 1000) * 1000, 1000 );
|
|
239
239
|
if (!disallowNow && elapsed < 60000) {
|
|
240
|
-
return localize(
|
|
240
|
+
return localize(4996, "now");
|
|
241
241
|
}
|
|
242
242
|
return getDurationString(elapsed, useFullTimeWords);
|
|
243
243
|
}
|
|
@@ -251,7 +251,7 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
251
251
|
const date = session.timing.lastRequestEnded ?? session.timing.lastRequestStarted ?? session.timing.created;
|
|
252
252
|
const seconds = Math.round((( new Date()).getTime() - date) / 1000);
|
|
253
253
|
if (seconds < 60) {
|
|
254
|
-
timeLabel = ( localize(
|
|
254
|
+
timeLabel = ( localize(4996, "now"));
|
|
255
255
|
} else {
|
|
256
256
|
timeLabel = fromNow(date, true);
|
|
257
257
|
}
|
|
@@ -308,16 +308,16 @@ function toStatusLabel(status) {
|
|
|
308
308
|
let statusLabel;
|
|
309
309
|
switch (status) {
|
|
310
310
|
case ChatSessionStatus.NeedsInput:
|
|
311
|
-
statusLabel = ( localize(
|
|
311
|
+
statusLabel = ( localize(4997, "Needs Input"));
|
|
312
312
|
break;
|
|
313
313
|
case ChatSessionStatus.InProgress:
|
|
314
|
-
statusLabel = ( localize(
|
|
314
|
+
statusLabel = ( localize(4998, "In Progress"));
|
|
315
315
|
break;
|
|
316
316
|
case ChatSessionStatus.Failed:
|
|
317
|
-
statusLabel = ( localize(
|
|
317
|
+
statusLabel = ( localize(4999, "Failed"));
|
|
318
318
|
break;
|
|
319
319
|
default:
|
|
320
|
-
statusLabel = ( localize(
|
|
320
|
+
statusLabel = ( localize(5000, "Completed"));
|
|
321
321
|
}
|
|
322
322
|
return statusLabel;
|
|
323
323
|
}
|
|
@@ -402,14 +402,14 @@ class AgentSessionsAccessibilityProvider {
|
|
|
402
402
|
return "listitem";
|
|
403
403
|
}
|
|
404
404
|
getWidgetAriaLabel() {
|
|
405
|
-
return localize(
|
|
405
|
+
return localize(5001, "Agent Sessions");
|
|
406
406
|
}
|
|
407
407
|
getAriaLabel(element) {
|
|
408
408
|
if (isAgentSessionSection(element)) {
|
|
409
|
-
return localize(
|
|
409
|
+
return localize(5002, "{0} sessions section", element.label);
|
|
410
410
|
}
|
|
411
411
|
return localize(
|
|
412
|
-
|
|
412
|
+
5003,
|
|
413
413
|
"{0} session {1} ({2}), created {3}",
|
|
414
414
|
element.providerLabel,
|
|
415
415
|
element.label,
|
|
@@ -481,7 +481,7 @@ class AgentSessionsDataSource {
|
|
|
481
481
|
if (othersSessions.length > 0) {
|
|
482
482
|
result.push({
|
|
483
483
|
section: AgentSessionSection.More,
|
|
484
|
-
label: ( localize(
|
|
484
|
+
label: ( localize(5004, "More ({0})", othersSessions.length)),
|
|
485
485
|
sessions: othersSessions
|
|
486
486
|
});
|
|
487
487
|
}
|
|
@@ -510,13 +510,13 @@ class AgentSessionsDataSource {
|
|
|
510
510
|
const DAY_THRESHOLD = 24 * 60 * 60 * 1000;
|
|
511
511
|
const WEEK_THRESHOLD = 7 * DAY_THRESHOLD;
|
|
512
512
|
const AgentSessionSectionLabels = {
|
|
513
|
-
[AgentSessionSection.InProgress]: ( localize(
|
|
514
|
-
[AgentSessionSection.Today]: ( localize(
|
|
515
|
-
[AgentSessionSection.Yesterday]: ( localize(
|
|
516
|
-
[AgentSessionSection.Week]: ( localize(
|
|
517
|
-
[AgentSessionSection.Older]: ( localize(
|
|
518
|
-
[AgentSessionSection.Archived]: ( localize(
|
|
519
|
-
[AgentSessionSection.More]: ( localize(
|
|
513
|
+
[AgentSessionSection.InProgress]: ( localize(5005, "In Progress")),
|
|
514
|
+
[AgentSessionSection.Today]: ( localize(5006, "Today")),
|
|
515
|
+
[AgentSessionSection.Yesterday]: ( localize(5007, "Yesterday")),
|
|
516
|
+
[AgentSessionSection.Week]: ( localize(5008, "Last Week")),
|
|
517
|
+
[AgentSessionSection.Older]: ( localize(5009, "Older")),
|
|
518
|
+
[AgentSessionSection.Archived]: ( localize(5010, "Archived")),
|
|
519
|
+
[AgentSessionSection.More]: ( localize(5011, "More"))
|
|
520
520
|
};
|
|
521
521
|
function groupAgentSessionsByDate(sessions) {
|
|
522
522
|
const now = Date.now();
|
|
@@ -569,7 +569,7 @@ function groupAgentSessionsByDate(sessions) {
|
|
|
569
569
|
sessions: olderSessions
|
|
570
570
|
}], [AgentSessionSection.Archived, {
|
|
571
571
|
section: AgentSessionSection.Archived,
|
|
572
|
-
label: ( localize(
|
|
572
|
+
label: ( localize(5012, "Archived ({0})", archivedSessions.length)),
|
|
573
573
|
sessions: archivedSessions
|
|
574
574
|
}]]));
|
|
575
575
|
}
|
|
@@ -665,7 +665,7 @@ let AgentSessionsDragAndDrop = class AgentSessionsDragAndDrop extends Disposable
|
|
|
665
665
|
if (sessions.length === 1) {
|
|
666
666
|
return sessions[0].label;
|
|
667
667
|
}
|
|
668
|
-
return localize(
|
|
668
|
+
return localize(5013, "{0} agent sessions", sessions.length);
|
|
669
669
|
}
|
|
670
670
|
onDragOver(data, targetElement, targetIndex, targetSector, originalEvent) {
|
|
671
671
|
return false;
|
|
@@ -125,7 +125,7 @@ let AbstractChatAttachmentWidget = class AbstractChatAttachmentWidget extends Di
|
|
|
125
125
|
const clearButton = ( new Button(this.element, {
|
|
126
126
|
supportIcons: true,
|
|
127
127
|
hoverDelegate: createInstantHoverDelegate(),
|
|
128
|
-
title: ( localize(
|
|
128
|
+
title: ( localize(5082, "Remove from context"))
|
|
129
129
|
}));
|
|
130
130
|
clearButton.element.tabIndex = -1;
|
|
131
131
|
clearButton.icon = Codicon.close;
|
|
@@ -216,14 +216,14 @@ let FileAttachmentWidget = class FileAttachmentWidget extends AbstractChatAttach
|
|
|
216
216
|
const fileDirname = dirname(resource.path);
|
|
217
217
|
const friendlyName = `${fileBasename} ${fileDirname}`;
|
|
218
218
|
let ariaLabel = range ? ( localize(
|
|
219
|
-
|
|
219
|
+
5083,
|
|
220
220
|
"Attached file, {0}, line {1} to line {2}",
|
|
221
221
|
friendlyName,
|
|
222
222
|
range.startLineNumber,
|
|
223
223
|
range.endLineNumber
|
|
224
|
-
)) : ( localize(
|
|
224
|
+
)) : ( localize(5084, "Attached file, {0}", friendlyName));
|
|
225
225
|
if (attachment.omittedState === OmittedState.Full) {
|
|
226
|
-
ariaLabel = ( localize(
|
|
226
|
+
ariaLabel = ( localize(5085, "Omitted this file: {0}", attachment.name));
|
|
227
227
|
this.renderOmittedWarning(friendlyName, ariaLabel);
|
|
228
228
|
} else {
|
|
229
229
|
const fileOptions = {
|
|
@@ -261,7 +261,7 @@ let FileAttachmentWidget = class FileAttachmentWidget extends AbstractChatAttach
|
|
|
261
261
|
hoverElement.setAttribute("aria-label", ariaLabel);
|
|
262
262
|
this.element.classList.add("warning");
|
|
263
263
|
hoverElement.textContent = ( localize(
|
|
264
|
-
|
|
264
|
+
5086,
|
|
265
265
|
"{0} does not support this file type.",
|
|
266
266
|
this.currentLanguageModel ? this.languageModelsService.lookupLanguageModel(this.currentLanguageModel.identifier)?.name : this.currentLanguageModel ?? "This model"
|
|
267
267
|
));
|
|
@@ -298,7 +298,7 @@ let TerminalCommandAttachmentWidget = class TerminalCommandAttachmentWidget exte
|
|
|
298
298
|
);
|
|
299
299
|
this.hoverService = hoverService;
|
|
300
300
|
this.terminalService = terminalService;
|
|
301
|
-
const ariaLabel = ( localize(
|
|
301
|
+
const ariaLabel = ( localize(5087, "Terminal command, {0}", attachment.command));
|
|
302
302
|
const clickHandler = () => this.openResource(attachment.resource, {
|
|
303
303
|
editorOptions: {
|
|
304
304
|
preserveFocus: true
|
|
@@ -351,16 +351,16 @@ function getHoverContent(ariaLabel, attachment) {
|
|
|
351
351
|
const hoverElement = $("div.chat-attached-context-hover");
|
|
352
352
|
hoverElement.setAttribute("aria-label", ariaLabel);
|
|
353
353
|
const commandTitle = $("div", {}, typeof attachment.exitCode === "number" ? ( localize(
|
|
354
|
-
|
|
354
|
+
5088,
|
|
355
355
|
"Command: {0}, exit code: {1}",
|
|
356
356
|
attachment.command,
|
|
357
357
|
attachment.exitCode
|
|
358
|
-
)) : ( localize(
|
|
358
|
+
)) : ( localize(5089, "Command")));
|
|
359
359
|
commandTitle.classList.add("attachment-additional-info");
|
|
360
360
|
const commandBlock = $("pre.chat-terminal-command-block");
|
|
361
361
|
hoverElement.append(commandTitle, commandBlock);
|
|
362
362
|
if (attachment.output && attachment.output.trim().length > 0) {
|
|
363
|
-
const outputTitle = $("div", {}, ( localize(
|
|
363
|
+
const outputTitle = $("div", {}, ( localize(5090, "Output:")));
|
|
364
364
|
outputTitle.classList.add("attachment-additional-info");
|
|
365
365
|
const outputBlock = $("pre.chat-terminal-command-output");
|
|
366
366
|
const fullOutputLines = attachment.output.split("\n");
|
|
@@ -420,11 +420,11 @@ let ImageAttachmentWidget = class ImageAttachmentWidget extends AbstractChatAtta
|
|
|
420
420
|
this.labelService = labelService;
|
|
421
421
|
let ariaLabel;
|
|
422
422
|
if (attachment.omittedState === OmittedState.Full) {
|
|
423
|
-
ariaLabel = ( localize(
|
|
423
|
+
ariaLabel = ( localize(5091, "Omitted this image: {0}", attachment.name));
|
|
424
424
|
} else if (attachment.omittedState === OmittedState.Partial) {
|
|
425
|
-
ariaLabel = ( localize(
|
|
425
|
+
ariaLabel = ( localize(5092, "Partially omitted this image: {0}", attachment.name));
|
|
426
426
|
} else {
|
|
427
|
-
ariaLabel = ( localize(
|
|
427
|
+
ariaLabel = ( localize(5093, "Attached image, {0}", attachment.name));
|
|
428
428
|
}
|
|
429
429
|
const ref = attachment.references?.[0]?.reference;
|
|
430
430
|
resource = ref && URI.isUri(ref) ? ref : undefined;
|
|
@@ -498,7 +498,7 @@ function createImageElements(
|
|
|
498
498
|
if ((!supportsVision && currentLanguageModel) || omittedState === OmittedState.Full) {
|
|
499
499
|
element.classList.add("warning");
|
|
500
500
|
hoverElement.textContent = ( localize(
|
|
501
|
-
|
|
501
|
+
5094,
|
|
502
502
|
"{0} does not support images.",
|
|
503
503
|
currentLanguageModelName ?? "This model"
|
|
504
504
|
));
|
|
@@ -534,7 +534,7 @@ function createImageElements(
|
|
|
534
534
|
const urlContainer = $(
|
|
535
535
|
"a.chat-attached-context-url",
|
|
536
536
|
{},
|
|
537
|
-
omittedState === OmittedState.Partial ? ( localize(
|
|
537
|
+
omittedState === OmittedState.Partial ? ( localize(5095, "This GIF was partially omitted - current frame will be sent.")) : fullName
|
|
538
538
|
);
|
|
539
539
|
const separator = $("div.chat-attached-context-url-separator");
|
|
540
540
|
disposable.add(addDisposableListener(urlContainer, "click", () => clickHandler()));
|
|
@@ -583,7 +583,7 @@ let PasteAttachmentWidget = class PasteAttachmentWidget extends AbstractChatAtta
|
|
|
583
583
|
);
|
|
584
584
|
this.hoverService = hoverService;
|
|
585
585
|
this.instantiationService = instantiationService;
|
|
586
|
-
const ariaLabel = ( localize(
|
|
586
|
+
const ariaLabel = ( localize(5096, "Attached context, {0}", attachment.name));
|
|
587
587
|
this.element.ariaLabel = ariaLabel;
|
|
588
588
|
const classNames = ["file-icon", `${attachment.language}-lang-file-icon`];
|
|
589
589
|
let resource;
|
|
@@ -660,7 +660,7 @@ let DefaultChatAttachmentWidget = class DefaultChatAttachmentWidget extends Abst
|
|
|
660
660
|
const attachmentLabel = attachment.fullName ?? attachment.name;
|
|
661
661
|
const withIcon = attachment.icon?.id ? `$(${attachment.icon.id})\u00A0${attachmentLabel}` : attachmentLabel;
|
|
662
662
|
this.label.setLabel(withIcon, correspondingContentReference?.options?.status?.description);
|
|
663
|
-
this.element.ariaLabel = ( localize(
|
|
663
|
+
this.element.ariaLabel = ( localize(5096, "Attached context, {0}", attachment.name));
|
|
664
664
|
if (attachment.kind === "diagnostic") {
|
|
665
665
|
if (attachment.filterUri) {
|
|
666
666
|
resource = attachment.filterUri ? URI.revive(attachment.filterUri) : undefined;
|
|
@@ -750,8 +750,8 @@ let PromptFileAttachmentWidget = class PromptFileAttachmentWidget extends Abstra
|
|
|
750
750
|
const fileDirname = dirname(resource.path);
|
|
751
751
|
const friendlyName = `${fileBasename} ${fileDirname}`;
|
|
752
752
|
const isPrompt = attachment.id.startsWith(PromptFileVariableKind.PromptFile);
|
|
753
|
-
const ariaLabel = isPrompt ? ( localize(
|
|
754
|
-
const typeLabel = isPrompt ? ( localize(
|
|
753
|
+
const ariaLabel = isPrompt ? ( localize(5097, "Prompt file, {0}", friendlyName)) : ( localize(5098, "Instructions attachment, {0}", friendlyName));
|
|
754
|
+
const typeLabel = isPrompt ? ( localize(5099, "Prompt")) : ( localize(5100, "Instructions"));
|
|
755
755
|
const title = this.labelService.getUriLabel(resource) + (attachment.originLabel ? `\n${attachment.originLabel}` : "");
|
|
756
756
|
this.element.classList.remove("warning", "error");
|
|
757
757
|
const fileWithoutExtension = getCleanPromptName(resource);
|
|
@@ -811,7 +811,7 @@ let PromptTextAttachmentWidget = class PromptTextAttachmentWidget extends Abstra
|
|
|
811
811
|
})
|
|
812
812
|
);
|
|
813
813
|
}
|
|
814
|
-
this.label.setLabel(( localize(
|
|
814
|
+
this.label.setLabel(( localize(5101, "Additional Instructions")), undefined, undefined);
|
|
815
815
|
this._register(hoverService.setupDelayedHover(this.element, {
|
|
816
816
|
...commonHoverOptions,
|
|
817
817
|
content: attachment.value
|
|
@@ -858,18 +858,18 @@ let ToolSetOrToolItemAttachmentWidget = class ToolSetOrToolItemAttachmentWidget
|
|
|
858
858
|
}
|
|
859
859
|
this.label.setLabel(`$(${icon.id})\u00A0${name}`, undefined);
|
|
860
860
|
this.element.style.cursor = "pointer";
|
|
861
|
-
this.element.ariaLabel = ( localize(
|
|
861
|
+
this.element.ariaLabel = ( localize(5096, "Attached context, {0}", name));
|
|
862
862
|
let hoverContent;
|
|
863
863
|
if (isToolSet(toolOrToolSet)) {
|
|
864
864
|
hoverContent = ( localize(
|
|
865
|
-
|
|
865
|
+
5102,
|
|
866
866
|
"{0} - {1}",
|
|
867
867
|
toolOrToolSet.description ?? toolOrToolSet.referenceName,
|
|
868
868
|
toolOrToolSet.source.label
|
|
869
869
|
));
|
|
870
870
|
} else if (toolOrToolSet) {
|
|
871
871
|
hoverContent = ( localize(
|
|
872
|
-
|
|
872
|
+
5103,
|
|
873
873
|
"{0} - {1}",
|
|
874
874
|
toolOrToolSet.userDescription ?? toolOrToolSet.modelDescription,
|
|
875
875
|
toolOrToolSet.source.label
|
|
@@ -940,7 +940,7 @@ let NotebookCellOutputChatAttachmentWidget = class NotebookCellOutputChatAttachm
|
|
|
940
940
|
this.addResourceOpenHandlers(resource, undefined);
|
|
941
941
|
}
|
|
942
942
|
getAriaLabel(attachment) {
|
|
943
|
-
return localize(
|
|
943
|
+
return localize(5104, "Attached Notebook output, {0}", attachment.name);
|
|
944
944
|
}
|
|
945
945
|
renderErrorOutput(resource, attachment) {
|
|
946
946
|
const attachmentLabel = attachment.name;
|
|
@@ -968,9 +968,9 @@ let NotebookCellOutputChatAttachmentWidget = class NotebookCellOutputChatAttachm
|
|
|
968
968
|
renderImageOutput(resource, attachment) {
|
|
969
969
|
let ariaLabel;
|
|
970
970
|
if (attachment.omittedState === OmittedState.Full) {
|
|
971
|
-
ariaLabel = ( localize(
|
|
971
|
+
ariaLabel = ( localize(5105, "Omitted this Notebook ouput: {0}", attachment.name));
|
|
972
972
|
} else if (attachment.omittedState === OmittedState.Partial) {
|
|
973
|
-
ariaLabel = ( localize(
|
|
973
|
+
ariaLabel = ( localize(5106, "Partially omitted this Notebook output: {0}", attachment.name));
|
|
974
974
|
} else {
|
|
975
975
|
ariaLabel = this.getAriaLabel(attachment);
|
|
976
976
|
}
|
|
@@ -1035,14 +1035,14 @@ let ElementChatAttachmentWidget = class ElementChatAttachmentWidget extends Abst
|
|
|
1035
1035
|
openerService,
|
|
1036
1036
|
configurationService
|
|
1037
1037
|
);
|
|
1038
|
-
const ariaLabel = ( localize(
|
|
1038
|
+
const ariaLabel = ( localize(5107, "Attached element, {0}", attachment.name));
|
|
1039
1039
|
this.element.ariaLabel = ariaLabel;
|
|
1040
1040
|
this.element.style.position = "relative";
|
|
1041
1041
|
this.element.style.cursor = "pointer";
|
|
1042
1042
|
const attachmentLabel = attachment.name;
|
|
1043
1043
|
const withIcon = attachment.icon?.id ? `$(${attachment.icon.id})\u00A0${attachmentLabel}` : attachmentLabel;
|
|
1044
1044
|
this.label.setLabel(withIcon, undefined, {
|
|
1045
|
-
title: ( localize(
|
|
1045
|
+
title: ( localize(5108, "Click to view the contents of: {0}", attachmentLabel))
|
|
1046
1046
|
});
|
|
1047
1047
|
this._register(addDisposableListener(this.element, EventType.CLICK, async () => {
|
|
1048
1048
|
const content = attachment.value?.toString() || "";
|
|
@@ -1083,7 +1083,7 @@ let SCMHistoryItemAttachmentWidget = class SCMHistoryItemAttachmentWidget extend
|
|
|
1083
1083
|
);
|
|
1084
1084
|
this.label.setLabel(attachment.name, undefined);
|
|
1085
1085
|
this.element.style.cursor = "pointer";
|
|
1086
|
-
this.element.ariaLabel = ( localize(
|
|
1086
|
+
this.element.ariaLabel = ( localize(5096, "Attached context, {0}", attachment.name));
|
|
1087
1087
|
const {
|
|
1088
1088
|
content,
|
|
1089
1089
|
disposables
|
|
@@ -1145,7 +1145,7 @@ let SCMHistoryItemChangeAttachmentWidget = class SCMHistoryItemChangeAttachmentW
|
|
|
1145
1145
|
hidePath: true,
|
|
1146
1146
|
nameSuffix
|
|
1147
1147
|
});
|
|
1148
|
-
this.element.ariaLabel = ( localize(
|
|
1148
|
+
this.element.ariaLabel = ( localize(5096, "Attached context, {0}", attachment.name));
|
|
1149
1149
|
const {
|
|
1150
1150
|
content,
|
|
1151
1151
|
disposables
|
|
@@ -1201,7 +1201,7 @@ let SCMHistoryItemChangeRangeAttachmentWidget = class SCMHistoryItemChangeRangeA
|
|
|
1201
1201
|
hidePath: true,
|
|
1202
1202
|
nameSuffix
|
|
1203
1203
|
});
|
|
1204
|
-
this.element.ariaLabel = ( localize(
|
|
1204
|
+
this.element.ariaLabel = ( localize(5096, "Attached context, {0}", attachment.name));
|
|
1205
1205
|
this.addResourceOpenHandlers(attachment.value, undefined);
|
|
1206
1206
|
}
|
|
1207
1207
|
async openResource(resource, options, isDirectory, range) {
|
|
@@ -1337,7 +1337,7 @@ function addBasicContextMenu(accessor, widget, scopedContextKeyService, menuId,
|
|
|
1337
1337
|
const chatAttachmentResourceContextKey = ( new RawContextKey("chatAttachmentResource", undefined, {
|
|
1338
1338
|
type: "URI",
|
|
1339
1339
|
description: ( localize(
|
|
1340
|
-
|
|
1340
|
+
5109,
|
|
1341
1341
|
"The full value of the chat attachment resource, including scheme and path"
|
|
1342
1342
|
))
|
|
1343
1343
|
}));
|
package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js
CHANGED
|
@@ -90,11 +90,11 @@ let ImplicitContextAttachmentWidget = class ImplicitContextAttachmentWidget exte
|
|
|
90
90
|
this.domNode.appendChild(contextNode);
|
|
91
91
|
contextNode.classList.toggle("disabled", !context.enabled);
|
|
92
92
|
const file = context.uri;
|
|
93
|
-
const attachmentTypeName = file?.scheme === Schemas.vscodeNotebookCell ? ( localize(
|
|
93
|
+
const attachmentTypeName = file?.scheme === Schemas.vscodeNotebookCell ? ( localize(5111, "cell")) : ( localize(5112, "file"));
|
|
94
94
|
const isSuggestedEnabled = this.configService.getValue("chat.implicitContext.suggestedContext");
|
|
95
95
|
if (isSuggestedEnabled) {
|
|
96
96
|
if (!isSelection) {
|
|
97
|
-
const buttonMsg = context.enabled ? ( localize(
|
|
97
|
+
const buttonMsg = context.enabled ? ( localize(5113, "Disable current {0} context", attachmentTypeName)) : "";
|
|
98
98
|
const toggleButton = this.renderDisposables.add(( new Button(contextNode, {
|
|
99
99
|
supportIcons: true,
|
|
100
100
|
title: buttonMsg
|
|
@@ -109,7 +109,7 @@ let ImplicitContextAttachmentWidget = class ImplicitContextAttachmentWidget exte
|
|
|
109
109
|
context.enabled = false;
|
|
110
110
|
}));
|
|
111
111
|
} else {
|
|
112
|
-
const pinButtonMsg = ( localize(
|
|
112
|
+
const pinButtonMsg = ( localize(5114, "Pin selection"));
|
|
113
113
|
const pinButton = this.renderDisposables.add(( new Button(contextNode, {
|
|
114
114
|
supportIcons: true,
|
|
115
115
|
title: pinButtonMsg
|
|
@@ -142,7 +142,7 @@ let ImplicitContextAttachmentWidget = class ImplicitContextAttachmentWidget exte
|
|
|
142
142
|
})
|
|
143
143
|
);
|
|
144
144
|
} else {
|
|
145
|
-
const buttonMsg = context.enabled ? ( localize(
|
|
145
|
+
const buttonMsg = context.enabled ? ( localize(5113, "Disable current {0} context", attachmentTypeName)) : ( localize(5115, "Enable current {0} context", attachmentTypeName));
|
|
146
146
|
const toggleButton = this.renderDisposables.add(( new Button(contextNode, {
|
|
147
147
|
supportIcons: true,
|
|
148
148
|
title: buttonMsg
|
|
@@ -160,7 +160,7 @@ let ImplicitContextAttachmentWidget = class ImplicitContextAttachmentWidget exte
|
|
|
160
160
|
let markdownTooltip;
|
|
161
161
|
if (isStringImplicitContextValue(context.value)) {
|
|
162
162
|
markdownTooltip = context.value.tooltip;
|
|
163
|
-
title = this.renderString(label, context.name, context.icon, markdownTooltip, ( localize(
|
|
163
|
+
title = this.renderString(label, context.name, context.icon, markdownTooltip, ( localize(5116, "Current file context")));
|
|
164
164
|
} else {
|
|
165
165
|
title = this.renderResource(context.value, context.isSelection, context.enabled, label);
|
|
166
166
|
}
|
|
@@ -208,23 +208,23 @@ let ImplicitContextAttachmentWidget = class ImplicitContextAttachmentWidget exte
|
|
|
208
208
|
renderResource(attachmentValue, isSelection, enabled, label) {
|
|
209
209
|
const file = URI.isUri(attachmentValue) ? attachmentValue : attachmentValue.uri;
|
|
210
210
|
const range = URI.isUri(attachmentValue) || !isSelection ? undefined : attachmentValue.range;
|
|
211
|
-
const attachmentTypeName = file.scheme === Schemas.vscodeNotebookCell ? ( localize(
|
|
211
|
+
const attachmentTypeName = file.scheme === Schemas.vscodeNotebookCell ? ( localize(5111, "cell")) : ( localize(5112, "file"));
|
|
212
212
|
const fileBasename = basename(file);
|
|
213
213
|
const fileDirname = dirname(file);
|
|
214
214
|
const friendlyName = `${fileBasename} ${fileDirname}`;
|
|
215
215
|
const ariaLabel = range ? ( localize(
|
|
216
|
-
|
|
216
|
+
5117,
|
|
217
217
|
"Attached {0}, {1}, line {2} to line {3}",
|
|
218
218
|
attachmentTypeName,
|
|
219
219
|
friendlyName,
|
|
220
220
|
range.startLineNumber,
|
|
221
221
|
range.endLineNumber
|
|
222
|
-
)) : ( localize(
|
|
222
|
+
)) : ( localize(5118, "Attached {0}, {1}", attachmentTypeName, friendlyName));
|
|
223
223
|
const uriLabel = this.labelService.getUriLabel(file, {
|
|
224
224
|
relative: true
|
|
225
225
|
});
|
|
226
|
-
const currentFile = ( localize(
|
|
227
|
-
const inactive = ( localize(
|
|
226
|
+
const currentFile = ( localize(5119, "Current {0} context", attachmentTypeName));
|
|
227
|
+
const inactive = ( localize(5120, "Enable current {0} context", attachmentTypeName));
|
|
228
228
|
const currentFileHint = enabled || isSelection ? currentFile : inactive;
|
|
229
229
|
const title = `${currentFileHint}\n${uriLabel}`;
|
|
230
230
|
label.setFile(file, {
|