@codingame/monaco-vscode-chat-service-override 14.0.3 → 14.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +24 -24
- 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/chatQuickInputActions.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +34 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +47 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputRelatedFilesContrib.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +17 -17
- 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/inlineChatController2.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +8 -8
|
@@ -104,7 +104,7 @@ var ChatEntitlement;
|
|
|
104
104
|
ChatEntitlement[ChatEntitlement["Pro"] = 6] = "Pro";
|
|
105
105
|
})(ChatEntitlement || (ChatEntitlement = {}));
|
|
106
106
|
const TRIGGER_SETUP_COMMAND_ID = 'workbench.action.chat.triggerSetup';
|
|
107
|
-
const TRIGGER_SETUP_COMMAND_LABEL = ( localize2(
|
|
107
|
+
const TRIGGER_SETUP_COMMAND_LABEL = ( localize2(4636, "Use AI Features with Copilot for Free..."));
|
|
108
108
|
let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
109
109
|
static { this.ID = 'workbench.chat.setup'; }
|
|
110
110
|
constructor(productService, instantiationService, environmentService, commandService, telemetryService, experimentService) {
|
|
@@ -132,7 +132,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
132
132
|
}
|
|
133
133
|
registerChatWelcome(controller, context) {
|
|
134
134
|
( Registry.as(ChatViewsWelcomeExtensions.ChatViewsWelcomeRegistry)).register({
|
|
135
|
-
title: ( localize(
|
|
135
|
+
title: ( localize(4637, "Welcome to Copilot")),
|
|
136
136
|
when: ChatContextKeys.SetupViewCondition,
|
|
137
137
|
icon: Codicon.copilotLarge,
|
|
138
138
|
content: disposables => disposables.add(this.instantiationService.createInstance(ChatSetupWelcomeContent, controller.value, context)).element,
|
|
@@ -169,7 +169,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
169
169
|
}
|
|
170
170
|
class ChatSetupHideAction extends Action2 {
|
|
171
171
|
static { this.ID = 'workbench.action.chat.hideSetup'; }
|
|
172
|
-
static { this.TITLE = ( localize2(
|
|
172
|
+
static { this.TITLE = ( localize2(4638, "Hide Copilot")); }
|
|
173
173
|
constructor() {
|
|
174
174
|
super({
|
|
175
175
|
id: ChatSetupHideAction.ID,
|
|
@@ -191,13 +191,13 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
191
191
|
const configurationService = accessor.get(IConfigurationService);
|
|
192
192
|
const dialogService = accessor.get(IDialogService);
|
|
193
193
|
const { confirmed } = await dialogService.confirm({
|
|
194
|
-
message: ( localize(
|
|
194
|
+
message: ( localize(4639, "Are you sure you want to hide Copilot?")),
|
|
195
195
|
detail: ( localize(
|
|
196
|
-
|
|
196
|
+
4640,
|
|
197
197
|
"You can restore Copilot by running the '{0}' command.",
|
|
198
198
|
TRIGGER_SETUP_COMMAND_LABEL.value
|
|
199
199
|
)),
|
|
200
|
-
primaryButton: ( localize(
|
|
200
|
+
primaryButton: ( localize(4641, "Hide Copilot"))
|
|
201
201
|
});
|
|
202
202
|
if (!confirmed) {
|
|
203
203
|
return;
|
|
@@ -211,8 +211,8 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
211
211
|
constructor() {
|
|
212
212
|
super({
|
|
213
213
|
id: 'workbench.action.chat.upgradePlan',
|
|
214
|
-
title: ( localize2(
|
|
215
|
-
category: ( localize2(
|
|
214
|
+
title: ( localize2(4642, "Upgrade to Copilot Pro")),
|
|
215
|
+
category: ( localize2(4643, 'Chat')),
|
|
216
216
|
f1: true,
|
|
217
217
|
precondition: ( ContextKeyExpr.or(ChatContextKeys.Setup.canSignUp, ChatContextKeys.Setup.limited)),
|
|
218
218
|
menu: {
|
|
@@ -286,13 +286,13 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
|
|
|
286
286
|
const defaultValue = value ?? (context.state.entitlement === ChatEntitlement.Limited ? 5 : 15);
|
|
287
287
|
const node = {
|
|
288
288
|
id: 'chatSidebar',
|
|
289
|
-
title: ( localize(
|
|
289
|
+
title: ( localize(4644, "Chat")),
|
|
290
290
|
type: 'object',
|
|
291
291
|
properties: {
|
|
292
292
|
'chat.agent.maxRequests': {
|
|
293
293
|
type: 'number',
|
|
294
294
|
description: ( localize(
|
|
295
|
-
|
|
295
|
+
4645,
|
|
296
296
|
"The maximum number of requests to allow Copilot Edits to use in agent mode."
|
|
297
297
|
)),
|
|
298
298
|
default: defaultValue,
|
|
@@ -537,7 +537,7 @@ let ChatSetupRequests = ChatSetupRequests_1 = class ChatSetupRequests extends Di
|
|
|
537
537
|
};
|
|
538
538
|
const response = await this.request(defaultChat.entitlementSignupLimitedUrl, 'POST', body, session, CancellationToken.None);
|
|
539
539
|
if (!response) {
|
|
540
|
-
const retry = await this.onUnknownSignUpError(( localize(
|
|
540
|
+
const retry = await this.onUnknownSignUpError(( localize(4646, "No response received.")), '[chat setup] sign-up: no response');
|
|
541
541
|
return retry ? this.signUpLimited(session) : { errorCode: 1 };
|
|
542
542
|
}
|
|
543
543
|
if (response.res.statusCode && response.res.statusCode !== 200) {
|
|
@@ -555,7 +555,7 @@ let ChatSetupRequests = ChatSetupRequests_1 = class ChatSetupRequests extends Di
|
|
|
555
555
|
catch (error) {
|
|
556
556
|
}
|
|
557
557
|
}
|
|
558
|
-
const retry = await this.onUnknownSignUpError(( localize(
|
|
558
|
+
const retry = await this.onUnknownSignUpError(( localize(4647, "Unexpected status code {0}.", response.res.statusCode)), `[chat setup] sign-up: unexpected status code ${response.res.statusCode}`);
|
|
559
559
|
return retry ? this.signUpLimited(session) : { errorCode: response.res.statusCode };
|
|
560
560
|
}
|
|
561
561
|
let responseText = null;
|
|
@@ -565,7 +565,7 @@ let ChatSetupRequests = ChatSetupRequests_1 = class ChatSetupRequests extends Di
|
|
|
565
565
|
catch (error) {
|
|
566
566
|
}
|
|
567
567
|
if (!responseText) {
|
|
568
|
-
const retry = await this.onUnknownSignUpError(( localize(
|
|
568
|
+
const retry = await this.onUnknownSignUpError(( localize(4648, "Response has no contents.")), '[chat setup] sign-up: response has no content');
|
|
569
569
|
return retry ? this.signUpLimited(session) : { errorCode: 2 };
|
|
570
570
|
}
|
|
571
571
|
let parsedResult = undefined;
|
|
@@ -574,7 +574,7 @@ let ChatSetupRequests = ChatSetupRequests_1 = class ChatSetupRequests extends Di
|
|
|
574
574
|
this.logService.trace(`[chat setup] sign-up: response is ${responseText}`);
|
|
575
575
|
}
|
|
576
576
|
catch (err) {
|
|
577
|
-
const retry = await this.onUnknownSignUpError(( localize(
|
|
577
|
+
const retry = await this.onUnknownSignUpError(( localize(4649, "Invalid response contents.")), `[chat setup] sign-up: error parsing response (${err})`);
|
|
578
578
|
return retry ? this.signUpLimited(session) : { errorCode: 3 };
|
|
579
579
|
}
|
|
580
580
|
this.update({ entitlement: ChatEntitlement.Limited });
|
|
@@ -585,11 +585,11 @@ let ChatSetupRequests = ChatSetupRequests_1 = class ChatSetupRequests extends Di
|
|
|
585
585
|
const { confirmed } = await this.dialogService.confirm({
|
|
586
586
|
type: Severity.Error,
|
|
587
587
|
message: ( localize(
|
|
588
|
-
|
|
588
|
+
4650,
|
|
589
589
|
"An error occurred while signing up for Copilot Free. Would you like to try again?"
|
|
590
590
|
)),
|
|
591
591
|
detail,
|
|
592
|
-
primaryButton: ( localize(
|
|
592
|
+
primaryButton: ( localize(4651, "Retry"))
|
|
593
593
|
});
|
|
594
594
|
return confirmed;
|
|
595
595
|
}
|
|
@@ -597,15 +597,15 @@ let ChatSetupRequests = ChatSetupRequests_1 = class ChatSetupRequests extends Di
|
|
|
597
597
|
this.logService.error(logMessage);
|
|
598
598
|
this.dialogService.prompt({
|
|
599
599
|
type: Severity.Error,
|
|
600
|
-
message: ( localize(
|
|
600
|
+
message: ( localize(4652, "An error occurred while signing up for Copilot Free.")),
|
|
601
601
|
detail: logDetails,
|
|
602
602
|
buttons: [
|
|
603
603
|
{
|
|
604
|
-
label: ( localize(
|
|
604
|
+
label: ( localize(4653, "OK")),
|
|
605
605
|
run: () => { }
|
|
606
606
|
},
|
|
607
607
|
{
|
|
608
|
-
label: ( localize(
|
|
608
|
+
label: ( localize(4654, "Learn More")),
|
|
609
609
|
run: () => this.openerService.open(( URI.parse(defaultChat.upgradePlanUrl)))
|
|
610
610
|
}
|
|
611
611
|
]
|
|
@@ -673,7 +673,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
673
673
|
}
|
|
674
674
|
async setup(options) {
|
|
675
675
|
const watch = ( new StopWatch(false));
|
|
676
|
-
const title = ( localize(
|
|
676
|
+
const title = ( localize(4655, "Getting Copilot ready..."));
|
|
677
677
|
const badge = this.activityService.showViewContainerActivity(preferCopilotEditsView(this.viewsService) ? CHAT_EDITING_SIDEBAR_PANEL_ID : CHAT_SIDEBAR_PANEL_ID, {
|
|
678
678
|
badge: ( new ProgressBadge(() => title)),
|
|
679
679
|
});
|
|
@@ -706,7 +706,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
706
706
|
entitlement = result.entitlement;
|
|
707
707
|
}
|
|
708
708
|
const trusted = await this.workspaceTrustRequestService.requestWorkspaceTrust({
|
|
709
|
-
message: ( localize(
|
|
709
|
+
message: ( localize(4656, "Copilot is currently only supported in trusted workspaces."))
|
|
710
710
|
});
|
|
711
711
|
if (!trusted) {
|
|
712
712
|
this.telemetryService.publicLog2('commandCenter.chatInstall', { installResult: 'failedNotTrusted', installDuration: watch.elapsed(), signUpErrorCode: undefined });
|
|
@@ -743,12 +743,12 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
743
743
|
const { confirmed } = await this.dialogService.confirm({
|
|
744
744
|
type: Severity.Error,
|
|
745
745
|
message: ( localize(
|
|
746
|
-
|
|
746
|
+
4657,
|
|
747
747
|
"Failed to sign in to {0}. Would you like to try again?",
|
|
748
748
|
ChatSetupRequests.providerId(this.configurationService) === defaultChat.enterpriseProviderId ? defaultChat.enterpriseProviderName : defaultChat.providerName
|
|
749
749
|
)),
|
|
750
|
-
detail: ( localize(
|
|
751
|
-
primaryButton: ( localize(
|
|
750
|
+
detail: ( localize(4658, "You must be signed in to use Copilot.")),
|
|
751
|
+
primaryButton: ( localize(4651, "Retry"))
|
|
752
752
|
});
|
|
753
753
|
if (confirmed) {
|
|
754
754
|
return this.signIn(providerId);
|
|
@@ -817,11 +817,11 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
817
817
|
const { confirmed } = await this.dialogService.confirm({
|
|
818
818
|
type: Severity.Error,
|
|
819
819
|
message: ( localize(
|
|
820
|
-
|
|
820
|
+
4659,
|
|
821
821
|
"An error occurred while setting up Copilot. Would you like to try again?"
|
|
822
822
|
)),
|
|
823
823
|
detail: error && !isCancellationError(error) ? toErrorMessage(error) : undefined,
|
|
824
|
-
primaryButton: ( localize(
|
|
824
|
+
primaryButton: ( localize(4651, "Retry"))
|
|
825
825
|
});
|
|
826
826
|
if (confirmed) {
|
|
827
827
|
return this.doInstall();
|
|
@@ -867,7 +867,7 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
867
867
|
const markdown = this.instantiationService.createInstance(MarkdownRenderer, {});
|
|
868
868
|
{
|
|
869
869
|
const header = ( localize(
|
|
870
|
-
|
|
870
|
+
4660,
|
|
871
871
|
"[Copilot]({0}) is your AI pair programmer.",
|
|
872
872
|
this.context.state.installed ? 'command:github.copilot.open.walkthrough' : defaultChat.documentationUrl
|
|
873
873
|
));
|
|
@@ -879,18 +879,18 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
879
879
|
const featureChatContainer = featuresContainer.appendChild($('div.chat-feature-container'));
|
|
880
880
|
featureChatContainer.appendChild(renderIcon(Codicon.code));
|
|
881
881
|
const featureChatLabel = featureChatContainer.appendChild($('span'));
|
|
882
|
-
featureChatLabel.textContent = ( localize(
|
|
882
|
+
featureChatLabel.textContent = ( localize(4661, "Code faster with Completions"));
|
|
883
883
|
const featureEditsContainer = featuresContainer.appendChild($('div.chat-feature-container'));
|
|
884
884
|
featureEditsContainer.appendChild(renderIcon(Codicon.editSession));
|
|
885
885
|
const featureEditsLabel = featureEditsContainer.appendChild($('span'));
|
|
886
|
-
featureEditsLabel.textContent = ( localize(
|
|
886
|
+
featureEditsLabel.textContent = ( localize(4662, "Build features with Copilot Edits"));
|
|
887
887
|
const featureExploreContainer = featuresContainer.appendChild($('div.chat-feature-container'));
|
|
888
888
|
featureExploreContainer.appendChild(renderIcon(Codicon.commentDiscussion));
|
|
889
889
|
const featureExploreLabel = featureExploreContainer.appendChild($('span'));
|
|
890
|
-
featureExploreLabel.textContent = ( localize(
|
|
890
|
+
featureExploreLabel.textContent = ( localize(4663, "Explore your codebase with Chat"));
|
|
891
891
|
}
|
|
892
892
|
const free = ( localize(
|
|
893
|
-
|
|
893
|
+
4664,
|
|
894
894
|
"$(sparkle-filled) We now offer [Copilot for free]({0}).",
|
|
895
895
|
defaultChat.skusDocumentationUrl
|
|
896
896
|
));
|
|
@@ -900,8 +900,8 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
900
900
|
buttonContainer.classList.add('button-container');
|
|
901
901
|
const button = this._register(( new ButtonWithDropdown(buttonContainer, {
|
|
902
902
|
actions: [
|
|
903
|
-
toAction({ id: 'chatSetup.setupWithProvider', label: ( localize(
|
|
904
|
-
toAction({ id: 'chatSetup.setupWithEnterpriseProvider', label: ( localize(
|
|
903
|
+
toAction({ id: 'chatSetup.setupWithProvider', label: ( localize(4665, "Sign in with a {0} Account", defaultChat.providerName)), run: () => this.setupWithProvider(false) }),
|
|
904
|
+
toAction({ id: 'chatSetup.setupWithEnterpriseProvider', label: ( localize(4666, "Sign in with a {0} Account", defaultChat.enterpriseProviderName)), run: () => this.setupWithProvider(true) })
|
|
905
905
|
],
|
|
906
906
|
addPrimaryActionToDropdown: false,
|
|
907
907
|
contextMenuProvider: this.contextMenuService,
|
|
@@ -910,14 +910,14 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
910
910
|
})));
|
|
911
911
|
this._register(button.onDidClick(() => this.controller.setup()));
|
|
912
912
|
const terms = ( localize(
|
|
913
|
-
|
|
913
|
+
4667,
|
|
914
914
|
"By continuing, you agree to the [Terms]({0}) and [Privacy Policy]({1}).",
|
|
915
915
|
defaultChat.termsStatementUrl,
|
|
916
916
|
defaultChat.privacyStatementUrl
|
|
917
917
|
));
|
|
918
918
|
this.element.appendChild($('p')).appendChild(this._register(markdown.render(( new MarkdownString(terms, { isTrusted: true })))).element);
|
|
919
919
|
const settings = ( localize(
|
|
920
|
-
|
|
920
|
+
4668,
|
|
921
921
|
"Copilot Free and Pro may show [public code]({0}) suggestions and we may use your data for product improvement. You can change these [settings]({1}) at any time.",
|
|
922
922
|
defaultChat.publicCodeMatchesUrl,
|
|
923
923
|
defaultChat.manageSettingsUrl
|
|
@@ -933,33 +933,33 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
933
933
|
switch (this.context.state.entitlement) {
|
|
934
934
|
case ChatEntitlement.Unknown:
|
|
935
935
|
showFree = true;
|
|
936
|
-
buttonLabel = this.context.state.registered ? ( localize(
|
|
936
|
+
buttonLabel = this.context.state.registered ? ( localize(4669, "Sign in to Use Copilot")) : ( localize(4670, "Sign in to Use Copilot for Free"));
|
|
937
937
|
break;
|
|
938
938
|
case ChatEntitlement.Unresolved:
|
|
939
939
|
showFree = true;
|
|
940
|
-
buttonLabel = this.context.state.registered ? ( localize(
|
|
940
|
+
buttonLabel = this.context.state.registered ? ( localize(4671, "Use Copilot")) : ( localize(4672, "Use Copilot for Free"));
|
|
941
941
|
break;
|
|
942
942
|
case ChatEntitlement.Available:
|
|
943
943
|
case ChatEntitlement.Limited:
|
|
944
944
|
showFree = true;
|
|
945
|
-
buttonLabel = ( localize(
|
|
945
|
+
buttonLabel = ( localize(4672, "Use Copilot for Free"));
|
|
946
946
|
break;
|
|
947
947
|
case ChatEntitlement.Pro:
|
|
948
948
|
case ChatEntitlement.Unavailable:
|
|
949
949
|
showFree = false;
|
|
950
|
-
buttonLabel = ( localize(
|
|
950
|
+
buttonLabel = ( localize(4671, "Use Copilot"));
|
|
951
951
|
break;
|
|
952
952
|
}
|
|
953
953
|
switch (this.controller.step) {
|
|
954
954
|
case ChatSetupStep.SigningIn:
|
|
955
955
|
buttonLabel = ( localize(
|
|
956
|
-
|
|
956
|
+
4673,
|
|
957
957
|
"$(loading~spin) Signing in to {0}...",
|
|
958
958
|
ChatSetupRequests.providerId(this.configurationService) === defaultChat.enterpriseProviderId ? defaultChat.enterpriseProviderName : defaultChat.providerName
|
|
959
959
|
));
|
|
960
960
|
break;
|
|
961
961
|
case ChatSetupStep.Installing:
|
|
962
|
-
buttonLabel = ( localize(
|
|
962
|
+
buttonLabel = ( localize(4674, "$(loading~spin) Getting Copilot Ready..."));
|
|
963
963
|
break;
|
|
964
964
|
}
|
|
965
965
|
setVisibility(showFree, freeContainer);
|
|
@@ -1001,8 +1001,8 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
1001
1001
|
}
|
|
1002
1002
|
let isSingleWord = false;
|
|
1003
1003
|
const result = await this.quickInputService.input({
|
|
1004
|
-
prompt: ( localize(
|
|
1005
|
-
placeHolder: ( localize(
|
|
1004
|
+
prompt: ( localize(4675, "What is your {0} instance?", defaultChat.enterpriseProviderName)),
|
|
1005
|
+
placeHolder: ( localize(4676, 'i.e. "octocat" or "https://octocat.ghe.com"...')),
|
|
1006
1006
|
validateInput: async (value) => {
|
|
1007
1007
|
isSingleWord = false;
|
|
1008
1008
|
if (!value) {
|
|
@@ -1011,7 +1011,7 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
1011
1011
|
if (/^[a-zA-Z\-_]+$/.test(value)) {
|
|
1012
1012
|
isSingleWord = true;
|
|
1013
1013
|
return {
|
|
1014
|
-
content: ( localize(
|
|
1014
|
+
content: ( localize(4677, "Will resolve to {0}", `https://${value}.ghe.com`)),
|
|
1015
1015
|
severity: Severity.Info
|
|
1016
1016
|
};
|
|
1017
1017
|
}
|
|
@@ -1020,7 +1020,7 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
1020
1020
|
if (!regex.test(value)) {
|
|
1021
1021
|
return {
|
|
1022
1022
|
content: ( localize(
|
|
1023
|
-
|
|
1023
|
+
4678,
|
|
1024
1024
|
'Please enter a valid {0} instance (i.e. "octocat" or "https://octocat.ghe.com")',
|
|
1025
1025
|
defaultChat.enterpriseProviderName
|
|
1026
1026
|
)),
|
|
@@ -1035,11 +1035,11 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
1035
1035
|
const { confirmed } = await this.dialogService.confirm({
|
|
1036
1036
|
type: Severity.Error,
|
|
1037
1037
|
message: ( localize(
|
|
1038
|
-
|
|
1038
|
+
4679,
|
|
1039
1039
|
"The provided {0} instance is invalid. Would you like to enter it again?",
|
|
1040
1040
|
defaultChat.enterpriseProviderName
|
|
1041
1041
|
)),
|
|
1042
|
-
primaryButton: ( localize(
|
|
1042
|
+
primaryButton: ( localize(4651, "Retry"))
|
|
1043
1043
|
});
|
|
1044
1044
|
if (confirmed) {
|
|
1045
1045
|
return this.handleEnterpriseInstance();
|
|
@@ -58,7 +58,7 @@ let ChatAgentHoverParticipant = class ChatAgentHoverParticipant {
|
|
|
58
58
|
return ( new RenderedHoverParts([renderedHoverPart]));
|
|
59
59
|
}
|
|
60
60
|
getAccessibleContent(hoverPart) {
|
|
61
|
-
return localize(
|
|
61
|
+
return localize(4703, 'There is a chat agent hover part here.');
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
64
|
ChatAgentHoverParticipant = ( __decorate([
|
package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputRelatedFilesContrib.js
CHANGED
|
@@ -71,7 +71,7 @@ let ChatRelatedFilesContribution = class ChatRelatedFilesContribution extends Di
|
|
|
71
71
|
}
|
|
72
72
|
currentEditingSession?.remove(WorkingSetEntryRemovalReason.Programmatic, ...existingSuggestedEntriesToRemove);
|
|
73
73
|
for (const [uri, data] of newSuggestions) {
|
|
74
|
-
currentEditingSession.addFileToWorkingSet(uri, ( localize(
|
|
74
|
+
currentEditingSession.addFileToWorkingSet(uri, ( localize(4704, "{0} (Suggested)", data.description)), WorkingSetEntryState.Suggested);
|
|
75
75
|
}
|
|
76
76
|
})
|
|
77
77
|
.finally(() => {
|
|
@@ -137,7 +137,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
137
137
|
const prepared = tool.impl.prepareToolInvocation ?
|
|
138
138
|
await tool.impl.prepareToolInvocation(dto.parameters, token)
|
|
139
139
|
: undefined;
|
|
140
|
-
const defaultMessage = ( localize(
|
|
140
|
+
const defaultMessage = ( localize(4706, "Using {0}", `"${tool.data.displayName}"`));
|
|
141
141
|
const invocationMessage = prepared?.invocationMessage ?? defaultMessage;
|
|
142
142
|
if (tool.data.id !== 'vscode_editFile') {
|
|
143
143
|
toolInvocation = ( new ChatToolInvocation(
|
package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js
CHANGED
|
@@ -13,7 +13,7 @@ import { ChatViewsWelcomeExtensions } from '@codingame/monaco-vscode-c465110a-57
|
|
|
13
13
|
const chatViewsWelcomeExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
14
14
|
extensionPoint: 'chatViewsWelcome',
|
|
15
15
|
jsonSchema: {
|
|
16
|
-
description: ( localize(
|
|
16
|
+
description: ( localize(4710, 'Contributes a welcome message to a chat view')),
|
|
17
17
|
type: 'array',
|
|
18
18
|
items: {
|
|
19
19
|
additionalProperties: false,
|
|
@@ -21,22 +21,22 @@ const chatViewsWelcomeExtensionPoint = ExtensionsRegistry.registerExtensionPoint
|
|
|
21
21
|
properties: {
|
|
22
22
|
icon: {
|
|
23
23
|
type: 'string',
|
|
24
|
-
description: ( localize(
|
|
24
|
+
description: ( localize(4711, 'The icon for the welcome message.')),
|
|
25
25
|
},
|
|
26
26
|
title: {
|
|
27
27
|
type: 'string',
|
|
28
|
-
description: ( localize(
|
|
28
|
+
description: ( localize(4712, 'The title of the welcome message.')),
|
|
29
29
|
},
|
|
30
30
|
content: {
|
|
31
31
|
type: 'string',
|
|
32
32
|
description: ( localize(
|
|
33
|
-
|
|
33
|
+
4713,
|
|
34
34
|
'The content of the welcome message. The first command link will be rendered as a button.'
|
|
35
35
|
)),
|
|
36
36
|
},
|
|
37
37
|
when: {
|
|
38
38
|
type: 'string',
|
|
39
|
-
description: ( localize(
|
|
39
|
+
description: ( localize(4714, 'Condition when the welcome message is shown.')),
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
},
|
|
@@ -256,7 +256,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
256
256
|
const liveSessionItems = ( Array.from(( this._sessionModels.values()))
|
|
257
257
|
.filter(session => !session.isImported && session.initialLocation !== ChatAgentLocation.EditingSession)
|
|
258
258
|
.map(session => {
|
|
259
|
-
const title = session.title || ( localize(
|
|
259
|
+
const title = session.title || ( localize(4758, "New Chat"));
|
|
260
260
|
return {
|
|
261
261
|
sessionId: session.sessionId,
|
|
262
262
|
title,
|
|
@@ -569,7 +569,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
569
569
|
else {
|
|
570
570
|
if (!rawResult) {
|
|
571
571
|
this.trace('sendRequest', `Provider returned no response for session ${model.sessionId}`);
|
|
572
|
-
rawResult = { errorDetails: { message: ( localize(
|
|
572
|
+
rawResult = { errorDetails: { message: ( localize(4759, "Provider returned null response")) } };
|
|
573
573
|
}
|
|
574
574
|
const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
|
|
575
575
|
rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
|
|
@@ -24,7 +24,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
24
24
|
},
|
|
25
25
|
jsonSchema: {
|
|
26
26
|
description: ( localize(
|
|
27
|
-
|
|
27
|
+
4774,
|
|
28
28
|
'Contributes a tool that can be invoked by a language model in a chat session, or from a standalone command. Registered tools can be used by all extensions.'
|
|
29
29
|
)),
|
|
30
30
|
type: 'array',
|
|
@@ -50,7 +50,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
50
50
|
properties: {
|
|
51
51
|
name: {
|
|
52
52
|
description: ( localize(
|
|
53
|
-
|
|
53
|
+
4775,
|
|
54
54
|
"A unique name for this tool. This name must be a globally unique identifier, and is also used as a name when presenting this tool to a language model."
|
|
55
55
|
)),
|
|
56
56
|
type: 'string',
|
|
@@ -58,7 +58,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
58
58
|
},
|
|
59
59
|
toolReferenceName: {
|
|
60
60
|
markdownDescription: ( localize(
|
|
61
|
-
|
|
61
|
+
4776,
|
|
62
62
|
"If {0} is enabled for this tool, the user may use '#' with this name to invoke the tool in a query. Otherwise, the name is not required. Name must not contain whitespace.",
|
|
63
63
|
'`canBeReferencedInPrompt`'
|
|
64
64
|
)),
|
|
@@ -67,32 +67,32 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
67
67
|
},
|
|
68
68
|
displayName: {
|
|
69
69
|
description: ( localize(
|
|
70
|
-
|
|
70
|
+
4777,
|
|
71
71
|
"A human-readable name for this tool that may be used to describe it in the UI."
|
|
72
72
|
)),
|
|
73
73
|
type: 'string'
|
|
74
74
|
},
|
|
75
75
|
userDescription: {
|
|
76
|
-
description: ( localize(
|
|
76
|
+
description: ( localize(4778, "A description of this tool that may be shown to the user.")),
|
|
77
77
|
type: 'string'
|
|
78
78
|
},
|
|
79
79
|
modelDescription: {
|
|
80
80
|
description: ( localize(
|
|
81
|
-
|
|
81
|
+
4779,
|
|
82
82
|
"A description of this tool that may be used by a language model to select it."
|
|
83
83
|
)),
|
|
84
84
|
type: 'string'
|
|
85
85
|
},
|
|
86
86
|
inputSchema: {
|
|
87
87
|
description: ( localize(
|
|
88
|
-
|
|
88
|
+
4780,
|
|
89
89
|
"A JSON schema for the input this tool accepts. The input must be an object at the top level. A particular language model may not support all JSON schema features. See the documentation for the language model family you are using for more information."
|
|
90
90
|
)),
|
|
91
91
|
$ref: toolsParametersSchemaSchemaId
|
|
92
92
|
},
|
|
93
93
|
canBeReferencedInPrompt: {
|
|
94
94
|
markdownDescription: ( localize(
|
|
95
|
-
|
|
95
|
+
4781,
|
|
96
96
|
"If true, this tool shows up as an attachment that the user can add manually to their request. Chat participants will receive the tool in {0}.",
|
|
97
97
|
'`ChatRequest#toolReferences`'
|
|
98
98
|
)),
|
|
@@ -100,7 +100,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
100
100
|
},
|
|
101
101
|
icon: {
|
|
102
102
|
markdownDescription: ( localize(
|
|
103
|
-
|
|
103
|
+
4782,
|
|
104
104
|
"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)`"
|
|
105
105
|
)),
|
|
106
106
|
anyOf: [{
|
|
@@ -110,11 +110,11 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
110
110
|
type: 'object',
|
|
111
111
|
properties: {
|
|
112
112
|
light: {
|
|
113
|
-
description: ( localize(
|
|
113
|
+
description: ( localize(4783, 'Icon path when a light theme is used')),
|
|
114
114
|
type: 'string'
|
|
115
115
|
},
|
|
116
116
|
dark: {
|
|
117
|
-
description: ( localize(
|
|
117
|
+
description: ( localize(4784, 'Icon path when a dark theme is used')),
|
|
118
118
|
type: 'string'
|
|
119
119
|
}
|
|
120
120
|
}
|
|
@@ -122,14 +122,14 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
122
122
|
},
|
|
123
123
|
when: {
|
|
124
124
|
markdownDescription: ( localize(
|
|
125
|
-
|
|
125
|
+
4785,
|
|
126
126
|
"Condition which must be true for this tool to be enabled. Note that a tool may still be invoked by another extension even when its `when` condition is false."
|
|
127
127
|
)),
|
|
128
128
|
type: 'string'
|
|
129
129
|
},
|
|
130
130
|
tags: {
|
|
131
131
|
description: ( localize(
|
|
132
|
-
|
|
132
|
+
4786,
|
|
133
133
|
"A set of tags that roughly describe the tool's capabilities. A tool user may use these to filter the set of tools to just ones that are relevant for the task at hand, or they may want to pick a tag that can be used to identify just the tools contributed by this extension."
|
|
134
134
|
)),
|
|
135
135
|
type: 'array',
|
|
@@ -224,9 +224,9 @@ class LanguageModelToolDataRenderer extends Disposable {
|
|
|
224
224
|
return { data: { headers: [], rows: [] }, dispose: () => { } };
|
|
225
225
|
}
|
|
226
226
|
const headers = [
|
|
227
|
-
( localize(
|
|
228
|
-
( localize(
|
|
229
|
-
( localize(
|
|
227
|
+
( localize(4787, "Name")),
|
|
228
|
+
( localize(4788, "Display Name")),
|
|
229
|
+
( localize(4789, "Description")),
|
|
230
230
|
];
|
|
231
231
|
const rows = ( contribs.map(t => {
|
|
232
232
|
return [
|
|
@@ -246,7 +246,7 @@ class LanguageModelToolDataRenderer extends Disposable {
|
|
|
246
246
|
}
|
|
247
247
|
( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
248
248
|
id: 'languageModelTools',
|
|
249
|
-
label: ( localize(
|
|
249
|
+
label: ( localize(4790, "Language Model Tools")),
|
|
250
250
|
access: {
|
|
251
251
|
canToggle: false
|
|
252
252
|
},
|
|
@@ -21,7 +21,7 @@ var PhraseTextType;
|
|
|
21
21
|
const VoiceChatInProgress = ( new RawContextKey(
|
|
22
22
|
'voiceChatInProgress',
|
|
23
23
|
false,
|
|
24
|
-
{ type: 'boolean', description: ( localize(
|
|
24
|
+
{ type: 'boolean', description: ( localize(4791, "A speech-to-text session is in progress for chat.")) }
|
|
25
25
|
));
|
|
26
26
|
let VoiceChatService = class VoiceChatService extends Disposable {
|
|
27
27
|
static { VoiceChatService_1 = this; }
|
|
@@ -34,7 +34,7 @@ const editActionMenuItem = {
|
|
|
34
34
|
order: 0,
|
|
35
35
|
command: {
|
|
36
36
|
id: ChatSubmitAction.ID,
|
|
37
|
-
title: ( localize(
|
|
37
|
+
title: ( localize(6905, "Edit Code")),
|
|
38
38
|
},
|
|
39
39
|
when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), CTX_INLINE_CHAT_EDITING)),
|
|
40
40
|
};
|
|
@@ -43,7 +43,7 @@ const generateActionMenuItem = {
|
|
|
43
43
|
order: 0,
|
|
44
44
|
command: {
|
|
45
45
|
id: ChatSubmitAction.ID,
|
|
46
|
-
title: ( localize(
|
|
46
|
+
title: ( localize(6906, "Generate")),
|
|
47
47
|
},
|
|
48
48
|
when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), ( CTX_INLINE_CHAT_EDITING.toNegated()))),
|
|
49
49
|
};
|
|
@@ -54,8 +54,8 @@ const cancelActionMenuItem = {
|
|
|
54
54
|
order: 0,
|
|
55
55
|
command: {
|
|
56
56
|
id: CancelAction.ID,
|
|
57
|
-
title: ( localize(
|
|
58
|
-
shortTitle: ( localize(
|
|
57
|
+
title: ( localize(6907, "Cancel Request")),
|
|
58
|
+
shortTitle: ( localize(6908, "Cancel")),
|
|
59
59
|
},
|
|
60
60
|
when: ( ContextKeyExpr.and(CTX_INLINE_CHAT_REQUEST_IN_PROGRESS)),
|
|
61
61
|
};
|
|
@@ -38,7 +38,7 @@ import { IInlineChatSessionService } from '@codingame/monaco-vscode-api/vscode/v
|
|
|
38
38
|
import { InlineChatZoneWidget } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget';
|
|
39
39
|
|
|
40
40
|
var InlineChatController2_1;
|
|
41
|
-
const CTX_HAS_SESSION = ( new RawContextKey('inlineChatHasSession', undefined, ( localize(
|
|
41
|
+
const CTX_HAS_SESSION = ( new RawContextKey('inlineChatHasSession', undefined, ( localize(6932, "The current editor has an active inline chat session"))));
|
|
42
42
|
let InlineChatController2 = class InlineChatController2 {
|
|
43
43
|
static { InlineChatController2_1 = this; }
|
|
44
44
|
static { this.ID = 'editor.contrib.inlineChatController2'; }
|
|
@@ -191,7 +191,7 @@ class StartSessionAction2 extends EditorAction2 {
|
|
|
191
191
|
constructor() {
|
|
192
192
|
super({
|
|
193
193
|
id: 'inlineChat2.start',
|
|
194
|
-
title: ( localize2(
|
|
194
|
+
title: ( localize2(6933, "Inline Chat")),
|
|
195
195
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_HAS_AGENT2, CTX_INLINE_CHAT_POSSIBLE, ( CTX_HAS_SESSION.negate()), EditorContextKeys.writable, ( EditorContextKeys.editorSimpleInput.negate()))),
|
|
196
196
|
f1: true,
|
|
197
197
|
category: AbstractInlineChatAction.category,
|
|
@@ -219,7 +219,7 @@ class StartSessionAction2 extends EditorAction2 {
|
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
class AbstractInlineChatAction extends EditorAction2 {
|
|
222
|
-
static { this.category = ( localize2(
|
|
222
|
+
static { this.category = ( localize2(6934, "Inline Chat")); }
|
|
223
223
|
constructor(desc) {
|
|
224
224
|
super({
|
|
225
225
|
...desc,
|
|
@@ -265,7 +265,7 @@ class StopSessionAction2 extends AbstractInlineChatAction {
|
|
|
265
265
|
constructor() {
|
|
266
266
|
super({
|
|
267
267
|
id: 'inlineChat2.stop',
|
|
268
|
-
title: ( localize2(
|
|
268
|
+
title: ( localize2(6935, "Stop")),
|
|
269
269
|
f1: true,
|
|
270
270
|
precondition: ( ContextKeyExpr.and(( CTX_HAS_SESSION.isEqualTo('empty')), CTX_INLINE_CHAT_VISIBLE)),
|
|
271
271
|
keybinding: {
|
|
@@ -288,7 +288,7 @@ class RevealWidget extends AbstractInlineChatAction {
|
|
|
288
288
|
constructor() {
|
|
289
289
|
super({
|
|
290
290
|
id: 'inlineChat2.reveal',
|
|
291
|
-
title: ( localize2(
|
|
291
|
+
title: ( localize2(6936, "Toggle Inline Chat")),
|
|
292
292
|
f1: true,
|
|
293
293
|
icon: Codicon.copilot,
|
|
294
294
|
precondition: ( ContextKeyExpr.and(CTX_HAS_SESSION)),
|