@codingame/monaco-vscode-chat-service-override 13.0.0 → 13.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 +20 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +20 -20
- 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 +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingService.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +29 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +29 -29
- 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 +13 -13
- 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/inlineChatCurrentLine.js +8 -8
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSavingServiceImpl.js +6 -6
|
@@ -45,7 +45,7 @@ import { IActivityService } from '@codingame/monaco-vscode-api/vscode/vs/workben
|
|
|
45
45
|
import { IAuthenticationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/common/authentication.service';
|
|
46
46
|
import { IWorkbenchExtensionEnablementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service';
|
|
47
47
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
48
|
-
import { Parts } from '@codingame/monaco-vscode-
|
|
48
|
+
import { Parts } from '@codingame/monaco-vscode-e7080bda-ce3e-5243-9a35-98cd9634dbda-common/vscode/vs/workbench/services/layout/browser/layoutService';
|
|
49
49
|
import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
|
|
50
50
|
import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
|
|
51
51
|
import { IExtensionsWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service';
|
|
@@ -89,7 +89,7 @@ var ChatEntitlement;
|
|
|
89
89
|
ChatEntitlement[ChatEntitlement["Pro"] = 6] = "Pro";
|
|
90
90
|
})(ChatEntitlement || (ChatEntitlement = {}));
|
|
91
91
|
const TRIGGER_SETUP_COMMAND_ID = 'workbench.action.chat.triggerSetup';
|
|
92
|
-
const TRIGGER_SETUP_COMMAND_LABEL = ( localize2(
|
|
92
|
+
const TRIGGER_SETUP_COMMAND_LABEL = ( localize2(4538, "Use AI Features with Copilot for Free..."));
|
|
93
93
|
const SetupWelcomeViewKeys = ( new Set(
|
|
94
94
|
[ChatContextKeys.Setup.triggered.key, ChatContextKeys.Setup.installed.key, ChatContextKeys.Setup.signedOut.key, ChatContextKeys.Setup.canSignUp.key]
|
|
95
95
|
));
|
|
@@ -113,7 +113,7 @@ const SetupWelcomeViewCondition = ( ContextKeyExpr.and(( ContextKeyExpr.has('con
|
|
|
113
113
|
}
|
|
114
114
|
registerChatWelcome() {
|
|
115
115
|
( Registry.as(ChatViewsWelcomeExtensions.ChatViewsWelcomeRegistry)).register({
|
|
116
|
-
title: ( localize(
|
|
116
|
+
title: ( localize(4539, "Welcome to Copilot")),
|
|
117
117
|
when: SetupWelcomeViewCondition,
|
|
118
118
|
icon: Codicon.copilotLarge,
|
|
119
119
|
content: disposables => disposables.add(this.instantiationService.createInstance(ChatSetupWelcomeContent, this.controller.value, this.context)).element,
|
|
@@ -154,7 +154,7 @@ const SetupWelcomeViewCondition = ( ContextKeyExpr.and(( ContextKeyExpr.has('con
|
|
|
154
154
|
}
|
|
155
155
|
class ChatSetupHideAction extends Action2 {
|
|
156
156
|
static { this.ID = 'workbench.action.chat.hideSetup'; }
|
|
157
|
-
static { this.TITLE = ( localize2(
|
|
157
|
+
static { this.TITLE = ( localize2(4540, "Hide Copilot")); }
|
|
158
158
|
constructor() {
|
|
159
159
|
super({
|
|
160
160
|
id: ChatSetupHideAction.ID,
|
|
@@ -176,13 +176,13 @@ const SetupWelcomeViewCondition = ( ContextKeyExpr.and(( ContextKeyExpr.has('con
|
|
|
176
176
|
const configurationService = accessor.get(IConfigurationService);
|
|
177
177
|
const dialogService = accessor.get(IDialogService);
|
|
178
178
|
const { confirmed } = await dialogService.confirm({
|
|
179
|
-
message: ( localize(
|
|
179
|
+
message: ( localize(4541, "Are you sure you want to hide Copilot?")),
|
|
180
180
|
detail: ( localize(
|
|
181
|
-
|
|
181
|
+
4542,
|
|
182
182
|
"You can restore Copilot by running the '{0}' command.",
|
|
183
183
|
TRIGGER_SETUP_COMMAND_LABEL.value
|
|
184
184
|
)),
|
|
185
|
-
primaryButton: ( localize(
|
|
185
|
+
primaryButton: ( localize(4543, "Hide Copilot"))
|
|
186
186
|
});
|
|
187
187
|
if (!confirmed) {
|
|
188
188
|
return;
|
|
@@ -196,8 +196,8 @@ const SetupWelcomeViewCondition = ( ContextKeyExpr.and(( ContextKeyExpr.has('con
|
|
|
196
196
|
constructor() {
|
|
197
197
|
super({
|
|
198
198
|
id: 'workbench.action.chat.upgradePlan',
|
|
199
|
-
title: ( localize2(
|
|
200
|
-
category: ( localize2(
|
|
199
|
+
title: ( localize2(4544, "Upgrade to Copilot Pro")),
|
|
200
|
+
category: ( localize2(4545, 'Chat')),
|
|
201
201
|
f1: true,
|
|
202
202
|
precondition: ChatContextKeys.enabled,
|
|
203
203
|
menu: {
|
|
@@ -514,21 +514,21 @@ let ChatSetupRequests = class ChatSetupRequests extends Disposable {
|
|
|
514
514
|
return subscribed;
|
|
515
515
|
}
|
|
516
516
|
onUnknownSignUpError(logMessage) {
|
|
517
|
-
this.dialogService.error(( localize(
|
|
517
|
+
this.dialogService.error(( localize(4546, "An error occurred while signing up for Copilot Free.")), ( localize(4547, "Please try again.")));
|
|
518
518
|
this.logService.error(logMessage);
|
|
519
519
|
}
|
|
520
520
|
onUnprocessableSignUpError(logMessage, logDetails) {
|
|
521
521
|
this.dialogService.prompt({
|
|
522
522
|
type: Severity.Error,
|
|
523
|
-
message: ( localize(
|
|
523
|
+
message: ( localize(4548, "An error occurred while signing up for Copilot Free.")),
|
|
524
524
|
detail: logDetails,
|
|
525
525
|
buttons: [
|
|
526
526
|
{
|
|
527
|
-
label: ( localize(
|
|
527
|
+
label: ( localize(4549, "OK")),
|
|
528
528
|
run: () => { }
|
|
529
529
|
},
|
|
530
530
|
{
|
|
531
|
-
label: ( localize(
|
|
531
|
+
label: ( localize(4550, "Learn More")),
|
|
532
532
|
run: () => this.openerService.open(( URI.parse(defaultChat.upgradePlanUrl)))
|
|
533
533
|
}
|
|
534
534
|
],
|
|
@@ -591,7 +591,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
|
|
|
591
591
|
this._onDidChange.fire();
|
|
592
592
|
}
|
|
593
593
|
async setup() {
|
|
594
|
-
const title = ( localize(
|
|
594
|
+
const title = ( localize(4551, "Getting Copilot ready..."));
|
|
595
595
|
const badge = this.activityService.showViewContainerActivity(isCopilotEditsViewActive(this.viewsService) ? CHAT_EDITING_SIDEBAR_PANEL_ID : CHAT_SIDEBAR_PANEL_ID, {
|
|
596
596
|
badge: ( new ProgressBadge(() => title)),
|
|
597
597
|
priority: 100
|
|
@@ -725,7 +725,7 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
725
725
|
const markdown = this._register(this.instantiationService.createInstance(MarkdownRenderer, {}));
|
|
726
726
|
{
|
|
727
727
|
const header = ( localize(
|
|
728
|
-
|
|
728
|
+
4552,
|
|
729
729
|
"[Copilot]({0}) is your AI pair programmer.",
|
|
730
730
|
this.context.state.installed ? 'command:github.copilot.open.walkthrough' : defaultChat.documentationUrl
|
|
731
731
|
));
|
|
@@ -735,18 +735,18 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
735
735
|
const featureChatContainer = features.appendChild($('div.chat-feature-container'));
|
|
736
736
|
featureChatContainer.appendChild(renderIcon(Codicon.code));
|
|
737
737
|
const featureChatLabel = featureChatContainer.appendChild($('span'));
|
|
738
|
-
featureChatLabel.textContent = ( localize(
|
|
738
|
+
featureChatLabel.textContent = ( localize(4553, "Code faster with completions and Inline Chat"));
|
|
739
739
|
const featureEditsContainer = features.appendChild($('div.chat-feature-container'));
|
|
740
740
|
featureEditsContainer.appendChild(renderIcon(Codicon.editSession));
|
|
741
741
|
const featureEditsLabel = featureEditsContainer.appendChild($('span'));
|
|
742
|
-
featureEditsLabel.textContent = ( localize(
|
|
742
|
+
featureEditsLabel.textContent = ( localize(4554, "Build features and resolve bugs with Copilot Edits"));
|
|
743
743
|
const featureExploreContainer = features.appendChild($('div.chat-feature-container'));
|
|
744
744
|
featureExploreContainer.appendChild(renderIcon(Codicon.commentDiscussion));
|
|
745
745
|
const featureExploreLabel = featureExploreContainer.appendChild($('span'));
|
|
746
|
-
featureExploreLabel.textContent = ( localize(
|
|
746
|
+
featureExploreLabel.textContent = ( localize(4555, "Explore your codebase with chat"));
|
|
747
747
|
}
|
|
748
748
|
const free = ( localize(
|
|
749
|
-
|
|
749
|
+
4556,
|
|
750
750
|
"$(sparkle-filled) We now offer [Copilot for free]({0}).",
|
|
751
751
|
defaultChat.skusDocumentationUrl
|
|
752
752
|
));
|
|
@@ -754,8 +754,8 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
754
754
|
freeContainer.appendChild(this._register(markdown.render(( new MarkdownString(free, { isTrusted: true, supportThemeIcons: true })))).element);
|
|
755
755
|
const actions = [];
|
|
756
756
|
if (this.context.state.installed) {
|
|
757
|
-
actions.push(toAction({ id: 'chatSetup.signInGh', label: ( localize(
|
|
758
|
-
actions.push(toAction({ id: 'chatSetup.signInGhe', label: ( localize(
|
|
757
|
+
actions.push(toAction({ id: 'chatSetup.signInGh', label: ( localize(4557, "Sign in with a GitHub.com Account")), run: () => this.commandService.executeCommand('github.copilotChat.signIn') }));
|
|
758
|
+
actions.push(toAction({ id: 'chatSetup.signInGhe', label: ( localize(4558, "Sign in with a GHE.com Account")), run: () => this.commandService.executeCommand('github.copilotChat.signInGHE') }));
|
|
759
759
|
}
|
|
760
760
|
const buttonContainer = this.element.appendChild($('p'));
|
|
761
761
|
buttonContainer.classList.add('button-container');
|
|
@@ -771,14 +771,14 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
771
771
|
})));
|
|
772
772
|
this._register(button.onDidClick(() => this.controller.setup()));
|
|
773
773
|
const terms = ( localize(
|
|
774
|
-
|
|
774
|
+
4559,
|
|
775
775
|
"By continuing, you agree to the [Terms]({0}) and [Privacy Policy]({1}).",
|
|
776
776
|
defaultChat.termsStatementUrl,
|
|
777
777
|
defaultChat.privacyStatementUrl
|
|
778
778
|
));
|
|
779
779
|
this.element.appendChild($('p')).appendChild(this._register(markdown.render(( new MarkdownString(terms, { isTrusted: true })))).element);
|
|
780
780
|
const settings = ( localize(
|
|
781
|
-
|
|
781
|
+
4560,
|
|
782
782
|
"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.",
|
|
783
783
|
defaultChat.publicCodeMatchesUrl,
|
|
784
784
|
defaultChat.manageSettingsUrl
|
|
@@ -794,29 +794,29 @@ let ChatSetupWelcomeContent = class ChatSetupWelcomeContent extends Disposable {
|
|
|
794
794
|
switch (this.context.state.entitlement) {
|
|
795
795
|
case ChatEntitlement.Unknown:
|
|
796
796
|
showFree = true;
|
|
797
|
-
buttonLabel = this.context.state.registered ? ( localize(
|
|
797
|
+
buttonLabel = this.context.state.registered ? ( localize(4561, "Sign in to Use Copilot")) : ( localize(4562, "Sign in to Use Copilot for Free"));
|
|
798
798
|
break;
|
|
799
799
|
case ChatEntitlement.Unresolved:
|
|
800
800
|
showFree = true;
|
|
801
|
-
buttonLabel = this.context.state.registered ? ( localize(
|
|
801
|
+
buttonLabel = this.context.state.registered ? ( localize(4563, "Use Copilot")) : ( localize(4564, "Use Copilot for Free"));
|
|
802
802
|
break;
|
|
803
803
|
case ChatEntitlement.Available:
|
|
804
804
|
case ChatEntitlement.Limited:
|
|
805
805
|
showFree = true;
|
|
806
|
-
buttonLabel = ( localize(
|
|
806
|
+
buttonLabel = ( localize(4564, "Use Copilot for Free"));
|
|
807
807
|
break;
|
|
808
808
|
case ChatEntitlement.Pro:
|
|
809
809
|
case ChatEntitlement.Unavailable:
|
|
810
810
|
showFree = false;
|
|
811
|
-
buttonLabel = ( localize(
|
|
811
|
+
buttonLabel = ( localize(4563, "Use Copilot"));
|
|
812
812
|
break;
|
|
813
813
|
}
|
|
814
814
|
switch (this.controller.step) {
|
|
815
815
|
case ChatSetupStep.SigningIn:
|
|
816
|
-
buttonLabel = ( localize(
|
|
816
|
+
buttonLabel = ( localize(4565, "$(loading~spin) Signing in to {0}...", defaultChat.providerName));
|
|
817
817
|
break;
|
|
818
818
|
case ChatSetupStep.Installing:
|
|
819
|
-
buttonLabel = ( localize(
|
|
819
|
+
buttonLabel = ( localize(4566, "$(loading~spin) Getting Copilot Ready..."));
|
|
820
820
|
break;
|
|
821
821
|
}
|
|
822
822
|
setVisibility(showFree, freeContainer);
|
|
@@ -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(4590, '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
|
@@ -65,7 +65,7 @@ let ChatRelatedFilesContribution = class ChatRelatedFilesContribution extends Di
|
|
|
65
65
|
}
|
|
66
66
|
currentEditingSession?.remove(WorkingSetEntryRemovalReason.Programmatic, ...existingSuggestedEntriesToRemove);
|
|
67
67
|
for (const [uri, data] of newSuggestions) {
|
|
68
|
-
currentEditingSession.addFileToWorkingSet(uri, ( localize(
|
|
68
|
+
currentEditingSession.addFileToWorkingSet(uri, ( localize(4591, "{0} (Suggested)", data.description)), WorkingSetEntryState.Suggested);
|
|
69
69
|
}
|
|
70
70
|
})
|
|
71
71
|
.finally(() => {
|
|
@@ -109,7 +109,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
109
109
|
const prepared = tool.impl.prepareToolInvocation ?
|
|
110
110
|
await tool.impl.prepareToolInvocation(dto.parameters, token)
|
|
111
111
|
: undefined;
|
|
112
|
-
const defaultMessage = ( localize(
|
|
112
|
+
const defaultMessage = ( localize(4593, "Using {0}", `"${tool.data.displayName}"`));
|
|
113
113
|
const invocationMessage = prepared?.invocationMessage ?? defaultMessage;
|
|
114
114
|
toolInvocation = ( new ChatToolInvocation(invocationMessage, prepared?.confirmationMessages));
|
|
115
115
|
token.onCancellationRequested(() => {
|
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(4595, '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(4596, 'The icon for the welcome message.')),
|
|
25
25
|
},
|
|
26
26
|
title: {
|
|
27
27
|
type: 'string',
|
|
28
|
-
description: ( localize(
|
|
28
|
+
description: ( localize(4597, 'The title of the welcome message.')),
|
|
29
29
|
},
|
|
30
30
|
content: {
|
|
31
31
|
type: 'string',
|
|
32
32
|
description: ( localize(
|
|
33
|
-
|
|
33
|
+
4598,
|
|
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(4599, 'Condition when the welcome message is shown.')),
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
},
|
|
@@ -246,7 +246,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
246
246
|
const liveSessionItems = ( Array.from(( this._sessionModels.values()))
|
|
247
247
|
.filter(session => !session.isImported && session.initialLocation !== ChatAgentLocation.EditingSession)
|
|
248
248
|
.map(session => {
|
|
249
|
-
const title = session.title || ( localize(
|
|
249
|
+
const title = session.title || ( localize(4635, "New Chat"));
|
|
250
250
|
return {
|
|
251
251
|
sessionId: session.sessionId,
|
|
252
252
|
title,
|
|
@@ -547,7 +547,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
547
547
|
else {
|
|
548
548
|
if (!rawResult) {
|
|
549
549
|
this.trace('sendRequest', `Provider returned no response for session ${model.sessionId}`);
|
|
550
|
-
rawResult = { errorDetails: { message: ( localize(
|
|
550
|
+
rawResult = { errorDetails: { message: ( localize(4636, "Provider returned null response")) } };
|
|
551
551
|
}
|
|
552
552
|
const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
|
|
553
553
|
rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
|
|
@@ -19,7 +19,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
19
19
|
},
|
|
20
20
|
jsonSchema: {
|
|
21
21
|
description: ( localize(
|
|
22
|
-
|
|
22
|
+
4646,
|
|
23
23
|
'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.'
|
|
24
24
|
)),
|
|
25
25
|
type: 'array',
|
|
@@ -45,7 +45,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
45
45
|
properties: {
|
|
46
46
|
name: {
|
|
47
47
|
description: ( localize(
|
|
48
|
-
|
|
48
|
+
4647,
|
|
49
49
|
"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."
|
|
50
50
|
)),
|
|
51
51
|
type: 'string',
|
|
@@ -53,7 +53,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
53
53
|
},
|
|
54
54
|
toolReferenceName: {
|
|
55
55
|
markdownDescription: ( localize(
|
|
56
|
-
|
|
56
|
+
4648,
|
|
57
57
|
"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.",
|
|
58
58
|
'`canBeReferencedInPrompt`'
|
|
59
59
|
)),
|
|
@@ -62,32 +62,32 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
62
62
|
},
|
|
63
63
|
displayName: {
|
|
64
64
|
description: ( localize(
|
|
65
|
-
|
|
65
|
+
4649,
|
|
66
66
|
"A human-readable name for this tool that may be used to describe it in the UI."
|
|
67
67
|
)),
|
|
68
68
|
type: 'string'
|
|
69
69
|
},
|
|
70
70
|
userDescription: {
|
|
71
|
-
description: ( localize(
|
|
71
|
+
description: ( localize(4650, "A description of this tool that may be shown to the user.")),
|
|
72
72
|
type: 'string'
|
|
73
73
|
},
|
|
74
74
|
modelDescription: {
|
|
75
75
|
description: ( localize(
|
|
76
|
-
|
|
76
|
+
4651,
|
|
77
77
|
"A description of this tool that may be used by a language model to select it."
|
|
78
78
|
)),
|
|
79
79
|
type: 'string'
|
|
80
80
|
},
|
|
81
81
|
inputSchema: {
|
|
82
82
|
description: ( localize(
|
|
83
|
-
|
|
83
|
+
4652,
|
|
84
84
|
"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."
|
|
85
85
|
)),
|
|
86
86
|
$ref: toolsParametersSchemaSchemaId
|
|
87
87
|
},
|
|
88
88
|
canBeReferencedInPrompt: {
|
|
89
89
|
markdownDescription: ( localize(
|
|
90
|
-
|
|
90
|
+
4653,
|
|
91
91
|
"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}.",
|
|
92
92
|
'`ChatRequest#toolReferences`'
|
|
93
93
|
)),
|
|
@@ -95,7 +95,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
95
95
|
},
|
|
96
96
|
icon: {
|
|
97
97
|
markdownDescription: ( localize(
|
|
98
|
-
|
|
98
|
+
4654,
|
|
99
99
|
"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)`"
|
|
100
100
|
)),
|
|
101
101
|
anyOf: [{
|
|
@@ -105,11 +105,11 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
105
105
|
type: 'object',
|
|
106
106
|
properties: {
|
|
107
107
|
light: {
|
|
108
|
-
description: ( localize(
|
|
108
|
+
description: ( localize(4655, 'Icon path when a light theme is used')),
|
|
109
109
|
type: 'string'
|
|
110
110
|
},
|
|
111
111
|
dark: {
|
|
112
|
-
description: ( localize(
|
|
112
|
+
description: ( localize(4656, 'Icon path when a dark theme is used')),
|
|
113
113
|
type: 'string'
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -117,14 +117,14 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
|
|
|
117
117
|
},
|
|
118
118
|
when: {
|
|
119
119
|
markdownDescription: ( localize(
|
|
120
|
-
|
|
120
|
+
4657,
|
|
121
121
|
"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."
|
|
122
122
|
)),
|
|
123
123
|
type: 'string'
|
|
124
124
|
},
|
|
125
125
|
tags: {
|
|
126
126
|
description: ( localize(
|
|
127
|
-
|
|
127
|
+
4658,
|
|
128
128
|
"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."
|
|
129
129
|
)),
|
|
130
130
|
type: 'array',
|
|
@@ -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(4659, "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; }
|
|
@@ -31,7 +31,7 @@ const editActionMenuItem = {
|
|
|
31
31
|
order: 0,
|
|
32
32
|
command: {
|
|
33
33
|
id: ChatSubmitAction.ID,
|
|
34
|
-
title: ( localize(
|
|
34
|
+
title: ( localize(6758, "Edit Code")),
|
|
35
35
|
},
|
|
36
36
|
when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), CTX_INLINE_CHAT_EDITING)),
|
|
37
37
|
};
|
|
@@ -40,7 +40,7 @@ const generateActionMenuItem = {
|
|
|
40
40
|
order: 0,
|
|
41
41
|
command: {
|
|
42
42
|
id: ChatSubmitAction.ID,
|
|
43
|
-
title: ( localize(
|
|
43
|
+
title: ( localize(6759, "Generate")),
|
|
44
44
|
},
|
|
45
45
|
when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), ( CTX_INLINE_CHAT_EDITING.toNegated()))),
|
|
46
46
|
};
|
|
@@ -51,8 +51,8 @@ const cancelActionMenuItem = {
|
|
|
51
51
|
order: 0,
|
|
52
52
|
command: {
|
|
53
53
|
id: CancelAction.ID,
|
|
54
|
-
title: ( localize(
|
|
55
|
-
shortTitle: ( localize(
|
|
54
|
+
title: ( localize(6760, "Cancel Request")),
|
|
55
|
+
shortTitle: ( localize(6761, "Cancel")),
|
|
56
56
|
},
|
|
57
57
|
when: ( ContextKeyExpr.and(CTX_INLINE_CHAT_REQUEST_IN_PROGRESS)),
|
|
58
58
|
};
|
|
@@ -42,14 +42,14 @@ import { createStyleSheet2 } from '@codingame/monaco-vscode-api/vscode/vs/base/b
|
|
|
42
42
|
import { stringValue } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/cssValue';
|
|
43
43
|
|
|
44
44
|
var InlineChatHintsController_1;
|
|
45
|
-
const CTX_INLINE_CHAT_SHOWING_HINT = ( new RawContextKey('inlineChatShowingHint', false, ( localize(
|
|
45
|
+
const CTX_INLINE_CHAT_SHOWING_HINT = ( new RawContextKey('inlineChatShowingHint', false, ( localize(6785, "Whether inline chat shows a contextual hint"))));
|
|
46
46
|
const _inlineChatActionId = 'inlineChat.startWithCurrentLine';
|
|
47
47
|
class InlineChatExpandLineAction extends EditorAction2 {
|
|
48
48
|
constructor() {
|
|
49
49
|
super({
|
|
50
50
|
id: _inlineChatActionId,
|
|
51
51
|
category: AbstractInlineChatAction.category,
|
|
52
|
-
title: ( localize2(
|
|
52
|
+
title: ( localize2(6786, "Start in Editor with Current Line")),
|
|
53
53
|
f1: true,
|
|
54
54
|
precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_HAS_AGENT, EditorContextKeys.writable)),
|
|
55
55
|
keybinding: [{
|
|
@@ -99,7 +99,7 @@ class ShowInlineChatHintAction extends EditorAction2 {
|
|
|
99
99
|
super({
|
|
100
100
|
id: 'inlineChat.showHint',
|
|
101
101
|
category: AbstractInlineChatAction.category,
|
|
102
|
-
title: ( localize2(
|
|
102
|
+
title: ( localize2(6787, "Show Inline Chat Hint")),
|
|
103
103
|
f1: false,
|
|
104
104
|
precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_HAS_AGENT, EditorContextKeys.writable)),
|
|
105
105
|
});
|
|
@@ -212,15 +212,15 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
|
|
|
212
212
|
this._ctxShowingHint.reset();
|
|
213
213
|
return;
|
|
214
214
|
}
|
|
215
|
-
const agentName = chatAgentService.getDefaultAgent(ChatAgentLocation.Editor)?.name ?? ( localize(
|
|
215
|
+
const agentName = chatAgentService.getDefaultAgent(ChatAgentLocation.Editor)?.name ?? ( localize(6788, "Chat"));
|
|
216
216
|
const { position, isEol, isWhitespace, kb, model } = showData;
|
|
217
217
|
const inlineClassName = ['a' , 'inline-chat-hint', 'inline-chat-hint-text'];
|
|
218
218
|
let content;
|
|
219
219
|
if (isWhitespace) {
|
|
220
|
-
content = '\u00a0' + ( localize(
|
|
220
|
+
content = '\u00a0' + ( localize(6789, "{0} to edit with {1}", kb, agentName));
|
|
221
221
|
}
|
|
222
222
|
else if (isEol) {
|
|
223
|
-
content = '\u00a0' + ( localize(
|
|
223
|
+
content = '\u00a0' + ( localize(6790, "{0} to continue with {1}", kb, agentName));
|
|
224
224
|
}
|
|
225
225
|
else {
|
|
226
226
|
content = '\u200a' + kb + '\u200a';
|
|
@@ -249,7 +249,7 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
|
|
|
249
249
|
getActions: () => [
|
|
250
250
|
toAction({
|
|
251
251
|
id: 'inlineChat.disableHint',
|
|
252
|
-
label: ( localize(
|
|
252
|
+
label: ( localize(6791, "Disable Inline Chat Hint")),
|
|
253
253
|
run: async () => {
|
|
254
254
|
await this._configurationService.updateValue(setting, false);
|
|
255
255
|
}
|
|
@@ -277,7 +277,7 @@ class HideInlineChatHintAction extends EditorAction2 {
|
|
|
277
277
|
constructor() {
|
|
278
278
|
super({
|
|
279
279
|
id: 'inlineChat.hideHint',
|
|
280
|
-
title: ( localize2(
|
|
280
|
+
title: ( localize2(6792, "Hide Inline Chat Hint")),
|
|
281
281
|
precondition: CTX_INLINE_CHAT_SHOWING_HINT,
|
|
282
282
|
keybinding: {
|
|
283
283
|
weight: KeybindingWeight.EditorContrib - 10,
|
|
@@ -116,7 +116,7 @@ let InlineChatSavingServiceImpl = class InlineChatSavingServiceImpl {
|
|
|
116
116
|
const agentName = session.agent.fullName;
|
|
117
117
|
const filelabel = this._labelService.getUriBasenameLabel(session.textModelN.uri);
|
|
118
118
|
message = ( localize(
|
|
119
|
-
|
|
119
|
+
6793,
|
|
120
120
|
"Do you want to save the changes {0} made in {1}?",
|
|
121
121
|
agentName,
|
|
122
122
|
filelabel
|
|
@@ -125,7 +125,7 @@ let InlineChatSavingServiceImpl = class InlineChatSavingServiceImpl {
|
|
|
125
125
|
else {
|
|
126
126
|
const labels = Array.from(( Iterable.map(( sessions.values()), i => this._labelService.getUriBasenameLabel(i.session.textModelN.uri))));
|
|
127
127
|
message = ( localize(
|
|
128
|
-
|
|
128
|
+
6794,
|
|
129
129
|
"Do you want to save the changes inline chat made in {0}?",
|
|
130
130
|
labels.join(', ')
|
|
131
131
|
));
|
|
@@ -133,13 +133,13 @@ let InlineChatSavingServiceImpl = class InlineChatSavingServiceImpl {
|
|
|
133
133
|
const result = await this._dialogService.confirm({
|
|
134
134
|
message,
|
|
135
135
|
detail: ( localize(
|
|
136
|
-
|
|
136
|
+
6795,
|
|
137
137
|
"AI-generated changes may be incorrect and should be reviewed before saving."
|
|
138
138
|
)),
|
|
139
|
-
primaryButton: ( localize(
|
|
140
|
-
cancelButton: ( localize(
|
|
139
|
+
primaryButton: ( localize(6796, "Save")),
|
|
140
|
+
cancelButton: ( localize(6797, "Cancel")),
|
|
141
141
|
checkbox: {
|
|
142
|
-
label: ( localize(
|
|
142
|
+
label: ( localize(6798, "Always save with AI-generated changes without asking")),
|
|
143
143
|
checked: false
|
|
144
144
|
}
|
|
145
145
|
});
|