@codingame/monaco-vscode-xterm-addons-common 34.1.3 → 35.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +10 -10
- package/vscode/src/vs/base/browser/htmlToMarkdown.js +126 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +29 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +82 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +114 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +15 -15
- 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.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +26 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatPasteProviders.js +10 -10
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.js +11 -10
- package/vscode/src/vs/base/common/htmlToMarkdown.js +0 -151
- /package/vscode/src/vs/base/{common → browser}/htmlToMarkdown.d.ts +0 -0
package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js
CHANGED
|
@@ -23,20 +23,20 @@ async function askForPromptFileName(accessor, type, selectedFolder, existingFile
|
|
|
23
23
|
const fileName = sanitizeInput(value);
|
|
24
24
|
if (!fileName) {
|
|
25
25
|
return {
|
|
26
|
-
content: ( localize(
|
|
26
|
+
content: ( localize(7533, "Please enter a name.")),
|
|
27
27
|
severity: Severity.Warning
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
if (!isValidBasename(fileName)) {
|
|
31
31
|
return {
|
|
32
|
-
content: ( localize(
|
|
32
|
+
content: ( localize(7534, "The name contains invalid characters.")),
|
|
33
33
|
severity: Severity.Error
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
const fileUri = URI.joinPath(selectedFolder, fileName);
|
|
37
37
|
if (await fileService.exists(fileUri)) {
|
|
38
38
|
return {
|
|
39
|
-
content: ( localize(
|
|
39
|
+
content: ( localize(7535, "A file for the given name already exists.")),
|
|
40
40
|
severity: Severity.Error
|
|
41
41
|
};
|
|
42
42
|
}
|
|
@@ -56,11 +56,11 @@ async function askForPromptFileName(accessor, type, selectedFolder, existingFile
|
|
|
56
56
|
function getPlaceholderStringForNew(type) {
|
|
57
57
|
switch (type) {
|
|
58
58
|
case PromptsType.instructions:
|
|
59
|
-
return localize(
|
|
59
|
+
return localize(7536, "Enter the name of the instructions file");
|
|
60
60
|
case PromptsType.prompt:
|
|
61
|
-
return localize(
|
|
61
|
+
return localize(7537, "Enter the name of the prompt file");
|
|
62
62
|
case PromptsType.agent:
|
|
63
|
-
return localize(
|
|
63
|
+
return localize(7538, "Enter the name of the agent file");
|
|
64
64
|
default:
|
|
65
65
|
throw ( new Error("Unknown prompt type"));
|
|
66
66
|
}
|
|
@@ -68,11 +68,11 @@ function getPlaceholderStringForNew(type) {
|
|
|
68
68
|
function getPlaceholderStringForRename(type) {
|
|
69
69
|
switch (type) {
|
|
70
70
|
case PromptsType.instructions:
|
|
71
|
-
return localize(
|
|
71
|
+
return localize(7539, "Enter a new name of the instructions file");
|
|
72
72
|
case PromptsType.prompt:
|
|
73
|
-
return localize(
|
|
73
|
+
return localize(7540, "Enter a new name of the prompt file");
|
|
74
74
|
case PromptsType.agent:
|
|
75
|
-
return localize(
|
|
75
|
+
return localize(7541, "Enter a new name of the agent file");
|
|
76
76
|
default:
|
|
77
77
|
throw ( new Error("Unknown prompt type"));
|
|
78
78
|
}
|
|
@@ -6,3 +6,10 @@ import { IPromptPath } from "@codingame/monaco-vscode-api/vscode/vs/workbench/co
|
|
|
6
6
|
* Asks the user for a specific prompt folder, if multiple folders provided.
|
|
7
7
|
*/
|
|
8
8
|
export declare function askForPromptSourceFolder(accessor: ServicesAccessor, type: PromptsType, existingFolder?: URI | undefined, isMove?: boolean): Promise<IPromptPath | undefined>;
|
|
9
|
+
/**
|
|
10
|
+
* Shows a dialog to the user when no prompt source folders are found.
|
|
11
|
+
*
|
|
12
|
+
* Note! this is a temporary solution and must be replaced with a dialog to select
|
|
13
|
+
* a custom folder path, or switch to a different prompt type
|
|
14
|
+
*/
|
|
15
|
+
export declare function showNoFoldersDialog(accessor: ServicesAccessor, type: PromptsType): Promise<void>;
|
|
@@ -36,13 +36,13 @@ async function askForPromptSourceFolder(accessor, type, existingFolder, isMove =
|
|
|
36
36
|
const folderUri = resolved.searchRoot;
|
|
37
37
|
const isDefault = defaultFolder && isEqual(folderUri, defaultFolder.searchRoot);
|
|
38
38
|
const sourceDescription = getSourceDescription(resolved.source);
|
|
39
|
-
const detail = (existingFolder && isEqual(folderUri, existingFolder)) ? ( localize(
|
|
39
|
+
const detail = (existingFolder && isEqual(folderUri, existingFolder)) ? ( localize(7542, "Current Location")) : undefined;
|
|
40
40
|
const basePath = (isMultiRoot && resolved.storage === PromptsStorage.local) ? labelService.getUriLabel(folderUri, {
|
|
41
41
|
relative: true
|
|
42
42
|
}) : resolved.displayPath ?? labelService.getUriLabel(folderUri, {
|
|
43
43
|
relative: resolved.storage === PromptsStorage.local
|
|
44
44
|
});
|
|
45
|
-
const label = isDefault ? ( localize(
|
|
45
|
+
const label = isDefault ? ( localize(7543, "{0} (default)", basePath)) : basePath;
|
|
46
46
|
const folder = {
|
|
47
47
|
uri: folderUri,
|
|
48
48
|
storage: resolved.storage,
|
|
@@ -81,15 +81,15 @@ async function askForPromptSourceFolder(accessor, type, existingFolder, isMove =
|
|
|
81
81
|
function getPlaceholderStringforNew(type) {
|
|
82
82
|
switch (type) {
|
|
83
83
|
case PromptsType.instructions:
|
|
84
|
-
return localize(
|
|
84
|
+
return localize(7544, "Select a location to create the instructions file");
|
|
85
85
|
case PromptsType.prompt:
|
|
86
|
-
return localize(
|
|
86
|
+
return localize(7545, "Select a location to create the prompt file");
|
|
87
87
|
case PromptsType.agent:
|
|
88
|
-
return localize(
|
|
88
|
+
return localize(7546, "Select a location to create the agent file");
|
|
89
89
|
case PromptsType.skill:
|
|
90
|
-
return localize(
|
|
90
|
+
return localize(7547, "Select a location to create the skill");
|
|
91
91
|
case PromptsType.hook:
|
|
92
|
-
return localize(
|
|
92
|
+
return localize(7548, "Select a location to create the hook file");
|
|
93
93
|
default:
|
|
94
94
|
throw ( new Error("Unknown prompt type"));
|
|
95
95
|
}
|
|
@@ -98,13 +98,13 @@ function getPlaceholderStringforMove(type, isMove) {
|
|
|
98
98
|
if (isMove) {
|
|
99
99
|
switch (type) {
|
|
100
100
|
case PromptsType.instructions:
|
|
101
|
-
return localize(
|
|
101
|
+
return localize(7549, "Select a location to move the instructions file to");
|
|
102
102
|
case PromptsType.prompt:
|
|
103
|
-
return localize(
|
|
103
|
+
return localize(7550, "Select a location to move the prompt file to");
|
|
104
104
|
case PromptsType.agent:
|
|
105
|
-
return localize(
|
|
105
|
+
return localize(7551, "Select a location to move the agent file to");
|
|
106
106
|
case PromptsType.skill:
|
|
107
|
-
return localize(
|
|
107
|
+
return localize(7552, "Select a location to move the skill to");
|
|
108
108
|
case PromptsType.hook:
|
|
109
109
|
throw ( new Error("Hooks cannot be moved"));
|
|
110
110
|
default:
|
|
@@ -113,13 +113,13 @@ function getPlaceholderStringforMove(type, isMove) {
|
|
|
113
113
|
}
|
|
114
114
|
switch (type) {
|
|
115
115
|
case PromptsType.instructions:
|
|
116
|
-
return localize(
|
|
116
|
+
return localize(7553, "Select a location to copy the instructions file to");
|
|
117
117
|
case PromptsType.prompt:
|
|
118
|
-
return localize(
|
|
118
|
+
return localize(7554, "Select a location to copy the prompt file to");
|
|
119
119
|
case PromptsType.agent:
|
|
120
|
-
return localize(
|
|
120
|
+
return localize(7555, "Select a location to copy the agent file to");
|
|
121
121
|
case PromptsType.skill:
|
|
122
|
-
return localize(
|
|
122
|
+
return localize(7556, "Select a location to copy the skill to");
|
|
123
123
|
case PromptsType.hook:
|
|
124
124
|
throw ( new Error("Hooks cannot be copied"));
|
|
125
125
|
default:
|
|
@@ -147,15 +147,15 @@ async function showNoFoldersDialog(accessor, type) {
|
|
|
147
147
|
function getLearnLabel(type) {
|
|
148
148
|
switch (type) {
|
|
149
149
|
case PromptsType.prompt:
|
|
150
|
-
return localize(
|
|
150
|
+
return localize(7557, "Learn how to configure reusable prompts");
|
|
151
151
|
case PromptsType.instructions:
|
|
152
|
-
return localize(
|
|
152
|
+
return localize(7558, "Learn how to configure reusable instructions");
|
|
153
153
|
case PromptsType.agent:
|
|
154
|
-
return localize(
|
|
154
|
+
return localize(7559, "Learn how to configure custom agents");
|
|
155
155
|
case PromptsType.skill:
|
|
156
|
-
return localize(
|
|
156
|
+
return localize(7560, "Learn how to configure skills");
|
|
157
157
|
case PromptsType.hook:
|
|
158
|
-
return localize(
|
|
158
|
+
return localize(7561, "Learn how to configure hooks");
|
|
159
159
|
default:
|
|
160
160
|
throw ( new Error("Unknown prompt type"));
|
|
161
161
|
}
|
|
@@ -163,18 +163,18 @@ function getLearnLabel(type) {
|
|
|
163
163
|
function getMissingSourceFolderString(type) {
|
|
164
164
|
switch (type) {
|
|
165
165
|
case PromptsType.instructions:
|
|
166
|
-
return localize(
|
|
166
|
+
return localize(7562, "No instruction source folders found.");
|
|
167
167
|
case PromptsType.prompt:
|
|
168
|
-
return localize(
|
|
168
|
+
return localize(7563, "No prompt source folders found.");
|
|
169
169
|
case PromptsType.agent:
|
|
170
|
-
return localize(
|
|
170
|
+
return localize(7564, "No agent source folders found.");
|
|
171
171
|
case PromptsType.skill:
|
|
172
|
-
return localize(
|
|
172
|
+
return localize(7565, "No skill source folders found.");
|
|
173
173
|
case PromptsType.hook:
|
|
174
|
-
return localize(
|
|
174
|
+
return localize(7566, "No hook source folders found.");
|
|
175
175
|
default:
|
|
176
176
|
throw ( new Error("Unknown prompt type"));
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
export { askForPromptSourceFolder };
|
|
180
|
+
export { askForPromptSourceFolder, showNoFoldersDialog };
|
package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js
CHANGED
|
@@ -32,31 +32,31 @@ function newHelpButton(type) {
|
|
|
32
32
|
switch (type) {
|
|
33
33
|
case PromptsType.prompt:
|
|
34
34
|
return {
|
|
35
|
-
tooltip: ( localize(
|
|
35
|
+
tooltip: ( localize(7567, "Show help on prompt files")),
|
|
36
36
|
helpURI: ( URI.parse(PROMPT_DOCUMENTATION_URL)),
|
|
37
37
|
iconClass
|
|
38
38
|
};
|
|
39
39
|
case PromptsType.instructions:
|
|
40
40
|
return {
|
|
41
|
-
tooltip: ( localize(
|
|
41
|
+
tooltip: ( localize(7568, "Show help on instruction files")),
|
|
42
42
|
helpURI: ( URI.parse(INSTRUCTIONS_DOCUMENTATION_URL)),
|
|
43
43
|
iconClass
|
|
44
44
|
};
|
|
45
45
|
case PromptsType.agent:
|
|
46
46
|
return {
|
|
47
|
-
tooltip: ( localize(
|
|
47
|
+
tooltip: ( localize(7569, "Show help on custom agent files")),
|
|
48
48
|
helpURI: ( URI.parse(AGENT_DOCUMENTATION_URL)),
|
|
49
49
|
iconClass
|
|
50
50
|
};
|
|
51
51
|
case PromptsType.skill:
|
|
52
52
|
return {
|
|
53
|
-
tooltip: ( localize(
|
|
53
|
+
tooltip: ( localize(7570, "Show help on skill files")),
|
|
54
54
|
helpURI: ( URI.parse(SKILL_DOCUMENTATION_URL)),
|
|
55
55
|
iconClass
|
|
56
56
|
};
|
|
57
57
|
case PromptsType.hook:
|
|
58
58
|
return {
|
|
59
|
-
tooltip: ( localize(
|
|
59
|
+
tooltip: ( localize(7571, "Show help on hook files")),
|
|
60
60
|
helpURI: ( URI.parse(HOOK_DOCUMENTATION_URL)),
|
|
61
61
|
iconClass
|
|
62
62
|
};
|
|
@@ -73,7 +73,7 @@ function isExtensionPromptPath(prompt) {
|
|
|
73
73
|
}
|
|
74
74
|
const NEW_PROMPT_FILE_OPTION = {
|
|
75
75
|
type: "item",
|
|
76
|
-
label: `$(plus) ${( localize(
|
|
76
|
+
label: `$(plus) ${( localize(7572, "New prompt file..."))}`,
|
|
77
77
|
pickable: false,
|
|
78
78
|
alwaysShow: true,
|
|
79
79
|
buttons: [newHelpButton(PromptsType.prompt)],
|
|
@@ -81,7 +81,7 @@ const NEW_PROMPT_FILE_OPTION = {
|
|
|
81
81
|
};
|
|
82
82
|
const NEW_INSTRUCTIONS_FILE_OPTION = {
|
|
83
83
|
type: "item",
|
|
84
|
-
label: `$(plus) ${( localize(
|
|
84
|
+
label: `$(plus) ${( localize(7573, "New instruction file..."))}`,
|
|
85
85
|
pickable: false,
|
|
86
86
|
alwaysShow: true,
|
|
87
87
|
buttons: [newHelpButton(PromptsType.instructions)],
|
|
@@ -89,7 +89,7 @@ const NEW_INSTRUCTIONS_FILE_OPTION = {
|
|
|
89
89
|
};
|
|
90
90
|
const GENERATE_AGENT_INSTRUCTIONS_OPTION = {
|
|
91
91
|
type: "item",
|
|
92
|
-
label: `$(sparkle) ${( localize(
|
|
92
|
+
label: `$(sparkle) ${( localize(7574, "Generate agent instructions..."))}`,
|
|
93
93
|
pickable: false,
|
|
94
94
|
alwaysShow: true,
|
|
95
95
|
buttons: [newHelpButton(PromptsType.instructions)],
|
|
@@ -97,7 +97,7 @@ const GENERATE_AGENT_INSTRUCTIONS_OPTION = {
|
|
|
97
97
|
};
|
|
98
98
|
const GENERATE_ON_DEMAND_INSTRUCTIONS_OPTION = {
|
|
99
99
|
type: "item",
|
|
100
|
-
label: `$(sparkle) ${( localize(
|
|
100
|
+
label: `$(sparkle) ${( localize(7575, "Generate on-demand instructions..."))}`,
|
|
101
101
|
pickable: false,
|
|
102
102
|
alwaysShow: true,
|
|
103
103
|
buttons: [newHelpButton(PromptsType.instructions)],
|
|
@@ -105,7 +105,7 @@ const GENERATE_ON_DEMAND_INSTRUCTIONS_OPTION = {
|
|
|
105
105
|
};
|
|
106
106
|
const NEW_AGENT_FILE_OPTION = {
|
|
107
107
|
type: "item",
|
|
108
|
-
label: `$(plus) ${( localize(
|
|
108
|
+
label: `$(plus) ${( localize(7576, "Create new custom agent..."))}`,
|
|
109
109
|
pickable: false,
|
|
110
110
|
alwaysShow: true,
|
|
111
111
|
buttons: [newHelpButton(PromptsType.agent)],
|
|
@@ -113,7 +113,7 @@ const NEW_AGENT_FILE_OPTION = {
|
|
|
113
113
|
};
|
|
114
114
|
const NEW_SKILL_FILE_OPTION = {
|
|
115
115
|
type: "item",
|
|
116
|
-
label: `$(plus) ${( localize(
|
|
116
|
+
label: `$(plus) ${( localize(7577, "New skill..."))}`,
|
|
117
117
|
pickable: false,
|
|
118
118
|
alwaysShow: true,
|
|
119
119
|
buttons: [newHelpButton(PromptsType.skill)],
|
|
@@ -121,7 +121,7 @@ const NEW_SKILL_FILE_OPTION = {
|
|
|
121
121
|
};
|
|
122
122
|
const GENERATE_PROMPT_OPTION = {
|
|
123
123
|
type: "item",
|
|
124
|
-
label: `$(sparkle) ${( localize(
|
|
124
|
+
label: `$(sparkle) ${( localize(7578, "Generate prompt..."))}`,
|
|
125
125
|
pickable: false,
|
|
126
126
|
alwaysShow: true,
|
|
127
127
|
buttons: [newHelpButton(PromptsType.prompt)],
|
|
@@ -129,7 +129,7 @@ const GENERATE_PROMPT_OPTION = {
|
|
|
129
129
|
};
|
|
130
130
|
const GENERATE_SKILL_OPTION = {
|
|
131
131
|
type: "item",
|
|
132
|
-
label: `$(sparkle) ${( localize(
|
|
132
|
+
label: `$(sparkle) ${( localize(7579, "Generate skill..."))}`,
|
|
133
133
|
pickable: false,
|
|
134
134
|
alwaysShow: true,
|
|
135
135
|
buttons: [newHelpButton(PromptsType.skill)],
|
|
@@ -137,39 +137,39 @@ const GENERATE_SKILL_OPTION = {
|
|
|
137
137
|
};
|
|
138
138
|
const GENERATE_AGENT_OPTION = {
|
|
139
139
|
type: "item",
|
|
140
|
-
label: `$(sparkle) ${( localize(
|
|
140
|
+
label: `$(sparkle) ${( localize(7580, "Generate agent..."))}`,
|
|
141
141
|
pickable: false,
|
|
142
142
|
alwaysShow: true,
|
|
143
143
|
buttons: [newHelpButton(PromptsType.agent)],
|
|
144
144
|
commandId: GENERATE_AGENT_COMMAND_ID
|
|
145
145
|
};
|
|
146
146
|
const EDIT_BUTTON = {
|
|
147
|
-
tooltip: ( localize(
|
|
147
|
+
tooltip: ( localize(7581, "Open in Editor")),
|
|
148
148
|
iconClass: ThemeIcon.asClassName(Codicon.fileCode)
|
|
149
149
|
};
|
|
150
150
|
const DELETE_BUTTON = {
|
|
151
|
-
tooltip: ( localize(
|
|
151
|
+
tooltip: ( localize(7582, "Delete")),
|
|
152
152
|
iconClass: ThemeIcon.asClassName(Codicon.trash)
|
|
153
153
|
};
|
|
154
154
|
const RENAME_BUTTON = {
|
|
155
|
-
tooltip: ( localize(
|
|
155
|
+
tooltip: ( localize(7583, "Move and/or Rename")),
|
|
156
156
|
iconClass: ThemeIcon.asClassName(Codicon.replace)
|
|
157
157
|
};
|
|
158
158
|
const COPY_BUTTON = {
|
|
159
|
-
tooltip: ( localize(
|
|
159
|
+
tooltip: ( localize(7584, "Make a Copy")),
|
|
160
160
|
iconClass: ThemeIcon.asClassName(Codicon.copy)
|
|
161
161
|
};
|
|
162
162
|
const MAKE_VISIBLE_BUTTON = {
|
|
163
|
-
tooltip: ( localize(
|
|
163
|
+
tooltip: ( localize(7585, "Hidden from chat view agent picker. Click to show.")),
|
|
164
164
|
iconClass: ThemeIcon.asClassName(Codicon.eyeClosed),
|
|
165
165
|
alwaysVisible: true
|
|
166
166
|
};
|
|
167
167
|
const MAKE_INVISIBLE_BUTTON = {
|
|
168
|
-
tooltip: ( localize(
|
|
168
|
+
tooltip: ( localize(7586, "Shown in chat view agent picker. Click to hide.")),
|
|
169
169
|
iconClass: ThemeIcon.asClassName(Codicon.eye)
|
|
170
170
|
};
|
|
171
171
|
const RUN_IN_CHAT_BUTTON = {
|
|
172
|
-
tooltip: ( localize(
|
|
172
|
+
tooltip: ( localize(7587, "Run in Chat View")),
|
|
173
173
|
iconClass: ThemeIcon.asClassName(Codicon.play)
|
|
174
174
|
};
|
|
175
175
|
let PromptFilePickers = class PromptFilePickers {
|
|
@@ -200,7 +200,7 @@ let PromptFilePickers = class PromptFilePickers {
|
|
|
200
200
|
useSeparators: true
|
|
201
201
|
});
|
|
202
202
|
quickPick.busy = true;
|
|
203
|
-
quickPick.placeholder = ( localize(
|
|
203
|
+
quickPick.placeholder = ( localize(7588, "Searching file system..."));
|
|
204
204
|
try {
|
|
205
205
|
const fileOptions = await this._createPromptPickItems(options, cts.token);
|
|
206
206
|
const activeItem = options.resource && fileOptions.find(
|
|
@@ -301,7 +301,7 @@ let PromptFilePickers = class PromptFilePickers {
|
|
|
301
301
|
if (locals.length) {
|
|
302
302
|
result.push({
|
|
303
303
|
type: "separator",
|
|
304
|
-
label: ( localize(
|
|
304
|
+
label: ( localize(7589, "Workspace"))
|
|
305
305
|
});
|
|
306
306
|
result.push(...sortByLabel(await Promise.all(( locals.map(l => this._createPromptPickItem(l, buttons, getVisibility(l), token))))));
|
|
307
307
|
}
|
|
@@ -324,7 +324,7 @@ let PromptFilePickers = class PromptFilePickers {
|
|
|
324
324
|
const agentButtons = buttons.filter(b => b !== RENAME_BUTTON);
|
|
325
325
|
result.push({
|
|
326
326
|
type: "separator",
|
|
327
|
-
label: ( localize(
|
|
327
|
+
label: ( localize(7590, "Agent Instructions"))
|
|
328
328
|
});
|
|
329
329
|
result.push(...sortByLabel(await Promise.all(( agentInstructionFiles.map(l => this._createPromptPickItem(l, agentButtons, getVisibility(l), token))))));
|
|
330
330
|
}
|
|
@@ -361,7 +361,7 @@ let PromptFilePickers = class PromptFilePickers {
|
|
|
361
361
|
if (users.length) {
|
|
362
362
|
result.push({
|
|
363
363
|
type: "separator",
|
|
364
|
-
label: ( localize(
|
|
364
|
+
label: ( localize(7591, "User Data"))
|
|
365
365
|
});
|
|
366
366
|
result.push(...sortByLabel(await Promise.all(( users.map(u => this._createPromptPickItem(u, buttons, getVisibility(u), token))))));
|
|
367
367
|
}
|
|
@@ -373,7 +373,7 @@ let PromptFilePickers = class PromptFilePickers {
|
|
|
373
373
|
}
|
|
374
374
|
result.push({
|
|
375
375
|
type: "separator",
|
|
376
|
-
label: ( localize(
|
|
376
|
+
label: ( localize(7592, "Plugins"))
|
|
377
377
|
});
|
|
378
378
|
result.push(...sortByLabel(await Promise.all(( plugins.map(p => this._createPromptPickItem(p, pluginButtons, getVisibility(p), token))))));
|
|
379
379
|
}
|
|
@@ -381,9 +381,9 @@ let PromptFilePickers = class PromptFilePickers {
|
|
|
381
381
|
}
|
|
382
382
|
_getExtensionGroupLabel(extPath) {
|
|
383
383
|
if (isOrganizationPromptFile(extPath.uri, extPath.extension.identifier, this._productService)) {
|
|
384
|
-
return localize(
|
|
384
|
+
return localize(7593, "Organization");
|
|
385
385
|
}
|
|
386
|
-
return localize(
|
|
386
|
+
return localize(7594, "Extensions");
|
|
387
387
|
}
|
|
388
388
|
_getNewItems(type) {
|
|
389
389
|
switch (type) {
|
|
@@ -429,8 +429,8 @@ let PromptFilePickers = class PromptFilePickers {
|
|
|
429
429
|
let iconClass;
|
|
430
430
|
if (visibility === false) {
|
|
431
431
|
buttons = (buttons ?? []).concat(MAKE_VISIBLE_BUTTON);
|
|
432
|
-
promptName = ( localize(
|
|
433
|
-
tooltip = ( localize(
|
|
432
|
+
promptName = ( localize(7595, "{0} (hidden)", promptName));
|
|
433
|
+
tooltip = ( localize(7596, "Hidden from chat view agent picker"));
|
|
434
434
|
} else if (visibility === true) {
|
|
435
435
|
buttons = (buttons ?? []).concat(MAKE_INVISIBLE_BUTTON);
|
|
436
436
|
}
|
|
@@ -506,10 +506,10 @@ let PromptFilePickers = class PromptFilePickers {
|
|
|
506
506
|
const isSkill = options.type === PromptsType.skill;
|
|
507
507
|
const filename = isSkill ? basename(dirname(value)) : item.label;
|
|
508
508
|
const message = isSkill ? ( localize(
|
|
509
|
-
|
|
509
|
+
7597,
|
|
510
510
|
"Are you sure you want to delete skill '{0}' and its folder?",
|
|
511
511
|
filename
|
|
512
|
-
)) : ( localize(
|
|
512
|
+
)) : ( localize(7598, "Are you sure you want to delete '{0}'?", filename));
|
|
513
513
|
const {
|
|
514
514
|
confirmed
|
|
515
515
|
} = await this._dialogService.confirm({
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatPasteProviders.js
CHANGED
|
@@ -3,7 +3,7 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
|
|
|
3
3
|
import { alert } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
|
|
4
4
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
5
5
|
import { VSDataTransfer, createStringDataTransferItem } from '@codingame/monaco-vscode-api/vscode/vs/base/common/dataTransfer';
|
|
6
|
-
import { convertHtmlToMarkdown } from '../../../../../../../base/
|
|
6
|
+
import { convertHtmlToMarkdown } from '../../../../../../../base/browser/htmlToMarkdown.js';
|
|
7
7
|
import { HierarchicalKind } from '@codingame/monaco-vscode-api/vscode/vs/base/common/hierarchicalKind';
|
|
8
8
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
9
9
|
import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
|
|
@@ -86,7 +86,7 @@ let PasteImageProvider = class PasteImageProvider {
|
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
88
|
const attachedVariables = widget.attachmentModel.attachments;
|
|
89
|
-
const displayName = ( localize(
|
|
89
|
+
const displayName = ( localize(8339, "Pasted Image"));
|
|
90
90
|
let tempDisplayName = displayName;
|
|
91
91
|
for (let appendValue = 2; ( attachedVariables.some(attachment => attachment.name === tempDisplayName)); appendValue++)
|
|
92
92
|
{
|
|
@@ -108,7 +108,7 @@ let PasteImageProvider = class PasteImageProvider {
|
|
|
108
108
|
if (( currentContextIds.has(scaledImageContext.id))) {
|
|
109
109
|
return;
|
|
110
110
|
}
|
|
111
|
-
const edit = createCustomPasteEdit(model, [scaledImageContext], mimeType, this.kind, ( localize(
|
|
111
|
+
const edit = createCustomPasteEdit(model, [scaledImageContext], mimeType, this.kind, ( localize(8340, "Pasted Image Attachment")), this.chatWidgetService);
|
|
112
112
|
return createEditSession(edit);
|
|
113
113
|
}
|
|
114
114
|
};
|
|
@@ -252,7 +252,7 @@ let CopyAttachmentsProvider = class CopyAttachmentsProvider {
|
|
|
252
252
|
}
|
|
253
253
|
const edit = {
|
|
254
254
|
insertText: textdata,
|
|
255
|
-
title: ( localize(
|
|
255
|
+
title: ( localize(8341, "Insert Prompt & Attachments")),
|
|
256
256
|
kind: this.kind,
|
|
257
257
|
handledMimeType: CopyAttachmentsProvider_1.ATTACHMENT_MIME_TYPE,
|
|
258
258
|
additionalEdit: {
|
|
@@ -328,7 +328,7 @@ class PasteTextProvider {
|
|
|
328
328
|
if (( currentContextIds.has(copiedContext.id))) {
|
|
329
329
|
return;
|
|
330
330
|
}
|
|
331
|
-
const edit = createCustomPasteEdit(model, [copiedContext], Mimes.text, this.kind, ( localize(
|
|
331
|
+
const edit = createCustomPasteEdit(model, [copiedContext], Mimes.text, this.kind, ( localize(8342, "Pasted Code Attachment")), this.chatWidgetService);
|
|
332
332
|
edit.yieldTo = [{
|
|
333
333
|
kind: HierarchicalKind.Empty.append("text", "plain")
|
|
334
334
|
}];
|
|
@@ -340,7 +340,7 @@ function getCopiedContext(code, file, language, range) {
|
|
|
340
340
|
const start = range.startLineNumber;
|
|
341
341
|
const end = range.endLineNumber;
|
|
342
342
|
const resultText = `Copied Selection of Code: \n\n\n From the file: ${fileName} From lines ${start} to ${end} \n \`\`\`${code}\`\`\``;
|
|
343
|
-
const pastedLines = start === end ? ( localize(
|
|
343
|
+
const pastedLines = start === end ? ( localize(8343, "1 line")) : ( localize(8344, "{0} lines", end + 1 - start));
|
|
344
344
|
return {
|
|
345
345
|
kind: "paste",
|
|
346
346
|
value: resultText,
|
|
@@ -362,7 +362,7 @@ function getCopiedContext(code, file, language, range) {
|
|
|
362
362
|
};
|
|
363
363
|
}
|
|
364
364
|
function createCustomPasteEdit(model, context, handledMimeType, kind, title, chatWidgetService) {
|
|
365
|
-
const label = context.length === 1 ? context[0].name : ( localize(
|
|
365
|
+
const label = context.length === 1 ? context[0].name : ( localize(8345, "{0} and {1} more", context[0].name, context.length - 1));
|
|
366
366
|
const announceImageAttachment = context.length === 1 && isImageVariableEntry(context[0]);
|
|
367
367
|
const customEdit = {
|
|
368
368
|
resource: model.uri,
|
|
@@ -381,7 +381,7 @@ function createCustomPasteEdit(model, context, handledMimeType, kind, title, cha
|
|
|
381
381
|
}
|
|
382
382
|
widget.attachmentModel.addContext(...context);
|
|
383
383
|
if (announceImageAttachment) {
|
|
384
|
-
alert(( localize(
|
|
384
|
+
alert(( localize(8346, "Attached image")));
|
|
385
385
|
}
|
|
386
386
|
},
|
|
387
387
|
metadata: {
|
|
@@ -565,7 +565,7 @@ let PasteSymbolProvider = class PasteSymbolProvider {
|
|
|
565
565
|
};
|
|
566
566
|
const edit = {
|
|
567
567
|
insertText,
|
|
568
|
-
title: ( localize(
|
|
568
|
+
title: ( localize(8347, "Pasted Symbol Reference")),
|
|
569
569
|
kind: this.kind,
|
|
570
570
|
handledMimeType: COPY_MIME_TYPES,
|
|
571
571
|
additionalEdit: {
|
|
@@ -614,7 +614,7 @@ class PasteHtmlProvider {
|
|
|
614
614
|
}
|
|
615
615
|
return createEditSession({
|
|
616
616
|
insertText: markdown,
|
|
617
|
-
title: ( localize(
|
|
617
|
+
title: ( localize(8348, "Paste as Markdown")),
|
|
618
618
|
kind: this.kind,
|
|
619
619
|
handledMimeType: Mimes.html,
|
|
620
620
|
yieldTo: [{
|
|
@@ -410,7 +410,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
410
410
|
})];
|
|
411
411
|
}
|
|
412
412
|
_getContextMenuActions() {
|
|
413
|
-
const label = ( localize(
|
|
413
|
+
const label = ( localize(14932, "Toggle Visibility"));
|
|
414
414
|
return [{
|
|
415
415
|
class: undefined,
|
|
416
416
|
tooltip: label,
|
|
@@ -433,7 +433,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
433
433
|
actions.push(attachToChatAction, ( new Separator()));
|
|
434
434
|
}
|
|
435
435
|
if (command.command !== "") {
|
|
436
|
-
const labelRun = ( localize(
|
|
436
|
+
const labelRun = ( localize(14933, "Rerun Command"));
|
|
437
437
|
actions.push({
|
|
438
438
|
class: undefined,
|
|
439
439
|
tooltip: labelRun,
|
|
@@ -446,11 +446,11 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
446
446
|
}
|
|
447
447
|
if (!command.isTrusted) {
|
|
448
448
|
const shouldRun = await ( new Promise(r => {
|
|
449
|
-
this._notificationService.prompt(Severity.Info, ( localize(
|
|
450
|
-
label: ( localize(
|
|
449
|
+
this._notificationService.prompt(Severity.Info, ( localize(14934, "Do you want to run the command: {0}", command.command)), [{
|
|
450
|
+
label: ( localize(14935, "Yes")),
|
|
451
451
|
run: () => r(true)
|
|
452
452
|
}, {
|
|
453
|
-
label: ( localize(
|
|
453
|
+
label: ( localize(14936, "No")),
|
|
454
454
|
run: () => r(false)
|
|
455
455
|
}]);
|
|
456
456
|
}));
|
|
@@ -464,7 +464,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
464
464
|
}
|
|
465
465
|
});
|
|
466
466
|
actions.push(( new Separator()));
|
|
467
|
-
const labelCopy = ( localize(
|
|
467
|
+
const labelCopy = ( localize(14937, "Copy Command"));
|
|
468
468
|
actions.push({
|
|
469
469
|
class: undefined,
|
|
470
470
|
tooltip: labelCopy,
|
|
@@ -475,7 +475,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
475
475
|
});
|
|
476
476
|
}
|
|
477
477
|
if (command.hasOutput()) {
|
|
478
|
-
const labelCopyCommandAndOutput = ( localize(
|
|
478
|
+
const labelCopyCommandAndOutput = ( localize(14938, "Copy Command and Output"));
|
|
479
479
|
actions.push({
|
|
480
480
|
class: undefined,
|
|
481
481
|
tooltip: labelCopyCommandAndOutput,
|
|
@@ -489,7 +489,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
489
489
|
}
|
|
490
490
|
}
|
|
491
491
|
});
|
|
492
|
-
const labelText = ( localize(
|
|
492
|
+
const labelText = ( localize(14939, "Copy Output"));
|
|
493
493
|
actions.push({
|
|
494
494
|
class: undefined,
|
|
495
495
|
tooltip: labelText,
|
|
@@ -503,7 +503,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
503
503
|
}
|
|
504
504
|
}
|
|
505
505
|
});
|
|
506
|
-
const labelHtml = ( localize(
|
|
506
|
+
const labelHtml = ( localize(14940, "Copy Output as HTML"));
|
|
507
507
|
actions.push({
|
|
508
508
|
class: undefined,
|
|
509
509
|
tooltip: labelHtml,
|
|
@@ -518,7 +518,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
518
518
|
if (actions.length > 0) {
|
|
519
519
|
actions.push(( new Separator()));
|
|
520
520
|
}
|
|
521
|
-
const labelRunRecent = ( localize(
|
|
521
|
+
const labelRunRecent = ( localize(14941, "Run Recent Command"));
|
|
522
522
|
actions.push({
|
|
523
523
|
class: undefined,
|
|
524
524
|
tooltip: labelRunRecent,
|
|
@@ -527,7 +527,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
527
527
|
enabled: true,
|
|
528
528
|
run: () => this._commandService.executeCommand("workbench.action.terminal.runRecentCommand")
|
|
529
529
|
});
|
|
530
|
-
const labelGoToRecent = ( localize(
|
|
530
|
+
const labelGoToRecent = ( localize(14942, "Go To Recent Directory"));
|
|
531
531
|
actions.push({
|
|
532
532
|
class: undefined,
|
|
533
533
|
tooltip: labelRunRecent,
|
|
@@ -537,7 +537,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
537
537
|
run: () => this._commandService.executeCommand("workbench.action.terminal.goToRecentDirectory")
|
|
538
538
|
});
|
|
539
539
|
actions.push(( new Separator()));
|
|
540
|
-
const labelAbout = ( localize(
|
|
540
|
+
const labelAbout = ( localize(14943, "Learn About Shell Integration"));
|
|
541
541
|
actions.push({
|
|
542
542
|
class: undefined,
|
|
543
543
|
tooltip: labelAbout,
|
|
@@ -553,7 +553,7 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
553
553
|
if (!chatIsEnabled) {
|
|
554
554
|
return undefined;
|
|
555
555
|
}
|
|
556
|
-
const labelAttachToChat = ( localize(
|
|
556
|
+
const labelAttachToChat = ( localize(14944, "Attach To Chat"));
|
|
557
557
|
return {
|
|
558
558
|
class: undefined,
|
|
559
559
|
tooltip: labelAttachToChat,
|
|
@@ -595,14 +595,14 @@ let DecorationAddon = class DecorationAddon extends Disposable {
|
|
|
595
595
|
quickPick.hideInput = true;
|
|
596
596
|
quickPick.hideCheckAll = true;
|
|
597
597
|
quickPick.canSelectMany = true;
|
|
598
|
-
quickPick.title = ( localize(
|
|
598
|
+
quickPick.title = ( localize(14945, "Toggle visibility"));
|
|
599
599
|
const configValue = this._configurationService.getValue(TerminalSettingId.ShellIntegrationDecorationsEnabled);
|
|
600
600
|
const gutterIcon = {
|
|
601
|
-
label: ( localize(
|
|
601
|
+
label: ( localize(14946, "Gutter command decorations")),
|
|
602
602
|
picked: configValue !== "never" && configValue !== "overviewRuler"
|
|
603
603
|
};
|
|
604
604
|
const overviewRulerIcon = {
|
|
605
|
-
label: ( localize(
|
|
605
|
+
label: ( localize(14947, "Overview ruler command decorations")),
|
|
606
606
|
picked: configValue !== "never" && configValue !== "gutter"
|
|
607
607
|
};
|
|
608
608
|
quickPick.items = [gutterIcon, overviewRulerIcon];
|
|
@@ -89,7 +89,7 @@ export declare class XtermTerminal extends Disposable implements IXtermTerminal,
|
|
|
89
89
|
private _serializeAddon?;
|
|
90
90
|
private _imageAddon?;
|
|
91
91
|
private readonly _ligaturesAddon;
|
|
92
|
-
private
|
|
92
|
+
private _ligaturesAddonConfig?;
|
|
93
93
|
private readonly _attachedDisposables;
|
|
94
94
|
private readonly _anyTerminalFocusContextKey;
|
|
95
95
|
private readonly _anyFocusedTerminalHasSelection;
|