@codingame/monaco-vscode-chat-service-override 20.0.0 → 20.1.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 +36 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +11 -11
- 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 +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
- 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/chatPasteProviders.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +47 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +53 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +12 -12
- 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/saveToPromptAction.js +1 -1
- 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 +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
- 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 +24 -24
- 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 +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/getTerminalOutputTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalTool.js +4 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/createAndRunTaskTool.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/runTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +1 -1
|
@@ -29,12 +29,12 @@ import { IInlineChatSessionService } from '@codingame/monaco-vscode-api/vscode/v
|
|
|
29
29
|
|
|
30
30
|
CommandsRegistry.registerCommandAlias('interactiveEditor.start', 'inlineChat.start');
|
|
31
31
|
CommandsRegistry.registerCommandAlias('interactive.acceptChanges', ACTION_ACCEPT_CHANGES);
|
|
32
|
-
const START_INLINE_CHAT = registerIcon('start-inline-chat', Codicon.sparkle, ( localize(
|
|
32
|
+
const START_INLINE_CHAT = registerIcon('start-inline-chat', Codicon.sparkle, ( localize(7656, 'Icon which spawns the inline chat from the editor toolbar.')));
|
|
33
33
|
class StartSessionAction extends Action2 {
|
|
34
34
|
constructor() {
|
|
35
35
|
super({
|
|
36
36
|
id: ACTION_START,
|
|
37
|
-
title: ( localize2(
|
|
37
|
+
title: ( localize2(7657, 'Editor Inline Chat')),
|
|
38
38
|
category: AbstractInline1ChatAction.category,
|
|
39
39
|
f1: true,
|
|
40
40
|
precondition: ( ContextKeyExpr.and(( ContextKeyExpr.or(CTX_INLINE_CHAT_HAS_AGENT, CTX_INLINE_CHAT_HAS_AGENT2)), CTX_INLINE_CHAT_POSSIBLE, EditorContextKeys.writable, ( EditorContextKeys.editorSimpleInput.negate()))),
|
|
@@ -89,7 +89,7 @@ class FocusInlineChat extends EditorAction2 {
|
|
|
89
89
|
constructor() {
|
|
90
90
|
super({
|
|
91
91
|
id: 'inlineChat.focus',
|
|
92
|
-
title: ( localize2(
|
|
92
|
+
title: ( localize2(7658, "Focus Input")),
|
|
93
93
|
f1: true,
|
|
94
94
|
category: AbstractInline1ChatAction.category,
|
|
95
95
|
precondition: ( ContextKeyExpr.and(EditorContextKeys.editorTextFocus, CTX_INLINE_CHAT_VISIBLE, ( CTX_INLINE_CHAT_FOCUSED.negate()), ( CONTEXT_ACCESSIBILITY_MODE_ENABLED.negate()))),
|
|
@@ -112,7 +112,7 @@ class UnstashSessionAction extends EditorAction2 {
|
|
|
112
112
|
constructor() {
|
|
113
113
|
super({
|
|
114
114
|
id: 'inlineChat.unstash',
|
|
115
|
-
title: ( localize2(
|
|
115
|
+
title: ( localize2(7659, "Resume Last Dismissed Inline Chat")),
|
|
116
116
|
category: AbstractInline1ChatAction.category,
|
|
117
117
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_HAS_STASHED_SESSION, EditorContextKeys.writable)),
|
|
118
118
|
keybinding: {
|
|
@@ -134,7 +134,7 @@ class UnstashSessionAction extends EditorAction2 {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
class AbstractInline1ChatAction extends EditorAction2 {
|
|
137
|
-
static { this.category = ( localize2(
|
|
137
|
+
static { this.category = ( localize2(7660, "Inline Chat")); }
|
|
138
138
|
constructor(desc) {
|
|
139
139
|
const massageMenu = (menu) => {
|
|
140
140
|
if (Array.isArray(menu)) {
|
|
@@ -196,7 +196,7 @@ class ArrowOutUpAction extends AbstractInline1ChatAction {
|
|
|
196
196
|
constructor() {
|
|
197
197
|
super({
|
|
198
198
|
id: 'inlineChat.arrowOutUp',
|
|
199
|
-
title: ( localize(
|
|
199
|
+
title: ( localize(7661, 'Cursor Up')),
|
|
200
200
|
precondition: ( ContextKeyExpr.and(
|
|
201
201
|
CTX_INLINE_CHAT_FOCUSED,
|
|
202
202
|
CTX_INLINE_CHAT_INNER_CURSOR_FIRST,
|
|
@@ -217,7 +217,7 @@ class ArrowOutDownAction extends AbstractInline1ChatAction {
|
|
|
217
217
|
constructor() {
|
|
218
218
|
super({
|
|
219
219
|
id: 'inlineChat.arrowOutDown',
|
|
220
|
-
title: ( localize(
|
|
220
|
+
title: ( localize(7662, 'Cursor Down')),
|
|
221
221
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_INNER_CURSOR_LAST, ( EditorContextKeys.isEmbeddedDiffEditor.negate()), ( CONTEXT_ACCESSIBILITY_MODE_ENABLED.negate()))),
|
|
222
222
|
keybinding: {
|
|
223
223
|
weight: KeybindingWeight.EditorCore,
|
|
@@ -233,8 +233,8 @@ class AcceptChanges extends AbstractInline1ChatAction {
|
|
|
233
233
|
constructor() {
|
|
234
234
|
super({
|
|
235
235
|
id: ACTION_ACCEPT_CHANGES,
|
|
236
|
-
title: ( localize2(
|
|
237
|
-
shortTitle: ( localize(
|
|
236
|
+
title: ( localize2(7663, "Accept Changes")),
|
|
237
|
+
shortTitle: ( localize(7664, 'Accept')),
|
|
238
238
|
icon: Codicon.check,
|
|
239
239
|
f1: true,
|
|
240
240
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE)),
|
|
@@ -262,7 +262,7 @@ class DiscardHunkAction extends AbstractInline1ChatAction {
|
|
|
262
262
|
constructor() {
|
|
263
263
|
super({
|
|
264
264
|
id: ACTION_DISCARD_CHANGES,
|
|
265
|
-
title: ( localize(
|
|
265
|
+
title: ( localize(7665, 'Discard')),
|
|
266
266
|
icon: Codicon.chromeClose,
|
|
267
267
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
268
268
|
menu: [{
|
|
@@ -285,8 +285,8 @@ class RerunAction extends AbstractInline1ChatAction {
|
|
|
285
285
|
constructor() {
|
|
286
286
|
super({
|
|
287
287
|
id: ACTION_REGENERATE_RESPONSE,
|
|
288
|
-
title: ( localize2(
|
|
289
|
-
shortTitle: ( localize(
|
|
288
|
+
title: ( localize2(7666, "Rerun Request")),
|
|
289
|
+
shortTitle: ( localize(7667, 'Rerun')),
|
|
290
290
|
f1: false,
|
|
291
291
|
icon: Codicon.refresh,
|
|
292
292
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
@@ -325,7 +325,7 @@ class CloseAction extends AbstractInline1ChatAction {
|
|
|
325
325
|
constructor() {
|
|
326
326
|
super({
|
|
327
327
|
id: 'inlineChat.close',
|
|
328
|
-
title: ( localize(
|
|
328
|
+
title: ( localize(7668, 'Close')),
|
|
329
329
|
icon: Codicon.close,
|
|
330
330
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
331
331
|
keybinding: {
|
|
@@ -352,7 +352,7 @@ class ConfigureInlineChatAction extends AbstractInline1ChatAction {
|
|
|
352
352
|
constructor() {
|
|
353
353
|
super({
|
|
354
354
|
id: 'inlineChat.configure',
|
|
355
|
-
title: ( localize2(
|
|
355
|
+
title: ( localize2(7669, 'Configure Inline Chat')),
|
|
356
356
|
icon: Codicon.settingsGear,
|
|
357
357
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
358
358
|
f1: true,
|
|
@@ -371,7 +371,7 @@ class MoveToNextHunk extends AbstractInline1ChatAction {
|
|
|
371
371
|
constructor() {
|
|
372
372
|
super({
|
|
373
373
|
id: 'inlineChat.moveToNextHunk',
|
|
374
|
-
title: ( localize2(
|
|
374
|
+
title: ( localize2(7670, 'Move to Next Change')),
|
|
375
375
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
376
376
|
f1: true,
|
|
377
377
|
keybinding: {
|
|
@@ -388,7 +388,7 @@ class MoveToPreviousHunk extends AbstractInline1ChatAction {
|
|
|
388
388
|
constructor() {
|
|
389
389
|
super({
|
|
390
390
|
id: 'inlineChat.moveToPreviousHunk',
|
|
391
|
-
title: ( localize2(
|
|
391
|
+
title: ( localize2(7671, 'Move to Previous Change')),
|
|
392
392
|
f1: true,
|
|
393
393
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
394
394
|
keybinding: {
|
|
@@ -405,7 +405,7 @@ class ViewInChatAction extends AbstractInline1ChatAction {
|
|
|
405
405
|
constructor() {
|
|
406
406
|
super({
|
|
407
407
|
id: ACTION_VIEW_IN_CHAT,
|
|
408
|
-
title: ( localize(
|
|
408
|
+
title: ( localize(7672, 'View in Chat')),
|
|
409
409
|
icon: Codicon.commentDiscussion,
|
|
410
410
|
precondition: CTX_INLINE_CHAT_VISIBLE,
|
|
411
411
|
menu: [{
|
|
@@ -435,7 +435,7 @@ class ToggleDiffForChange extends AbstractInline1ChatAction {
|
|
|
435
435
|
super({
|
|
436
436
|
id: ACTION_TOGGLE_DIFF,
|
|
437
437
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_CHANGE_HAS_DIFF)),
|
|
438
|
-
title: ( localize2(
|
|
438
|
+
title: ( localize2(7673, 'Toggle Changes')),
|
|
439
439
|
icon: Codicon.diffSingle,
|
|
440
440
|
toggled: {
|
|
441
441
|
condition: CTX_INLINE_CHAT_CHANGE_SHOWS_DIFF,
|
|
@@ -457,7 +457,7 @@ class ToggleDiffForChange extends AbstractInline1ChatAction {
|
|
|
457
457
|
}
|
|
458
458
|
}
|
|
459
459
|
class AbstractInline2ChatAction extends EditorAction2 {
|
|
460
|
-
static { this.category = ( localize2(
|
|
460
|
+
static { this.category = ( localize2(7660, "Inline Chat")); }
|
|
461
461
|
constructor(desc) {
|
|
462
462
|
const massageMenu = (menu) => {
|
|
463
463
|
if (Array.isArray(menu)) {
|
|
@@ -520,8 +520,8 @@ class KeepOrUndoSessionAction extends AbstractInline2ChatAction {
|
|
|
520
520
|
super({
|
|
521
521
|
id,
|
|
522
522
|
title: _keep
|
|
523
|
-
? ( localize2(
|
|
524
|
-
: ( localize2(
|
|
523
|
+
? ( localize2(7674, "Keep"))
|
|
524
|
+
: ( localize2(7675, "Undo")),
|
|
525
525
|
f1: true,
|
|
526
526
|
icon: _keep ? Codicon.check : Codicon.discard,
|
|
527
527
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE, ( ctxHasRequestInProgress.negate()))),
|
|
@@ -576,7 +576,7 @@ class CloseSessionAction2 extends AbstractInline2ChatAction {
|
|
|
576
576
|
constructor() {
|
|
577
577
|
super({
|
|
578
578
|
id: 'inlineChat2.close',
|
|
579
|
-
title: ( localize2(
|
|
579
|
+
title: ( localize2(7676, "Close")),
|
|
580
580
|
f1: true,
|
|
581
581
|
icon: Codicon.close,
|
|
582
582
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE, ( ctxHasRequestInProgress.negate()), ( ContextKeyExpr.or(( ctxRequestCount.isEqualTo(0)), ( ctxHasEditorModification.negate()))))),
|
|
@@ -612,7 +612,7 @@ class RevealWidget extends AbstractInline2ChatAction {
|
|
|
612
612
|
constructor() {
|
|
613
613
|
super({
|
|
614
614
|
id: 'inlineChat2.reveal',
|
|
615
|
-
title: ( localize2(
|
|
615
|
+
title: ( localize2(7677, "Toggle Inline Chat")),
|
|
616
616
|
f1: true,
|
|
617
617
|
icon: Codicon.copilot,
|
|
618
618
|
precondition: ( ContextKeyExpr.and(( ctxIsGlobalEditingSession.negate()), ContextKeyExpr.greaterEquals(ctxRequestCount.key, 1))),
|
|
@@ -640,7 +640,7 @@ class CancelRequestAction extends AbstractInline2ChatAction {
|
|
|
640
640
|
constructor() {
|
|
641
641
|
super({
|
|
642
642
|
id: 'inlineChat2.cancelRequest',
|
|
643
|
-
title: ( localize2(
|
|
643
|
+
title: ( localize2(7678, "Cancel Request")),
|
|
644
644
|
f1: true,
|
|
645
645
|
icon: Codicon.stopCircle,
|
|
646
646
|
precondition: ( ContextKeyExpr.and(( ctxIsGlobalEditingSession.negate()), ctxHasRequestInProgress)),
|
|
@@ -53,14 +53,14 @@ const IGNORED_LANGUAGE_IDS = ( new Set([
|
|
|
53
53
|
PROMPT_LANGUAGE_ID,
|
|
54
54
|
MODE_FILE_EXTENSION
|
|
55
55
|
]));
|
|
56
|
-
const CTX_INLINE_CHAT_SHOWING_HINT = ( new RawContextKey('inlineChatShowingHint', false, ( localize(
|
|
56
|
+
const CTX_INLINE_CHAT_SHOWING_HINT = ( new RawContextKey('inlineChatShowingHint', false, ( localize(7685, "Whether inline chat shows a contextual hint"))));
|
|
57
57
|
const _inlineChatActionId = 'inlineChat.startWithCurrentLine';
|
|
58
58
|
class InlineChatExpandLineAction extends EditorAction2 {
|
|
59
59
|
constructor() {
|
|
60
60
|
super({
|
|
61
61
|
id: _inlineChatActionId,
|
|
62
62
|
category: AbstractInline1ChatAction.category,
|
|
63
|
-
title: ( localize2(
|
|
63
|
+
title: ( localize2(7686, "Start in Editor with Current Line")),
|
|
64
64
|
f1: true,
|
|
65
65
|
precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_HAS_AGENT, EditorContextKeys.writable)),
|
|
66
66
|
keybinding: [{
|
|
@@ -103,7 +103,7 @@ class ShowInlineChatHintAction extends EditorAction2 {
|
|
|
103
103
|
super({
|
|
104
104
|
id: 'inlineChat.showHint',
|
|
105
105
|
category: AbstractInline1ChatAction.category,
|
|
106
|
-
title: ( localize2(
|
|
106
|
+
title: ( localize2(7687, "Show Inline Chat Hint")),
|
|
107
107
|
f1: false,
|
|
108
108
|
precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_HAS_AGENT, EditorContextKeys.writable)),
|
|
109
109
|
});
|
|
@@ -231,15 +231,15 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
|
|
|
231
231
|
this._ctxShowingHint.reset();
|
|
232
232
|
return;
|
|
233
233
|
}
|
|
234
|
-
const agentName = chatAgentService.getDefaultAgent(ChatAgentLocation.Editor)?.name ?? ( localize(
|
|
234
|
+
const agentName = chatAgentService.getDefaultAgent(ChatAgentLocation.Editor)?.name ?? ( localize(7688, "Chat"));
|
|
235
235
|
const { position, isEol, isWhitespace, kb, model } = showData;
|
|
236
236
|
const inlineClassName = ['a' , 'inline-chat-hint', 'inline-chat-hint-text'];
|
|
237
237
|
let content;
|
|
238
238
|
if (isWhitespace) {
|
|
239
|
-
content = '\u00a0' + ( localize(
|
|
239
|
+
content = '\u00a0' + ( localize(7689, "{0} to edit with {1}", kb, agentName));
|
|
240
240
|
}
|
|
241
241
|
else if (isEol) {
|
|
242
|
-
content = '\u00a0' + ( localize(
|
|
242
|
+
content = '\u00a0' + ( localize(7690, "{0} to continue with {1}", kb, agentName));
|
|
243
243
|
}
|
|
244
244
|
else {
|
|
245
245
|
content = '\u200a' + kb + '\u200a';
|
|
@@ -268,7 +268,7 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
|
|
|
268
268
|
getActions: () => [
|
|
269
269
|
toAction({
|
|
270
270
|
id: 'inlineChat.disableHint',
|
|
271
|
-
label: ( localize(
|
|
271
|
+
label: ( localize(7691, "Disable Inline Chat Hint")),
|
|
272
272
|
run: async () => {
|
|
273
273
|
await this._configurationService.updateValue(setting, false);
|
|
274
274
|
}
|
|
@@ -296,7 +296,7 @@ class HideInlineChatHintAction extends EditorAction2 {
|
|
|
296
296
|
constructor() {
|
|
297
297
|
super({
|
|
298
298
|
id: 'inlineChat.hideHint',
|
|
299
|
-
title: ( localize2(
|
|
299
|
+
title: ( localize2(7692, "Hide Inline Chat Hint")),
|
|
300
300
|
precondition: CTX_INLINE_CHAT_SHOWING_HINT,
|
|
301
301
|
keybinding: {
|
|
302
302
|
weight: KeybindingWeight.EditorContrib - 10,
|
|
@@ -14,42 +14,42 @@ import { IRemoteCodingAgentsService } from '@codingame/monaco-vscode-api/vscode/
|
|
|
14
14
|
const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
15
15
|
extensionPoint: 'remoteCodingAgents',
|
|
16
16
|
jsonSchema: {
|
|
17
|
-
description: ( localize(
|
|
17
|
+
description: ( localize(9713, 'Contributes remote coding agent integrations to the chat widget.')),
|
|
18
18
|
type: 'array',
|
|
19
19
|
items: {
|
|
20
20
|
type: 'object',
|
|
21
21
|
properties: {
|
|
22
22
|
id: {
|
|
23
|
-
description: ( localize(
|
|
23
|
+
description: ( localize(9714, 'A unique identifier for this item.')),
|
|
24
24
|
type: 'string',
|
|
25
25
|
},
|
|
26
26
|
command: {
|
|
27
27
|
description: ( localize(
|
|
28
|
-
|
|
28
|
+
9715,
|
|
29
29
|
'Identifier of the command to execute. The command must be declared in the "commands" section.'
|
|
30
30
|
)),
|
|
31
31
|
type: 'string'
|
|
32
32
|
},
|
|
33
33
|
displayName: {
|
|
34
34
|
description: ( localize(
|
|
35
|
-
|
|
35
|
+
9716,
|
|
36
36
|
'A user-friendly name for this item which is used for display in menus.'
|
|
37
37
|
)),
|
|
38
38
|
type: 'string'
|
|
39
39
|
},
|
|
40
40
|
description: {
|
|
41
|
-
description: ( localize(
|
|
41
|
+
description: ( localize(9717, 'Description of the remote agent for use in menus and tooltips.')),
|
|
42
42
|
type: 'string'
|
|
43
43
|
},
|
|
44
44
|
followUpRegex: {
|
|
45
45
|
description: ( localize(
|
|
46
|
-
|
|
46
|
+
9718,
|
|
47
47
|
'The last occurrence of pattern in an existing chat conversation is sent to the contributing extension to facilitate follow-up responses.'
|
|
48
48
|
)),
|
|
49
49
|
type: 'string',
|
|
50
50
|
},
|
|
51
51
|
when: {
|
|
52
|
-
description: ( localize(
|
|
52
|
+
description: ( localize(9719, 'Condition which must be true to show this item.')),
|
|
53
53
|
type: 'string'
|
|
54
54
|
},
|
|
55
55
|
},
|
|
@@ -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
|
+
11227,
|
|
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
|
+
11228,
|
|
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
|
+
11229,
|
|
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
|
+
11230,
|
|
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
|
+
11231,
|
|
62
62
|
'The response can be inspected in the accessible view ({0}).',
|
|
63
63
|
openAccessibleViewKeybinding
|
|
64
64
|
)) : ( localize(
|
|
65
|
-
|
|
65
|
+
11232,
|
|
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
|
+
11233,
|
|
70
70
|
'Reach the response from the input box ({0}).',
|
|
71
71
|
focusResponseKeybinding
|
|
72
72
|
)) : ( localize(
|
|
73
|
-
|
|
73
|
+
11234,
|
|
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
|
+
11235,
|
|
78
78
|
'Reach the input box from the response ({0}).',
|
|
79
79
|
focusInputKeybinding
|
|
80
80
|
)) : ( localize(
|
|
81
|
-
|
|
81
|
+
11236,
|
|
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
|
+
11237,
|
|
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
|
+
11238,
|
|
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
|
+
11239,
|
|
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
|
+
11240,
|
|
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
|
+
11241,
|
|
102
102
|
"Use tab to reach conditional parts like commands, status, message responses and more."
|
|
103
103
|
)));
|
|
104
104
|
content.push(( localize(
|
|
105
|
-
|
|
105
|
+
11242,
|
|
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');
|
|
@@ -19,7 +19,7 @@ import { activeChatController } from './terminalChatControllerHolder.js';
|
|
|
19
19
|
|
|
20
20
|
registerActiveXtermAction({
|
|
21
21
|
id: TerminalChatCommandId.Start,
|
|
22
|
-
title: ( localize2(
|
|
22
|
+
title: ( localize2(11243, 'Terminal Inline Chat')),
|
|
23
23
|
category: AbstractInline1ChatAction.category,
|
|
24
24
|
keybinding: {
|
|
25
25
|
primary: KeyMod.CtrlCmd | KeyCode.KeyI,
|
|
@@ -55,7 +55,7 @@ registerActiveXtermAction({
|
|
|
55
55
|
});
|
|
56
56
|
registerActiveXtermAction({
|
|
57
57
|
id: TerminalChatCommandId.Close,
|
|
58
|
-
title: ( localize2(
|
|
58
|
+
title: ( localize2(11244, 'Close')),
|
|
59
59
|
category: AbstractInline1ChatAction.category,
|
|
60
60
|
keybinding: {
|
|
61
61
|
primary: KeyCode.Escape,
|
|
@@ -80,8 +80,8 @@ registerActiveXtermAction({
|
|
|
80
80
|
});
|
|
81
81
|
registerActiveXtermAction({
|
|
82
82
|
id: TerminalChatCommandId.RunCommand,
|
|
83
|
-
title: ( localize2(
|
|
84
|
-
shortTitle: ( localize2(
|
|
83
|
+
title: ( localize2(11245, 'Run Chat Command')),
|
|
84
|
+
shortTitle: ( localize2(11246, 'Run')),
|
|
85
85
|
category: AbstractInline1ChatAction.category,
|
|
86
86
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
87
87
|
TerminalContextKeys.processSupported,
|
|
@@ -109,8 +109,8 @@ registerActiveXtermAction({
|
|
|
109
109
|
});
|
|
110
110
|
registerActiveXtermAction({
|
|
111
111
|
id: TerminalChatCommandId.RunFirstCommand,
|
|
112
|
-
title: ( localize2(
|
|
113
|
-
shortTitle: ( localize2(
|
|
112
|
+
title: ( localize2(11247, 'Run First Chat Command')),
|
|
113
|
+
shortTitle: ( localize2(11248, 'Run First')),
|
|
114
114
|
category: AbstractInline1ChatAction.category,
|
|
115
115
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
116
116
|
TerminalContextKeys.processSupported,
|
|
@@ -138,8 +138,8 @@ registerActiveXtermAction({
|
|
|
138
138
|
});
|
|
139
139
|
registerActiveXtermAction({
|
|
140
140
|
id: TerminalChatCommandId.InsertCommand,
|
|
141
|
-
title: ( localize2(
|
|
142
|
-
shortTitle: ( localize2(
|
|
141
|
+
title: ( localize2(11249, 'Insert Chat Command')),
|
|
142
|
+
shortTitle: ( localize2(11250, 'Insert')),
|
|
143
143
|
category: AbstractInline1ChatAction.category,
|
|
144
144
|
icon: Codicon.insert,
|
|
145
145
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
@@ -168,8 +168,8 @@ registerActiveXtermAction({
|
|
|
168
168
|
});
|
|
169
169
|
registerActiveXtermAction({
|
|
170
170
|
id: TerminalChatCommandId.InsertFirstCommand,
|
|
171
|
-
title: ( localize2(
|
|
172
|
-
shortTitle: ( localize2(
|
|
171
|
+
title: ( localize2(11251, 'Insert First Chat Command')),
|
|
172
|
+
shortTitle: ( localize2(11252, 'Insert First')),
|
|
173
173
|
category: AbstractInline1ChatAction.category,
|
|
174
174
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
175
175
|
TerminalContextKeys.processSupported,
|
|
@@ -197,7 +197,7 @@ registerActiveXtermAction({
|
|
|
197
197
|
});
|
|
198
198
|
registerActiveXtermAction({
|
|
199
199
|
id: TerminalChatCommandId.RerunRequest,
|
|
200
|
-
title: ( localize2(
|
|
200
|
+
title: ( localize2(11253, "Rerun Request")),
|
|
201
201
|
f1: false,
|
|
202
202
|
icon: Codicon.refresh,
|
|
203
203
|
category: AbstractInline1ChatAction.category,
|
|
@@ -238,7 +238,7 @@ registerActiveXtermAction({
|
|
|
238
238
|
});
|
|
239
239
|
registerActiveXtermAction({
|
|
240
240
|
id: TerminalChatCommandId.ViewInChat,
|
|
241
|
-
title: ( localize2(
|
|
241
|
+
title: ( localize2(11254, 'View in Chat')),
|
|
242
242
|
category: AbstractInline1ChatAction.category,
|
|
243
243
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
244
244
|
TerminalContextKeys.processSupported,
|
|
@@ -163,7 +163,7 @@ let TerminalChatWidget = class TerminalChatWidget extends Disposable {
|
|
|
163
163
|
}
|
|
164
164
|
_resetPlaceholder() {
|
|
165
165
|
const defaultAgent = this._chatAgentService.getDefaultAgent(ChatAgentLocation.Terminal);
|
|
166
|
-
this.inlineChatWidget.placeholder = defaultAgent?.description ?? ( localize(
|
|
166
|
+
this.inlineChatWidget.placeholder = defaultAgent?.description ?? ( localize(11255, 'Ask about commands'));
|
|
167
167
|
}
|
|
168
168
|
async reveal(viewState) {
|
|
169
169
|
await this._createSession(viewState);
|
|
@@ -118,10 +118,10 @@ function promptForMorePolling(command, token, context, chatService) {
|
|
|
118
118
|
if (request) {
|
|
119
119
|
let part = undefined;
|
|
120
120
|
const promise = ( new Promise(resolve => {
|
|
121
|
-
const thePart = part = ( new ChatElicitationRequestPart(( new MarkdownString(( localize(
|
|
122
|
-
|
|
121
|
+
const thePart = part = ( new ChatElicitationRequestPart(( new MarkdownString(( localize(11257, "Continue waiting for `{0}` to finish?", command)))), ( new MarkdownString(( localize(
|
|
122
|
+
11258,
|
|
123
123
|
"Copilot will continue to poll for output to determine when the terminal becomes idle for up to 2 minutes."
|
|
124
|
-
)))), '', ( localize(
|
|
124
|
+
)))), '', ( localize(11259, 'Yes')), ( localize(11260, 'No')), async () => {
|
|
125
125
|
thePart.state = 'accepted';
|
|
126
126
|
thePart.hide();
|
|
127
127
|
resolve(true);
|
|
@@ -7,7 +7,7 @@ import { RunInTerminalTool } from './runInTerminalTool.js';
|
|
|
7
7
|
const GetTerminalOutputToolData = {
|
|
8
8
|
id: 'get_terminal_output',
|
|
9
9
|
toolReferenceName: 'getTerminalOutput',
|
|
10
|
-
displayName: ( localize(
|
|
10
|
+
displayName: ( localize(11261, 'Get Terminal Output')),
|
|
11
11
|
modelDescription: 'Get the output of a terminal command previously started with run_in_terminal',
|
|
12
12
|
source: ToolDataSource.Internal,
|
|
13
13
|
inputSchema: {
|
|
@@ -26,8 +26,8 @@ const GetTerminalOutputToolData = {
|
|
|
26
26
|
class GetTerminalOutputTool extends Disposable {
|
|
27
27
|
async prepareToolInvocation(context, token) {
|
|
28
28
|
return {
|
|
29
|
-
invocationMessage: ( localize(
|
|
30
|
-
pastTenseMessage: ( localize(
|
|
29
|
+
invocationMessage: ( localize(11262, "Checking background terminal output")),
|
|
30
|
+
pastTenseMessage: ( localize(11263, "Checked background terminal output")),
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
async invoke(invocation, _countTokens, _progress, token) {
|
package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalTool.js
CHANGED
|
@@ -37,7 +37,7 @@ const TERMINAL_SESSION_STORAGE_KEY = 'chat.terminalSessions';
|
|
|
37
37
|
const RunInTerminalToolData = {
|
|
38
38
|
id: 'run_in_terminal',
|
|
39
39
|
toolReferenceName: 'runInTerminal',
|
|
40
|
-
displayName: ( localize(
|
|
40
|
+
displayName: ( localize(11264, 'Run in Terminal')),
|
|
41
41
|
modelDescription: [
|
|
42
42
|
'This tool allows you to execute shell commands in a persistent terminal session, preserving environment variables, working directory, and other context across multiple commands.',
|
|
43
43
|
'',
|
|
@@ -65,7 +65,7 @@ const RunInTerminalToolData = {
|
|
|
65
65
|
'- Use targeted queries instead of broad scans',
|
|
66
66
|
'- Consider using \'wc -l\' to count before listing many items'
|
|
67
67
|
].join('\n'),
|
|
68
|
-
userDescription: ( localize(
|
|
68
|
+
userDescription: ( localize(11265, 'Tool for running commands in the terminal')),
|
|
69
69
|
source: ToolDataSource.Internal,
|
|
70
70
|
inputSchema: {
|
|
71
71
|
type: 'object',
|
|
@@ -190,8 +190,8 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
190
190
|
}
|
|
191
191
|
confirmationMessages = isAutoApproved ? undefined : {
|
|
192
192
|
title: args.isBackground
|
|
193
|
-
? ( localize(
|
|
194
|
-
: ( localize(
|
|
193
|
+
? ( localize(11266, "Run command in background terminal"))
|
|
194
|
+
: ( localize(11267, "Run command in terminal")),
|
|
195
195
|
message: ( new MarkdownString(args.explanation)),
|
|
196
196
|
};
|
|
197
197
|
}
|
|
@@ -327,9 +327,6 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
|
|
|
327
327
|
switch (toolTerminal.shellIntegrationQuality) {
|
|
328
328
|
case ShellIntegrationQuality.None: {
|
|
329
329
|
strategy = this._instantiationService.createInstance(NoneExecuteStrategy, toolTerminal.instance);
|
|
330
|
-
toolResultMessage = ( new MarkdownString(
|
|
331
|
-
'Enable [shell integration](https://code.visualstudio.com/docs/terminal/shell-integration) to improve command detection'
|
|
332
|
-
));
|
|
333
330
|
break;
|
|
334
331
|
}
|
|
335
332
|
case ShellIntegrationQuality.Basic: {
|
|
@@ -55,7 +55,7 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
|
|
|
55
55
|
await this._fileService.writeFile(tasksJsonUri, VSBuffer.fromString(JSON.stringify(tasksJson, null, '\t')));
|
|
56
56
|
_progress.report({ message: 'Updated tasks.json file' });
|
|
57
57
|
}
|
|
58
|
-
_progress.report({ message: ( new MarkdownString(( localize(
|
|
58
|
+
_progress.report({ message: ( new MarkdownString(( localize(11269, 'Resolving the task')))) });
|
|
59
59
|
let task;
|
|
60
60
|
const start = Date.now();
|
|
61
61
|
while (Date.now() - start < 5000 && !token.isCancellationRequested) {
|
|
@@ -66,21 +66,21 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
|
|
|
66
66
|
await timeout(100);
|
|
67
67
|
}
|
|
68
68
|
if (!task) {
|
|
69
|
-
return { content: [{ kind: 'text', value: `Task not found: ${args.task.label}` }], toolResultMessage: ( new MarkdownString(( localize(
|
|
69
|
+
return { content: [{ kind: 'text', value: `Task not found: ${args.task.label}` }], toolResultMessage: ( new MarkdownString(( localize(11270, 'Task not found: `{0}`', args.task.label)))) };
|
|
70
70
|
}
|
|
71
|
-
_progress.report({ message: ( new MarkdownString(( localize(
|
|
71
|
+
_progress.report({ message: ( new MarkdownString(( localize(11271, 'Running task `{0}`', args.task.label)))) });
|
|
72
72
|
const raceResult = await Promise.race([this._tasksService.run(task), timeout(3000)]);
|
|
73
73
|
const result = raceResult && typeof raceResult === 'object' ? raceResult : undefined;
|
|
74
74
|
const resource = this._tasksService.getTerminalForTask(task);
|
|
75
75
|
const terminal = this._terminalService.instances.find(t => t.resource.path === resource?.path && t.resource.scheme === resource.scheme);
|
|
76
76
|
if (!terminal) {
|
|
77
77
|
return { content: [{ kind: 'text', value: `Task started but no terminal was found for: ${args.task.label}` }], toolResultMessage: ( new MarkdownString(( localize(
|
|
78
|
-
|
|
78
|
+
11272,
|
|
79
79
|
'Task started but no terminal was found for: `{0}`',
|
|
80
80
|
args.task.label
|
|
81
81
|
)))) };
|
|
82
82
|
}
|
|
83
|
-
_progress.report({ message: ( new MarkdownString(( localize(
|
|
83
|
+
_progress.report({ message: ( new MarkdownString(( localize(11273, 'Checking output for `{0}`', args.task.label)))) });
|
|
84
84
|
let outputAndIdle = await pollForOutputAndIdle({ getOutput: () => getOutput(terminal), isActive: () => this._isTaskActive(task) }, false, token, this._languageModelsService);
|
|
85
85
|
if (!outputAndIdle.terminalExecutionIdleBeforeTimeout) {
|
|
86
86
|
outputAndIdle = await racePollingOrPrompt(() => pollForOutputAndIdle({ getOutput: () => getOutput(terminal), isActive: () => this._isTaskActive(task) }, true, token, this._languageModelsService), () => promptForMorePolling(args.task.label, token, invocation.context, this._chatService), outputAndIdle, token, this._languageModelsService, { getOutput: () => getOutput(terminal), isActive: () => this._isTaskActive(task) });
|
|
@@ -114,26 +114,26 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
|
|
|
114
114
|
const allTasks = await this._tasksService.tasks();
|
|
115
115
|
if (allTasks?.find(t => t._label === task.label)) {
|
|
116
116
|
return {
|
|
117
|
-
invocationMessage: ( new MarkdownString(( localize(
|
|
118
|
-
pastTenseMessage: ( new MarkdownString(( localize(
|
|
117
|
+
invocationMessage: ( new MarkdownString(( localize(11274, 'Task `{0}` already exists.', task.label)))),
|
|
118
|
+
pastTenseMessage: ( new MarkdownString(( localize(11275, 'Task `{0}` already exists.', task.label)))),
|
|
119
119
|
confirmationMessages: undefined
|
|
120
120
|
};
|
|
121
121
|
}
|
|
122
122
|
const activeTasks = await this._tasksService.getActiveTasks();
|
|
123
123
|
if (activeTasks.find(t => t._label === task.label)) {
|
|
124
124
|
return {
|
|
125
|
-
invocationMessage: ( new MarkdownString(( localize(
|
|
126
|
-
pastTenseMessage: ( new MarkdownString(( localize(
|
|
125
|
+
invocationMessage: ( new MarkdownString(( localize(11276, 'Task \`{0}\` is already running.', task.label)))),
|
|
126
|
+
pastTenseMessage: ( new MarkdownString(( localize(11276, 'Task \`{0}\` is already running.', task.label)))),
|
|
127
127
|
confirmationMessages: undefined
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
return {
|
|
131
|
-
invocationMessage: ( new MarkdownString(( localize(
|
|
132
|
-
pastTenseMessage: ( new MarkdownString(( localize(
|
|
131
|
+
invocationMessage: ( new MarkdownString(( localize(11277, 'Created task \`{0}\`', task.label)))),
|
|
132
|
+
pastTenseMessage: ( new MarkdownString(( localize(11278, 'Created task \`{0}\`', task.label)))),
|
|
133
133
|
confirmationMessages: {
|
|
134
|
-
title: ( localize(
|
|
134
|
+
title: ( localize(11279, 'Allow task creation and execution?')),
|
|
135
135
|
message: ( new MarkdownString(( localize(
|
|
136
|
-
|
|
136
|
+
11280,
|
|
137
137
|
'Copilot will create the task \`{0}\` with command \`{1}\`{2}.',
|
|
138
138
|
task.label,
|
|
139
139
|
task.command,
|
|
@@ -154,12 +154,12 @@ CreateAndRunTaskTool = ( __decorate([
|
|
|
154
154
|
const CreateAndRunTaskToolData = {
|
|
155
155
|
id: 'create_and_run_task',
|
|
156
156
|
toolReferenceName: 'createAndRunTask',
|
|
157
|
-
displayName: ( localize(
|
|
157
|
+
displayName: ( localize(11281, 'Create and run Task')),
|
|
158
158
|
modelDescription: ( localize(
|
|
159
|
-
|
|
159
|
+
11282,
|
|
160
160
|
'Creates and runs a build, run, or custom task for the workspace by generating or adding to a tasks.json file based on the project structure (such as package.json or README.md). If the user asks to build, run, launch and they have no tasks.json file, use this tool. If they ask to create or add a task, use this tool.'
|
|
161
161
|
)),
|
|
162
|
-
userDescription: ( localize(
|
|
162
|
+
userDescription: ( localize(11283, "Create and run a task in the workspace")),
|
|
163
163
|
source: ToolDataSource.Internal,
|
|
164
164
|
inputSchema: {
|
|
165
165
|
'type': 'object',
|