@codingame/monaco-vscode-katex-common 32.0.1 → 33.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
- package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.d.ts +30 -0
- package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.js +8 -0
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +32 -0
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +56 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +114 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +87 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +502 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +188 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +153 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +52 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +23 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +40 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +217 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +44 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +36 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +12 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +8 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +24 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +72 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +2 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +7 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/media/toolRiskBadge.css +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +25 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +41 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +31 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +89 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +203 -107
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +32 -81
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +4 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +29 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +27 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +17 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -69
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +9 -14
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ interface IModelSelectionContext {
|
|
|
12
12
|
* Filter models based on session type.
|
|
13
13
|
* When a session has a specific type (and it's not 'local'), only models targeting that
|
|
14
14
|
* session type are returned. Otherwise, general-purpose models are returned.
|
|
15
|
+
*
|
|
16
|
+
* `isUserSelectable` defaults to `true` when omitted: only an explicit `false` hides
|
|
17
|
+
* the model from the picker and this model-selection flow.
|
|
15
18
|
*/
|
|
16
19
|
export declare function filterModelsForSession(models: ILanguageModelChatMetadataAndIdentifier[], sessionType: string | undefined, currentModeKind: ChatModeKind, location: ChatAgentLocation): ILanguageModelChatMetadataAndIdentifier[];
|
|
17
20
|
/**
|
|
@@ -103,7 +106,9 @@ export declare function shouldResetOnModelListChange(currentModelId: string | un
|
|
|
103
106
|
* This handles the startup race where the model wasn't available during
|
|
104
107
|
* `initSelectedModel` but arrives later via `onDidChangeLanguageModels`.
|
|
105
108
|
*
|
|
106
|
-
* The model must pass both the persisted-default check and the
|
|
109
|
+
* The model must pass both the persisted-default check and the user-selectable
|
|
110
|
+
* check. `isUserSelectable` defaults to `true`; only an explicit `false` blocks
|
|
111
|
+
* restoration.
|
|
107
112
|
*/
|
|
108
113
|
export declare function shouldRestoreLateArrivingModel(persistedModelId: string, persistedAsDefault: boolean, model: ILanguageModelChatMetadataAndIdentifier, location: ChatAgentLocation): boolean;
|
|
109
114
|
export {};
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js
CHANGED
|
@@ -5,11 +5,11 @@ import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/
|
|
|
5
5
|
function filterModelsForSession(models, sessionType, currentModeKind, location) {
|
|
6
6
|
if (sessionType && sessionType !== "local" && hasModelsTargetingSession(models, sessionType)) {
|
|
7
7
|
return models.filter(
|
|
8
|
-
entry => entry.metadata?.targetChatSessionType === sessionType && entry.metadata?.isUserSelectable
|
|
8
|
+
entry => entry.metadata?.targetChatSessionType === sessionType && entry.metadata?.isUserSelectable !== false
|
|
9
9
|
);
|
|
10
10
|
}
|
|
11
11
|
return models.filter(
|
|
12
|
-
entry => !entry.metadata?.targetChatSessionType && entry.metadata?.isUserSelectable && isModelSupportedForMode(entry, currentModeKind) && isModelSupportedForInlineChat(entry, location)
|
|
12
|
+
entry => !entry.metadata?.targetChatSessionType && entry.metadata?.isUserSelectable !== false && isModelSupportedForMode(entry, currentModeKind) && isModelSupportedForInlineChat(entry, location)
|
|
13
13
|
);
|
|
14
14
|
}
|
|
15
15
|
function isModelSupportedForMode(model, currentModeKind) {
|
|
@@ -118,7 +118,7 @@ function shouldResetOnModelListChange(currentModelId, availableModels) {
|
|
|
118
118
|
return !( availableModels.some(m => m.identifier === currentModelId));
|
|
119
119
|
}
|
|
120
120
|
function shouldRestoreLateArrivingModel(persistedModelId, persistedAsDefault, model, location) {
|
|
121
|
-
if (
|
|
121
|
+
if (model.metadata.isUserSelectable === false) {
|
|
122
122
|
return false;
|
|
123
123
|
}
|
|
124
124
|
const result = shouldRestorePersistedModel(persistedModelId, persistedAsDefault, [model], location);
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js
CHANGED
|
@@ -88,7 +88,7 @@ let MobileChatInputCombinedPickerActionItem = class MobileChatInputCombinedPicke
|
|
|
88
88
|
append(trigger, renderIcon(modeIcon));
|
|
89
89
|
}
|
|
90
90
|
const currentModel = this._modelDelegate.currentModel.get();
|
|
91
|
-
const labelText = currentModel?.metadata.name ?? ( localize(
|
|
91
|
+
const labelText = currentModel?.metadata.name ?? ( localize(7590, "Auto"));
|
|
92
92
|
const labelSpan = append(trigger, $("span.chat-input-picker-label"));
|
|
93
93
|
labelSpan.textContent = labelText;
|
|
94
94
|
append(trigger, renderIcon(Codicon.chevronDown));
|
|
@@ -98,7 +98,7 @@ let MobileChatInputCombinedPickerActionItem = class MobileChatInputCombinedPicke
|
|
|
98
98
|
ariaParts.push(modeLabel);
|
|
99
99
|
}
|
|
100
100
|
ariaParts.push(labelText);
|
|
101
|
-
trigger.ariaLabel = ( localize(
|
|
101
|
+
trigger.ariaLabel = ( localize(7591, "Pick Mode and Model, {0}", ariaParts.join(", ")));
|
|
102
102
|
}
|
|
103
103
|
onClick() {}
|
|
104
104
|
async _showSheet() {
|
|
@@ -99,13 +99,13 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
99
99
|
_getSessionCategory(sessionTypeItem) {
|
|
100
100
|
if (isFirstPartyAgentSessionProvider(sessionTypeItem.type)) {
|
|
101
101
|
return {
|
|
102
|
-
label: ( localize(
|
|
102
|
+
label: ( localize(7599, "Continue In")),
|
|
103
103
|
order: 1,
|
|
104
104
|
showHeader: true
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
return {
|
|
108
|
-
label: ( localize(
|
|
108
|
+
label: ( localize(7600, "Continue In (Third Party)")),
|
|
109
109
|
order: 2,
|
|
110
110
|
showHeader: false
|
|
111
111
|
};
|
|
@@ -117,7 +117,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
117
117
|
const learnMoreUrl = "https://aka.ms/vscode-continue-chat-in";
|
|
118
118
|
return {
|
|
119
119
|
id: "workbench.action.chat.agentOverview.learnMoreHandOff",
|
|
120
|
-
label: ( localize(
|
|
120
|
+
label: ( localize(7601, "Learn about agent handoff...")),
|
|
121
121
|
tooltip: learnMoreUrl,
|
|
122
122
|
class: undefined,
|
|
123
123
|
enabled: true,
|
|
@@ -133,7 +133,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
133
133
|
return [{
|
|
134
134
|
id: "newChatSession",
|
|
135
135
|
class: undefined,
|
|
136
|
-
label: ( localize(
|
|
136
|
+
label: ( localize(7602, "New Chat Session")),
|
|
137
137
|
tooltip: "",
|
|
138
138
|
hover: {
|
|
139
139
|
content: ""
|
|
@@ -142,7 +142,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
142
142
|
icon: Codicon.plus,
|
|
143
143
|
enabled: true,
|
|
144
144
|
category: {
|
|
145
|
-
label: ( localize(
|
|
145
|
+
label: ( localize(7603, "New Chat Session")),
|
|
146
146
|
order: 0,
|
|
147
147
|
showHeader: false
|
|
148
148
|
},
|
|
@@ -66,15 +66,15 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
|
|
|
66
66
|
});
|
|
67
67
|
const getCustomAgentTarget = () => delegate.customAgentTarget?.() ?? Target.Undefined;
|
|
68
68
|
const builtInCategory = {
|
|
69
|
-
label: ( localize(
|
|
69
|
+
label: ( localize(7623, "Built-In")),
|
|
70
70
|
order: 0
|
|
71
71
|
};
|
|
72
72
|
const customCategory = {
|
|
73
|
-
label: ( localize(
|
|
73
|
+
label: ( localize(7624, "Custom")),
|
|
74
74
|
order: 1
|
|
75
75
|
};
|
|
76
76
|
const policyDisabledCategory = {
|
|
77
|
-
label: ( localize(
|
|
77
|
+
label: ( localize(7625, "Managed by your organization")),
|
|
78
78
|
order: 999,
|
|
79
79
|
showHeader: true
|
|
80
80
|
};
|
|
@@ -89,11 +89,11 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
|
|
|
89
89
|
if (mode.source?.storage === PromptsStorage.extension) {
|
|
90
90
|
icon = Codicon.file;
|
|
91
91
|
id = `viewAgent:${mode.id}`;
|
|
92
|
-
label = ( localize(
|
|
92
|
+
label = ( localize(7626, "View {0} agent", mode.label.get()));
|
|
93
93
|
} else {
|
|
94
94
|
icon = Codicon.edit;
|
|
95
95
|
id = `editAgent:${mode.id}`;
|
|
96
|
-
label = ( localize(
|
|
96
|
+
label = ( localize(7627, "Edit {0} agent", mode.label.get()));
|
|
97
97
|
}
|
|
98
98
|
const modeResource = mode.uri;
|
|
99
99
|
toolbarActions.push({
|
|
@@ -74,7 +74,7 @@ let ModelPickerActionItem = class ModelPickerActionItem extends BaseActionViewIt
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
_getHoverContents() {
|
|
77
|
-
let label = ( localize(
|
|
77
|
+
let label = ( localize(7628, "Pick Model"));
|
|
78
78
|
const keybindingLabel = this.keybindingService.lookupKeybinding(this._action.id, this._contextKeyService)?.getLabel();
|
|
79
79
|
if (keybindingLabel) {
|
|
80
80
|
label += ` (${keybindingLabel})`;
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js
CHANGED
|
@@ -53,7 +53,7 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
|
|
|
53
53
|
icon: item.icon,
|
|
54
54
|
checked: ext.selectedId === item.id,
|
|
55
55
|
enabled: !item.locked,
|
|
56
|
-
tooltip: item.locked ? ( localize(
|
|
56
|
+
tooltip: item.locked ? ( localize(7629, "This option is locked")) : "",
|
|
57
57
|
hover: item.description ? {
|
|
58
58
|
content: item.description
|
|
59
59
|
} : undefined,
|
|
@@ -70,13 +70,13 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
|
|
|
70
70
|
const actions = [{
|
|
71
71
|
...action,
|
|
72
72
|
id: "chat.permissions.default",
|
|
73
|
-
label: ( localize(
|
|
74
|
-
detail: ( localize(
|
|
73
|
+
label: ( localize(7630, "Default Approvals")),
|
|
74
|
+
detail: ( localize(7631, "Copilot uses your configured settings")),
|
|
75
75
|
icon: ThemeIcon.fromId(Codicon.shield.id),
|
|
76
76
|
checked: currentLevel === ChatPermissionLevel.Default,
|
|
77
77
|
tooltip: "",
|
|
78
78
|
hover: {
|
|
79
|
-
content: ( localize(
|
|
79
|
+
content: ( localize(7632, "Use configured approval settings"))
|
|
80
80
|
},
|
|
81
81
|
run: async () => {
|
|
82
82
|
delegate.setPermissionLevel(ChatPermissionLevel.Default);
|
|
@@ -87,14 +87,14 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
|
|
|
87
87
|
}, {
|
|
88
88
|
...action,
|
|
89
89
|
id: "chat.permissions.autoApprove",
|
|
90
|
-
label: ( localize(
|
|
91
|
-
detail: ( localize(
|
|
90
|
+
label: ( localize(7633, "Bypass Approvals")),
|
|
91
|
+
detail: ( localize(7634, "All tool calls are auto-approved")),
|
|
92
92
|
icon: ThemeIcon.fromId(Codicon.warning.id),
|
|
93
93
|
checked: currentLevel === ChatPermissionLevel.AutoApprove,
|
|
94
94
|
enabled: !policyRestricted,
|
|
95
|
-
tooltip: policyRestricted ? ( localize(
|
|
95
|
+
tooltip: policyRestricted ? ( localize(7635, "Disabled by enterprise policy")) : "",
|
|
96
96
|
hover: {
|
|
97
|
-
content: policyRestricted ? ( localize(
|
|
97
|
+
content: policyRestricted ? ( localize(7636, "Disabled by enterprise policy")) : ( localize(7637, "Auto-approve all tool calls and retry on errors"))
|
|
98
98
|
},
|
|
99
99
|
run: async () => {
|
|
100
100
|
if (!(await maybeConfirmElevatedPermissionLevel(ChatPermissionLevel.AutoApprove, this.dialogService, storageService))) {
|
|
@@ -110,14 +110,14 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
|
|
|
110
110
|
actions.push({
|
|
111
111
|
...action,
|
|
112
112
|
id: "chat.permissions.autopilot",
|
|
113
|
-
label: ( localize(
|
|
114
|
-
detail: ( localize(
|
|
113
|
+
label: ( localize(7638, "Autopilot (Preview)")),
|
|
114
|
+
detail: ( localize(7639, "Autonomously iterates from start to finish")),
|
|
115
115
|
icon: ThemeIcon.fromId(Codicon.rocket.id),
|
|
116
116
|
checked: currentLevel === ChatPermissionLevel.Autopilot,
|
|
117
117
|
enabled: !policyRestricted,
|
|
118
|
-
tooltip: policyRestricted ? ( localize(
|
|
118
|
+
tooltip: policyRestricted ? ( localize(7640, "Disabled by enterprise policy")) : "",
|
|
119
119
|
hover: {
|
|
120
|
-
content: policyRestricted ? ( localize(
|
|
120
|
+
content: policyRestricted ? ( localize(7641, "Disabled by enterprise policy")) : ( localize(7642, "Auto-approve all tool calls and continue until the task is done"))
|
|
121
121
|
},
|
|
122
122
|
run: async () => {
|
|
123
123
|
if (!(await maybeConfirmElevatedPermissionLevel(ChatPermissionLevel.Autopilot, this.dialogService, storageService))) {
|
|
@@ -137,8 +137,8 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
|
|
|
137
137
|
actionProvider,
|
|
138
138
|
actionBarActions: [{
|
|
139
139
|
id: "chat.permissions.learnMore",
|
|
140
|
-
label: ( localize(
|
|
141
|
-
tooltip: ( localize(
|
|
140
|
+
label: ( localize(7643, "Learn more about permissions")),
|
|
141
|
+
tooltip: ( localize(7643, "Learn more about permissions")),
|
|
142
142
|
class: undefined,
|
|
143
143
|
enabled: true,
|
|
144
144
|
run: async () => {
|
|
@@ -176,15 +176,15 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
|
|
|
176
176
|
switch (level) {
|
|
177
177
|
case ChatPermissionLevel.Autopilot:
|
|
178
178
|
icon = Codicon.rocket;
|
|
179
|
-
label = ( localize(
|
|
179
|
+
label = ( localize(7644, "Autopilot (Preview)"));
|
|
180
180
|
break;
|
|
181
181
|
case ChatPermissionLevel.AutoApprove:
|
|
182
182
|
icon = Codicon.warning;
|
|
183
|
-
label = ( localize(
|
|
183
|
+
label = ( localize(7645, "Bypass Approvals"));
|
|
184
184
|
break;
|
|
185
185
|
default:
|
|
186
186
|
icon = Codicon.shield;
|
|
187
|
-
label = ( localize(
|
|
187
|
+
label = ( localize(7646, "Default Approvals"));
|
|
188
188
|
break;
|
|
189
189
|
}
|
|
190
190
|
}
|
|
@@ -195,7 +195,7 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
|
|
|
195
195
|
reset(element, ...labelElements);
|
|
196
196
|
element.classList.toggle("warning", !ext && level === ChatPermissionLevel.Autopilot);
|
|
197
197
|
element.classList.toggle("info", !ext && level === ChatPermissionLevel.AutoApprove);
|
|
198
|
-
element.setAttribute("aria-label", ( localize(
|
|
198
|
+
element.setAttribute("aria-label", ( localize(7647, "Permission picker, {0}", label)));
|
|
199
199
|
return null;
|
|
200
200
|
}
|
|
201
201
|
refresh() {
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js
CHANGED
|
@@ -17,11 +17,11 @@ import { AgentSessionProviders, getAgentSessionProviderDescription, getAgentSess
|
|
|
17
17
|
import { ChatInputPickerActionViewItem } from './chatInputPickerActionItem.js';
|
|
18
18
|
|
|
19
19
|
const firstPartyCategory = {
|
|
20
|
-
label: ( localize(
|
|
20
|
+
label: ( localize(7648, "Agent Types")),
|
|
21
21
|
order: 1
|
|
22
22
|
};
|
|
23
23
|
const otherCategory = {
|
|
24
|
-
label: ( localize(
|
|
24
|
+
label: ( localize(7649, "Other")),
|
|
25
25
|
order: 2
|
|
26
26
|
};
|
|
27
27
|
let SessionTypePickerActionItem = class SessionTypePickerActionItem extends ChatInputPickerActionViewItem {
|
|
@@ -126,7 +126,7 @@ let SessionTypePickerActionItem = class SessionTypePickerActionItem extends Chat
|
|
|
126
126
|
const learnMoreUrl = "https://code.visualstudio.com/docs/copilot/agents/overview";
|
|
127
127
|
return {
|
|
128
128
|
id: "workbench.action.chat.agentOverview.learnMore",
|
|
129
|
-
label: ( localize(
|
|
129
|
+
label: ( localize(7650, "Learn about agent types...")),
|
|
130
130
|
tooltip: learnMoreUrl,
|
|
131
131
|
class: undefined,
|
|
132
132
|
enabled: true,
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js
CHANGED
|
@@ -48,10 +48,10 @@ let WorkspacePickerActionItem = class WorkspacePickerActionItem extends ChatInpu
|
|
|
48
48
|
actions.push({
|
|
49
49
|
...action,
|
|
50
50
|
id: "workspace.openFolder",
|
|
51
|
-
label: ( localize(
|
|
51
|
+
label: ( localize(7651, "Open Folder...")),
|
|
52
52
|
checked: false,
|
|
53
53
|
enabled: true,
|
|
54
|
-
tooltip: ( localize(
|
|
54
|
+
tooltip: ( localize(7652, "Open Folder...")),
|
|
55
55
|
run: async () => {
|
|
56
56
|
this.commandService.executeCommand(this.delegate.openFolderCommand);
|
|
57
57
|
}
|
|
@@ -104,7 +104,7 @@ let WorkspacePickerActionItem = class WorkspacePickerActionItem extends ChatInpu
|
|
|
104
104
|
labelElements.push($("span.chat-input-picker-label", undefined, label));
|
|
105
105
|
} else {
|
|
106
106
|
labelElements.push(...renderLabelWithIcons(`$(folder)`));
|
|
107
|
-
labelElements.push($("span.chat-input-picker-label", undefined, ( localize(
|
|
107
|
+
labelElements.push($("span.chat-input-picker-label", undefined, ( localize(7653, "Workspace"))));
|
|
108
108
|
}
|
|
109
109
|
if (!this.pickerOptions.hideChevrons.get()) {
|
|
110
110
|
labelElements.push(...renderLabelWithIcons(`$(chevron-down)`));
|
|
@@ -1042,43 +1042,6 @@ have to be updated for changes to the rules above, or to support more deeply nes
|
|
|
1042
1042
|
order: 2;
|
|
1043
1043
|
}
|
|
1044
1044
|
|
|
1045
|
-
/* ----------------------------------------------------------------------------
|
|
1046
|
-
Delightful gradient styling for the chat send (submit) button. The arrow-up
|
|
1047
|
-
action-item is filled at rest with a slowly rotating multi-color conic
|
|
1048
|
-
gradient using the same palette as the working-state border, and emits a
|
|
1049
|
-
quick colorful pulse on click. The gradient is naturally absent while a
|
|
1050
|
-
request is in flight: `ChatSubmitAction.menu` is gated on
|
|
1051
|
-
`whenNoActiveRequest`, so during an active request the arrow-up icon is
|
|
1052
|
-
removed entirely from the toolbar and replaced by the Cancel/Stop action.
|
|
1053
|
-
---------------------------------------------------------------------------- */
|
|
1054
|
-
@property --chat-send-button-anim-angle {
|
|
1055
|
-
syntax: '<angle>';
|
|
1056
|
-
inherits: false;
|
|
1057
|
-
initial-value: 135deg;
|
|
1058
|
-
}
|
|
1059
|
-
|
|
1060
|
-
@keyframes chat-send-button-spin {
|
|
1061
|
-
from {
|
|
1062
|
-
--chat-send-button-anim-angle: 135deg;
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
|
-
to {
|
|
1066
|
-
--chat-send-button-anim-angle: 495deg;
|
|
1067
|
-
}
|
|
1068
|
-
}
|
|
1069
|
-
|
|
1070
|
-
@keyframes chat-send-button-pulse {
|
|
1071
|
-
0% {
|
|
1072
|
-
opacity: 0.7;
|
|
1073
|
-
transform: scale(1);
|
|
1074
|
-
}
|
|
1075
|
-
|
|
1076
|
-
100% {
|
|
1077
|
-
opacity: 0;
|
|
1078
|
-
transform: scale(1.3);
|
|
1079
|
-
}
|
|
1080
|
-
}
|
|
1081
|
-
|
|
1082
1045
|
.interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:has(> .action-label.codicon-arrow-up) {
|
|
1083
1046
|
position: relative;
|
|
1084
1047
|
border-radius: 5px;
|
|
@@ -1109,55 +1072,17 @@ have to be updated for changes to the rules above, or to support more deeply nes
|
|
|
1109
1072
|
outline: none;
|
|
1110
1073
|
}
|
|
1111
1074
|
|
|
1112
|
-
/* Idle:
|
|
1113
|
-
Colors darkened (60% mixed with input background) for a calm fill, with
|
|
1114
|
-
asymmetric conic stops. */
|
|
1075
|
+
/* Idle: solid primary button background. */
|
|
1115
1076
|
.interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled) > .action-label.codicon-arrow-up {
|
|
1116
|
-
background:
|
|
1117
|
-
color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor1) 60%, var(--vscode-input-background)) 0deg,
|
|
1118
|
-
color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor2) 60%, var(--vscode-input-background)) 90deg,
|
|
1119
|
-
color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor3) 60%, var(--vscode-input-background)) 200deg,
|
|
1120
|
-
color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor1) 60%, var(--vscode-input-background)) 360deg) !important;
|
|
1077
|
+
background: var(--vscode-button-background);
|
|
1121
1078
|
color: var(--vscode-button-foreground) !important;
|
|
1122
1079
|
border-radius: 5px;
|
|
1123
|
-
|
|
1124
|
-
transition: box-shadow 120ms ease;
|
|
1125
|
-
/* Lift the label above the click pulse `::after` on the action-item parent
|
|
1126
|
-
so the pulse appears to expand from behind the button, not on top of it. */
|
|
1127
|
-
position: relative;
|
|
1128
|
-
z-index: 1;
|
|
1080
|
+
transition: background-color 120ms ease;
|
|
1129
1081
|
}
|
|
1130
1082
|
|
|
1131
|
-
/* Hover/focus: subtle dark overlay to match standard toolbar button hover
|
|
1132
|
-
feedback. Uses an inset box-shadow so the rotating gradient background is
|
|
1133
|
-
preserved underneath. */
|
|
1134
1083
|
.interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled) > .action-label.codicon-arrow-up:hover,
|
|
1135
1084
|
.interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled) > .action-label.codicon-arrow-up:focus-visible {
|
|
1136
|
-
|
|
1137
|
-
}
|
|
1138
|
-
|
|
1139
|
-
.interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled):has(> .action-label.codicon-arrow-up:active)::after {
|
|
1140
|
-
content: '';
|
|
1141
|
-
position: absolute;
|
|
1142
|
-
inset: -2px;
|
|
1143
|
-
border-radius: 7px;
|
|
1144
|
-
background: conic-gradient(from 135deg,
|
|
1145
|
-
var(--vscode-chat-inputWorkingBorderColor1),
|
|
1146
|
-
var(--vscode-chat-inputWorkingBorderColor2),
|
|
1147
|
-
var(--vscode-chat-inputWorkingBorderColor3),
|
|
1148
|
-
var(--vscode-chat-inputWorkingBorderColor2),
|
|
1149
|
-
var(--vscode-chat-inputWorkingBorderColor1));
|
|
1150
|
-
pointer-events: none;
|
|
1151
|
-
animation: chat-send-button-pulse 400ms ease-out forwards;
|
|
1152
|
-
z-index: 0;
|
|
1153
|
-
}
|
|
1154
|
-
|
|
1155
|
-
@media (prefers-reduced-motion: reduce) {
|
|
1156
|
-
|
|
1157
|
-
.interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled) > .action-label.codicon-arrow-up,
|
|
1158
|
-
.interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled):has(> .action-label.codicon-arrow-up:active)::after {
|
|
1159
|
-
animation: none;
|
|
1160
|
-
}
|
|
1085
|
+
background: var(--vscode-button-hoverBackground);
|
|
1161
1086
|
}
|
|
1162
1087
|
|
|
1163
1088
|
.interactive-input-part:has(.chat-editing-session > .chat-editing-session-container) .chat-input-container,
|
|
@@ -1711,7 +1636,14 @@ have to be updated for changes to the rules above, or to support more deeply nes
|
|
|
1711
1636
|
display: none;
|
|
1712
1637
|
}
|
|
1713
1638
|
|
|
1714
|
-
.interactive-session .chat-secondary-toolbar
|
|
1639
|
+
.interactive-session .chat-secondary-toolbar .chat-secondary-generic-chips {
|
|
1640
|
+
display: flex;
|
|
1641
|
+
align-items: center;
|
|
1642
|
+
flex-shrink: 0;
|
|
1643
|
+
gap: 6px;
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1646
|
+
.interactive-session .chat-secondary-toolbar .chat-secondary-input-toolbar {
|
|
1715
1647
|
overflow: hidden;
|
|
1716
1648
|
min-width: 0px;
|
|
1717
1649
|
flex: 1 1 0;
|
|
@@ -4017,6 +3949,11 @@ have to be updated for changes to the rules above, or to support more deeply nes
|
|
|
4017
3949
|
line-height: 1.4;
|
|
4018
3950
|
}
|
|
4019
3951
|
|
|
3952
|
+
.monaco-workbench .chat-model-hover-description .codicon[class*='codicon-'] {
|
|
3953
|
+
vertical-align: middle;
|
|
3954
|
+
font-size: 12px;
|
|
3955
|
+
}
|
|
3956
|
+
|
|
4020
3957
|
.chat-model-hover-description > div p {
|
|
4021
3958
|
margin: 0;
|
|
4022
3959
|
}
|
|
@@ -4029,9 +3966,23 @@ have to be updated for changes to the rules above, or to support more deeply nes
|
|
|
4029
3966
|
color: var(--vscode-descriptionForeground);
|
|
4030
3967
|
}
|
|
4031
3968
|
|
|
3969
|
+
.chat-model-hover-cost-title-row {
|
|
3970
|
+
display: flex;
|
|
3971
|
+
align-items: center;
|
|
3972
|
+
gap: 6px;
|
|
3973
|
+
margin-bottom: 2px;
|
|
3974
|
+
}
|
|
3975
|
+
|
|
4032
3976
|
.chat-model-hover-cost-title {
|
|
4033
3977
|
font-weight: 600;
|
|
4034
|
-
|
|
3978
|
+
}
|
|
3979
|
+
|
|
3980
|
+
.chat-model-hover-cost-tag {
|
|
3981
|
+
padding: 2px 8px;
|
|
3982
|
+
border-radius: 10px;
|
|
3983
|
+
border: 1px solid var(--vscode-contrastBorder, var(--vscode-editorWidget-border));
|
|
3984
|
+
background: transparent;
|
|
3985
|
+
font-size: 11px;
|
|
4035
3986
|
}
|
|
4036
3987
|
|
|
4037
3988
|
.chat-model-hover-cost-line-label {
|
package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js
CHANGED
|
@@ -22,7 +22,7 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
|
|
|
22
22
|
this.domNode = $(".chat-context-usage-details");
|
|
23
23
|
this.quotaItem = this.domNode.appendChild($(".quota-indicator"));
|
|
24
24
|
const header = this.domNode.insertBefore($("div.header"), this.quotaItem);
|
|
25
|
-
header.textContent = ( localize(
|
|
25
|
+
header.textContent = ( localize(7665, "Context Window"));
|
|
26
26
|
const quotaLabel = this.quotaItem.appendChild($(".quota-label"));
|
|
27
27
|
this.tokenCountLabel = quotaLabel.appendChild($("span"));
|
|
28
28
|
this.percentageLabel = quotaLabel.appendChild($("span.quota-value"));
|
|
@@ -32,11 +32,11 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
|
|
|
32
32
|
this.outputBufferLegend = this.quotaItem.appendChild($(".output-buffer-legend"));
|
|
33
33
|
this.outputBufferLegend.appendChild($(".output-buffer-swatch"));
|
|
34
34
|
const legendLabel = this.outputBufferLegend.appendChild($("span"));
|
|
35
|
-
legendLabel.textContent = ( localize(
|
|
35
|
+
legendLabel.textContent = ( localize(7666, "Reserved for response"));
|
|
36
36
|
this.outputBufferLegend.style.display = "none";
|
|
37
37
|
this.tokenDetailsContainer = this.domNode.appendChild($(".token-details-container"));
|
|
38
38
|
this.warningMessage = this.domNode.appendChild($("div.description"));
|
|
39
|
-
this.warningMessage.textContent = ( localize(
|
|
39
|
+
this.warningMessage.textContent = ( localize(7667, "Quality may decline as limit nears."));
|
|
40
40
|
this.warningMessage.style.display = "none";
|
|
41
41
|
this.actionsSection = this.domNode.appendChild($(".actions-section"));
|
|
42
42
|
const buttonBarContainer = this.actionsSection.appendChild($(".button-bar-container"));
|
|
@@ -73,12 +73,12 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
|
|
|
73
73
|
promptTokenDetails
|
|
74
74
|
} = data;
|
|
75
75
|
this.tokenCountLabel.textContent = ( localize(
|
|
76
|
-
|
|
76
|
+
7668,
|
|
77
77
|
"{0} / {1} tokens",
|
|
78
78
|
this.formatTokenCount(usedTokens, 1),
|
|
79
79
|
this.formatTokenCount(totalContextWindow, 0)
|
|
80
80
|
));
|
|
81
|
-
this.percentageLabel.textContent = ( localize(
|
|
81
|
+
this.percentageLabel.textContent = ( localize(7669, "{0}%", Math.min(100, percentage).toFixed(0)));
|
|
82
82
|
const usageBarWidth = Math.max(0, Math.min(100, percentage));
|
|
83
83
|
this.progressFill.style.width = `${usageBarWidth}%`;
|
|
84
84
|
if (outputBufferPercentage !== undefined && outputBufferPercentage > 0) {
|
|
@@ -128,8 +128,8 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
|
|
|
128
128
|
}
|
|
129
129
|
if (totalPercentage < 100) {
|
|
130
130
|
const uncategorizedPercentage = 100 - totalPercentage;
|
|
131
|
-
categoryMap.set(( localize(
|
|
132
|
-
label: ( localize(
|
|
131
|
+
categoryMap.set(( localize(7670, "Uncategorized")), [{
|
|
132
|
+
label: ( localize(7671, "Other")),
|
|
133
133
|
percentageOfPrompt: uncategorizedPercentage
|
|
134
134
|
}]);
|
|
135
135
|
}
|
package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js
CHANGED
|
@@ -110,7 +110,7 @@ let ChatContextUsageWidget = class ChatContextUsageWidget extends Disposable {
|
|
|
110
110
|
this.domNode.style.display = "none";
|
|
111
111
|
this.domNode.setAttribute("tabindex", "0");
|
|
112
112
|
this.domNode.setAttribute("role", "button");
|
|
113
|
-
this.domNode.setAttribute("aria-label", ( localize(
|
|
113
|
+
this.domNode.setAttribute("aria-label", ( localize(7672, "Context window usage")));
|
|
114
114
|
const iconContainer = this.domNode.appendChild($(".icon-container"));
|
|
115
115
|
this.progressIndicator = ( new CircularProgressIndicator());
|
|
116
116
|
iconContainer.appendChild(this.progressIndicator.domNode);
|
|
@@ -217,7 +217,8 @@ let ChatContextUsageWidget = class ChatContextUsageWidget extends Disposable {
|
|
|
217
217
|
const modelMetadata = this.languageModelsService.lookupLanguageModel(modelId);
|
|
218
218
|
const maxInputTokens = modelMetadata?.maxInputTokens;
|
|
219
219
|
const maxOutputTokens = modelMetadata?.maxOutputTokens;
|
|
220
|
-
|
|
220
|
+
const totalContextWindow = (maxInputTokens ?? 0) + (maxOutputTokens ?? 0);
|
|
221
|
+
if (!usage || totalContextWindow <= 0) {
|
|
221
222
|
if (!this.currentData) {
|
|
222
223
|
this.hide();
|
|
223
224
|
}
|
|
@@ -227,7 +228,6 @@ let ChatContextUsageWidget = class ChatContextUsageWidget extends Disposable {
|
|
|
227
228
|
const completionTokens = usage.completionTokens;
|
|
228
229
|
const promptTokenDetails = usage.promptTokenDetails;
|
|
229
230
|
const outputBuffer = usage.outputBuffer;
|
|
230
|
-
const totalContextWindow = maxInputTokens + maxOutputTokens;
|
|
231
231
|
const usedTokens = promptTokens + completionTokens;
|
|
232
232
|
const percentage = (usedTokens / totalContextWindow) * 100;
|
|
233
233
|
const outputBufferPercentage = outputBuffer !== undefined ? (Math.max(0, outputBuffer - completionTokens) / totalContextWindow) * 100 : undefined;
|
|
@@ -260,7 +260,7 @@ let ChatContextUsageWidget = class ChatContextUsageWidget extends Disposable {
|
|
|
260
260
|
this.progressIndicator.setProgress(percentage);
|
|
261
261
|
const roundedPercentage = Math.min(100, Math.round(percentage));
|
|
262
262
|
this.percentageLabel.textContent = `${roundedPercentage}%`;
|
|
263
|
-
this.domNode.setAttribute("aria-label", ( localize(
|
|
263
|
+
this.domNode.setAttribute("aria-label", ( localize(7673, "Context window usage: {0}%", roundedPercentage)));
|
|
264
264
|
this.domNode.classList.remove("warning", "error");
|
|
265
265
|
if (percentage >= 90) {
|
|
266
266
|
this.domNode.classList.add("error");
|
|
@@ -26,7 +26,7 @@ async function extractImagesFromChatResponse(response, readFile) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
const request = response.session.getItems().find(item => isRequestVM(item) && item.id === response.requestId);
|
|
29
|
-
const title = request ? request.messageText : ( localize(
|
|
29
|
+
const title = request ? request.messageText : ( localize(7769, "Images"));
|
|
30
30
|
return {
|
|
31
31
|
id: ( response.sessionResource.toString()) + "_" + response.id,
|
|
32
32
|
title,
|
|
@@ -45,10 +45,10 @@ function extractImagesFromToolInvocationOutputDetails(toolInvocation, sessionRes
|
|
|
45
45
|
images.push({
|
|
46
46
|
id: `${toolInvocation.toolCallId}_${outputIndex}`,
|
|
47
47
|
uri,
|
|
48
|
-
name: ( localize(
|
|
48
|
+
name: ( localize(7770, "Image {0}", images.length + 1)),
|
|
49
49
|
mimeType,
|
|
50
50
|
data,
|
|
51
|
-
source: ( localize(
|
|
51
|
+
source: ( localize(7771, "Tool: {0}", toolInvocation.toolId)),
|
|
52
52
|
caption
|
|
53
53
|
});
|
|
54
54
|
};
|
|
@@ -93,7 +93,7 @@ async function extractImagesFromToolInvocationMessages(toolInvocation, readFile)
|
|
|
93
93
|
name,
|
|
94
94
|
mimeType,
|
|
95
95
|
data,
|
|
96
|
-
source: ( localize(
|
|
96
|
+
source: ( localize(7771, "Tool: {0}", toolInvocation.toolId)),
|
|
97
97
|
caption: message.value
|
|
98
98
|
});
|
|
99
99
|
}
|
|
@@ -131,7 +131,7 @@ async function extractImageFromInlineReference(part, readFile) {
|
|
|
131
131
|
name,
|
|
132
132
|
mimeType: mime,
|
|
133
133
|
data,
|
|
134
|
-
source: ( localize(
|
|
134
|
+
source: ( localize(7772, "File")),
|
|
135
135
|
caption: undefined
|
|
136
136
|
};
|
|
137
137
|
}
|
|
@@ -160,7 +160,7 @@ function extractImagesFromChatRequest(request) {
|
|
|
160
160
|
name: variable.name,
|
|
161
161
|
mimeType,
|
|
162
162
|
data: VSBuffer.wrap(buffer),
|
|
163
|
-
source: ( localize(
|
|
163
|
+
source: ( localize(7773, "Attachment")),
|
|
164
164
|
caption: undefined
|
|
165
165
|
});
|
|
166
166
|
}
|
|
@@ -38,27 +38,27 @@ async function maybeConfirmElevatedPermissionLevel(level, dialogService, storage
|
|
|
38
38
|
const isAutopilot = level === ChatPermissionLevel.Autopilot;
|
|
39
39
|
const result = await dialogService.prompt({
|
|
40
40
|
type: Severity.Warning,
|
|
41
|
-
message: isAutopilot ? ( localize(
|
|
41
|
+
message: isAutopilot ? ( localize(7777, "Enable Autopilot?")) : ( localize(7778, "Enable Bypass Approvals?")),
|
|
42
42
|
buttons: [{
|
|
43
|
-
label: isAutopilot ? ( localize(
|
|
43
|
+
label: isAutopilot ? ( localize(7779, "Enable")) : ( localize(7780, "Enable")),
|
|
44
44
|
run: () => true
|
|
45
45
|
}, {
|
|
46
|
-
label: isAutopilot ? ( localize(
|
|
46
|
+
label: isAutopilot ? ( localize(7781, "Cancel")) : ( localize(7782, "Cancel")),
|
|
47
47
|
run: () => false
|
|
48
48
|
}],
|
|
49
49
|
checkbox: {
|
|
50
|
-
label: ( localize(
|
|
50
|
+
label: ( localize(7783, "Don't show again")),
|
|
51
51
|
checked: false
|
|
52
52
|
},
|
|
53
53
|
custom: {
|
|
54
54
|
icon: isAutopilot ? Codicon.rocket : Codicon.warning,
|
|
55
55
|
markdownDetails: [{
|
|
56
56
|
markdown: ( new MarkdownString(isAutopilot ? ( localize(
|
|
57
|
-
|
|
57
|
+
7784,
|
|
58
58
|
"Autopilot will auto-approve all tool calls and continue working autonomously until the task is complete. This includes terminal commands, file edits, and external tool calls. The agent will make decisions on your behalf without asking for confirmation.\n\nYou can stop the agent at any time by clicking the stop button. This applies to the current session only.\n\nTo make this the starting permission level for new chat sessions, change the [{0}](command:workbench.action.openSettings?%5B%22{0}%22%5D) setting.",
|
|
59
59
|
ChatConfiguration.DefaultPermissionLevel
|
|
60
60
|
)) : ( localize(
|
|
61
|
-
|
|
61
|
+
7785,
|
|
62
62
|
"Bypass Approvals will auto-approve all tool calls without asking for confirmation. This includes file edits, terminal commands, and external tool calls.\n\nTo make this the starting permission level for new chat sessions, change the [{0}](command:workbench.action.openSettings?%5B%22{0}%22%5D) setting.",
|
|
63
63
|
ChatConfiguration.DefaultPermissionLevel
|
|
64
64
|
)), {
|