@codingame/monaco-vscode-chat-service-override 23.0.2 → 23.0.4
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 +43 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +106 -74
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +33 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +52 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +65 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +57 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +26 -26
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +53 -53
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +22 -23
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +8 -8
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +18 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +10 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +9 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +10 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +15 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
|
@@ -26,17 +26,16 @@ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/c
|
|
|
26
26
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
27
27
|
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
28
28
|
import { IInlineChatSessionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service';
|
|
29
|
-
import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
30
29
|
|
|
31
30
|
CommandsRegistry.registerCommandAlias('interactiveEditor.start', 'inlineChat.start');
|
|
32
31
|
CommandsRegistry.registerCommandAlias('interactive.acceptChanges', ACTION_ACCEPT_CHANGES);
|
|
33
|
-
const START_INLINE_CHAT = registerIcon('start-inline-chat', Codicon.sparkle, ( localize(
|
|
32
|
+
const START_INLINE_CHAT = registerIcon('start-inline-chat', Codicon.sparkle, ( localize(8126, 'Icon which spawns the inline chat from the editor toolbar.')));
|
|
34
33
|
const inlineChatContextKey = ( ContextKeyExpr.and(( ContextKeyExpr.or(CTX_INLINE_CHAT_V1_ENABLED, CTX_INLINE_CHAT_V2_ENABLED)), CTX_INLINE_CHAT_POSSIBLE, EditorContextKeys.writable, ( EditorContextKeys.editorSimpleInput.negate())));
|
|
35
34
|
class StartSessionAction extends Action2 {
|
|
36
35
|
constructor() {
|
|
37
36
|
super({
|
|
38
37
|
id: ACTION_START,
|
|
39
|
-
title: ( localize2(
|
|
38
|
+
title: ( localize2(8127, 'Open Inline Chat')),
|
|
40
39
|
category: AbstractInline1ChatAction.category,
|
|
41
40
|
f1: true,
|
|
42
41
|
precondition: inlineChatContextKey,
|
|
@@ -92,7 +91,7 @@ class FocusInlineChat extends EditorAction2 {
|
|
|
92
91
|
constructor() {
|
|
93
92
|
super({
|
|
94
93
|
id: 'inlineChat.focus',
|
|
95
|
-
title: ( localize2(
|
|
94
|
+
title: ( localize2(8128, "Focus Input")),
|
|
96
95
|
f1: true,
|
|
97
96
|
category: AbstractInline1ChatAction.category,
|
|
98
97
|
precondition: ( ContextKeyExpr.and(EditorContextKeys.editorTextFocus, CTX_INLINE_CHAT_VISIBLE, ( CTX_INLINE_CHAT_FOCUSED.negate()), ( CONTEXT_ACCESSIBILITY_MODE_ENABLED.negate()))),
|
|
@@ -115,7 +114,7 @@ class UnstashSessionAction extends EditorAction2 {
|
|
|
115
114
|
constructor() {
|
|
116
115
|
super({
|
|
117
116
|
id: 'inlineChat.unstash',
|
|
118
|
-
title: ( localize2(
|
|
117
|
+
title: ( localize2(8129, "Resume Last Dismissed Inline Chat")),
|
|
119
118
|
category: AbstractInline1ChatAction.category,
|
|
120
119
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_HAS_STASHED_SESSION, EditorContextKeys.writable)),
|
|
121
120
|
keybinding: {
|
|
@@ -137,7 +136,7 @@ class UnstashSessionAction extends EditorAction2 {
|
|
|
137
136
|
}
|
|
138
137
|
}
|
|
139
138
|
class AbstractInline1ChatAction extends EditorAction2 {
|
|
140
|
-
static { this.category = ( localize2(
|
|
139
|
+
static { this.category = ( localize2(8130, "Inline Chat")); }
|
|
141
140
|
constructor(desc) {
|
|
142
141
|
const massageMenu = (menu) => {
|
|
143
142
|
if (Array.isArray(menu)) {
|
|
@@ -199,7 +198,7 @@ class ArrowOutUpAction extends AbstractInline1ChatAction {
|
|
|
199
198
|
constructor() {
|
|
200
199
|
super({
|
|
201
200
|
id: 'inlineChat.arrowOutUp',
|
|
202
|
-
title: ( localize(
|
|
201
|
+
title: ( localize(8131, 'Cursor Up')),
|
|
203
202
|
precondition: ( ContextKeyExpr.and(
|
|
204
203
|
CTX_INLINE_CHAT_FOCUSED,
|
|
205
204
|
CTX_INLINE_CHAT_INNER_CURSOR_FIRST,
|
|
@@ -220,7 +219,7 @@ class ArrowOutDownAction extends AbstractInline1ChatAction {
|
|
|
220
219
|
constructor() {
|
|
221
220
|
super({
|
|
222
221
|
id: 'inlineChat.arrowOutDown',
|
|
223
|
-
title: ( localize(
|
|
222
|
+
title: ( localize(8132, 'Cursor Down')),
|
|
224
223
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_INNER_CURSOR_LAST, ( EditorContextKeys.isEmbeddedDiffEditor.negate()), ( CONTEXT_ACCESSIBILITY_MODE_ENABLED.negate()))),
|
|
225
224
|
keybinding: {
|
|
226
225
|
weight: KeybindingWeight.EditorCore,
|
|
@@ -236,8 +235,8 @@ class AcceptChanges extends AbstractInline1ChatAction {
|
|
|
236
235
|
constructor() {
|
|
237
236
|
super({
|
|
238
237
|
id: ACTION_ACCEPT_CHANGES,
|
|
239
|
-
title: ( localize2(
|
|
240
|
-
shortTitle: ( localize(
|
|
238
|
+
title: ( localize2(8133, "Accept Changes")),
|
|
239
|
+
shortTitle: ( localize(8134, 'Accept')),
|
|
241
240
|
icon: Codicon.check,
|
|
242
241
|
f1: true,
|
|
243
242
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE)),
|
|
@@ -265,7 +264,7 @@ class DiscardHunkAction extends AbstractInline1ChatAction {
|
|
|
265
264
|
constructor() {
|
|
266
265
|
super({
|
|
267
266
|
id: ACTION_DISCARD_CHANGES,
|
|
268
|
-
title: ( localize(
|
|
267
|
+
title: ( localize(8135, 'Discard')),
|
|
269
268
|
icon: Codicon.chromeClose,
|
|
270
269
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
271
270
|
menu: [{
|
|
@@ -288,8 +287,8 @@ class RerunAction extends AbstractInline1ChatAction {
|
|
|
288
287
|
constructor() {
|
|
289
288
|
super({
|
|
290
289
|
id: ACTION_REGENERATE_RESPONSE,
|
|
291
|
-
title: ( localize2(
|
|
292
|
-
shortTitle: ( localize(
|
|
290
|
+
title: ( localize2(8136, "Rerun Request")),
|
|
291
|
+
shortTitle: ( localize(8137, 'Rerun')),
|
|
293
292
|
f1: false,
|
|
294
293
|
icon: Codicon.refresh,
|
|
295
294
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
@@ -328,7 +327,7 @@ class CloseAction extends AbstractInline1ChatAction {
|
|
|
328
327
|
constructor() {
|
|
329
328
|
super({
|
|
330
329
|
id: 'inlineChat.close',
|
|
331
|
-
title: ( localize(
|
|
330
|
+
title: ( localize(8138, 'Close')),
|
|
332
331
|
icon: Codicon.close,
|
|
333
332
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
334
333
|
keybinding: {
|
|
@@ -355,7 +354,7 @@ class ConfigureInlineChatAction extends AbstractInline1ChatAction {
|
|
|
355
354
|
constructor() {
|
|
356
355
|
super({
|
|
357
356
|
id: 'inlineChat.configure',
|
|
358
|
-
title: ( localize2(
|
|
357
|
+
title: ( localize2(8139, 'Configure Inline Chat')),
|
|
359
358
|
icon: Codicon.settingsGear,
|
|
360
359
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
361
360
|
f1: true,
|
|
@@ -374,7 +373,7 @@ class MoveToNextHunk extends AbstractInline1ChatAction {
|
|
|
374
373
|
constructor() {
|
|
375
374
|
super({
|
|
376
375
|
id: 'inlineChat.moveToNextHunk',
|
|
377
|
-
title: ( localize2(
|
|
376
|
+
title: ( localize2(8140, 'Move to Next Change')),
|
|
378
377
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
379
378
|
f1: true,
|
|
380
379
|
keybinding: {
|
|
@@ -391,7 +390,7 @@ class MoveToPreviousHunk extends AbstractInline1ChatAction {
|
|
|
391
390
|
constructor() {
|
|
392
391
|
super({
|
|
393
392
|
id: 'inlineChat.moveToPreviousHunk',
|
|
394
|
-
title: ( localize2(
|
|
393
|
+
title: ( localize2(8141, 'Move to Previous Change')),
|
|
395
394
|
f1: true,
|
|
396
395
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
397
396
|
keybinding: {
|
|
@@ -408,7 +407,7 @@ class ViewInChatAction extends AbstractInline1ChatAction {
|
|
|
408
407
|
constructor() {
|
|
409
408
|
super({
|
|
410
409
|
id: ACTION_VIEW_IN_CHAT,
|
|
411
|
-
title: ( localize(
|
|
410
|
+
title: ( localize(8142, 'View in Chat')),
|
|
412
411
|
icon: Codicon.chatSparkle,
|
|
413
412
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
414
413
|
menu: [{
|
|
@@ -438,7 +437,7 @@ class ToggleDiffForChange extends AbstractInline1ChatAction {
|
|
|
438
437
|
super({
|
|
439
438
|
id: ACTION_TOGGLE_DIFF,
|
|
440
439
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_CHANGE_HAS_DIFF)),
|
|
441
|
-
title: ( localize2(
|
|
440
|
+
title: ( localize2(8143, 'Toggle Changes')),
|
|
442
441
|
icon: Codicon.diffSingle,
|
|
443
442
|
toggled: {
|
|
444
443
|
condition: CTX_INLINE_CHAT_CHANGE_SHOWS_DIFF,
|
|
@@ -460,7 +459,7 @@ class ToggleDiffForChange extends AbstractInline1ChatAction {
|
|
|
460
459
|
}
|
|
461
460
|
}
|
|
462
461
|
class AbstractInline2ChatAction extends EditorAction2 {
|
|
463
|
-
static { this.category = ( localize2(
|
|
462
|
+
static { this.category = ( localize2(8130, "Inline Chat")); }
|
|
464
463
|
constructor(desc) {
|
|
465
464
|
const massageMenu = (menu) => {
|
|
466
465
|
if (Array.isArray(menu)) {
|
|
@@ -546,10 +545,10 @@ class KeepSessionAction2 extends KeepOrUndoSessionAction {
|
|
|
546
545
|
constructor() {
|
|
547
546
|
super(true, {
|
|
548
547
|
id: 'inlineChat2.keep',
|
|
549
|
-
title: ( localize2(
|
|
548
|
+
title: ( localize2(8144, "Keep")),
|
|
550
549
|
f1: true,
|
|
551
550
|
icon: Codicon.check,
|
|
552
|
-
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE, ( ctxHasRequestInProgress.negate()), ctxHasEditorModification
|
|
551
|
+
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE, ( ctxHasRequestInProgress.negate()), ctxHasEditorModification)),
|
|
553
552
|
keybinding: [{
|
|
554
553
|
when: ( ContextKeyExpr.and(ChatContextKeys.inputHasFocus, ( ChatContextKeys.inputHasText.negate()))),
|
|
555
554
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -571,7 +570,7 @@ class UndoAndCloseSessionAction2 extends KeepOrUndoSessionAction {
|
|
|
571
570
|
constructor() {
|
|
572
571
|
super(false, {
|
|
573
572
|
id: 'inlineChat2.close',
|
|
574
|
-
title: ( localize2(
|
|
573
|
+
title: ( localize2(8145, "Close")),
|
|
575
574
|
f1: true,
|
|
576
575
|
icon: Codicon.close,
|
|
577
576
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
@@ -54,14 +54,14 @@ const IGNORED_LANGUAGE_IDS = ( new Set([
|
|
|
54
54
|
LEGACY_MODE_FILE_EXTENSION,
|
|
55
55
|
AGENT_FILE_EXTENSION
|
|
56
56
|
]));
|
|
57
|
-
const CTX_INLINE_CHAT_SHOWING_HINT = ( new RawContextKey('inlineChatShowingHint', false, ( localize(
|
|
57
|
+
const CTX_INLINE_CHAT_SHOWING_HINT = ( new RawContextKey('inlineChatShowingHint', false, ( localize(8157, "Whether inline chat shows a contextual hint"))));
|
|
58
58
|
const _inlineChatActionId = 'inlineChat.startWithCurrentLine';
|
|
59
59
|
class InlineChatExpandLineAction extends EditorAction2 {
|
|
60
60
|
constructor() {
|
|
61
61
|
super({
|
|
62
62
|
id: _inlineChatActionId,
|
|
63
63
|
category: AbstractInline1ChatAction.category,
|
|
64
|
-
title: ( localize2(
|
|
64
|
+
title: ( localize2(8158, "Start in Editor with Current Line")),
|
|
65
65
|
f1: true,
|
|
66
66
|
precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_V1_ENABLED, EditorContextKeys.writable)),
|
|
67
67
|
keybinding: [{
|
|
@@ -104,7 +104,7 @@ class ShowInlineChatHintAction extends EditorAction2 {
|
|
|
104
104
|
super({
|
|
105
105
|
id: 'inlineChat.showHint',
|
|
106
106
|
category: AbstractInline1ChatAction.category,
|
|
107
|
-
title: ( localize2(
|
|
107
|
+
title: ( localize2(8159, "Show Inline Chat Hint")),
|
|
108
108
|
f1: false,
|
|
109
109
|
precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_V1_ENABLED, EditorContextKeys.writable)),
|
|
110
110
|
});
|
|
@@ -232,15 +232,15 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
|
|
|
232
232
|
this._ctxShowingHint.reset();
|
|
233
233
|
return;
|
|
234
234
|
}
|
|
235
|
-
const agentName = chatAgentService.getDefaultAgent(ChatAgentLocation.EditorInline)?.name ?? ( localize(
|
|
235
|
+
const agentName = chatAgentService.getDefaultAgent(ChatAgentLocation.EditorInline)?.name ?? ( localize(8160, "Chat"));
|
|
236
236
|
const { position, isEol, isWhitespace, kb, model } = showData;
|
|
237
237
|
const inlineClassName = ['a' , 'inline-chat-hint', 'inline-chat-hint-text'];
|
|
238
238
|
let content;
|
|
239
239
|
if (isWhitespace) {
|
|
240
|
-
content = '\u00a0' + ( localize(
|
|
240
|
+
content = '\u00a0' + ( localize(8161, "{0} to edit with {1}", kb, agentName));
|
|
241
241
|
}
|
|
242
242
|
else if (isEol) {
|
|
243
|
-
content = '\u00a0' + ( localize(
|
|
243
|
+
content = '\u00a0' + ( localize(8162, "{0} to continue with {1}", kb, agentName));
|
|
244
244
|
}
|
|
245
245
|
else {
|
|
246
246
|
content = '\u200a' + kb + '\u200a';
|
|
@@ -269,7 +269,7 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
|
|
|
269
269
|
getActions: () => [
|
|
270
270
|
toAction({
|
|
271
271
|
id: 'inlineChat.disableHint',
|
|
272
|
-
label: ( localize(
|
|
272
|
+
label: ( localize(8163, "Disable Inline Chat Hint")),
|
|
273
273
|
run: async () => {
|
|
274
274
|
await this._configurationService.updateValue(setting, false);
|
|
275
275
|
}
|
|
@@ -297,7 +297,7 @@ class HideInlineChatHintAction extends EditorAction2 {
|
|
|
297
297
|
constructor() {
|
|
298
298
|
super({
|
|
299
299
|
id: 'inlineChat.hideHint',
|
|
300
|
-
title: ( localize2(
|
|
300
|
+
title: ( localize2(8164, "Hide Inline Chat Hint")),
|
|
301
301
|
precondition: CTX_INLINE_CHAT_SHOWING_HINT,
|
|
302
302
|
keybinding: {
|
|
303
303
|
weight: KeybindingWeight.EditorContrib - 10,
|
|
@@ -13,42 +13,42 @@ import { IRemoteCodingAgentsService } from '@codingame/monaco-vscode-api/vscode/
|
|
|
13
13
|
const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
14
14
|
extensionPoint: 'remoteCodingAgents',
|
|
15
15
|
jsonSchema: {
|
|
16
|
-
description: ( localize(
|
|
16
|
+
description: ( localize(10225, 'Contributes remote coding agent integrations to the chat widget.')),
|
|
17
17
|
type: 'array',
|
|
18
18
|
items: {
|
|
19
19
|
type: 'object',
|
|
20
20
|
properties: {
|
|
21
21
|
id: {
|
|
22
|
-
description: ( localize(
|
|
22
|
+
description: ( localize(10226, 'A unique identifier for this item.')),
|
|
23
23
|
type: 'string',
|
|
24
24
|
},
|
|
25
25
|
command: {
|
|
26
26
|
description: ( localize(
|
|
27
|
-
|
|
27
|
+
10227,
|
|
28
28
|
'Identifier of the command to execute. The command must be declared in the "commands" section.'
|
|
29
29
|
)),
|
|
30
30
|
type: 'string'
|
|
31
31
|
},
|
|
32
32
|
displayName: {
|
|
33
33
|
description: ( localize(
|
|
34
|
-
|
|
34
|
+
10228,
|
|
35
35
|
'A user-friendly name for this item which is used for display in menus.'
|
|
36
36
|
)),
|
|
37
37
|
type: 'string'
|
|
38
38
|
},
|
|
39
39
|
description: {
|
|
40
|
-
description: ( localize(
|
|
40
|
+
description: ( localize(10229, 'Description of the remote agent for use in menus and tooltips.')),
|
|
41
41
|
type: 'string'
|
|
42
42
|
},
|
|
43
43
|
followUpRegex: {
|
|
44
44
|
description: ( localize(
|
|
45
|
-
|
|
45
|
+
10230,
|
|
46
46
|
'The last occurrence of pattern in an existing chat conversation is sent to the contributing extension to facilitate follow-up responses.'
|
|
47
47
|
)),
|
|
48
48
|
type: 'string',
|
|
49
49
|
},
|
|
50
50
|
when: {
|
|
51
|
-
description: ( localize(
|
|
51
|
+
description: ( localize(10231, 'Condition which must be true to show this item.')),
|
|
52
52
|
type: 'string'
|
|
53
53
|
},
|
|
54
54
|
},
|
|
@@ -41,68 +41,68 @@ function getAccessibilityHelpText(accessor) {
|
|
|
41
41
|
const focusResponseKeybinding = keybindingService.lookupKeybinding('chat.action.focus')?.getAriaLabel();
|
|
42
42
|
const focusInputKeybinding = keybindingService.lookupKeybinding('workbench.action.chat.focusInput')?.getAriaLabel();
|
|
43
43
|
content.push(( localize(
|
|
44
|
-
|
|
44
|
+
11795,
|
|
45
45
|
"Inline chat occurs within a terminal. It is useful for suggesting terminal commands. Keep in mind that AI generated code may be incorrect."
|
|
46
46
|
)));
|
|
47
47
|
content.push(( localize(
|
|
48
|
-
|
|
48
|
+
11796,
|
|
49
49
|
"It can be activated using the command: Terminal: Start Chat ({0}), which will focus the input box.",
|
|
50
50
|
startChatKeybinding
|
|
51
51
|
)));
|
|
52
52
|
content.push(makeRequestKeybinding ? ( localize(
|
|
53
|
-
|
|
53
|
+
11797,
|
|
54
54
|
"The input box is where the user can type a request and can make the request ({0}). The widget will be closed and all content will be discarded when the Escape key is pressed and the terminal will regain focus.",
|
|
55
55
|
makeRequestKeybinding
|
|
56
56
|
)) : ( localize(
|
|
57
|
-
|
|
57
|
+
11798,
|
|
58
58
|
"The input box is where the user can type a request and can make the request by tabbing to the Make Request button, which is not currently triggerable via keybindings. The widget will be closed and all content will be discarded when the Escape key is pressed and the terminal will regain focus."
|
|
59
59
|
)));
|
|
60
60
|
content.push(openAccessibleViewKeybinding ? ( localize(
|
|
61
|
-
|
|
61
|
+
11799,
|
|
62
62
|
'The response can be inspected in the accessible view ({0}).',
|
|
63
63
|
openAccessibleViewKeybinding
|
|
64
64
|
)) : ( localize(
|
|
65
|
-
|
|
65
|
+
11800,
|
|
66
66
|
'With the input box focused, inspect the response in the accessible view via the Open Accessible View command, which is currently not triggerable by a keybinding.'
|
|
67
67
|
)));
|
|
68
68
|
content.push(focusResponseKeybinding ? ( localize(
|
|
69
|
-
|
|
69
|
+
11801,
|
|
70
70
|
'Reach the response from the input box ({0}).',
|
|
71
71
|
focusResponseKeybinding
|
|
72
72
|
)) : ( localize(
|
|
73
|
-
|
|
73
|
+
11802,
|
|
74
74
|
'Reach the response from the input box by tabbing or assigning a keybinding for the command: Focus Terminal Response.'
|
|
75
75
|
)));
|
|
76
76
|
content.push(focusInputKeybinding ? ( localize(
|
|
77
|
-
|
|
77
|
+
11803,
|
|
78
78
|
'Reach the input box from the response ({0}).',
|
|
79
79
|
focusInputKeybinding
|
|
80
80
|
)) : ( localize(
|
|
81
|
-
|
|
81
|
+
11804,
|
|
82
82
|
'Reach the response from the input box by shift+tabbing or assigning a keybinding for the command: Focus Terminal Input.'
|
|
83
83
|
)));
|
|
84
84
|
content.push(runCommandKeybinding ? ( localize(
|
|
85
|
-
|
|
85
|
+
11805,
|
|
86
86
|
'With focus in the input box or command editor, the Terminal: Run Chat Command ({0}) action.',
|
|
87
87
|
runCommandKeybinding
|
|
88
88
|
)) : ( localize(
|
|
89
|
-
|
|
89
|
+
11806,
|
|
90
90
|
'Run a command by tabbing to the button as the action is currently not triggerable by a keybinding.'
|
|
91
91
|
)));
|
|
92
92
|
content.push(insertCommandKeybinding ? ( localize(
|
|
93
|
-
|
|
93
|
+
11807,
|
|
94
94
|
'With focus in the input box command editor, the Terminal: Insert Chat Command ({0}) action.',
|
|
95
95
|
insertCommandKeybinding
|
|
96
96
|
)) : ( localize(
|
|
97
|
-
|
|
97
|
+
11808,
|
|
98
98
|
'Insert a command by tabbing to the button as the action is currently not triggerable by a keybinding.'
|
|
99
99
|
)));
|
|
100
100
|
content.push(( localize(
|
|
101
|
-
|
|
101
|
+
11809,
|
|
102
102
|
"Use tab to reach conditional parts like commands, status, message responses and more."
|
|
103
103
|
)));
|
|
104
104
|
content.push(( localize(
|
|
105
|
-
|
|
105
|
+
11810,
|
|
106
106
|
"Accessibility Signals can be changed via settings with a prefix of signals.chat. By default, if a request takes more than 4 seconds, you will hear a sound indicating that progress is still occurring."
|
|
107
107
|
)));
|
|
108
108
|
return content.join('\n');
|
|
@@ -27,8 +27,8 @@ import { activeChatController } from './terminalChatControllerHolder.js';
|
|
|
27
27
|
|
|
28
28
|
registerActiveXtermAction({
|
|
29
29
|
id: TerminalChatCommandId.Start,
|
|
30
|
-
title: ( localize2(
|
|
31
|
-
category: ( localize2(
|
|
30
|
+
title: ( localize2(11811, 'Open Inline Chat')),
|
|
31
|
+
category: ( localize2(11812, "Terminal")),
|
|
32
32
|
keybinding: {
|
|
33
33
|
primary: KeyMod.CtrlCmd | KeyCode.KeyI,
|
|
34
34
|
when: ( ContextKeyExpr.and(TerminalContextKeys.focusInAny)),
|
|
@@ -64,7 +64,7 @@ registerActiveXtermAction({
|
|
|
64
64
|
});
|
|
65
65
|
registerActiveXtermAction({
|
|
66
66
|
id: TerminalChatCommandId.Close,
|
|
67
|
-
title: ( localize2(
|
|
67
|
+
title: ( localize2(11813, 'Close')),
|
|
68
68
|
category: AbstractInline1ChatAction.category,
|
|
69
69
|
keybinding: {
|
|
70
70
|
primary: KeyCode.Escape,
|
|
@@ -89,8 +89,8 @@ registerActiveXtermAction({
|
|
|
89
89
|
});
|
|
90
90
|
registerActiveXtermAction({
|
|
91
91
|
id: TerminalChatCommandId.RunCommand,
|
|
92
|
-
title: ( localize2(
|
|
93
|
-
shortTitle: ( localize2(
|
|
92
|
+
title: ( localize2(11814, 'Run Chat Command')),
|
|
93
|
+
shortTitle: ( localize2(11815, 'Run')),
|
|
94
94
|
category: AbstractInline1ChatAction.category,
|
|
95
95
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
96
96
|
TerminalContextKeys.processSupported,
|
|
@@ -118,8 +118,8 @@ registerActiveXtermAction({
|
|
|
118
118
|
});
|
|
119
119
|
registerActiveXtermAction({
|
|
120
120
|
id: TerminalChatCommandId.RunFirstCommand,
|
|
121
|
-
title: ( localize2(
|
|
122
|
-
shortTitle: ( localize2(
|
|
121
|
+
title: ( localize2(11816, 'Run First Chat Command')),
|
|
122
|
+
shortTitle: ( localize2(11817, 'Run First')),
|
|
123
123
|
category: AbstractInline1ChatAction.category,
|
|
124
124
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
125
125
|
TerminalContextKeys.processSupported,
|
|
@@ -147,8 +147,8 @@ registerActiveXtermAction({
|
|
|
147
147
|
});
|
|
148
148
|
registerActiveXtermAction({
|
|
149
149
|
id: TerminalChatCommandId.InsertCommand,
|
|
150
|
-
title: ( localize2(
|
|
151
|
-
shortTitle: ( localize2(
|
|
150
|
+
title: ( localize2(11818, 'Insert Chat Command')),
|
|
151
|
+
shortTitle: ( localize2(11819, 'Insert')),
|
|
152
152
|
category: AbstractInline1ChatAction.category,
|
|
153
153
|
icon: Codicon.insert,
|
|
154
154
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
@@ -177,8 +177,8 @@ registerActiveXtermAction({
|
|
|
177
177
|
});
|
|
178
178
|
registerActiveXtermAction({
|
|
179
179
|
id: TerminalChatCommandId.InsertFirstCommand,
|
|
180
|
-
title: ( localize2(
|
|
181
|
-
shortTitle: ( localize2(
|
|
180
|
+
title: ( localize2(11820, 'Insert First Chat Command')),
|
|
181
|
+
shortTitle: ( localize2(11821, 'Insert First')),
|
|
182
182
|
category: AbstractInline1ChatAction.category,
|
|
183
183
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
184
184
|
TerminalContextKeys.processSupported,
|
|
@@ -206,7 +206,7 @@ registerActiveXtermAction({
|
|
|
206
206
|
});
|
|
207
207
|
registerActiveXtermAction({
|
|
208
208
|
id: TerminalChatCommandId.RerunRequest,
|
|
209
|
-
title: ( localize2(
|
|
209
|
+
title: ( localize2(11822, "Rerun Request")),
|
|
210
210
|
f1: false,
|
|
211
211
|
icon: Codicon.refresh,
|
|
212
212
|
category: AbstractInline1ChatAction.category,
|
|
@@ -247,7 +247,7 @@ registerActiveXtermAction({
|
|
|
247
247
|
});
|
|
248
248
|
registerActiveXtermAction({
|
|
249
249
|
id: TerminalChatCommandId.ViewInChat,
|
|
250
|
-
title: ( localize2(
|
|
250
|
+
title: ( localize2(11823, 'View in Chat')),
|
|
251
251
|
category: AbstractInline1ChatAction.category,
|
|
252
252
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
253
253
|
TerminalContextKeys.processSupported,
|
|
@@ -273,8 +273,8 @@ registerAction2(class ShowChatTerminalsAction extends Action2 {
|
|
|
273
273
|
constructor() {
|
|
274
274
|
super({
|
|
275
275
|
id: TerminalChatCommandId.ViewHiddenChatTerminals,
|
|
276
|
-
title: ( localize2(
|
|
277
|
-
category: ( localize2(
|
|
276
|
+
title: ( localize2(11824, 'View Hidden Chat Terminals')),
|
|
277
|
+
category: ( localize2(11825, 'Terminal')),
|
|
278
278
|
f1: true,
|
|
279
279
|
precondition: ( ContextKeyExpr.and(TerminalChatContextKeys.hasHiddenChatTerminals, ChatContextKeys.enabled)),
|
|
280
280
|
menu: [{
|
|
@@ -306,7 +306,7 @@ registerAction2(class ShowChatTerminalsAction extends Action2 {
|
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
const items = [];
|
|
309
|
-
const lastCommandLocalized = (command) => ( localize2(
|
|
309
|
+
const lastCommandLocalized = (command) => ( localize2(11826, 'Last: {0}', command)).value;
|
|
310
310
|
const metas = [];
|
|
311
311
|
for (const instance of ( all.values())) {
|
|
312
312
|
const iconId = instantiationService.invokeFunction(getIconId, instance);
|
|
@@ -338,10 +338,10 @@ registerAction2(class ShowChatTerminalsAction extends Action2 {
|
|
|
338
338
|
});
|
|
339
339
|
}
|
|
340
340
|
const qp = quickInputService.createQuickPick();
|
|
341
|
-
qp.placeholder = ( localize2(
|
|
341
|
+
qp.placeholder = ( localize2(11827, 'Select a chat terminal to show and focus')).value;
|
|
342
342
|
qp.items = items;
|
|
343
343
|
qp.canSelectMany = false;
|
|
344
|
-
qp.title = ( localize2(
|
|
344
|
+
qp.title = ( localize2(11828, 'Chat Terminals')).value;
|
|
345
345
|
qp.matchOnDescription = true;
|
|
346
346
|
qp.matchOnDetail = true;
|
|
347
347
|
qp.onDidAccept(async () => {
|
|
@@ -167,7 +167,7 @@ let TerminalChatWidget = class TerminalChatWidget extends Disposable {
|
|
|
167
167
|
}
|
|
168
168
|
_resetPlaceholder() {
|
|
169
169
|
const defaultAgent = this._chatAgentService.getDefaultAgent(ChatAgentLocation.Terminal);
|
|
170
|
-
this.inlineChatWidget.placeholder = defaultAgent?.description ?? ( localize(
|
|
170
|
+
this.inlineChatWidget.placeholder = defaultAgent?.description ?? ( localize(11829, 'Ask about commands'));
|
|
171
171
|
}
|
|
172
172
|
async reveal(viewState) {
|
|
173
173
|
await this._createSession(viewState);
|
|
@@ -72,11 +72,11 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
|
|
|
72
72
|
if (subCommandsToSuggest.length > 0) {
|
|
73
73
|
let subCommandLabel;
|
|
74
74
|
if (subCommandsToSuggest.length === 1) {
|
|
75
|
-
subCommandLabel = ( localize(
|
|
75
|
+
subCommandLabel = ( localize(11831, 'Always Allow Command: {0}', subCommandsToSuggest[0]));
|
|
76
76
|
}
|
|
77
77
|
else {
|
|
78
78
|
const commandSeparated = subCommandsToSuggest.join(', ');
|
|
79
|
-
subCommandLabel = ( localize(
|
|
79
|
+
subCommandLabel = ( localize(11832, 'Always Allow Commands: {0}', commandSeparated));
|
|
80
80
|
}
|
|
81
81
|
actions.push({
|
|
82
82
|
label: subCommandLabel,
|
|
@@ -94,7 +94,7 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
|
|
|
94
94
|
!( commandsWithSubcommands.has(commandLine)) &&
|
|
95
95
|
!( commandsWithSubSubCommands.has(commandLine))) {
|
|
96
96
|
actions.push({
|
|
97
|
-
label: ( localize(
|
|
97
|
+
label: ( localize(11833, 'Always Allow Exact Command Line')),
|
|
98
98
|
data: {
|
|
99
99
|
type: 'newRule',
|
|
100
100
|
rule: {
|
|
@@ -112,7 +112,7 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
|
|
|
112
112
|
actions.push(( new Separator()));
|
|
113
113
|
}
|
|
114
114
|
actions.push({
|
|
115
|
-
label: ( localize(
|
|
115
|
+
label: ( localize(11834, 'Configure Auto Approve...')),
|
|
116
116
|
data: {
|
|
117
117
|
type: 'configure'
|
|
118
118
|
}
|
|
@@ -60,7 +60,7 @@ let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Dispos
|
|
|
60
60
|
this._register(toolsService.registerTool(GetTerminalOutputToolData, getTerminalOutputTool));
|
|
61
61
|
const runCommandsToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runCommands', VSCodeToolReference.runCommands, {
|
|
62
62
|
icon: ThemeIcon.fromId(Codicon.terminal.id),
|
|
63
|
-
description: ( localize(
|
|
63
|
+
description: ( localize(11835, 'Runs commands in the terminal'))
|
|
64
64
|
}));
|
|
65
65
|
runCommandsToolSet.addTool(GetTerminalOutputToolData);
|
|
66
66
|
instantiationService.invokeFunction(createRunInTerminalToolData).then(runInTerminalToolData => {
|
|
@@ -81,7 +81,7 @@ let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Dispos
|
|
|
81
81
|
const createAndRunTaskTool = instantiationService.createInstance(CreateAndRunTaskTool);
|
|
82
82
|
this._register(toolsService.registerTool(CreateAndRunTaskToolData, createAndRunTaskTool));
|
|
83
83
|
const runTasksToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runTasks', 'runTasks', {
|
|
84
|
-
description: ( localize(
|
|
84
|
+
description: ( localize(11836, 'Runs tasks and gets their output for your workspace')),
|
|
85
85
|
}));
|
|
86
86
|
runTasksToolSet.addTool(RunTaskToolData);
|
|
87
87
|
runTasksToolSet.addTool(GetTaskOutputToolData);
|
|
@@ -95,7 +95,7 @@ ChatAgentToolsContribution = ( __decorate([
|
|
|
95
95
|
registerWorkbenchContribution2(ChatAgentToolsContribution.ID, ChatAgentToolsContribution, WorkbenchPhase.AfterRestored);
|
|
96
96
|
registerActiveInstanceAction({
|
|
97
97
|
id: TerminalChatAgentToolsCommandId.ChatAddTerminalSelection,
|
|
98
|
-
title: ( localize(
|
|
98
|
+
title: ( localize(11837, 'Add Terminal Selection to Chat')),
|
|
99
99
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, sharedWhenClause.terminalAvailable)),
|
|
100
100
|
menu: [
|
|
101
101
|
{
|
|
@@ -120,8 +120,8 @@ registerActiveInstanceAction({
|
|
|
120
120
|
chatView.attachmentModel.addContext({
|
|
121
121
|
id: `terminal-selection-${Date.now()}`,
|
|
122
122
|
kind: 'generic',
|
|
123
|
-
name: ( localize(
|
|
124
|
-
fullName: ( localize(
|
|
123
|
+
name: ( localize(11838, 'Terminal Selection')),
|
|
124
|
+
fullName: ( localize(11838, 'Terminal Selection')),
|
|
125
125
|
value: selection,
|
|
126
126
|
icon: Codicon.terminal
|
|
127
127
|
});
|
|
@@ -122,7 +122,7 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
|
|
|
122
122
|
if (!isAutoApproved && (( subCommandsLowerFirstWordOnly.some(command => promptInjectionWarningCommandsLower.includes(command))) ||
|
|
123
123
|
(isPowerShell(options.shell, options.os) && ( subCommandsLowerFirstWordOnly.some(command => promptInjectionWarningCommandsLowerPwshOnly.includes(command)))))) {
|
|
124
124
|
disclaimers.push(( localize(
|
|
125
|
-
|
|
125
|
+
11839,
|
|
126
126
|
'Web content may contain malicious code or attempt prompt injection attacks.'
|
|
127
127
|
)));
|
|
128
128
|
}
|
|
@@ -140,7 +140,7 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
|
|
|
140
140
|
const formatRuleLinks = (result) => {
|
|
141
141
|
return ( asArray(result).map(e => {
|
|
142
142
|
const settingsUri = createCommandUri(openTerminalSettingsLinkCommandId, e.rule.sourceTarget);
|
|
143
|
-
return `[\`${e.rule.sourceText}\`](${( settingsUri.toString())} "${( localize(
|
|
143
|
+
return `[\`${e.rule.sourceText}\`](${( settingsUri.toString())} "${( localize(11840, 'View rule in settings'))}")`;
|
|
144
144
|
})).join(', ');
|
|
145
145
|
};
|
|
146
146
|
const mdTrustSettings = {
|
|
@@ -153,9 +153,9 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
|
|
|
153
153
|
if (isGlobalAutoApproved) {
|
|
154
154
|
const settingsUri = createCommandUri(openTerminalSettingsLinkCommandId, 'global');
|
|
155
155
|
return (new MarkdownString(`${( localize(
|
|
156
|
-
|
|
156
|
+
11841,
|
|
157
157
|
'Auto approved by setting {0}',
|
|
158
|
-
`[\`${ChatConfiguration.GlobalAutoApprove}\`](${( settingsUri.toString())} "${( localize(
|
|
158
|
+
`[\`${ChatConfiguration.GlobalAutoApprove}\`](${( settingsUri.toString())} "${( localize(11842, 'View settings'))}")`
|
|
159
159
|
))}`, mdTrustSettings));
|
|
160
160
|
}
|
|
161
161
|
if (isAutoApproved) {
|
|
@@ -163,7 +163,7 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
|
|
|
163
163
|
case 'commandLine': {
|
|
164
164
|
if (commandLineResult.rule) {
|
|
165
165
|
return (new MarkdownString(
|
|
166
|
-
localize(
|
|
166
|
+
localize(11843, 'Auto approved by rule {0}', formatRuleLinks(commandLineResult)),
|
|
167
167
|
mdTrustSettings
|
|
168
168
|
));
|
|
169
169
|
}
|
|
@@ -173,13 +173,13 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
|
|
|
173
173
|
const uniqueRules = dedupeRules(subCommandResults);
|
|
174
174
|
if (uniqueRules.length === 1) {
|
|
175
175
|
return (new MarkdownString(
|
|
176
|
-
localize(
|
|
176
|
+
localize(11843, 'Auto approved by rule {0}', formatRuleLinks(uniqueRules)),
|
|
177
177
|
mdTrustSettings
|
|
178
178
|
));
|
|
179
179
|
}
|
|
180
180
|
else if (uniqueRules.length > 1) {
|
|
181
181
|
return (new MarkdownString(
|
|
182
|
-
localize(
|
|
182
|
+
localize(11844, 'Auto approved by rules {0}', formatRuleLinks(uniqueRules)),
|
|
183
183
|
mdTrustSettings
|
|
184
184
|
));
|
|
185
185
|
}
|
|
@@ -192,7 +192,7 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
|
|
|
192
192
|
case 'commandLine': {
|
|
193
193
|
if (commandLineResult.rule) {
|
|
194
194
|
return (new MarkdownString(localize(
|
|
195
|
-
|
|
195
|
+
11845,
|
|
196
196
|
'Auto approval denied by rule {0}',
|
|
197
197
|
formatRuleLinks(commandLineResult)
|
|
198
198
|
), mdTrustSettings));
|
|
@@ -203,12 +203,12 @@ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extend
|
|
|
203
203
|
const uniqueRules = dedupeRules(subCommandResults.filter(e => e.result === 'denied'));
|
|
204
204
|
if (uniqueRules.length === 1) {
|
|
205
205
|
return (new MarkdownString(
|
|
206
|
-
localize(
|
|
206
|
+
localize(11845, 'Auto approval denied by rule {0}', formatRuleLinks(uniqueRules))
|
|
207
207
|
));
|
|
208
208
|
}
|
|
209
209
|
else if (uniqueRules.length > 1) {
|
|
210
210
|
return (new MarkdownString(
|
|
211
|
-
localize(
|
|
211
|
+
localize(11846, 'Auto approval denied by rules {0}', formatRuleLinks(uniqueRules))
|
|
212
212
|
));
|
|
213
213
|
}
|
|
214
214
|
break;
|