@codingame/monaco-vscode-chat-service-override 23.0.3 → 23.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 +43 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +106 -74
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +33 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +52 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +65 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +57 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +26 -26
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +53 -53
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +22 -23
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +8 -8
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +18 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +10 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +9 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +10 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +15 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
|
@@ -50,7 +50,7 @@ class SessionsIdentityProvider {
|
|
|
50
50
|
}
|
|
51
51
|
class SessionsAccessibilityProvider {
|
|
52
52
|
getWidgetAriaLabel() {
|
|
53
|
-
return localize(
|
|
53
|
+
return localize(5409, 'Chat Sessions');
|
|
54
54
|
}
|
|
55
55
|
getAriaLabel(element) {
|
|
56
56
|
return element.label;
|
|
@@ -129,7 +129,7 @@ let SessionsViewPane = class SessionsViewPane extends ViewPane {
|
|
|
129
129
|
}
|
|
130
130
|
const dropdownAction = toAction({
|
|
131
131
|
id: 'selectNewChatSessionOption',
|
|
132
|
-
label: ( localize(
|
|
132
|
+
label: ( localize(5410, 'More...')),
|
|
133
133
|
class: 'codicon-chevron-down',
|
|
134
134
|
run: () => { }
|
|
135
135
|
});
|
|
@@ -166,7 +166,7 @@ let SessionsViewPane = class SessionsViewPane extends ViewPane {
|
|
|
166
166
|
try {
|
|
167
167
|
await this.progressService.withProgress({
|
|
168
168
|
location: this.id,
|
|
169
|
-
title: ( localize(
|
|
169
|
+
title: ( localize(5411, 'Refreshing chat sessions...')),
|
|
170
170
|
}, async () => {
|
|
171
171
|
await this.tree.updateChildren(this.provider);
|
|
172
172
|
});
|
|
@@ -183,7 +183,7 @@ let SessionsViewPane = class SessionsViewPane extends ViewPane {
|
|
|
183
183
|
try {
|
|
184
184
|
await this.progressService.withProgress({
|
|
185
185
|
location: this.id,
|
|
186
|
-
title: ( localize(
|
|
186
|
+
title: ( localize(5412, 'Loading chat sessions...')),
|
|
187
187
|
}, async () => {
|
|
188
188
|
await this.tree.setInput(this.provider);
|
|
189
189
|
});
|
|
@@ -236,7 +236,7 @@ let SessionsViewPane = class SessionsViewPane extends ViewPane {
|
|
|
236
236
|
if (elements.length === 1) {
|
|
237
237
|
return elements[0].label;
|
|
238
238
|
}
|
|
239
|
-
return localize(
|
|
239
|
+
return localize(5413, "{0} agent sessions", elements.length);
|
|
240
240
|
},
|
|
241
241
|
drop: () => { },
|
|
242
242
|
onDragOver: () => false,
|
|
@@ -297,13 +297,13 @@ let SessionsViewPane = class SessionsViewPane extends ViewPane {
|
|
|
297
297
|
const items = [
|
|
298
298
|
{
|
|
299
299
|
id: 'install-extensions',
|
|
300
|
-
label: ( localize(
|
|
300
|
+
label: ( localize(5414, "Install Chat Extensions")),
|
|
301
301
|
icon: Codicon.extensions,
|
|
302
302
|
commandId: 'chat.sessions.gettingStarted'
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
305
|
id: 'learn-more',
|
|
306
|
-
label: ( localize(
|
|
306
|
+
label: ( localize(5415, "Learn More About GitHub Copilot coding agent")),
|
|
307
307
|
commandId: 'vscode.open',
|
|
308
308
|
icon: Codicon.book,
|
|
309
309
|
args: [( URI.parse('https://aka.ms/coding-agent-docs'))]
|
|
@@ -38,39 +38,39 @@ import { NEW_CHAT_SESSION_ACTION_ID } from '@codingame/monaco-vscode-2339d6ac-d6
|
|
|
38
38
|
const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
39
39
|
extensionPoint: 'chatSessions',
|
|
40
40
|
jsonSchema: {
|
|
41
|
-
description: ( localize(
|
|
41
|
+
description: ( localize(5367, 'Contributes chat session integrations to the chat widget.')),
|
|
42
42
|
type: 'array',
|
|
43
43
|
items: {
|
|
44
44
|
type: 'object',
|
|
45
45
|
additionalProperties: false,
|
|
46
46
|
properties: {
|
|
47
47
|
type: {
|
|
48
|
-
description: ( localize(
|
|
48
|
+
description: ( localize(5368, 'Unique identifier for the type of chat session.')),
|
|
49
49
|
type: 'string',
|
|
50
50
|
},
|
|
51
51
|
name: {
|
|
52
52
|
description: ( localize(
|
|
53
|
-
|
|
53
|
+
5369,
|
|
54
54
|
'Name of the dynamically registered chat participant (eg: @agent). Must not contain whitespace.'
|
|
55
55
|
)),
|
|
56
56
|
type: 'string',
|
|
57
57
|
pattern: '^[\\w-]+$'
|
|
58
58
|
},
|
|
59
59
|
displayName: {
|
|
60
|
-
description: ( localize(
|
|
60
|
+
description: ( localize(5370, 'A longer name for this item which is used for display in menus.')),
|
|
61
61
|
type: 'string',
|
|
62
62
|
},
|
|
63
63
|
description: {
|
|
64
|
-
description: ( localize(
|
|
64
|
+
description: ( localize(5371, 'Description of the chat session for use in menus and tooltips.')),
|
|
65
65
|
type: 'string'
|
|
66
66
|
},
|
|
67
67
|
when: {
|
|
68
|
-
description: ( localize(
|
|
68
|
+
description: ( localize(5372, 'Condition which must be true to show this item.')),
|
|
69
69
|
type: 'string'
|
|
70
70
|
},
|
|
71
71
|
icon: {
|
|
72
72
|
description: ( localize(
|
|
73
|
-
|
|
73
|
+
5373,
|
|
74
74
|
'Icon identifier (codicon ID) for the chat session editor tab. For example, "$(github)" or "$(cloud)".'
|
|
75
75
|
)),
|
|
76
76
|
anyOf: [{
|
|
@@ -80,22 +80,22 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
80
80
|
type: 'object',
|
|
81
81
|
properties: {
|
|
82
82
|
light: {
|
|
83
|
-
description: ( localize(
|
|
83
|
+
description: ( localize(5374, 'Icon path when a light theme is used')),
|
|
84
84
|
type: 'string'
|
|
85
85
|
},
|
|
86
86
|
dark: {
|
|
87
|
-
description: ( localize(
|
|
87
|
+
description: ( localize(5375, 'Icon path when a dark theme is used')),
|
|
88
88
|
type: 'string'
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
}]
|
|
92
92
|
},
|
|
93
93
|
order: {
|
|
94
|
-
description: ( localize(
|
|
94
|
+
description: ( localize(5376, 'Order in which this item should be displayed.')),
|
|
95
95
|
type: 'integer'
|
|
96
96
|
},
|
|
97
97
|
alternativeIds: {
|
|
98
|
-
description: ( localize(
|
|
98
|
+
description: ( localize(5377, 'Alternative identifiers for backward compatibility.')),
|
|
99
99
|
type: 'array',
|
|
100
100
|
items: {
|
|
101
101
|
type: 'string'
|
|
@@ -103,87 +103,87 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
103
103
|
},
|
|
104
104
|
welcomeTitle: {
|
|
105
105
|
description: ( localize(
|
|
106
|
-
|
|
106
|
+
5378,
|
|
107
107
|
'Title text to display in the chat welcome view for this session type.'
|
|
108
108
|
)),
|
|
109
109
|
type: 'string'
|
|
110
110
|
},
|
|
111
111
|
welcomeMessage: {
|
|
112
112
|
description: ( localize(
|
|
113
|
-
|
|
113
|
+
5379,
|
|
114
114
|
'Message text (supports markdown) to display in the chat welcome view for this session type.'
|
|
115
115
|
)),
|
|
116
116
|
type: 'string'
|
|
117
117
|
},
|
|
118
118
|
welcomeTips: {
|
|
119
119
|
description: ( localize(
|
|
120
|
-
|
|
120
|
+
5380,
|
|
121
121
|
'Tips text (supports markdown and theme icons) to display in the chat welcome view for this session type.'
|
|
122
122
|
)),
|
|
123
123
|
type: 'string'
|
|
124
124
|
},
|
|
125
125
|
inputPlaceholder: {
|
|
126
126
|
description: ( localize(
|
|
127
|
-
|
|
127
|
+
5381,
|
|
128
128
|
'Placeholder text to display in the chat input box for this session type.'
|
|
129
129
|
)),
|
|
130
130
|
type: 'string'
|
|
131
131
|
},
|
|
132
132
|
capabilities: {
|
|
133
|
-
description: ( localize(
|
|
133
|
+
description: ( localize(5382, 'Optional capabilities for this chat session.')),
|
|
134
134
|
type: 'object',
|
|
135
135
|
additionalProperties: false,
|
|
136
136
|
properties: {
|
|
137
137
|
supportsFileAttachments: {
|
|
138
138
|
description: ( localize(
|
|
139
|
-
|
|
139
|
+
5383,
|
|
140
140
|
'Whether this chat session supports attaching files or file references.'
|
|
141
141
|
)),
|
|
142
142
|
type: 'boolean'
|
|
143
143
|
},
|
|
144
144
|
supportsToolAttachments: {
|
|
145
145
|
description: ( localize(
|
|
146
|
-
|
|
146
|
+
5384,
|
|
147
147
|
'Whether this chat session supports attaching tools or tool references.'
|
|
148
148
|
)),
|
|
149
149
|
type: 'boolean'
|
|
150
150
|
},
|
|
151
151
|
supportsMCPAttachments: {
|
|
152
|
-
description: ( localize(
|
|
152
|
+
description: ( localize(5385, 'Whether this chat session supports attaching MCP resources.')),
|
|
153
153
|
type: 'boolean'
|
|
154
154
|
},
|
|
155
155
|
supportsImageAttachments: {
|
|
156
|
-
description: ( localize(
|
|
156
|
+
description: ( localize(5386, 'Whether this chat session supports attaching images.')),
|
|
157
157
|
type: 'boolean'
|
|
158
158
|
},
|
|
159
159
|
supportsSearchResultAttachments: {
|
|
160
|
-
description: ( localize(
|
|
160
|
+
description: ( localize(5387, 'Whether this chat session supports attaching search results.')),
|
|
161
161
|
type: 'boolean'
|
|
162
162
|
},
|
|
163
163
|
supportsInstructionAttachments: {
|
|
164
|
-
description: ( localize(
|
|
164
|
+
description: ( localize(5388, 'Whether this chat session supports attaching instructions.')),
|
|
165
165
|
type: 'boolean'
|
|
166
166
|
},
|
|
167
167
|
supportsSourceControlAttachments: {
|
|
168
168
|
description: ( localize(
|
|
169
|
-
|
|
169
|
+
5389,
|
|
170
170
|
'Whether this chat session supports attaching source control changes.'
|
|
171
171
|
)),
|
|
172
172
|
type: 'boolean'
|
|
173
173
|
},
|
|
174
174
|
supportsProblemAttachments: {
|
|
175
|
-
description: ( localize(
|
|
175
|
+
description: ( localize(5390, 'Whether this chat session supports attaching problems.')),
|
|
176
176
|
type: 'boolean'
|
|
177
177
|
},
|
|
178
178
|
supportsSymbolAttachments: {
|
|
179
|
-
description: ( localize(
|
|
179
|
+
description: ( localize(5391, 'Whether this chat session supports attaching symbols.')),
|
|
180
180
|
type: 'boolean'
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
},
|
|
184
184
|
commands: {
|
|
185
185
|
markdownDescription: ( localize(
|
|
186
|
-
|
|
186
|
+
5392,
|
|
187
187
|
"Commands available for this chat session, which the user can invoke with a `/`."
|
|
188
188
|
)),
|
|
189
189
|
type: 'array',
|
|
@@ -195,17 +195,17 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
195
195
|
properties: {
|
|
196
196
|
name: {
|
|
197
197
|
description: ( localize(
|
|
198
|
-
|
|
198
|
+
5393,
|
|
199
199
|
"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."
|
|
200
200
|
)),
|
|
201
201
|
type: 'string'
|
|
202
202
|
},
|
|
203
203
|
description: {
|
|
204
|
-
description: ( localize(
|
|
204
|
+
description: ( localize(5394, "A description of this command.")),
|
|
205
205
|
type: 'string'
|
|
206
206
|
},
|
|
207
207
|
when: {
|
|
208
|
-
description: ( localize(
|
|
208
|
+
description: ( localize(5395, "A condition which must be true to enable this command.")),
|
|
209
209
|
type: 'string'
|
|
210
210
|
},
|
|
211
211
|
}
|
|
@@ -455,7 +455,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
455
455
|
if (menuActions.length) {
|
|
456
456
|
return MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
|
|
457
457
|
group: 'navigation',
|
|
458
|
-
title: ( localize(
|
|
458
|
+
title: ( localize(5396, "Create chat session")),
|
|
459
459
|
icon: Codicon.plus,
|
|
460
460
|
order: 1,
|
|
461
461
|
when: whenClause,
|
|
@@ -467,7 +467,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
467
467
|
return MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
|
|
468
468
|
command: {
|
|
469
469
|
id: `${NEW_CHAT_SESSION_ACTION_ID}.${contribution.type}`,
|
|
470
|
-
title: ( localize(
|
|
470
|
+
title: ( localize(5397, "New {0}", contribution.displayName)),
|
|
471
471
|
icon: Codicon.plus,
|
|
472
472
|
source: {
|
|
473
473
|
id: extensionDescription.identifier.value,
|
|
@@ -485,7 +485,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
485
485
|
constructor() {
|
|
486
486
|
super({
|
|
487
487
|
id: `workbench.action.chat.openNewSessionEditor.${contribution.type}`,
|
|
488
|
-
title: ( localize2(
|
|
488
|
+
title: ( localize2(5397, "New {0}", contribution.displayName)),
|
|
489
489
|
category: CHAT_CATEGORY,
|
|
490
490
|
icon: Codicon.plus,
|
|
491
491
|
f1: true,
|
|
@@ -501,7 +501,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
501
501
|
override: ChatEditorInput.EditorID,
|
|
502
502
|
pinned: true,
|
|
503
503
|
title: {
|
|
504
|
-
fallback: ( localize(
|
|
504
|
+
fallback: ( localize(5398, "{0}", contribution.displayName)),
|
|
505
505
|
}
|
|
506
506
|
};
|
|
507
507
|
const resource = ( URI.from({
|
|
@@ -147,19 +147,19 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
147
147
|
return instantiationService.invokeFunction(accessor => {
|
|
148
148
|
const chatAgentService = accessor.get(IChatAgentService);
|
|
149
149
|
const disposables = ( new DisposableStore());
|
|
150
|
-
const { disposable: vscodeDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, ( localize2(
|
|
150
|
+
const { disposable: vscodeDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, ( localize2(5416, "Ask questions about VS Code")).value, ChatAgentLocation.Chat, undefined, context, controller);
|
|
151
151
|
disposables.add(vscodeDisposable);
|
|
152
|
-
const { disposable: workspaceDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.workspace', 'workspace', false, ( localize2(
|
|
152
|
+
const { disposable: workspaceDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.workspace', 'workspace', false, ( localize2(5417, "Ask about your workspace")).value, ChatAgentLocation.Chat, undefined, context, controller);
|
|
153
153
|
disposables.add(workspaceDisposable);
|
|
154
|
-
const { disposable: terminalDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.terminal.agent', 'terminal', false, ( localize2(
|
|
154
|
+
const { disposable: terminalDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.terminal.agent', 'terminal', false, ( localize2(5418, "Ask how to do something in the terminal")).value, ChatAgentLocation.Chat, undefined, context, controller);
|
|
155
155
|
disposables.add(terminalDisposable);
|
|
156
156
|
disposables.add(SetupTool.registerTool(instantiationService, {
|
|
157
157
|
id: 'setup_tools_createNewWorkspace',
|
|
158
158
|
source: ToolDataSource.Internal,
|
|
159
159
|
icon: Codicon.newFolder,
|
|
160
|
-
displayName: ( localize(
|
|
161
|
-
modelDescription: ( localize(
|
|
162
|
-
userDescription: ( localize(
|
|
160
|
+
displayName: ( localize(5419, "New Workspace")),
|
|
161
|
+
modelDescription: ( localize(5420, "Scaffold a new workspace in VS Code")),
|
|
162
|
+
userDescription: ( localize(5420, "Scaffold a new workspace in VS Code")),
|
|
163
163
|
canBeReferencedInPrompt: true,
|
|
164
164
|
toolReferenceName: 'new',
|
|
165
165
|
when: ContextKeyExpr.true(),
|
|
@@ -193,8 +193,8 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
193
193
|
}
|
|
194
194
|
return { agent, disposable: disposables };
|
|
195
195
|
}
|
|
196
|
-
static { this.SETUP_NEEDED_MESSAGE = ( new MarkdownString(( localize(
|
|
197
|
-
static { this.TRUST_NEEDED_MESSAGE = ( new MarkdownString(( localize(
|
|
196
|
+
static { this.SETUP_NEEDED_MESSAGE = ( new MarkdownString(( localize(5421, "You need to set up GitHub Copilot and be signed in to use Chat.")))); }
|
|
197
|
+
static { this.TRUST_NEEDED_MESSAGE = ( new MarkdownString(( localize(5422, "You need to trust this workspace to use Chat.")))); }
|
|
198
198
|
constructor(context, controller, location, instantiationService, logService, configurationService, telemetryService, environmentService, workspaceTrustManagementService, chatEntitlementService) {
|
|
199
199
|
super();
|
|
200
200
|
this.context = context;
|
|
@@ -241,7 +241,7 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
241
241
|
}
|
|
242
242
|
progress({
|
|
243
243
|
kind: 'progressMessage',
|
|
244
|
-
content: ( new MarkdownString(( localize(
|
|
244
|
+
content: ( new MarkdownString(( localize(5423, "Getting chat ready...")))),
|
|
245
245
|
});
|
|
246
246
|
await this.forwardRequestToChat(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService);
|
|
247
247
|
return {};
|
|
@@ -253,7 +253,7 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
253
253
|
catch (error) {
|
|
254
254
|
progress({
|
|
255
255
|
kind: 'warning',
|
|
256
|
-
content: ( new MarkdownString(( localize(
|
|
256
|
+
content: ( new MarkdownString(( localize(5424, "Failed to get a response. Please try again."))))
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
259
|
}
|
|
@@ -283,7 +283,7 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
283
283
|
const timeoutHandle = setTimeout(() => {
|
|
284
284
|
progress({
|
|
285
285
|
kind: 'progressMessage',
|
|
286
|
-
content: ( new MarkdownString(( localize(
|
|
286
|
+
content: ( new MarkdownString(( localize(5425, "Chat is almost ready...")))),
|
|
287
287
|
});
|
|
288
288
|
}, 10000);
|
|
289
289
|
try {
|
|
@@ -297,14 +297,14 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
297
297
|
if (ready === 'timedout') {
|
|
298
298
|
if (this.chatEntitlementService.anonymous) {
|
|
299
299
|
warningMessage = ( localize(
|
|
300
|
-
|
|
300
|
+
5426,
|
|
301
301
|
"Chat took too long to get ready. Please ensure that the extension `{0}` is installed and enabled.",
|
|
302
302
|
defaultChat.chatExtensionId
|
|
303
303
|
));
|
|
304
304
|
}
|
|
305
305
|
else {
|
|
306
306
|
warningMessage = ( localize(
|
|
307
|
-
|
|
307
|
+
5427,
|
|
308
308
|
"Chat took too long to get ready. Please ensure you are signed in to {0} and that the extension `{1}` is installed and enabled.",
|
|
309
309
|
defaultChat.provider.default.name,
|
|
310
310
|
defaultChat.chatExtensionId
|
|
@@ -314,14 +314,14 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
314
314
|
else {
|
|
315
315
|
if (this.chatEntitlementService.anonymous) {
|
|
316
316
|
warningMessage = ( localize(
|
|
317
|
-
|
|
317
|
+
5428,
|
|
318
318
|
"Chat failed to get ready. Please ensure that the extension `{0}` is installed and enabled.",
|
|
319
319
|
defaultChat.chatExtensionId
|
|
320
320
|
));
|
|
321
321
|
}
|
|
322
322
|
else {
|
|
323
323
|
warningMessage = ( localize(
|
|
324
|
-
|
|
324
|
+
5429,
|
|
325
325
|
"Chat failed to get ready. Please ensure you are signed in to {0} and that the extension `{1}` is installed and enabled.",
|
|
326
326
|
defaultChat.provider.default.name,
|
|
327
327
|
defaultChat.chatExtensionId
|
|
@@ -413,7 +413,7 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
413
413
|
progress({
|
|
414
414
|
kind: 'progressMessage',
|
|
415
415
|
content: ( new MarkdownString(( localize(
|
|
416
|
-
|
|
416
|
+
5430,
|
|
417
417
|
"Signing in to {0}...",
|
|
418
418
|
ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.provider.enterprise.id ? defaultChat.provider.enterprise.name : defaultChat.provider.default.name
|
|
419
419
|
)))),
|
|
@@ -422,7 +422,7 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
422
422
|
case ChatSetupStep.Installing:
|
|
423
423
|
progress({
|
|
424
424
|
kind: 'progressMessage',
|
|
425
|
-
content: ( new MarkdownString(( localize(
|
|
425
|
+
content: ( new MarkdownString(( localize(5431, "Getting chat ready...")))),
|
|
426
426
|
});
|
|
427
427
|
break;
|
|
428
428
|
}
|
|
@@ -454,7 +454,7 @@ let SetupAgent = class SetupAgent extends Disposable {
|
|
|
454
454
|
else {
|
|
455
455
|
progress({
|
|
456
456
|
kind: 'warning',
|
|
457
|
-
content: ( new MarkdownString(( localize(
|
|
457
|
+
content: ( new MarkdownString(( localize(5432, "Chat setup failed."))))
|
|
458
458
|
});
|
|
459
459
|
}
|
|
460
460
|
}
|
|
@@ -675,7 +675,7 @@ let ChatSetup = class ChatSetup {
|
|
|
675
675
|
const dialogSkipped = this.skipDialogOnce;
|
|
676
676
|
this.skipDialogOnce = false;
|
|
677
677
|
const trusted = await this.workspaceTrustRequestService.requestWorkspaceTrust({
|
|
678
|
-
message: ( localize(
|
|
678
|
+
message: ( localize(5433, "AI features are currently only supported in trusted workspaces."))
|
|
679
679
|
});
|
|
680
680
|
if (!trusted) {
|
|
681
681
|
this.context.update({ later: true });
|
|
@@ -755,12 +755,12 @@ let ChatSetup = class ChatSetup {
|
|
|
755
755
|
const styleButton = (...classes) => ({ styleButton: (button) => button.element.classList.add(...classes) });
|
|
756
756
|
let buttons;
|
|
757
757
|
if (!options?.forceAnonymous && (this.context.state.entitlement === ChatEntitlement.Unknown || options?.forceSignInDialog)) {
|
|
758
|
-
const defaultProviderButton = [( localize(
|
|
758
|
+
const defaultProviderButton = [( localize(5434, "Continue with {0}", defaultChat.provider.default.name)), ChatSetupStrategy.SetupWithoutEnterpriseProvider, styleButton('continue-button', 'default')];
|
|
759
759
|
const defaultProviderLink = [defaultProviderButton[0], defaultProviderButton[1], styleButton('link-button')];
|
|
760
|
-
const enterpriseProviderButton = [( localize(
|
|
760
|
+
const enterpriseProviderButton = [( localize(5434, "Continue with {0}", defaultChat.provider.enterprise.name)), ChatSetupStrategy.SetupWithEnterpriseProvider, styleButton('continue-button', 'default')];
|
|
761
761
|
const enterpriseProviderLink = [enterpriseProviderButton[0], enterpriseProviderButton[1], styleButton('link-button')];
|
|
762
|
-
const googleProviderButton = [( localize(
|
|
763
|
-
const appleProviderButton = [( localize(
|
|
762
|
+
const googleProviderButton = [( localize(5434, "Continue with {0}", defaultChat.provider.google.name)), ChatSetupStrategy.SetupWithGoogleProvider, styleButton('continue-button', 'google')];
|
|
763
|
+
const appleProviderButton = [( localize(5434, "Continue with {0}", defaultChat.provider.apple.name)), ChatSetupStrategy.SetupWithAppleProvider, styleButton('continue-button', 'apple')];
|
|
764
764
|
if (ChatEntitlementRequests.providerId(this.configurationService) !== defaultChat.provider.enterprise.id) {
|
|
765
765
|
buttons = coalesce([
|
|
766
766
|
defaultProviderButton,
|
|
@@ -779,31 +779,31 @@ let ChatSetup = class ChatSetup {
|
|
|
779
779
|
}
|
|
780
780
|
}
|
|
781
781
|
else {
|
|
782
|
-
buttons = [[( localize(
|
|
782
|
+
buttons = [[( localize(5435, "Use AI Features")), ChatSetupStrategy.DefaultSetup, undefined]];
|
|
783
783
|
}
|
|
784
|
-
buttons.push([( localize(
|
|
784
|
+
buttons.push([( localize(5436, "Skip for now")), ChatSetupStrategy.Canceled, styleButton('link-button', 'skip-button')]);
|
|
785
785
|
return buttons;
|
|
786
786
|
}
|
|
787
787
|
getDialogTitle(options) {
|
|
788
788
|
if (this.chatEntitlementService.anonymous) {
|
|
789
789
|
if (options?.forceAnonymous) {
|
|
790
|
-
return localize(
|
|
790
|
+
return localize(5437, "Start using AI Features");
|
|
791
791
|
}
|
|
792
792
|
else {
|
|
793
|
-
return localize(
|
|
793
|
+
return localize(5438, "Enable more AI features");
|
|
794
794
|
}
|
|
795
795
|
}
|
|
796
796
|
if (this.context.state.entitlement === ChatEntitlement.Unknown || options?.forceSignInDialog) {
|
|
797
|
-
return localize(
|
|
797
|
+
return localize(5439, "Sign in to use AI Features");
|
|
798
798
|
}
|
|
799
|
-
return localize(
|
|
799
|
+
return localize(5437, "Start using AI Features");
|
|
800
800
|
}
|
|
801
801
|
createDialogFooter(disposables, options) {
|
|
802
802
|
const element = $('.chat-setup-dialog-footer');
|
|
803
803
|
let footer;
|
|
804
804
|
if (options?.forceAnonymous || this.telemetryService.telemetryLevel === TelemetryLevel.NONE) {
|
|
805
805
|
footer = ( localize(
|
|
806
|
-
|
|
806
|
+
5440,
|
|
807
807
|
"By continuing, you agree to {0}'s [Terms]({1}) and [Privacy Statement]({2}).",
|
|
808
808
|
defaultChat.provider.default.name,
|
|
809
809
|
defaultChat.termsStatementUrl,
|
|
@@ -812,7 +812,7 @@ let ChatSetup = class ChatSetup {
|
|
|
812
812
|
}
|
|
813
813
|
else {
|
|
814
814
|
footer = ( localize(
|
|
815
|
-
|
|
815
|
+
5441,
|
|
816
816
|
"By continuing, you agree to {0}'s [Terms]({1}) and [Privacy Statement]({2}). {3} Copilot may show [public code]({4}) suggestions and use your data to improve the product. You can change these [settings]({5}) anytime.",
|
|
817
817
|
defaultChat.provider.default.name,
|
|
818
818
|
defaultChat.termsStatementUrl,
|
|
@@ -922,7 +922,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
922
922
|
}
|
|
923
923
|
registerActions(context, requests, controller) {
|
|
924
924
|
class ChatSetupTriggerAction extends Action2 {
|
|
925
|
-
static { this.CHAT_SETUP_ACTION_LABEL = ( localize2(
|
|
925
|
+
static { this.CHAT_SETUP_ACTION_LABEL = ( localize2(5442, "Use AI Features with Copilot for free...")); }
|
|
926
926
|
constructor() {
|
|
927
927
|
super({
|
|
928
928
|
id: CHAT_SETUP_ACTION_ID,
|
|
@@ -957,8 +957,8 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
957
957
|
if (success === false && !lifecycleService.willShutdown) {
|
|
958
958
|
const { confirmed } = await dialogService.confirm({
|
|
959
959
|
type: Severity.Error,
|
|
960
|
-
message: ( localize(
|
|
961
|
-
primaryButton: ( localize(
|
|
960
|
+
message: ( localize(5443, "Chat setup failed. Would you like to try again?")),
|
|
961
|
+
primaryButton: ( localize(5444, "Retry")),
|
|
962
962
|
});
|
|
963
963
|
if (confirmed) {
|
|
964
964
|
return Boolean(await commandService.executeCommand(CHAT_SETUP_ACTION_ID, mode, options));
|
|
@@ -988,7 +988,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
988
988
|
constructor() {
|
|
989
989
|
super({
|
|
990
990
|
id: 'workbench.action.chat.triggerSetupForceSignIn',
|
|
991
|
-
title: ( localize2(
|
|
991
|
+
title: ( localize2(5445, "Sign in to use AI features"))
|
|
992
992
|
});
|
|
993
993
|
}
|
|
994
994
|
async run(accessor) {
|
|
@@ -1016,7 +1016,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
1016
1016
|
constructor() {
|
|
1017
1017
|
super({
|
|
1018
1018
|
id: 'workbench.action.chat.triggerSetupFromAccounts',
|
|
1019
|
-
title: ( localize2(
|
|
1019
|
+
title: ( localize2(5446, "Sign in to use AI features...")),
|
|
1020
1020
|
menu: {
|
|
1021
1021
|
id: MenuId.AccountsContext,
|
|
1022
1022
|
group: '2_copilot',
|
|
@@ -1036,8 +1036,8 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
1036
1036
|
constructor() {
|
|
1037
1037
|
super({
|
|
1038
1038
|
id: 'workbench.action.chat.upgradePlan',
|
|
1039
|
-
title: ( localize2(
|
|
1040
|
-
category: ( localize2(
|
|
1039
|
+
title: ( localize2(5447, "Upgrade to GitHub Copilot Pro")),
|
|
1040
|
+
category: ( localize2(5448, 'Chat')),
|
|
1041
1041
|
f1: true,
|
|
1042
1042
|
precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ContextKeyExpr.or(
|
|
1043
1043
|
ChatContextKeys.Entitlement.canSignUp,
|
|
@@ -1078,8 +1078,8 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
1078
1078
|
constructor() {
|
|
1079
1079
|
super({
|
|
1080
1080
|
id: 'workbench.action.chat.manageOverages',
|
|
1081
|
-
title: ( localize2(
|
|
1082
|
-
category: ( localize2(
|
|
1081
|
+
title: ( localize2(5449, "Manage GitHub Copilot Overages")),
|
|
1082
|
+
category: ( localize2(5448, 'Chat')),
|
|
1083
1083
|
f1: true,
|
|
1084
1084
|
precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ContextKeyExpr.or(
|
|
1085
1085
|
ChatContextKeys.Entitlement.planPro,
|
|
@@ -1240,7 +1240,7 @@ let ChatTeardownContribution = class ChatTeardownContribution extends Disposable
|
|
|
1240
1240
|
return;
|
|
1241
1241
|
}
|
|
1242
1242
|
await this.extensionsWorkbenchService.setEnablement([defaultChatExtension], state);
|
|
1243
|
-
await this.extensionsWorkbenchService.updateRunningExtensions(state === EnablementState.EnabledGlobally || state === EnablementState.EnabledWorkspace ? ( localize(
|
|
1243
|
+
await this.extensionsWorkbenchService.updateRunningExtensions(state === EnablementState.EnabledGlobally || state === EnablementState.EnabledWorkspace ? ( localize(5450, "Enabling AI features")) : ( localize(5451, "Disabling AI features")));
|
|
1244
1244
|
}
|
|
1245
1245
|
maybeHideAuxiliaryBar() {
|
|
1246
1246
|
const activeContainers = this.viewDescriptorService.getViewContainersByLocation(ViewContainerLocation.AuxiliaryBar).filter(container => this.viewDescriptorService.getViewContainerModel(container).activeViewDescriptors.length > 0);
|
|
@@ -1253,7 +1253,7 @@ let ChatTeardownContribution = class ChatTeardownContribution extends Disposable
|
|
|
1253
1253
|
registerActions() {
|
|
1254
1254
|
class ChatSetupHideAction extends Action2 {
|
|
1255
1255
|
static { this.ID = 'workbench.action.chat.hideSetup'; }
|
|
1256
|
-
static { this.TITLE = ( localize2(
|
|
1256
|
+
static { this.TITLE = ( localize2(5452, "Learn How to Hide AI Features")); }
|
|
1257
1257
|
constructor() {
|
|
1258
1258
|
super({
|
|
1259
1259
|
id: ChatSetupHideAction.ID,
|
|
@@ -1326,7 +1326,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
1326
1326
|
}
|
|
1327
1327
|
async setup(options = {}) {
|
|
1328
1328
|
const watch = ( new StopWatch(false));
|
|
1329
|
-
const title = ( localize(
|
|
1329
|
+
const title = ( localize(5453, "Getting chat ready..."));
|
|
1330
1330
|
const badge = this.activityService.showViewContainerActivity(CHAT_SIDEBAR_PANEL_ID, {
|
|
1331
1331
|
badge: ( new ProgressBadge(() => title)),
|
|
1332
1332
|
});
|
|
@@ -1397,12 +1397,12 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
1397
1397
|
const { confirmed } = await this.dialogService.confirm({
|
|
1398
1398
|
type: Severity.Error,
|
|
1399
1399
|
message: ( localize(
|
|
1400
|
-
|
|
1400
|
+
5454,
|
|
1401
1401
|
"Failed to sign in to {0}. Would you like to try again?",
|
|
1402
1402
|
ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.provider.enterprise.id ? defaultChat.provider.enterprise.name : defaultChat.provider.default.name
|
|
1403
1403
|
)),
|
|
1404
|
-
detail: ( localize(
|
|
1405
|
-
primaryButton: ( localize(
|
|
1404
|
+
detail: ( localize(5455, "You must be signed in to use AI features.")),
|
|
1405
|
+
primaryButton: ( localize(5444, "Retry"))
|
|
1406
1406
|
});
|
|
1407
1407
|
if (confirmed) {
|
|
1408
1408
|
return this.signIn(options);
|
|
@@ -1473,11 +1473,11 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
1473
1473
|
const { confirmed } = await this.dialogService.confirm({
|
|
1474
1474
|
type: Severity.Error,
|
|
1475
1475
|
message: ( localize(
|
|
1476
|
-
|
|
1476
|
+
5456,
|
|
1477
1477
|
"An error occurred while setting up chat. Would you like to try again?"
|
|
1478
1478
|
)),
|
|
1479
1479
|
detail: error && !isCancellationError(error) ? toErrorMessage(error) : undefined,
|
|
1480
|
-
primaryButton: ( localize(
|
|
1480
|
+
primaryButton: ( localize(5444, "Retry"))
|
|
1481
1481
|
});
|
|
1482
1482
|
if (confirmed) {
|
|
1483
1483
|
return this.doInstallWithRetry();
|
|
@@ -1548,8 +1548,8 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
1548
1548
|
}
|
|
1549
1549
|
let isSingleWord = false;
|
|
1550
1550
|
const result = await this.quickInputService.input({
|
|
1551
|
-
prompt: ( localize(
|
|
1552
|
-
placeHolder: ( localize(
|
|
1551
|
+
prompt: ( localize(5457, "What is your {0} instance?", defaultChat.provider.enterprise.name)),
|
|
1552
|
+
placeHolder: ( localize(5458, 'i.e. "octocat" or "https://octocat.ghe.com"...')),
|
|
1553
1553
|
ignoreFocusLost: true,
|
|
1554
1554
|
value: uri,
|
|
1555
1555
|
validateInput: async (value) => {
|
|
@@ -1560,14 +1560,14 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
1560
1560
|
if (domainRegEx.test(value)) {
|
|
1561
1561
|
isSingleWord = true;
|
|
1562
1562
|
return {
|
|
1563
|
-
content: ( localize(
|
|
1563
|
+
content: ( localize(5459, "Will resolve to {0}", `https://${value}.ghe.com`)),
|
|
1564
1564
|
severity: Severity.Info
|
|
1565
1565
|
};
|
|
1566
1566
|
}
|
|
1567
1567
|
if (!fullUriRegEx.test(value)) {
|
|
1568
1568
|
return {
|
|
1569
1569
|
content: ( localize(
|
|
1570
|
-
|
|
1570
|
+
5460,
|
|
1571
1571
|
'You must enter a valid {0} instance (i.e. "octocat" or "https://octocat.ghe.com")',
|
|
1572
1572
|
defaultChat.provider.enterprise.name
|
|
1573
1573
|
)),
|