@codingame/monaco-vscode-katex-common 28.4.0 → 29.0.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/platform/actions/browser/buttonbar.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +17 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +2 -2
- 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.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +158 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +22 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +16 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +121 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +15 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +29 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +349 -109
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +47 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +104 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +21 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +13 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +29 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +261 -282
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +184 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +4 -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/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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +4 -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.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +42 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +14 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +11 -9
- 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 +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +25 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +332 -114
- 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.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +10 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +66 -7
- 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 +28 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +272 -107
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.js +70 -0
- 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.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +6 -3
- 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/chatConfirmationWidget.css +151 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +96 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +86 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +5 -2
- 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/chatInputOutputMarkdownProgressPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +8 -6
- 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/chatModifiedFilesConfirmationSubPart.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +273 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +28 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +22 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +81 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +20 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +11 -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.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +21 -7
- 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 +2 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +112 -163
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +137 -52
- 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 +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +108 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +9 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +385 -247
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +23 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +23 -23
- 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 +124 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +24 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +30 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +84 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +170 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.js +95 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +4 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +4 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +38 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +31 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +12 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +130 -23
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +41 -0
- 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/inlineChatOverlayWidget.css +55 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +50 -39
- 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
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +0 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +0 -440
|
@@ -41,10 +41,12 @@ import { globMatchesResource } from '@codingame/monaco-vscode-api/vscode/vs/work
|
|
|
41
41
|
import { INotebookDocumentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/notebook/common/notebookDocumentService.service';
|
|
42
42
|
import { ExplorerFolderContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/common/files';
|
|
43
43
|
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
44
|
+
import { IChatImageCarouselService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatImageCarouselService.service';
|
|
44
45
|
import { hookUpSymbolAttachmentDragAndContextMenu, chatAttachmentResourceContextKey } from '../../attachments/chatAttachmentWidgets.js';
|
|
45
46
|
import { IChatMarkdownAnchorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service';
|
|
46
47
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
47
48
|
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
49
|
+
import { getMediaMime } from '@codingame/monaco-vscode-api/vscode/vs/base/common/mime';
|
|
48
50
|
|
|
49
51
|
var InlineAnchorWidget_1;
|
|
50
52
|
registerCss(chatInlineAnchorWidget);
|
|
@@ -82,6 +84,11 @@ function renderFileWidgets(element, instantiationService, chatMarkdownAnchorServ
|
|
|
82
84
|
linkText
|
|
83
85
|
};
|
|
84
86
|
shouldRenderWidget = true;
|
|
87
|
+
searchParams.delete("vscodeLinkType");
|
|
88
|
+
const remainingQuery = ( searchParams.toString());
|
|
89
|
+
uri = uri.with({
|
|
90
|
+
query: remainingQuery
|
|
91
|
+
});
|
|
85
92
|
}
|
|
86
93
|
}
|
|
87
94
|
if (shouldRenderWidget && uri?.scheme) {
|
|
@@ -105,6 +112,7 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
105
112
|
element,
|
|
106
113
|
inlineReference,
|
|
107
114
|
metadata,
|
|
115
|
+
chatImageCarouselService,
|
|
108
116
|
configurationService,
|
|
109
117
|
originalContextKeyService,
|
|
110
118
|
contextMenuService,
|
|
@@ -124,6 +132,7 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
124
132
|
this.element = element;
|
|
125
133
|
this.inlineReference = inlineReference;
|
|
126
134
|
this.metadata = metadata;
|
|
135
|
+
this.chatImageCarouselService = chatImageCarouselService;
|
|
127
136
|
this.configurationService = configurationService;
|
|
128
137
|
this.notebookDocumentService = notebookDocumentService;
|
|
129
138
|
this.openerService = openerService;
|
|
@@ -180,9 +189,6 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
180
189
|
iconClasses = recomputeIconClasses();
|
|
181
190
|
iconEl.classList.add(...iconClasses);
|
|
182
191
|
};
|
|
183
|
-
this._register(themeService.onDidFileIconThemeChange(() => {
|
|
184
|
-
refreshIconClasses();
|
|
185
|
-
}));
|
|
186
192
|
let isDirectory = false;
|
|
187
193
|
fileService.stat(location.uri).then(stat => {
|
|
188
194
|
isDirectory = stat.isDirectory;
|
|
@@ -191,17 +197,25 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
191
197
|
refreshIconClasses();
|
|
192
198
|
}
|
|
193
199
|
}).catch(() => {});
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const isFolderContext = ExplorerFolderContext.bindTo(contextKeyService);
|
|
200
|
+
let contextKeyService;
|
|
201
|
+
let isFolderContext;
|
|
197
202
|
let contextMenuInitialized = false;
|
|
203
|
+
const ensureContextKeyService = () => {
|
|
204
|
+
if (!contextKeyService) {
|
|
205
|
+
contextKeyService = this._register(originalContextKeyService.createScoped(element));
|
|
206
|
+
chatAttachmentResourceContextKey.bindTo(contextKeyService).set(( location.uri.toString()));
|
|
207
|
+
isFolderContext = ExplorerFolderContext.bindTo(contextKeyService);
|
|
208
|
+
}
|
|
209
|
+
return contextKeyService;
|
|
210
|
+
};
|
|
198
211
|
this._register(
|
|
199
212
|
addDisposableListener(element, EventType.CONTEXT_MENU, async domEvent => {
|
|
200
213
|
const event = ( new StandardMouseEvent(getWindow(domEvent), domEvent));
|
|
201
214
|
EventHelper.stop(domEvent, true);
|
|
215
|
+
const cks = ensureContextKeyService();
|
|
202
216
|
if (!contextMenuInitialized) {
|
|
203
217
|
contextMenuInitialized = true;
|
|
204
|
-
const resourceContextKey = ( new StaticResourceContextKey(
|
|
218
|
+
const resourceContextKey = ( new StaticResourceContextKey(cks, fileService, languageService, modelService));
|
|
205
219
|
resourceContextKey.set(location.uri);
|
|
206
220
|
}
|
|
207
221
|
isFolderContext.set(isDirectory);
|
|
@@ -209,10 +223,10 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
209
223
|
return;
|
|
210
224
|
}
|
|
211
225
|
contextMenuService.showContextMenu({
|
|
212
|
-
contextKeyService,
|
|
226
|
+
contextKeyService: cks,
|
|
213
227
|
getAnchor: () => event,
|
|
214
228
|
getActions: () => {
|
|
215
|
-
const menu = menuService.getMenuActions(MenuId.ChatInlineResourceAnchorContext,
|
|
229
|
+
const menu = menuService.getMenuActions(MenuId.ChatInlineResourceAnchorContext, cks, {
|
|
216
230
|
arg: location.uri
|
|
217
231
|
});
|
|
218
232
|
return getFlatContextMenuActions(menu);
|
|
@@ -222,10 +236,10 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
222
236
|
);
|
|
223
237
|
if (location.range) {
|
|
224
238
|
if (location.range.startLineNumber === location.range.endLineNumber) {
|
|
225
|
-
element.setAttribute("aria-label", ( localize(
|
|
239
|
+
element.setAttribute("aria-label", ( localize(6679, "{0} line {1}", filePathLabel, location.range.startLineNumber)));
|
|
226
240
|
} else {
|
|
227
241
|
element.setAttribute("aria-label", ( localize(
|
|
228
|
-
|
|
242
|
+
6680,
|
|
229
243
|
"{0} lines {1} to {2}",
|
|
230
244
|
filePathLabel,
|
|
231
245
|
location.range.startLineNumber,
|
|
@@ -247,12 +261,6 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
247
261
|
this._register(
|
|
248
262
|
hoverService.setupManagedHover(getDefaultHoverDelegate("element"), element, relativeLabel)
|
|
249
263
|
);
|
|
250
|
-
this.updateAppearance();
|
|
251
|
-
this._register(this.configurationService.onDidChangeConfiguration(e => {
|
|
252
|
-
if (e.affectsConfiguration(ChatConfiguration.InlineReferencesStyle)) {
|
|
253
|
-
this.updateAppearance();
|
|
254
|
-
}
|
|
255
|
-
}));
|
|
256
264
|
if (this.data.kind !== "symbol") {
|
|
257
265
|
element.draggable = true;
|
|
258
266
|
this._register(addDisposableListener(element, "dragstart", e => {
|
|
@@ -266,6 +274,11 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
266
274
|
}
|
|
267
275
|
this._register(addDisposableListener(element, "click", async e => {
|
|
268
276
|
EventHelper.stop(e, true);
|
|
277
|
+
const mimeType = getMediaMime(location.uri.path);
|
|
278
|
+
if (mimeType?.startsWith("image/") && this.configurationService.getValue(ChatConfiguration.ImageCarouselEnabled)) {
|
|
279
|
+
await this.chatImageCarouselService.openCarouselAtResource(location.uri);
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
269
282
|
const editorOverride = getEditorOverrideForChatResource(location.uri, this.configurationService);
|
|
270
283
|
const editorOptions = {
|
|
271
284
|
override: editorOverride
|
|
@@ -282,18 +295,13 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
282
295
|
getHTMLElement() {
|
|
283
296
|
return this.element;
|
|
284
297
|
}
|
|
285
|
-
updateAppearance() {
|
|
286
|
-
const style = this.configurationService.getValue(ChatConfiguration.InlineReferencesStyle);
|
|
287
|
-
const useLinkStyle = style === "link";
|
|
288
|
-
this.element.classList.toggle("link-style", useLinkStyle);
|
|
289
|
-
}
|
|
290
298
|
getCellIndex(location) {
|
|
291
299
|
const notebook = this.notebookDocumentService.getNotebook(location);
|
|
292
300
|
const index = notebook?.getCellIndex(location) ?? -1;
|
|
293
301
|
return index >= 0 ? ` ${index + 1}` : "";
|
|
294
302
|
}
|
|
295
303
|
};
|
|
296
|
-
InlineAnchorWidget = InlineAnchorWidget_1 = ( __decorate([( __param(3,
|
|
304
|
+
InlineAnchorWidget = InlineAnchorWidget_1 = ( __decorate([( __param(3, IChatImageCarouselService)), ( __param(4, IConfigurationService)), ( __param(5, IContextKeyService)), ( __param(6, IContextMenuService)), ( __param(7, IFileService)), ( __param(8, IHoverService)), ( __param(9, IInstantiationService)), ( __param(10, ILabelService)), ( __param(11, ILanguageService)), ( __param(12, IMenuService)), ( __param(13, IModelService)), ( __param(14, ITelemetryService)), ( __param(15, IThemeService)), ( __param(16, INotebookDocumentService)), ( __param(17, IOpenerService))], InlineAnchorWidget));
|
|
297
305
|
registerAction2(class AddFileToChatAction extends Action2 {
|
|
298
306
|
static {
|
|
299
307
|
this.id = "chat.inlineResourceAnchor.addFileToChat";
|
|
@@ -301,7 +309,7 @@ registerAction2(class AddFileToChatAction extends Action2 {
|
|
|
301
309
|
constructor() {
|
|
302
310
|
super({
|
|
303
311
|
id: AddFileToChatAction.id,
|
|
304
|
-
title: ( localize2(
|
|
312
|
+
title: ( localize2(6681, "Add File to Chat")),
|
|
305
313
|
menu: [{
|
|
306
314
|
id: MenuId.ChatInlineResourceAnchorContext,
|
|
307
315
|
group: "chat",
|
|
@@ -325,7 +333,7 @@ registerAction2(class CopyResourceAction extends Action2 {
|
|
|
325
333
|
constructor() {
|
|
326
334
|
super({
|
|
327
335
|
id: CopyResourceAction.id,
|
|
328
|
-
title: ( localize2(
|
|
336
|
+
title: ( localize2(6682, "Copy")),
|
|
329
337
|
f1: false,
|
|
330
338
|
precondition: chatAttachmentResourceContextKey,
|
|
331
339
|
keybinding: {
|
|
@@ -352,7 +360,7 @@ registerAction2(class OpenToSideResourceAction extends Action2 {
|
|
|
352
360
|
constructor() {
|
|
353
361
|
super({
|
|
354
362
|
id: OpenToSideResourceAction.id,
|
|
355
|
-
title: ( localize2(
|
|
363
|
+
title: ( localize2(6683, "Open to the Side")),
|
|
356
364
|
f1: false,
|
|
357
365
|
precondition: chatAttachmentResourceContextKey,
|
|
358
366
|
keybinding: {
|
|
@@ -418,8 +426,8 @@ registerAction2(class GoToDefinitionAction extends Action2 {
|
|
|
418
426
|
super({
|
|
419
427
|
id: GoToDefinitionAction.id,
|
|
420
428
|
title: {
|
|
421
|
-
...( localize2(
|
|
422
|
-
mnemonicTitle: ( localize(
|
|
429
|
+
...( localize2(6684, "Go to Definition")),
|
|
430
|
+
mnemonicTitle: ( localize(6685, "Go to &&Definition"))
|
|
423
431
|
},
|
|
424
432
|
menu: ( [
|
|
425
433
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -476,8 +484,8 @@ registerAction2(class GoToTypeDefinitionsAction extends Action2 {
|
|
|
476
484
|
super({
|
|
477
485
|
id: GoToTypeDefinitionsAction.id,
|
|
478
486
|
title: {
|
|
479
|
-
...( localize2(
|
|
480
|
-
mnemonicTitle: ( localize(
|
|
487
|
+
...( localize2(6686, "Go to Type Definitions")),
|
|
488
|
+
mnemonicTitle: ( localize(6687, "Go to &&Type Definitions"))
|
|
481
489
|
},
|
|
482
490
|
menu: ( [
|
|
483
491
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -502,8 +510,8 @@ registerAction2(class GoToImplementations extends Action2 {
|
|
|
502
510
|
super({
|
|
503
511
|
id: GoToImplementations.id,
|
|
504
512
|
title: {
|
|
505
|
-
...( localize2(
|
|
506
|
-
mnemonicTitle: ( localize(
|
|
513
|
+
...( localize2(6688, "Go to Implementations")),
|
|
514
|
+
mnemonicTitle: ( localize(6689, "Go to &&Implementations"))
|
|
507
515
|
},
|
|
508
516
|
menu: ( [
|
|
509
517
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -528,8 +536,8 @@ registerAction2(class GoToReferencesAction extends Action2 {
|
|
|
528
536
|
super({
|
|
529
537
|
id: GoToReferencesAction.id,
|
|
530
538
|
title: {
|
|
531
|
-
...( localize2(
|
|
532
|
-
mnemonicTitle: ( localize(
|
|
539
|
+
...( localize2(6690, "Go to References")),
|
|
540
|
+
mnemonicTitle: ( localize(6691, "Go to &&References"))
|
|
533
541
|
},
|
|
534
542
|
menu: ( [
|
|
535
543
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -53,6 +53,7 @@ export declare class ChatMarkdownContentPart extends Disposable implements IChat
|
|
|
53
53
|
get codeblocks(): IChatCodeBlockInfo[];
|
|
54
54
|
private readonly mathLayoutParticipants;
|
|
55
55
|
constructor(markdown: IChatMarkdownContent, context: IChatContentPartRenderContext, editorPool: EditorPool, fillInIncompleteTokens: boolean | undefined, codeBlockStartIndex: number | undefined, renderer: IMarkdownRenderer, markdownRenderOptions: MarkdownRenderOptions | undefined, currentWidth: number, codeBlockModelCollection: CodeBlockModelCollection, rendererOptions: IChatMarkdownContentPartOptions, contextKeyService: IContextKeyService, configurationService: IConfigurationService, textModelService: ITextModelService, instantiationService: IInstantiationService, aiEditTelemetryService: IAiEditTelemetryService);
|
|
56
|
+
dispose(): void;
|
|
56
57
|
private renderCodeBlockPill;
|
|
57
58
|
private renderCodeBlock;
|
|
58
59
|
hasSameContent(other: IChatProgressRenderableResponseContent): boolean;
|
|
@@ -13,12 +13,13 @@ import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arr
|
|
|
13
13
|
import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
|
|
14
14
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
15
15
|
import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
16
|
-
import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
16
|
+
import { Disposable, MutableDisposable, DisposableStore, dispose } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
17
17
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
18
18
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
19
19
|
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
20
20
|
import { equalsIgnoreCase } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
21
21
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
22
|
+
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
22
23
|
import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
|
|
23
24
|
import { ILanguageService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service';
|
|
24
25
|
import { getIconClasses } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/getIconClasses';
|
|
@@ -374,6 +375,11 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
374
375
|
});
|
|
375
376
|
}
|
|
376
377
|
}
|
|
378
|
+
dispose() {
|
|
379
|
+
super.dispose();
|
|
380
|
+
dispose(this.allRefs);
|
|
381
|
+
this.allRefs.length = 0;
|
|
382
|
+
}
|
|
377
383
|
renderCodeBlockPill(sessionResource, requestId, inUndoStop, codemapperUri) {
|
|
378
384
|
const codeBlock = this.instantiationService.createInstance(CollapsedCodeBlock, sessionResource, requestId, inUndoStop);
|
|
379
385
|
if (codemapperUri) {
|
|
@@ -423,7 +429,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
423
429
|
ref.object.layout(width);
|
|
424
430
|
} else if (ref.object instanceof CollapsedCodeBlock) {
|
|
425
431
|
const codeblockModel = this._codeblocks[index];
|
|
426
|
-
if (codeblockModel.codemapperUri && ref.object.uri
|
|
432
|
+
if (codeblockModel.codemapperUri && !isEqual(ref.object.uri, codeblockModel.codemapperUri)) {
|
|
427
433
|
ref.object.render(codeblockModel.codemapperUri);
|
|
428
434
|
}
|
|
429
435
|
}
|
|
@@ -489,16 +495,6 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
489
495
|
this.pillElement.role = "button";
|
|
490
496
|
this.element.appendChild(this.statusIndicatorContainer);
|
|
491
497
|
this.element.appendChild(this.pillElement);
|
|
492
|
-
const updateCheckmarks = () => this.element.classList.toggle(
|
|
493
|
-
"show-checkmarks",
|
|
494
|
-
!!this.configurationService.getValue(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)
|
|
495
|
-
);
|
|
496
|
-
updateCheckmarks();
|
|
497
|
-
this._register(this.configurationService.onDidChangeConfiguration(e => {
|
|
498
|
-
if (e.affectsConfiguration(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)) {
|
|
499
|
-
updateCheckmarks();
|
|
500
|
-
}
|
|
501
|
-
}));
|
|
502
498
|
this.registerListeners();
|
|
503
499
|
}
|
|
504
500
|
registerListeners() {
|
|
@@ -592,7 +588,7 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
592
588
|
statusIconEl.classList.add(...statusIconClasses);
|
|
593
589
|
const entry = editSession.readEntry(uri, r);
|
|
594
590
|
const rwRatio = Math.floor((entry?.rewriteRatio.read(r) || 0) * 100);
|
|
595
|
-
statusLabelEl.textContent = ( localize(
|
|
591
|
+
statusLabelEl.textContent = ( localize(6692, "Applying edits"));
|
|
596
592
|
const showAnimation = this.configurationService.getValue(ChatConfiguration.ShowCodeBlockProgressAnimation);
|
|
597
593
|
if (showAnimation) {
|
|
598
594
|
progressFill.style.width = `${rwRatio}%`;
|
|
@@ -601,13 +597,13 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
601
597
|
} else {
|
|
602
598
|
progressFill.style.width = "0%";
|
|
603
599
|
this.pillElement.classList.remove("progress-filling");
|
|
604
|
-
labelDetail.textContent = rwRatio === 0 || !rwRatio ? ( localize(
|
|
600
|
+
labelDetail.textContent = rwRatio === 0 || !rwRatio ? ( localize(6693, "Generating edits...")) : ( localize(6694, "({0}%)...", rwRatio));
|
|
605
601
|
}
|
|
606
602
|
} else {
|
|
607
603
|
const statusCodeicon = Codicon.check;
|
|
608
604
|
statusIconClasses = ThemeIcon.asClassNameArray(statusCodeicon);
|
|
609
605
|
statusIconEl.classList.add(...statusIconClasses);
|
|
610
|
-
statusLabelEl.textContent = ( localize(
|
|
606
|
+
statusLabelEl.textContent = ( localize(6695, "Edited"));
|
|
611
607
|
const fileKind = uri.path.endsWith("/") ? FileKind.FOLDER : FileKind.FILE;
|
|
612
608
|
pillIconClasses = getIconClasses(this.modelService, this.languageService, uri, fileKind);
|
|
613
609
|
iconEl.classList.add(...pillIconClasses);
|
|
@@ -627,10 +623,10 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
627
623
|
this.currentDiff = changes;
|
|
628
624
|
labelAdded.textContent = `+${changes.added}`;
|
|
629
625
|
labelRemoved.textContent = `-${changes.removed}`;
|
|
630
|
-
const insertionsFragment = changes.added === 1 ? ( localize(
|
|
631
|
-
const deletionsFragment = changes.removed === 1 ? ( localize(
|
|
626
|
+
const insertionsFragment = changes.added === 1 ? ( localize(6696, "1 insertion")) : ( localize(6697, "{0} insertions", changes.added));
|
|
627
|
+
const deletionsFragment = changes.removed === 1 ? ( localize(6698, "1 deletion")) : ( localize(6699, "{0} deletions", changes.removed));
|
|
632
628
|
const summary = ( localize(
|
|
633
|
-
|
|
629
|
+
6700,
|
|
634
630
|
"Edited {0}, {1}, {2}",
|
|
635
631
|
iconText,
|
|
636
632
|
insertionsFragment,
|
|
@@ -89,26 +89,28 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
89
89
|
}
|
|
90
90
|
createServerCommandLinks(servers) {
|
|
91
91
|
return ( servers.map(s => createMarkdownCommandLink({
|
|
92
|
-
|
|
92
|
+
text: "`" + escapeMarkdownSyntaxTokens(s.label) + "`",
|
|
93
93
|
id: McpCommandIds.ServerOptions,
|
|
94
|
-
arguments: [s.id]
|
|
94
|
+
arguments: [s.id],
|
|
95
|
+
tooltip: ( localize(6701, "Show options for {0}", s.label))
|
|
95
96
|
}, false))).join(", ");
|
|
96
97
|
}
|
|
97
98
|
updateDetailedProgress(state) {
|
|
98
99
|
const skipText = createMarkdownCommandLink({
|
|
99
|
-
|
|
100
|
-
id: McpCommandIds.SkipCurrentAutostart
|
|
100
|
+
text: ( localize(6702, "Skip?")),
|
|
101
|
+
id: McpCommandIds.SkipCurrentAutostart,
|
|
102
|
+
tooltip: ( localize(6703, "Skip starting this MCP server"))
|
|
101
103
|
});
|
|
102
104
|
let content;
|
|
103
105
|
if (state.starting.length === 0) {
|
|
104
106
|
content = ( new MarkdownString(undefined, {
|
|
105
107
|
isTrusted: true
|
|
106
|
-
})).appendText(( localize(
|
|
108
|
+
})).appendText(( localize(6704, "Activating MCP extensions...")) + " ").appendMarkdown(skipText);
|
|
107
109
|
} else {
|
|
108
110
|
const serverLinks = this.createServerCommandLinks(state.starting);
|
|
109
111
|
content = ( new MarkdownString(undefined, {
|
|
110
112
|
isTrusted: true
|
|
111
|
-
})).appendMarkdown(( localize(
|
|
113
|
+
})).appendMarkdown(( localize(6705, "Starting MCP servers {0}...", serverLinks)) + " ").appendMarkdown(skipText);
|
|
112
114
|
}
|
|
113
115
|
if (this.workingProgressPart) {
|
|
114
116
|
this.workingProgressPart.updateMessage(content);
|
|
@@ -147,12 +149,12 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
147
149
|
const count = serversRequiringInteraction.length;
|
|
148
150
|
const links = this.createServerCommandLinks(serversRequiringInteraction);
|
|
149
151
|
const content = count === 1 ? ( localize(
|
|
150
|
-
|
|
152
|
+
6706,
|
|
151
153
|
"The MCP server {0} may have new tools and requires interaction to start. [Start it now?]({1})",
|
|
152
154
|
links,
|
|
153
155
|
"#start"
|
|
154
156
|
)) : ( localize(
|
|
155
|
-
|
|
157
|
+
6707,
|
|
156
158
|
"The MCP servers {0} may have new tools and require interaction to start. [Start them now?]({1})",
|
|
157
159
|
links,
|
|
158
160
|
"#start"
|
|
@@ -194,7 +196,7 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
194
196
|
const serversToStart = state.serversRequiringInteraction;
|
|
195
197
|
for (let i = 0; i < serversToStart.length; i++) {
|
|
196
198
|
const serverInfo = serversToStart[i];
|
|
197
|
-
startLink.textContent = ( localize(
|
|
199
|
+
startLink.textContent = ( localize(6708, "Starting {0}...", serverInfo.label));
|
|
198
200
|
const server = this.mcpService.servers.get().find(s => s.definition.id === serverInfo.id);
|
|
199
201
|
if (server) {
|
|
200
202
|
await startServerAndWaitForLiveTools(server, {
|
|
@@ -64,7 +64,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
|
|
|
64
64
|
const viewListButton = ( new ButtonWithIcon(viewListButtonContainer, {}));
|
|
65
65
|
this._register(autorun(reader => {
|
|
66
66
|
const fileCount = this.diffData.read(reader).resources.length;
|
|
67
|
-
viewListButton.label = fileCount === 1 ? ( localize(
|
|
67
|
+
viewListButton.label = fileCount === 1 ? ( localize(6709, "Changed 1 file")) : ( localize(6710, "Changed {0} files", fileCount));
|
|
68
68
|
}));
|
|
69
69
|
const setExpansionState = () => {
|
|
70
70
|
viewListButton.icon = this.isCollapsed ? Codicon.chevronRight : Codicon.chevronDown;
|
|
@@ -86,7 +86,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
|
|
|
86
86
|
renderViewAllFileChangesButton(container) {
|
|
87
87
|
const button = container.appendChild($(".chat-view-changes-icon"));
|
|
88
88
|
button.classList.add(...ThemeIcon.asClassNameArray(Codicon.diffMultiple));
|
|
89
|
-
button.title = ( localize(
|
|
89
|
+
button.title = ( localize(6711, "Open Changes"));
|
|
90
90
|
return addDisposableListener(button, "click", e => {
|
|
91
91
|
const source = ( URI.parse(`multi-diff-editor:${( ( new Date()).getMilliseconds().toString()) + ( Math.random().toString())}`));
|
|
92
92
|
const {
|
|
@@ -143,7 +143,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
|
|
|
143
143
|
alwaysConsumeMouseWheel: false,
|
|
144
144
|
accessibilityProvider: {
|
|
145
145
|
getAriaLabel: element => element.uri.path,
|
|
146
|
-
getWidgetAriaLabel: () => ( localize(
|
|
146
|
+
getWidgetAriaLabel: () => ( localize(6712, "File Changes"))
|
|
147
147
|
}
|
|
148
148
|
})
|
|
149
149
|
);
|
|
@@ -259,7 +259,7 @@ class ChatMultiDiffListRenderer {
|
|
|
259
259
|
const removedElement = changesSummary.appendChild($(".deletions"));
|
|
260
260
|
removedElement.textContent = `-${element.diff.removed}`;
|
|
261
261
|
changesSummary.setAttribute("aria-label", ( localize(
|
|
262
|
-
|
|
262
|
+
6713,
|
|
263
263
|
"{0} lines added, {1} lines removed",
|
|
264
264
|
element.diff.added,
|
|
265
265
|
element.diff.removed
|
|
@@ -20,6 +20,7 @@ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/h
|
|
|
20
20
|
import { HoverStyle } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hover';
|
|
21
21
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
|
|
22
22
|
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
23
|
+
import { buildPhrasePool } from './chatThinkingContentPart.js';
|
|
23
24
|
|
|
24
25
|
let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
25
26
|
constructor(
|
|
@@ -145,9 +146,12 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
|
|
|
145
146
|
configurationService,
|
|
146
147
|
languageModelToolsService
|
|
147
148
|
) {
|
|
149
|
+
const defaultLabel = ( localize(6714, "Working"));
|
|
150
|
+
const pool = buildPhrasePool([defaultLabel], configurationService);
|
|
151
|
+
const label = pool[Math.floor(Math.random() * pool.length)];
|
|
148
152
|
const progressMessage = {
|
|
149
153
|
kind: "progressMessage",
|
|
150
|
-
content: ( new MarkdownString()).appendText(
|
|
154
|
+
content: ( new MarkdownString()).appendText(label)
|
|
151
155
|
};
|
|
152
156
|
super(
|
|
153
157
|
progressMessage,
|
|
@@ -164,7 +168,7 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
|
|
|
164
168
|
);
|
|
165
169
|
this._register(languageModelToolsService.onDidPrepareToolCallBecomeUnresponsive(e => {
|
|
166
170
|
if (isEqual(context.element.sessionResource, e.sessionResource)) {
|
|
167
|
-
this.updateMessage(( new MarkdownString(( localize(
|
|
171
|
+
this.updateMessage(( new MarkdownString(( localize(6715, "Waiting for tool '{0}' to respond...", e.toolData.displayName)))));
|
|
168
172
|
}
|
|
169
173
|
}));
|
|
170
174
|
}
|
|
@@ -2,7 +2,7 @@ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"
|
|
|
2
2
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
3
|
import { IAccessibilityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service";
|
|
4
4
|
import { IMarkdownRendererService } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service";
|
|
5
|
-
import { IChatQuestionCarousel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
5
|
+
import { IChatQuestionCarousel, IChatQuestionAnswerValue } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
6
6
|
import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
|
|
7
7
|
import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
|
|
8
8
|
import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
@@ -10,7 +10,7 @@ import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/h
|
|
|
10
10
|
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
11
11
|
import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
|
|
12
12
|
export interface IChatQuestionCarouselOptions {
|
|
13
|
-
onSubmit: (answers: Map<string,
|
|
13
|
+
onSubmit: (answers: Map<string, IChatQuestionAnswerValue> | undefined) => void;
|
|
14
14
|
shouldAutoFocus?: boolean;
|
|
15
15
|
}
|
|
16
16
|
export declare class ChatQuestionCarouselPart extends Disposable implements IChatContentPart {
|
|
@@ -26,12 +26,15 @@ export declare class ChatQuestionCarouselPart extends Disposable implements ICha
|
|
|
26
26
|
readonly onDidChangeHeight: Event<void>;
|
|
27
27
|
private _currentIndex;
|
|
28
28
|
private readonly _answers;
|
|
29
|
+
private _isCollapsed;
|
|
29
30
|
private _questionContainer;
|
|
31
|
+
private _headerActionsContainer;
|
|
30
32
|
private _closeButtonContainer;
|
|
31
33
|
private _footerRow;
|
|
32
34
|
private _stepIndicator;
|
|
33
35
|
private _submitHint;
|
|
34
36
|
private _submitButton;
|
|
37
|
+
private _collapseButton;
|
|
35
38
|
private _prevButton;
|
|
36
39
|
private _nextButton;
|
|
37
40
|
private _skipAllButton;
|
|
@@ -49,12 +52,16 @@ export declare class ChatQuestionCarouselPart extends Disposable implements ICha
|
|
|
49
52
|
*/
|
|
50
53
|
private readonly _interactiveUIStore;
|
|
51
54
|
private readonly _inChatQuestionCarouselContextKey;
|
|
55
|
+
private _validationMessageElement;
|
|
56
|
+
private _currentValidationError;
|
|
52
57
|
constructor(carousel: IChatQuestionCarousel, context: IChatContentPartRenderContext, _options: IChatQuestionCarouselOptions, _markdownRendererService: IMarkdownRendererService, _hoverService: IHoverService, _accessibilityService: IAccessibilityService, _contextKeyService: IContextKeyService, _keybindingService: IKeybindingService);
|
|
53
58
|
/**
|
|
54
59
|
* Saves the current question's answer to the answers map.
|
|
55
60
|
*/
|
|
56
61
|
private saveCurrentAnswer;
|
|
57
62
|
private persistDraftState;
|
|
63
|
+
private toggleCollapsed;
|
|
64
|
+
private updateCollapsedPresentation;
|
|
58
65
|
/**
|
|
59
66
|
* Navigates the carousel by the given delta.
|
|
60
67
|
* @param delta Negative for previous, positive for next
|
|
@@ -157,6 +164,22 @@ export declare class ChatQuestionCarouselPart extends Disposable implements ICha
|
|
|
157
164
|
*/
|
|
158
165
|
private formatAnswerForSummary;
|
|
159
166
|
private getQuestionText;
|
|
167
|
+
/**
|
|
168
|
+
* Validates the current question's answer against its validation rules.
|
|
169
|
+
* Returns true if valid, false if validation errors were shown.
|
|
170
|
+
*/
|
|
171
|
+
private validateCurrentQuestion;
|
|
172
|
+
/**
|
|
173
|
+
* Validates that all required questions have been answered.
|
|
174
|
+
* Returns true if all required fields are satisfied.
|
|
175
|
+
*/
|
|
176
|
+
private validateRequiredFields;
|
|
177
|
+
/**
|
|
178
|
+
* Returns a validation error message for the given value, or undefined if valid.
|
|
179
|
+
*/
|
|
180
|
+
private getValidationError;
|
|
181
|
+
private showValidationError;
|
|
182
|
+
private clearValidationError;
|
|
160
183
|
hasSameContent(other: IChatRendererContent, _followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
|
|
161
184
|
addDisposable(disposable: {
|
|
162
185
|
dispose(): void;
|