@codingame/monaco-vscode-chat-service-override 7.1.1 → 8.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipantContributions.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputCompletions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/languageModelStats.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSavingServiceImpl.js +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-chat-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.1",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@8.0.1"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -28,93 +28,93 @@ function getAccessibilityHelpText(type) {
|
|
|
28
28
|
const content = [];
|
|
29
29
|
if (type === 'panelChat') {
|
|
30
30
|
content.push(( localize(
|
|
31
|
-
|
|
31
|
+
7087,
|
|
32
32
|
'The chat view is comprised of an input box and a request/response list. The input box is used to make requests and the list is used to display responses.'
|
|
33
33
|
)));
|
|
34
34
|
content.push(( localize(
|
|
35
|
-
|
|
35
|
+
7088,
|
|
36
36
|
'In the input box, use up and down arrows to navigate your request history. Edit input and use enter or the submit button to run a new request.'
|
|
37
37
|
)));
|
|
38
38
|
content.push(( localize(
|
|
39
|
-
|
|
39
|
+
7089,
|
|
40
40
|
'In the input box, inspect the last response in the accessible view{0}.',
|
|
41
41
|
'<keybinding:editor.action.accessibleView>'
|
|
42
42
|
)));
|
|
43
43
|
content.push(( localize(
|
|
44
|
-
|
|
44
|
+
7090,
|
|
45
45
|
'In the input box, navigate to the suggested follow up question (Shift+Tab) and press Enter to run it.'
|
|
46
46
|
)));
|
|
47
47
|
content.push(( localize(
|
|
48
|
-
|
|
48
|
+
7091,
|
|
49
49
|
'Chat responses will be announced as they come in. A response will indicate the number of code blocks, if any, and then the rest of the response.'
|
|
50
50
|
)));
|
|
51
51
|
content.push(( localize(
|
|
52
|
-
|
|
52
|
+
7092,
|
|
53
53
|
'To focus the chat request/response list, which can be navigated with up and down arrows, invoke the Focus Chat command{0}.',
|
|
54
54
|
'<keybinding:chat.action.focus>'
|
|
55
55
|
)));
|
|
56
56
|
content.push(( localize(
|
|
57
|
-
|
|
57
|
+
7093,
|
|
58
58
|
'To focus the input box for chat requests, invoke the Focus Chat Input command{0}.',
|
|
59
59
|
'<keybinding:workbench.action.chat.focusInput>'
|
|
60
60
|
)));
|
|
61
61
|
content.push(( localize(
|
|
62
|
-
|
|
62
|
+
7094,
|
|
63
63
|
'To focus the next code block within a response, invoke the Chat: Next Code Block command{0}.',
|
|
64
64
|
'<keybinding:workbench.action.chat.nextCodeBlock>'
|
|
65
65
|
)));
|
|
66
66
|
content.push(( localize(
|
|
67
|
-
|
|
67
|
+
7095,
|
|
68
68
|
'To focus the next file tree within a response, invoke the Chat: Next File Tree command{0}.',
|
|
69
69
|
'<keybinding:workbench.action.chat.nextFileTree>'
|
|
70
70
|
)));
|
|
71
71
|
content.push(( localize(
|
|
72
|
-
|
|
72
|
+
7096,
|
|
73
73
|
'To clear the request/response list, invoke the Chat Clear command{0}.',
|
|
74
74
|
'<keybinding:workbench.action.chat.clear>'
|
|
75
75
|
)));
|
|
76
76
|
}
|
|
77
77
|
else {
|
|
78
78
|
content.push(( localize(
|
|
79
|
-
|
|
79
|
+
7097,
|
|
80
80
|
"Inline chat occurs within a code editor and takes into account the current selection. It is useful for making changes to the current editor. For example, fixing diagnostics, documenting or refactoring code. Keep in mind that AI generated code may be incorrect."
|
|
81
81
|
)));
|
|
82
82
|
content.push(( localize(
|
|
83
|
-
|
|
83
|
+
7098,
|
|
84
84
|
"It can be activated via code actions or directly using the command: Inline Chat: Start Inline Chat{0}.",
|
|
85
85
|
'<keybinding:inlineChat.start>'
|
|
86
86
|
)));
|
|
87
87
|
content.push(( localize(
|
|
88
|
-
|
|
88
|
+
7099,
|
|
89
89
|
'In the input box, use{0} and{1} to navigate your request history. Edit input and use enter or the submit button to run a new request.',
|
|
90
90
|
'<keybinding:inlineChat.previousFromHistory>',
|
|
91
91
|
'<keybinding:inlineChat.nextFromHistory>'
|
|
92
92
|
)));
|
|
93
93
|
content.push(( localize(
|
|
94
|
-
|
|
94
|
+
7100,
|
|
95
95
|
'In the input box, inspect the response in the accessible view{0}.',
|
|
96
96
|
'<keybinding:editor.action.accessibleView>'
|
|
97
97
|
)));
|
|
98
98
|
content.push(( localize(
|
|
99
|
-
|
|
99
|
+
7101,
|
|
100
100
|
"Context menu actions may run a request prefixed with a /. Type / to discover such ready-made commands."
|
|
101
101
|
)));
|
|
102
102
|
content.push(( localize(
|
|
103
|
-
|
|
103
|
+
7102,
|
|
104
104
|
"If a fix action is invoked, a response will indicate the problem with the current code. A diff editor will be rendered and can be reached by tabbing."
|
|
105
105
|
)));
|
|
106
106
|
content.push(( localize(
|
|
107
|
-
|
|
107
|
+
7103,
|
|
108
108
|
"Once in the diff editor, enter review mode with{0}. Use up and down arrows to navigate lines with the proposed changes.",
|
|
109
109
|
AccessibleDiffViewerNext.id
|
|
110
110
|
)));
|
|
111
111
|
content.push(( localize(
|
|
112
|
-
|
|
112
|
+
7104,
|
|
113
113
|
"Use tab to reach conditional parts like commands, status, message responses and more."
|
|
114
114
|
)));
|
|
115
115
|
}
|
|
116
116
|
content.push(( localize(
|
|
117
|
-
|
|
117
|
+
7105,
|
|
118
118
|
"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."
|
|
119
119
|
)));
|
|
120
120
|
return content.join('\n');
|
|
@@ -21,7 +21,7 @@ function registerNewChatActions() {
|
|
|
21
21
|
constructor() {
|
|
22
22
|
super({
|
|
23
23
|
id: 'workbench.action.chatEditor.newChat',
|
|
24
|
-
title: ( localize2(
|
|
24
|
+
title: ( localize2(7106, "New Chat")),
|
|
25
25
|
icon: Codicon.plus,
|
|
26
26
|
f1: false,
|
|
27
27
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
@@ -42,7 +42,7 @@ function registerNewChatActions() {
|
|
|
42
42
|
constructor() {
|
|
43
43
|
super({
|
|
44
44
|
id: ACTION_ID_NEW_CHAT,
|
|
45
|
-
title: ( localize2(
|
|
45
|
+
title: ( localize2(7106, "New Chat")),
|
|
46
46
|
category: CHAT_CATEGORY,
|
|
47
47
|
icon: Codicon.plus,
|
|
48
48
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
@@ -204,7 +204,7 @@ function registerChatCodeBlockActions() {
|
|
|
204
204
|
constructor() {
|
|
205
205
|
super({
|
|
206
206
|
id: 'workbench.action.chat.copyCodeBlock',
|
|
207
|
-
title: ( localize2(
|
|
207
|
+
title: ( localize2(7107, "Copy")),
|
|
208
208
|
f1: false,
|
|
209
209
|
category: CHAT_CATEGORY,
|
|
210
210
|
icon: Codicon.copy,
|
|
@@ -289,7 +289,7 @@ function registerChatCodeBlockActions() {
|
|
|
289
289
|
constructor() {
|
|
290
290
|
super({
|
|
291
291
|
id: 'workbench.action.chat.applyInEditor',
|
|
292
|
-
title: ( localize2(
|
|
292
|
+
title: ( localize2(7108, "Apply in Editor")),
|
|
293
293
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
294
294
|
f1: true,
|
|
295
295
|
category: CHAT_CATEGORY,
|
|
@@ -338,7 +338,7 @@ function registerChatCodeBlockActions() {
|
|
|
338
338
|
try {
|
|
339
339
|
const edits = await progressService.withProgress({ location: ProgressLocation.Notification, delay: 500, sticky: true, cancellable: true }, async (progress) => {
|
|
340
340
|
for (const provider of mappedEditsProviders) {
|
|
341
|
-
progress.report({ message: ( localize(
|
|
341
|
+
progress.report({ message: ( localize(7109, "Applying code block using {0}...", provider.displayName)) });
|
|
342
342
|
const mappedEdits = await provider.provideMappedEdits(activeModel, [codeBlockActionContext.code], { documents: docRefs }, cancellationTokenSource.token);
|
|
343
343
|
if (mappedEdits) {
|
|
344
344
|
return mappedEdits;
|
|
@@ -351,7 +351,7 @@ function registerChatCodeBlockActions() {
|
|
|
351
351
|
}
|
|
352
352
|
}
|
|
353
353
|
catch (e) {
|
|
354
|
-
notificationService.notify({ severity: Severity$1.Error, message: ( localize(
|
|
354
|
+
notificationService.notify({ severity: Severity$1.Error, message: ( localize(7110, "Failed to apply code block: {0}", e.message)) });
|
|
355
355
|
}
|
|
356
356
|
finally {
|
|
357
357
|
cancellationTokenSource.dispose();
|
|
@@ -364,7 +364,7 @@ function registerChatCodeBlockActions() {
|
|
|
364
364
|
constructor() {
|
|
365
365
|
super({
|
|
366
366
|
id: 'workbench.action.chat.insertCodeBlock',
|
|
367
|
-
title: ( localize2(
|
|
367
|
+
title: ( localize2(7111, "Insert At Cursor")),
|
|
368
368
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
369
369
|
f1: true,
|
|
370
370
|
category: CHAT_CATEGORY,
|
|
@@ -391,7 +391,7 @@ function registerChatCodeBlockActions() {
|
|
|
391
391
|
constructor() {
|
|
392
392
|
super({
|
|
393
393
|
id: 'workbench.action.chat.insertIntoNewFile',
|
|
394
|
-
title: ( localize2(
|
|
394
|
+
title: ( localize2(7112, "Insert into New File")),
|
|
395
395
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
396
396
|
f1: true,
|
|
397
397
|
category: CHAT_CATEGORY,
|
|
@@ -441,7 +441,7 @@ function registerChatCodeBlockActions() {
|
|
|
441
441
|
constructor() {
|
|
442
442
|
super({
|
|
443
443
|
id: 'workbench.action.chat.runInTerminal',
|
|
444
|
-
title: ( localize2(
|
|
444
|
+
title: ( localize2(7113, "Insert into Terminal")),
|
|
445
445
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
446
446
|
f1: true,
|
|
447
447
|
category: CHAT_CATEGORY,
|
|
@@ -541,7 +541,7 @@ function registerChatCodeBlockActions() {
|
|
|
541
541
|
constructor() {
|
|
542
542
|
super({
|
|
543
543
|
id: 'workbench.action.chat.nextCodeBlock',
|
|
544
|
-
title: ( localize2(
|
|
544
|
+
title: ( localize2(7114, "Next Code Block")),
|
|
545
545
|
keybinding: {
|
|
546
546
|
primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.PageDown,
|
|
547
547
|
mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.PageDown, },
|
|
@@ -561,7 +561,7 @@ function registerChatCodeBlockActions() {
|
|
|
561
561
|
constructor() {
|
|
562
562
|
super({
|
|
563
563
|
id: 'workbench.action.chat.previousCodeBlock',
|
|
564
|
-
title: ( localize2(
|
|
564
|
+
title: ( localize2(7115, "Previous Code Block")),
|
|
565
565
|
keybinding: {
|
|
566
566
|
primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.PageUp,
|
|
567
567
|
mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.PageUp, },
|
|
@@ -617,7 +617,7 @@ function registerChatCodeCompareBlockActions() {
|
|
|
617
617
|
constructor() {
|
|
618
618
|
super({
|
|
619
619
|
id: 'workbench.action.chat.applyCompareEdits',
|
|
620
|
-
title: ( localize2(
|
|
620
|
+
title: ( localize2(7116, "Apply Edits")),
|
|
621
621
|
f1: false,
|
|
622
622
|
category: CHAT_CATEGORY,
|
|
623
623
|
icon: Codicon.check,
|
|
@@ -647,7 +647,7 @@ function registerChatCodeCompareBlockActions() {
|
|
|
647
647
|
constructor() {
|
|
648
648
|
super({
|
|
649
649
|
id: 'workbench.action.chat.discardCompareEdits',
|
|
650
|
-
title: ( localize2(
|
|
650
|
+
title: ( localize2(7117, "Discard Edits")),
|
|
651
651
|
f1: false,
|
|
652
652
|
category: CHAT_CATEGORY,
|
|
653
653
|
icon: Codicon.trash,
|
|
@@ -36,7 +36,7 @@ class AttachFileAction extends Action2 {
|
|
|
36
36
|
constructor() {
|
|
37
37
|
super({
|
|
38
38
|
id: AttachFileAction.ID,
|
|
39
|
-
title: ( localize2(
|
|
39
|
+
title: ( localize2(7162, "Attach File")),
|
|
40
40
|
category: CHAT_CATEGORY,
|
|
41
41
|
f1: false
|
|
42
42
|
});
|
|
@@ -55,7 +55,7 @@ class AttachSelectionAction extends Action2 {
|
|
|
55
55
|
constructor() {
|
|
56
56
|
super({
|
|
57
57
|
id: AttachSelectionAction.ID,
|
|
58
|
-
title: ( localize2(
|
|
58
|
+
title: ( localize2(7163, "Add Selection to Chat")),
|
|
59
59
|
category: CHAT_CATEGORY,
|
|
60
60
|
f1: false
|
|
61
61
|
});
|
|
@@ -91,7 +91,7 @@ class AttachContextAction extends Action2 {
|
|
|
91
91
|
constructor() {
|
|
92
92
|
super({
|
|
93
93
|
id: AttachContextAction.ID,
|
|
94
|
-
title: ( localize2(
|
|
94
|
+
title: ( localize2(7164, "Attach Context")),
|
|
95
95
|
icon: Codicon.attach,
|
|
96
96
|
category: CHAT_CATEGORY,
|
|
97
97
|
precondition: AttachContextAction._cdt,
|
|
@@ -252,7 +252,7 @@ class AttachContextAction extends Action2 {
|
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
quickPickItems.push({
|
|
255
|
-
label: ( localize(
|
|
255
|
+
label: ( localize(7165, 'Symbol...')),
|
|
256
256
|
icon: ThemeIcon.fromId(Codicon.symbolField.id),
|
|
257
257
|
iconClass: ThemeIcon.asClassName(Codicon.symbolField),
|
|
258
258
|
prefix: SymbolsQuickAccessProvider.PREFIX
|
|
@@ -277,7 +277,7 @@ class AttachContextAction extends Action2 {
|
|
|
277
277
|
SymbolsQuickAccessProvider.PREFIX,
|
|
278
278
|
AbstractGotoSymbolQuickAccessProvider.PREFIX
|
|
279
279
|
],
|
|
280
|
-
placeholder: ( localize(
|
|
280
|
+
placeholder: ( localize(7166, 'Search attachments')),
|
|
281
281
|
providerOptions: {
|
|
282
282
|
handleAccept: (item) => {
|
|
283
283
|
if ('prefix' in item) {
|
|
@@ -11,7 +11,7 @@ function registerChatCopyActions() {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
super({
|
|
13
13
|
id: 'workbench.action.chat.copyAll',
|
|
14
|
-
title: ( localize2(
|
|
14
|
+
title: ( localize2(7118, "Copy All")),
|
|
15
15
|
f1: false,
|
|
16
16
|
category: CHAT_CATEGORY,
|
|
17
17
|
menu: {
|
|
@@ -41,7 +41,7 @@ function registerChatCopyActions() {
|
|
|
41
41
|
constructor() {
|
|
42
42
|
super({
|
|
43
43
|
id: 'workbench.action.chat.copyItem',
|
|
44
|
-
title: ( localize2(
|
|
44
|
+
title: ( localize2(7119, "Copy")),
|
|
45
45
|
f1: false,
|
|
46
46
|
category: CHAT_CATEGORY,
|
|
47
47
|
menu: {
|
|
@@ -12,7 +12,7 @@ class LogChatInputHistoryAction extends Action2 {
|
|
|
12
12
|
constructor() {
|
|
13
13
|
super({
|
|
14
14
|
id: LogChatInputHistoryAction.ID,
|
|
15
|
-
title: ( localize2(
|
|
15
|
+
title: ( localize2(7167, "Log Chat Input History")),
|
|
16
16
|
icon: Codicon.attach,
|
|
17
17
|
category: Categories.Developer,
|
|
18
18
|
f1: true
|
|
@@ -12,7 +12,7 @@ function registerChatFileTreeActions() {
|
|
|
12
12
|
constructor() {
|
|
13
13
|
super({
|
|
14
14
|
id: 'workbench.action.chat.nextFileTree',
|
|
15
|
-
title: ( localize2(
|
|
15
|
+
title: ( localize2(7124, "Next File Tree")),
|
|
16
16
|
keybinding: {
|
|
17
17
|
primary: KeyMod.CtrlCmd | KeyCode.F9,
|
|
18
18
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -31,7 +31,7 @@ function registerChatFileTreeActions() {
|
|
|
31
31
|
constructor() {
|
|
32
32
|
super({
|
|
33
33
|
id: 'workbench.action.chat.previousFileTree',
|
|
34
|
-
title: ( localize2(
|
|
34
|
+
title: ( localize2(7125, "Previous File Tree")),
|
|
35
35
|
keybinding: {
|
|
36
36
|
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.F9,
|
|
37
37
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -13,14 +13,14 @@ import { IChatService } from 'vscode/vscode/vs/workbench/contrib/chat/common/cha
|
|
|
13
13
|
import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
14
14
|
|
|
15
15
|
const defaultFileName = 'chat.json';
|
|
16
|
-
const filters = [{ name: ( localize(
|
|
16
|
+
const filters = [{ name: ( localize(7126, "Chat Session")), extensions: ['json'] }];
|
|
17
17
|
function registerChatExportActions() {
|
|
18
18
|
registerAction2(class ExportChatAction extends Action2 {
|
|
19
19
|
constructor() {
|
|
20
20
|
super({
|
|
21
21
|
id: 'workbench.action.chat.export',
|
|
22
22
|
category: CHAT_CATEGORY,
|
|
23
|
-
title: ( localize2(
|
|
23
|
+
title: ( localize2(7127, "Export Chat...")),
|
|
24
24
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
25
25
|
f1: true,
|
|
26
26
|
});
|
|
@@ -54,7 +54,7 @@ function registerChatExportActions() {
|
|
|
54
54
|
constructor() {
|
|
55
55
|
super({
|
|
56
56
|
id: 'workbench.action.chat.import',
|
|
57
|
-
title: ( localize2(
|
|
57
|
+
title: ( localize2(7128, "Import Chat...")),
|
|
58
58
|
category: CHAT_CATEGORY,
|
|
59
59
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
60
60
|
f1: true,
|
|
@@ -22,7 +22,7 @@ function registerMoveActions() {
|
|
|
22
22
|
constructor() {
|
|
23
23
|
super({
|
|
24
24
|
id: `workbench.action.chat.openInEditor`,
|
|
25
|
-
title: ( localize2(
|
|
25
|
+
title: ( localize2(7134, "Open Chat in Editor")),
|
|
26
26
|
category: CHAT_CATEGORY,
|
|
27
27
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
28
28
|
f1: true,
|
|
@@ -42,7 +42,7 @@ function registerMoveActions() {
|
|
|
42
42
|
constructor() {
|
|
43
43
|
super({
|
|
44
44
|
id: `workbench.action.chat.openInNewWindow`,
|
|
45
|
-
title: ( localize2(
|
|
45
|
+
title: ( localize2(7135, "Open Chat in New Window")),
|
|
46
46
|
category: CHAT_CATEGORY,
|
|
47
47
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
48
48
|
f1: true,
|
|
@@ -62,7 +62,7 @@ function registerMoveActions() {
|
|
|
62
62
|
constructor() {
|
|
63
63
|
super({
|
|
64
64
|
id: `workbench.action.chat.openInSidebar`,
|
|
65
|
-
title: ( localize2(
|
|
65
|
+
title: ( localize2(7136, "Open Chat in Side Bar")),
|
|
66
66
|
category: CHAT_CATEGORY,
|
|
67
67
|
precondition: CONTEXT_CHAT_ENABLED,
|
|
68
68
|
f1: true,
|
|
@@ -22,7 +22,7 @@ function registerChatTitleActions() {
|
|
|
22
22
|
constructor() {
|
|
23
23
|
super({
|
|
24
24
|
id: 'workbench.action.chat.markHelpful',
|
|
25
|
-
title: ( localize2(
|
|
25
|
+
title: ( localize2(7129, "Helpful")),
|
|
26
26
|
f1: false,
|
|
27
27
|
category: CHAT_CATEGORY,
|
|
28
28
|
icon: Codicon.thumbsup,
|
|
@@ -59,7 +59,7 @@ function registerChatTitleActions() {
|
|
|
59
59
|
constructor() {
|
|
60
60
|
super({
|
|
61
61
|
id: 'workbench.action.chat.markUnhelpful',
|
|
62
|
-
title: ( localize2(
|
|
62
|
+
title: ( localize2(7130, "Unhelpful")),
|
|
63
63
|
f1: false,
|
|
64
64
|
category: CHAT_CATEGORY,
|
|
65
65
|
icon: Codicon.thumbsdown,
|
|
@@ -96,7 +96,7 @@ function registerChatTitleActions() {
|
|
|
96
96
|
constructor() {
|
|
97
97
|
super({
|
|
98
98
|
id: 'workbench.action.chat.reportIssueForBug',
|
|
99
|
-
title: ( localize2(
|
|
99
|
+
title: ( localize2(7131, "Report Issue")),
|
|
100
100
|
f1: false,
|
|
101
101
|
category: CHAT_CATEGORY,
|
|
102
102
|
icon: Codicon.report,
|
|
@@ -130,7 +130,7 @@ function registerChatTitleActions() {
|
|
|
130
130
|
constructor() {
|
|
131
131
|
super({
|
|
132
132
|
id: 'workbench.action.chat.insertIntoNotebook',
|
|
133
|
-
title: ( localize2(
|
|
133
|
+
title: ( localize2(7132, "Insert into Notebook")),
|
|
134
134
|
f1: false,
|
|
135
135
|
category: CHAT_CATEGORY,
|
|
136
136
|
icon: Codicon.insert,
|
|
@@ -192,7 +192,7 @@ function registerChatTitleActions() {
|
|
|
192
192
|
constructor() {
|
|
193
193
|
super({
|
|
194
194
|
id: 'workbench.action.chat.remove',
|
|
195
|
-
title: ( localize2(
|
|
195
|
+
title: ( localize2(7133, "Remove Request and Response")),
|
|
196
196
|
f1: false,
|
|
197
197
|
category: CHAT_CATEGORY,
|
|
198
198
|
icon: Codicon.x,
|
|
@@ -61,34 +61,34 @@ import { LanguageModelToolsExtensionPointHandler } from '../common/tools/languag
|
|
|
61
61
|
const configurationRegistry = ( (Registry.as(Extensions.Configuration)));
|
|
62
62
|
configurationRegistry.registerConfiguration({
|
|
63
63
|
id: 'chatSidebar',
|
|
64
|
-
title: ( localize(
|
|
64
|
+
title: ( localize(3059, "Chat")),
|
|
65
65
|
type: 'object',
|
|
66
66
|
properties: {
|
|
67
67
|
'chat.editor.fontSize': {
|
|
68
68
|
type: 'number',
|
|
69
|
-
description: ( localize(
|
|
69
|
+
description: ( localize(3060, "Controls the font size in pixels in chat codeblocks.")),
|
|
70
70
|
default: isMacintosh ? 12 : 14,
|
|
71
71
|
},
|
|
72
72
|
'chat.editor.fontFamily': {
|
|
73
73
|
type: 'string',
|
|
74
|
-
description: ( localize(
|
|
74
|
+
description: ( localize(3061, "Controls the font family in chat codeblocks.")),
|
|
75
75
|
default: 'default'
|
|
76
76
|
},
|
|
77
77
|
'chat.editor.fontWeight': {
|
|
78
78
|
type: 'string',
|
|
79
|
-
description: ( localize(
|
|
79
|
+
description: ( localize(3062, "Controls the font weight in chat codeblocks.")),
|
|
80
80
|
default: 'default'
|
|
81
81
|
},
|
|
82
82
|
'chat.editor.wordWrap': {
|
|
83
83
|
type: 'string',
|
|
84
|
-
description: ( localize(
|
|
84
|
+
description: ( localize(3063, "Controls whether lines should wrap in chat codeblocks.")),
|
|
85
85
|
default: 'off',
|
|
86
86
|
enum: ['on', 'off']
|
|
87
87
|
},
|
|
88
88
|
'chat.editor.lineHeight': {
|
|
89
89
|
type: 'number',
|
|
90
90
|
description: ( localize(
|
|
91
|
-
|
|
91
|
+
3064,
|
|
92
92
|
"Controls the line height in pixels in chat codeblocks. Use 0 to compute the line height from the font size."
|
|
93
93
|
)),
|
|
94
94
|
default: 0
|
|
@@ -96,7 +96,7 @@ configurationRegistry.registerConfiguration({
|
|
|
96
96
|
'chat.experimental.implicitContext': {
|
|
97
97
|
type: 'boolean',
|
|
98
98
|
description: ( localize(
|
|
99
|
-
|
|
99
|
+
3065,
|
|
100
100
|
"Controls whether a checkbox is shown to allow the user to determine which implicit context is included with a chat participant's prompt."
|
|
101
101
|
)),
|
|
102
102
|
deprecated: true,
|
|
@@ -104,22 +104,22 @@ configurationRegistry.registerConfiguration({
|
|
|
104
104
|
},
|
|
105
105
|
'chat.experimental.variables.editor': {
|
|
106
106
|
type: 'boolean',
|
|
107
|
-
description: ( localize(
|
|
107
|
+
description: ( localize(3066, "Enables variables for editor chat.")),
|
|
108
108
|
default: true
|
|
109
109
|
},
|
|
110
110
|
'chat.experimental.variables.notebook': {
|
|
111
111
|
type: 'boolean',
|
|
112
|
-
description: ( localize(
|
|
112
|
+
description: ( localize(3067, "Enables variables for notebook chat.")),
|
|
113
113
|
default: false
|
|
114
114
|
},
|
|
115
115
|
'chat.experimental.variables.terminal': {
|
|
116
116
|
type: 'boolean',
|
|
117
|
-
description: ( localize(
|
|
117
|
+
description: ( localize(3068, "Enables variables for terminal chat.")),
|
|
118
118
|
default: false
|
|
119
119
|
},
|
|
120
120
|
}
|
|
121
121
|
});
|
|
122
|
-
( (Registry.as(EditorExtensions.EditorPane))).registerEditorPane(EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(
|
|
122
|
+
( (Registry.as(EditorExtensions.EditorPane))).registerEditorPane(EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(3069, "Chat"))), [
|
|
123
123
|
( (new SyncDescriptor(ChatEditorInput)))
|
|
124
124
|
]);
|
|
125
125
|
let ChatResolverContribution = class ChatResolverContribution extends Disposable {
|
|
@@ -128,7 +128,7 @@ let ChatResolverContribution = class ChatResolverContribution extends Disposable
|
|
|
128
128
|
super();
|
|
129
129
|
this._register(editorResolverService.registerEditor(`${Schemas.vscodeChatSesssion}:**/**`, {
|
|
130
130
|
id: ChatEditorInput.EditorID,
|
|
131
|
-
label: ( localize(
|
|
131
|
+
label: ( localize(3069, "Chat")),
|
|
132
132
|
priority: RegisteredEditorPriority.builtin
|
|
133
133
|
}, {
|
|
134
134
|
singlePerResource: true,
|
|
@@ -151,7 +151,7 @@ let ChatSlashStaticSlashCommandsContribution = class ChatSlashStaticSlashCommand
|
|
|
151
151
|
super();
|
|
152
152
|
this._store.add(slashCommandService.registerSlashCommand({
|
|
153
153
|
command: 'clear',
|
|
154
|
-
detail: ( localize(
|
|
154
|
+
detail: ( localize(3070, "Start a new chat")),
|
|
155
155
|
sortText: 'z2_clear',
|
|
156
156
|
executeImmediately: true,
|
|
157
157
|
locations: [ChatAgentLocation.Panel]
|
|
@@ -200,7 +200,7 @@ let ChatSlashStaticSlashCommandsContribution = class ChatSlashStaticSlashCommand
|
|
|
200
200
|
}
|
|
201
201
|
const variables = [
|
|
202
202
|
...chatVariablesService.getVariables(ChatAgentLocation.Panel),
|
|
203
|
-
{ name: 'file', description: ( localize(
|
|
203
|
+
{ name: 'file', description: ( localize(3071, "Choose a file in the workspace")) }
|
|
204
204
|
];
|
|
205
205
|
const variableText = ( (variables
|
|
206
206
|
.map(v => `* \`${chatVariableLeader}${v.name}\` - ${v.description}`)))
|
|
@@ -19,7 +19,7 @@ import { ExtensionsRegistry } from 'vscode/vscode/vs/workbench/services/extensio
|
|
|
19
19
|
const chatParticipantExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
20
20
|
extensionPoint: 'chatParticipants',
|
|
21
21
|
jsonSchema: {
|
|
22
|
-
description: ( localize(
|
|
22
|
+
description: ( localize(7139, 'Contributes a chat participant')),
|
|
23
23
|
type: 'array',
|
|
24
24
|
items: {
|
|
25
25
|
additionalProperties: false,
|
|
@@ -28,12 +28,12 @@ const chatParticipantExtensionPoint = ExtensionsRegistry.registerExtensionPoint(
|
|
|
28
28
|
required: ['name', 'id'],
|
|
29
29
|
properties: {
|
|
30
30
|
id: {
|
|
31
|
-
description: ( localize(
|
|
31
|
+
description: ( localize(7140, "A unique id for this chat participant.")),
|
|
32
32
|
type: 'string'
|
|
33
33
|
},
|
|
34
34
|
name: {
|
|
35
35
|
description: ( localize(
|
|
36
|
-
|
|
36
|
+
7141,
|
|
37
37
|
"User-facing name for this chat participant. The user will use '@' with this name to invoke the participant. Name must not contain whitespace."
|
|
38
38
|
)),
|
|
39
39
|
type: 'string',
|
|
@@ -41,37 +41,37 @@ const chatParticipantExtensionPoint = ExtensionsRegistry.registerExtensionPoint(
|
|
|
41
41
|
},
|
|
42
42
|
fullName: {
|
|
43
43
|
markdownDescription: ( localize(
|
|
44
|
-
|
|
44
|
+
7142,
|
|
45
45
|
"The full name of this chat participant, which is shown as the label for responses coming from this participant. If not provided, {0} is used.",
|
|
46
46
|
'`name`'
|
|
47
47
|
)),
|
|
48
48
|
type: 'string'
|
|
49
49
|
},
|
|
50
50
|
description: {
|
|
51
|
-
description: ( localize(
|
|
51
|
+
description: ( localize(7143, "A description of this chat participant, shown in the UI.")),
|
|
52
52
|
type: 'string'
|
|
53
53
|
},
|
|
54
54
|
isSticky: {
|
|
55
55
|
description: ( localize(
|
|
56
|
-
|
|
56
|
+
7144,
|
|
57
57
|
"Whether invoking the command puts the chat into a persistent mode, where the command is automatically added to the chat input for the next message."
|
|
58
58
|
)),
|
|
59
59
|
type: 'boolean'
|
|
60
60
|
},
|
|
61
61
|
sampleRequest: {
|
|
62
62
|
description: ( localize(
|
|
63
|
-
|
|
63
|
+
7145,
|
|
64
64
|
"When the user clicks this participant in `/help`, this text will be submitted to the participant."
|
|
65
65
|
)),
|
|
66
66
|
type: 'string'
|
|
67
67
|
},
|
|
68
68
|
when: {
|
|
69
|
-
description: ( localize(
|
|
69
|
+
description: ( localize(7146, "A condition which must be true to enable this participant.")),
|
|
70
70
|
type: 'string'
|
|
71
71
|
},
|
|
72
72
|
commands: {
|
|
73
73
|
markdownDescription: ( localize(
|
|
74
|
-
|
|
74
|
+
7147,
|
|
75
75
|
"Commands available for this chat participant, which the user can invoke with a `/`."
|
|
76
76
|
)),
|
|
77
77
|
type: 'array',
|
|
@@ -83,29 +83,29 @@ const chatParticipantExtensionPoint = ExtensionsRegistry.registerExtensionPoint(
|
|
|
83
83
|
properties: {
|
|
84
84
|
name: {
|
|
85
85
|
description: ( localize(
|
|
86
|
-
|
|
86
|
+
7148,
|
|
87
87
|
"A short name by which this command is referred to in the UI, e.g. `fix` or * `explain` for commands that fix an issue or explain code. The name should be unique among the commands provided by this participant."
|
|
88
88
|
)),
|
|
89
89
|
type: 'string'
|
|
90
90
|
},
|
|
91
91
|
description: {
|
|
92
|
-
description: ( localize(
|
|
92
|
+
description: ( localize(7149, "A description of this command.")),
|
|
93
93
|
type: 'string'
|
|
94
94
|
},
|
|
95
95
|
when: {
|
|
96
|
-
description: ( localize(
|
|
96
|
+
description: ( localize(7150, "A condition which must be true to enable this command.")),
|
|
97
97
|
type: 'string'
|
|
98
98
|
},
|
|
99
99
|
sampleRequest: {
|
|
100
100
|
description: ( localize(
|
|
101
|
-
|
|
101
|
+
7151,
|
|
102
102
|
"When the user clicks this command in `/help`, this text will be submitted to the participant."
|
|
103
103
|
)),
|
|
104
104
|
type: 'string'
|
|
105
105
|
},
|
|
106
106
|
isSticky: {
|
|
107
107
|
description: ( localize(
|
|
108
|
-
|
|
108
|
+
7144,
|
|
109
109
|
"Whether invoking the command puts the chat into a persistent mode, where the command is automatically added to the chat input for the next message."
|
|
110
110
|
)),
|
|
111
111
|
type: 'boolean'
|
|
@@ -195,7 +195,7 @@ let ChatExtensionPointHandler = class ChatExtensionPointHandler {
|
|
|
195
195
|
});
|
|
196
196
|
}
|
|
197
197
|
registerViewContainer() {
|
|
198
|
-
const title = ( localize2(
|
|
198
|
+
const title = ( localize2(7152, "Chat"));
|
|
199
199
|
const icon = Codicon.commentDiscussion;
|
|
200
200
|
const viewContainerId = CHAT_SIDEBAR_PANEL_ID;
|
|
201
201
|
const viewContainer = ( (Registry.as(Extensions.ViewContainersRegistry))).registerViewContainer({
|
|
@@ -281,7 +281,7 @@ let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposab
|
|
|
281
281
|
{
|
|
282
282
|
label: `${chatVariableLeader}file`,
|
|
283
283
|
insertText: `${chatVariableLeader}file:`,
|
|
284
|
-
detail: ( localize(
|
|
284
|
+
detail: ( localize(7153, "Pick a file")),
|
|
285
285
|
range,
|
|
286
286
|
kind: CompletionItemKind.Text,
|
|
287
287
|
command: { id: SelectAndInsertFileAction.ID, title: SelectAndInsertFileAction.ID, arguments: [{ widget, range: afterRange }] },
|
|
@@ -61,7 +61,7 @@ let ChatAgentHoverParticipant = class ChatAgentHoverParticipant {
|
|
|
61
61
|
);
|
|
62
62
|
}
|
|
63
63
|
getAccessibleContent(hoverPart) {
|
|
64
|
-
return ( localize(
|
|
64
|
+
return ( localize(7154, 'There is a chat agent hover part here.'));
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
67
|
ChatAgentHoverParticipant = ( (__decorate([
|
|
@@ -414,7 +414,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
414
414
|
else {
|
|
415
415
|
if (!rawResult) {
|
|
416
416
|
this.trace('sendRequest', `Provider returned no response for session ${model.sessionId}`);
|
|
417
|
-
rawResult = { errorDetails: { message: ( localize(
|
|
417
|
+
rawResult = { errorDetails: { message: ( localize(3048, "Provider returned null response")) } };
|
|
418
418
|
}
|
|
419
419
|
const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
|
|
420
420
|
rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
|
|
@@ -121,8 +121,8 @@ LanguageModelStatsService = LanguageModelStatsService_1 = ( (__decorate([
|
|
|
121
121
|
], LanguageModelStatsService)));
|
|
122
122
|
( (Registry.as(Extensions.ExtensionFeaturesRegistry))).registerExtensionFeature({
|
|
123
123
|
id: 'languageModels',
|
|
124
|
-
label: ( localize(
|
|
125
|
-
description: ( localize(
|
|
124
|
+
label: ( localize(3057, "Language Models")),
|
|
125
|
+
description: ( localize(3058, "Language models usage statistics of this extension.")),
|
|
126
126
|
access: {
|
|
127
127
|
canToggle: false
|
|
128
128
|
},
|
|
@@ -15,7 +15,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
jsonSchema: {
|
|
18
|
-
description: ( localize(
|
|
18
|
+
description: ( localize(7168, 'Contributes a tool that can be invoked by a language model.')),
|
|
19
19
|
type: 'array',
|
|
20
20
|
items: {
|
|
21
21
|
additionalProperties: false,
|
|
@@ -24,35 +24,35 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
24
24
|
required: ['name', 'description'],
|
|
25
25
|
properties: {
|
|
26
26
|
name: {
|
|
27
|
-
description: ( localize(
|
|
27
|
+
description: ( localize(7169, "A name for this tool which must be unique across all tools.")),
|
|
28
28
|
type: 'string'
|
|
29
29
|
},
|
|
30
30
|
description: {
|
|
31
|
-
description: ( localize(
|
|
31
|
+
description: ( localize(7170, "A description of this tool that may be passed to a language model.")),
|
|
32
32
|
type: 'string'
|
|
33
33
|
},
|
|
34
34
|
displayName: {
|
|
35
35
|
description: ( localize(
|
|
36
|
-
|
|
36
|
+
7171,
|
|
37
37
|
"A human-readable name for this tool that may be used to describe it in the UI."
|
|
38
38
|
)),
|
|
39
39
|
type: 'string'
|
|
40
40
|
},
|
|
41
41
|
parametersSchema: {
|
|
42
|
-
description: ( localize(
|
|
42
|
+
description: ( localize(7172, "A JSON schema for the parameters this tool accepts.")),
|
|
43
43
|
type: 'object',
|
|
44
44
|
$ref: 'http://json-schema.org/draft-07/schema#'
|
|
45
45
|
},
|
|
46
46
|
canBeInvokedManually: {
|
|
47
47
|
description: ( localize(
|
|
48
|
-
|
|
48
|
+
7173,
|
|
49
49
|
"Whether this tool can be invoked manually by the user through the chat UX."
|
|
50
50
|
)),
|
|
51
51
|
type: 'boolean'
|
|
52
52
|
},
|
|
53
53
|
icon: {
|
|
54
54
|
description: ( localize(
|
|
55
|
-
|
|
55
|
+
7174,
|
|
56
56
|
"An icon that represents this tool. Either a file path, an object with file paths for dark and light themes, or a theme icon reference, like `\\$(zap)`"
|
|
57
57
|
)),
|
|
58
58
|
anyOf: [{
|
|
@@ -62,11 +62,11 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
62
62
|
type: 'object',
|
|
63
63
|
properties: {
|
|
64
64
|
light: {
|
|
65
|
-
description: ( localize(
|
|
65
|
+
description: ( localize(7175, 'Icon path when a light theme is used')),
|
|
66
66
|
type: 'string'
|
|
67
67
|
},
|
|
68
68
|
dark: {
|
|
69
|
-
description: ( localize(
|
|
69
|
+
description: ( localize(7176, 'Icon path when a dark theme is used')),
|
|
70
70
|
type: 'string'
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -20,7 +20,7 @@ var PhraseTextType;
|
|
|
20
20
|
const VoiceChatInProgress = ( (new RawContextKey(
|
|
21
21
|
'voiceChatInProgress',
|
|
22
22
|
false,
|
|
23
|
-
{ type: 'boolean', description: ( localize(
|
|
23
|
+
{ type: 'boolean', description: ( localize(7155, "A speech-to-text session is in progress for chat.")) }
|
|
24
24
|
)));
|
|
25
25
|
let VoiceChatService = class VoiceChatService extends Disposable {
|
|
26
26
|
static { VoiceChatService_1 = this; }
|
|
@@ -28,7 +28,7 @@ const sendActionMenuItem = {
|
|
|
28
28
|
order: 0,
|
|
29
29
|
command: {
|
|
30
30
|
id: SubmitAction.ID,
|
|
31
|
-
title: ( localize(
|
|
31
|
+
title: ( localize(3072, "Send")),
|
|
32
32
|
},
|
|
33
33
|
when: ( (ContextKeyExpr.and(
|
|
34
34
|
CONTEXT_CHAT_INPUT_HAS_TEXT,
|
|
@@ -43,8 +43,8 @@ const cancelActionMenuItem = {
|
|
|
43
43
|
order: 0,
|
|
44
44
|
command: {
|
|
45
45
|
id: CancelAction.ID,
|
|
46
|
-
title: ( localize(
|
|
47
|
-
shortTitle: ( localize(
|
|
46
|
+
title: ( localize(3073, "Stop Request")),
|
|
47
|
+
shortTitle: ( localize(3074, "Stop")),
|
|
48
48
|
},
|
|
49
49
|
when: ( (ContextKeyExpr.and(CTX_INLINE_CHAT_REQUEST_IN_PROGRESS))),
|
|
50
50
|
};
|
|
@@ -103,9 +103,9 @@ let InlineChatSavingServiceImpl = class InlineChatSavingServiceImpl {
|
|
|
103
103
|
}
|
|
104
104
|
progress.report({
|
|
105
105
|
message: sessions.size === 1
|
|
106
|
-
? ( localize(
|
|
106
|
+
? ( localize(3055, "Waiting for Inline Chat changes to be Accepted or Discarded..."))
|
|
107
107
|
: ( localize(
|
|
108
|
-
|
|
108
|
+
3056,
|
|
109
109
|
"Waiting for Inline Chat changes in {0} editors to be Accepted or Discarded...",
|
|
110
110
|
sessions.size
|
|
111
111
|
))
|