@codingame/monaco-vscode-katex-common 32.0.2 → 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.
Files changed (142) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
  3. package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.d.ts +30 -0
  4. package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.js +8 -0
  5. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +32 -0
  6. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +13 -0
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +56 -36
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +45 -0
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +114 -0
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +87 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +502 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +45 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +188 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +153 -0
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +2 -2
  23. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
  24. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
  25. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +30 -30
  26. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +52 -52
  27. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +4 -4
  31. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  32. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  33. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
  34. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.d.ts +1 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +23 -20
  36. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +13 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +40 -13
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +4 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +217 -13
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +44 -44
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +10 -10
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +2 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +36 -23
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +12 -9
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -3
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +8 -13
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +16 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +6 -6
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +24 -21
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +6 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +72 -23
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +2 -4
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +7 -22
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +3 -3
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/media/toolRiskBadge.css +3 -3
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +1 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +25 -5
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +9 -1
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +41 -27
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +31 -25
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +1 -1
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +4 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +89 -27
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +4 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +203 -107
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +6 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +3 -3
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +5 -5
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +1 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +18 -18
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +32 -81
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +4 -4
  112. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
  113. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +6 -6
  114. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
  115. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
  116. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  117. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -2
  119. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
  120. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  121. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  122. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  123. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  124. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  125. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  126. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  127. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  128. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  129. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  130. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  131. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  132. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  133. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +4 -0
  134. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  135. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  136. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +4 -4
  137. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +29 -7
  138. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +27 -8
  139. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +17 -8
  140. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -69
  141. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -2
  142. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +9 -14
@@ -92,25 +92,25 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
92
92
  text: "`" + escapeMarkdownSyntaxTokens(s.label) + "`",
93
93
  id: McpCommandIds.ServerOptions,
94
94
  arguments: [s.id],
95
- tooltip: ( localize(7100, "Show options for {0}", s.label))
95
+ tooltip: ( localize(7175, "Show options for {0}", s.label))
96
96
  }, false))).join(", ");
97
97
  }
98
98
  updateDetailedProgress(state) {
99
99
  const skipText = createMarkdownCommandLink({
100
- text: ( localize(7101, "Skip?")),
100
+ text: ( localize(7176, "Skip?")),
101
101
  id: McpCommandIds.SkipCurrentAutostart,
102
- tooltip: ( localize(7102, "Skip starting this MCP server"))
102
+ tooltip: ( localize(7177, "Skip starting this MCP server"))
103
103
  });
104
104
  let content;
105
105
  if (state.starting.length === 0) {
106
106
  content = ( new MarkdownString(undefined, {
107
107
  isTrusted: true
108
- })).appendText(( localize(7103, "Activating MCP extensions...")) + " ").appendMarkdown(skipText);
108
+ })).appendText(( localize(7178, "Activating MCP extensions...")) + " ").appendMarkdown(skipText);
109
109
  } else {
110
110
  const serverLinks = this.createServerCommandLinks(state.starting);
111
111
  content = ( new MarkdownString(undefined, {
112
112
  isTrusted: true
113
- })).appendMarkdown(( localize(7104, "Starting MCP servers {0}...", serverLinks)) + " ").appendMarkdown(skipText);
113
+ })).appendMarkdown(( localize(7179, "Starting MCP servers {0}...", serverLinks)) + " ").appendMarkdown(skipText);
114
114
  }
115
115
  if (this.workingProgressPart) {
116
116
  this.workingProgressPart.updateMessage(content);
@@ -149,12 +149,12 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
149
149
  const count = serversRequiringInteraction.length;
150
150
  const links = this.createServerCommandLinks(serversRequiringInteraction);
151
151
  const content = count === 1 ? ( localize(
152
- 7105,
152
+ 7180,
153
153
  "The MCP server {0} may have new tools and requires interaction to start. [Start it now?]({1})",
154
154
  links,
155
155
  "#start"
156
156
  )) : ( localize(
157
- 7106,
157
+ 7181,
158
158
  "The MCP servers {0} may have new tools and require interaction to start. [Start them now?]({1})",
159
159
  links,
160
160
  "#start"
@@ -196,7 +196,7 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
196
196
  const serversToStart = state.serversRequiringInteraction;
197
197
  for (let i = 0; i < serversToStart.length; i++) {
198
198
  const serverInfo = serversToStart[i];
199
- startLink.textContent = ( localize(7107, "Starting {0}...", serverInfo.label));
199
+ startLink.textContent = ( localize(7182, "Starting {0}...", serverInfo.label));
200
200
  const server = this.mcpService.servers.get().find(s => s.definition.id === serverInfo.id);
201
201
  if (server) {
202
202
  await startServerAndWaitForLiveTools(server, {
@@ -64,7 +64,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
64
64
  const viewListButton = ( new ButtonWithIcon(viewListButtonContainer, {}));
65
65
  this._register(autorun(reader => {
66
66
  const fileCount = this.diffData.read(reader).resources.length;
67
- viewListButton.label = fileCount === 1 ? ( localize(7108, "Changed 1 file")) : ( localize(7109, "Changed {0} files", fileCount));
67
+ viewListButton.label = fileCount === 1 ? ( localize(7183, "Changed 1 file")) : ( localize(7184, "Changed {0} files", fileCount));
68
68
  }));
69
69
  const setExpansionState = () => {
70
70
  viewListButton.icon = this.isCollapsed ? Codicon.chevronRight : Codicon.chevronDown;
@@ -86,7 +86,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
86
86
  renderViewAllFileChangesButton(container) {
87
87
  const button = container.appendChild($(".chat-view-changes-icon"));
88
88
  button.classList.add(...ThemeIcon.asClassNameArray(Codicon.diffMultiple));
89
- button.title = ( localize(7110, "Open Changes"));
89
+ button.title = ( localize(7185, "Open Changes"));
90
90
  return addDisposableListener(button, "click", e => {
91
91
  const source = ( URI.parse(`multi-diff-editor:${( ( new Date()).getMilliseconds().toString()) + ( Math.random().toString())}`));
92
92
  const {
@@ -143,7 +143,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
143
143
  alwaysConsumeMouseWheel: false,
144
144
  accessibilityProvider: {
145
145
  getAriaLabel: element => element.uri.path,
146
- getWidgetAriaLabel: () => ( localize(7111, "File Changes"))
146
+ getWidgetAriaLabel: () => ( localize(7186, "File Changes"))
147
147
  }
148
148
  })
149
149
  );
@@ -259,7 +259,7 @@ class ChatMultiDiffListRenderer {
259
259
  const removedElement = changesSummary.appendChild($(".deletions"));
260
260
  removedElement.textContent = `-${element.diff.removed}`;
261
261
  changesSummary.setAttribute("aria-label", ( localize(
262
- 7112,
262
+ 7187,
263
263
  "{0} lines added, {1} lines removed",
264
264
  element.diff.added,
265
265
  element.diff.removed
@@ -131,7 +131,7 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
131
131
  this.domNode = elements.container;
132
132
  this.domNode.id = generateUuid();
133
133
  this.domNode.setAttribute("role", "region");
134
- this.domNode.setAttribute("aria-label", ( localize(7113, "Plan review: {0}", review.title)));
134
+ this.domNode.setAttribute("aria-label", ( localize(7188, "Plan review: {0}", review.title)));
135
135
  this._titleActionsEl = elements.titleActions;
136
136
  this._inlineActionsEl = elements.inlineActions;
137
137
  this._footerButtonsEl = elements.footerButtons;
@@ -142,7 +142,7 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
142
142
  }));
143
143
  if (review.planUri) {
144
144
  const fileName = basename(URI.revive(review.planUri));
145
- const reviewButtonTooltip = review.canProvideFeedback ? ( localize(7114, "Review {0}", fileName)) : ( localize(7115, "Open {0}", fileName));
145
+ const reviewButtonTooltip = review.canProvideFeedback ? ( localize(7189, "Review {0}", fileName)) : ( localize(7190, "Open {0}", fileName));
146
146
  const reviewButton = this._register(( new Button(this._titleActionsEl, {
147
147
  ...defaultButtonStyles,
148
148
  secondary: true,
@@ -251,10 +251,10 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
251
251
  clearNode(section);
252
252
  const header = append(section, $(".chat-plan-review-feedback-header"));
253
253
  const label = append(header, $(".chat-plan-review-feedback-label"));
254
- label.textContent = ( localize(7116, "Feedback"));
254
+ label.textContent = ( localize(7191, "Feedback"));
255
255
  const headerActions = append(header, $(".chat-plan-review-feedback-header-actions"));
256
256
  if (this.review.planUri) {
257
- const clearAllLabel = ( localize(7117, "Clear All"));
257
+ const clearAllLabel = ( localize(7192, "Clear All"));
258
258
  const clearAllButton = this._register(( new Button(headerActions, {
259
259
  ...defaultButtonStyles,
260
260
  secondary: true,
@@ -268,7 +268,7 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
268
268
  this._clearAllButtonEl = clearAllButton.element;
269
269
  }
270
270
  if (this.review.planUri) {
271
- const closeButtonLabel = ( localize(7118, "Close"));
271
+ const closeButtonLabel = ( localize(7193, "Close"));
272
272
  const closeButton = this._register(( new Button(headerActions, {
273
273
  ...defaultButtonStyles,
274
274
  secondary: true,
@@ -296,7 +296,7 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
296
296
  this.renderCommentsList();
297
297
  const textarea = append(section, $("textarea.chat-plan-review-feedback-textarea"));
298
298
  textarea.rows = 1;
299
- textarea.placeholder = ( localize(7119, "Add an overall comment for the agent..."));
299
+ textarea.placeholder = ( localize(7194, "Add an overall comment for the agent..."));
300
300
  this._feedbackTextarea = textarea;
301
301
  const autoResize = () => {
302
302
  textarea.style.height = "auto";
@@ -349,18 +349,18 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
349
349
  }
350
350
  for (const item of items) {
351
351
  const row = append(this._commentsListEl, $(".chat-plan-review-comment-row"));
352
- const rowLabel = ( localize(7120, "Line {0}: {1}", item.line, item.text));
352
+ const rowLabel = ( localize(7195, "Line {0}: {1}", item.line, item.text));
353
353
  const revealButton = append(row, $("button.chat-plan-review-comment-reveal"));
354
354
  revealButton.type = "button";
355
355
  revealButton.setAttribute("aria-label", rowLabel);
356
356
  const lineEl = append(revealButton, $("span.chat-plan-review-comment-line"));
357
- lineEl.textContent = ( localize(7121, "Line {0}", item.line));
357
+ lineEl.textContent = ( localize(7196, "Line {0}", item.line));
358
358
  const textEl = append(revealButton, $("span.chat-plan-review-comment-text"));
359
359
  textEl.textContent = item.text;
360
360
  this._commentRowDisposables.add(addDisposableListener(revealButton, EventType.CLICK, () => {
361
361
  this.revealInlineComment(item.id, item.line, item.column);
362
362
  }));
363
- const removeLabel = ( localize(7122, "Remove comment on line {0}", item.line));
363
+ const removeLabel = ( localize(7197, "Remove comment on line {0}", item.line));
364
364
  const removeButton = append(row, $("button.chat-plan-review-comment-remove"));
365
365
  removeButton.type = "button";
366
366
  removeButton.setAttribute("aria-label", removeLabel);
@@ -431,12 +431,12 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
431
431
  }
432
432
  const result = await this._dialogService.confirm({
433
433
  type: Severity.Warning,
434
- message: ( localize(7123, "Clear {0} inline comment(s)?", items.length)),
434
+ message: ( localize(7198, "Clear {0} inline comment(s)?", items.length)),
435
435
  detail: ( localize(
436
- 7124,
436
+ 7199,
437
437
  "These comments will be removed from the plan file and not sent to the agent."
438
438
  )),
439
- primaryButton: ( localize(7125, "Clear All"))
439
+ primaryButton: ( localize(7200, "Clear All"))
440
440
  });
441
441
  if (!result.confirmed) {
442
442
  return;
@@ -507,7 +507,7 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
507
507
  ...defaultButtonStyles,
508
508
  secondary: true
509
509
  }));
510
- rejectButton.label = ( localize(7126, "Reject"));
510
+ rejectButton.label = ( localize(7201, "Reject"));
511
511
  this._buttonStore.add(rejectButton);
512
512
  this._buttonStore.add(rejectButton.onDidClick(() => this.submitRejection()));
513
513
  }
@@ -548,7 +548,7 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
548
548
  ...defaultButtonStyles,
549
549
  secondary: true
550
550
  }));
551
- rejectButton.label = ( localize(7126, "Reject"));
551
+ rejectButton.label = ( localize(7201, "Reject"));
552
552
  this._buttonStore.add(rejectButton);
553
553
  this._buttonStore.add(rejectButton.onDidClick(() => this.submitRejection()));
554
554
  }
@@ -561,7 +561,7 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
561
561
  return this.getInlineFeedbackItems().length > 0;
562
562
  }
563
563
  computeSubmitLabel(inlineCount) {
564
- return inlineCount > 0 ? ( localize(7127, "Submit Feedback ({0})", inlineCount)) : ( localize(7128, "Submit Feedback"));
564
+ return inlineCount > 0 ? ( localize(7202, "Submit Feedback ({0})", inlineCount)) : ( localize(7203, "Submit Feedback"));
565
565
  }
566
566
  updateSubmitButtonState() {
567
567
  if (!this._submitButton || !this._isFeedbackMode) {
@@ -599,7 +599,7 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
599
599
  this.domNode.classList.toggle("chat-plan-review-collapsed", this._isCollapsed);
600
600
  this._restoreButton.element.classList.toggle("chat-plan-review-hidden", this._isCollapsed);
601
601
  this._collapseButton.label = this._isCollapsed ? `$(${Codicon.chevronUp.id})` : `$(${Codicon.chevronDown.id})`;
602
- const collapseTooltip = this._isCollapsed ? ( localize(7129, "Expand")) : ( localize(7130, "Collapse"));
602
+ const collapseTooltip = this._isCollapsed ? ( localize(7204, "Expand")) : ( localize(7205, "Collapse"));
603
603
  this._collapseButton.element.setAttribute("aria-label", collapseTooltip);
604
604
  this._collapseButton.element.setAttribute("aria-expanded", String(!this._isCollapsed));
605
605
  this._collapseButton.setTitle(collapseTooltip);
@@ -611,18 +611,18 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
611
611
  if (isIconOnly) {
612
612
  label = `$(${Codicon.edit.id})`;
613
613
  const fileName = this.review.planUri ? basename(URI.revive(this.review.planUri)) : "";
614
- tooltip = this.review.canProvideFeedback ? ( localize(7114, "Review {0}", fileName)) : ( localize(7115, "Open {0}", fileName));
614
+ tooltip = this.review.canProvideFeedback ? ( localize(7189, "Review {0}", fileName)) : ( localize(7190, "Open {0}", fileName));
615
615
  } else if (this._isFeedbackMode) {
616
- label = ( localize(7131, "Cancel"));
617
- tooltip = ( localize(7132, "Exit feedback mode"));
616
+ label = ( localize(7206, "Cancel"));
617
+ tooltip = ( localize(7207, "Exit feedback mode"));
618
618
  } else {
619
619
  const fileName = this.review.planUri ? basename(URI.revive(this.review.planUri)) : "";
620
620
  if (this.review.canProvideFeedback) {
621
- label = ( localize(7133, "Edit or Provide Feedback"));
622
- tooltip = ( localize(7114, "Review {0}", fileName));
621
+ label = ( localize(7208, "Edit or Provide Feedback"));
622
+ tooltip = ( localize(7189, "Review {0}", fileName));
623
623
  } else {
624
- label = ( localize(7134, "Open Plan"));
625
- tooltip = ( localize(7115, "Open {0}", fileName));
624
+ label = ( localize(7209, "Open Plan"));
625
+ tooltip = ( localize(7190, "Open {0}", fileName));
626
626
  }
627
627
  }
628
628
  this._reviewButton.label = label;
@@ -634,7 +634,7 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
634
634
  updateExpandedPresentation() {
635
635
  this.domNode.classList.toggle("chat-plan-review-expanded", this._isExpanded && !this._isCollapsed);
636
636
  this._restoreButton.label = this._isExpanded ? `$(${Codicon.screenNormal.id})` : `$(${Codicon.screenFull.id})`;
637
- const tooltip = this._isExpanded ? ( localize(7135, "Restore Size")) : ( localize(7136, "Expand"));
637
+ const tooltip = this._isExpanded ? ( localize(7210, "Restore Size")) : ( localize(7211, "Expand"));
638
638
  this._restoreButton.element.setAttribute("aria-label", tooltip);
639
639
  this._restoreButton.setTitle(tooltip);
640
640
  this._messageScrollable.scanDomNode();
@@ -935,9 +935,9 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
935
935
  if (editorFeedbackItems.length > 0) {
936
936
  const planUri = this.review.planUri ? URI.revive(this.review.planUri) : undefined;
937
937
  const fileName = planUri ? basename(planUri) : "";
938
- const heading = fileName ? ( localize(7137, "Inline comments on `{0}`:", fileName)) : ( localize(7138, "Inline comments:"));
938
+ const heading = fileName ? ( localize(7212, "Inline comments on `{0}`:", fileName)) : ( localize(7213, "Inline comments:"));
939
939
  const bullets = ( editorFeedbackItems.map(item => {
940
- const location = item.column > 1 ? ( localize(7139, "Line {0}, Column {1}", item.line, item.column)) : ( localize(7140, "Line {0}", item.line));
940
+ const location = item.column > 1 ? ( localize(7214, "Line {0}, Column {1}", item.line, item.column)) : ( localize(7215, "Line {0}", item.line));
941
941
  return `- **${location}:** ${item.text}`;
942
942
  }));
943
943
  feedbackInlineMarkdown = [heading, ...bullets].join("\n");
@@ -961,19 +961,19 @@ let ChatPlanReviewPart = class ChatPlanReviewPart extends Disposable {
961
961
  async confirmAutopilot() {
962
962
  const result = await this._dialogService.prompt({
963
963
  type: Severity.Warning,
964
- message: ( localize(7141, "Enable Autopilot?")),
964
+ message: ( localize(7216, "Enable Autopilot?")),
965
965
  buttons: [{
966
- label: ( localize(7142, "Enable")),
966
+ label: ( localize(7217, "Enable")),
967
967
  run: () => true
968
968
  }, {
969
- label: ( localize(7143, "Cancel")),
969
+ label: ( localize(7218, "Cancel")),
970
970
  run: () => false
971
971
  }],
972
972
  custom: {
973
973
  icon: Codicon.rocket,
974
974
  markdownDetails: [{
975
975
  markdown: ( new MarkdownString(( localize(
976
- 7144,
976
+ 7219,
977
977
  "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."
978
978
  ))))
979
979
  }]
@@ -202,7 +202,7 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
202
202
  }
203
203
  this._register(languageModelToolsService.onDidPrepareToolCallBecomeUnresponsive(e => {
204
204
  if (isEqual(context.element.sessionResource, e.sessionResource)) {
205
- this.updateWorkingContent(( new MarkdownString(( localize(7145, "Waiting for tool '{0}' to respond...", e.toolData.displayName)))));
205
+ this.updateWorkingContent(( new MarkdownString(( localize(7220, "Waiting for tool '{0}' to respond...", e.toolData.displayName)))));
206
206
  }
207
207
  }));
208
208
  }
@@ -95,7 +95,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
95
95
  });
96
96
  this.domNode.tabIndex = 0;
97
97
  this.domNode.setAttribute("role", "region");
98
- this.domNode.setAttribute("aria-roledescription", ( localize(7146, "chat question")));
98
+ this.domNode.setAttribute("aria-roledescription", ( localize(7221, "chat question")));
99
99
  this._updateAriaLabel();
100
100
  if (carousel instanceof ChatQuestionCarouselData) {
101
101
  if (typeof carousel.draftCurrentIndex === "number") {
@@ -127,7 +127,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
127
127
  this._questionContainer = $(".chat-question-carousel-content");
128
128
  this.domNode.append(this._questionContainer);
129
129
  this._headerActionsContainer = $(".chat-question-header-actions");
130
- const collapseToggleTitle = ( localize(7147, "Collapse Questions"));
130
+ const collapseToggleTitle = ( localize(7222, "Collapse Questions"));
131
131
  const collapseButton = interactiveStore.add(( new Button(this._headerActionsContainer, {
132
132
  ...defaultButtonStyles,
133
133
  secondary: true,
@@ -138,7 +138,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
138
138
  this._collapseButton = collapseButton;
139
139
  if (carousel.allowSkip) {
140
140
  this._closeButtonContainer = $(".chat-question-close-container");
141
- const skipAllTitle = ( localize(7148, "Skip all questions"));
141
+ const skipAllTitle = ( localize(7223, "Skip all questions"));
142
142
  const skipAllButton = interactiveStore.add(( new Button(this._closeButtonContainer, {
143
143
  ...defaultButtonStyles,
144
144
  secondary: true,
@@ -154,9 +154,9 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
154
154
  }
155
155
  if (carousel.terminalId) {
156
156
  this._focusTerminalButtonContainer = $(".chat-question-focus-terminal-container");
157
- const focusTerminalTitle = ( localize(7149, "Focus Terminal"));
157
+ const focusTerminalTitle = ( localize(7224, "Focus Terminal"));
158
158
  const kbLabel = this._keybindingService.lookupKeybinding("workbench.action.chat.focusQuestionCarouselTerminal")?.getLabel();
159
- const focusTerminalAriaLabel = kbLabel ? ( localize(7150, "Focus Terminal ({0})", kbLabel)) : focusTerminalTitle;
159
+ const focusTerminalAriaLabel = kbLabel ? ( localize(7225, "Focus Terminal ({0})", kbLabel)) : focusTerminalTitle;
160
160
  const focusTerminalButton = interactiveStore.add(( new Button(this._focusTerminalButtonContainer, {
161
161
  ...defaultButtonStyles,
162
162
  secondary: true,
@@ -256,7 +256,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
256
256
  this.domNode.classList.toggle("chat-question-carousel-collapsed", this._isCollapsed);
257
257
  if (this._collapseButton) {
258
258
  const collapsed = this._isCollapsed;
259
- const buttonTitle = collapsed ? ( localize(7151, "Expand Questions")) : ( localize(7147, "Collapse Questions"));
259
+ const buttonTitle = collapsed ? ( localize(7226, "Expand Questions")) : ( localize(7222, "Collapse Questions"));
260
260
  const contentId = this.domNode.id;
261
261
  this._collapseButton.label = collapsed ? `$(${Codicon.chevronUp.id})` : `$(${Codicon.chevronDown.id})`;
262
262
  this._collapseButton.element.setAttribute("aria-label", buttonTitle);
@@ -311,7 +311,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
311
311
  const messageContent = this.getQuestionText(questionText);
312
312
  const questionCount = this.carousel.questions.length;
313
313
  const alertMessage = questionCount === 1 ? messageContent : ( localize(
314
- 7152,
314
+ 7227,
315
315
  "Question {0} of {1}: {2}",
316
316
  this._currentIndex + 1,
317
317
  questionCount,
@@ -459,7 +459,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
459
459
  _updateAriaLabel() {
460
460
  const question = this.carousel.questions[this._currentIndex];
461
461
  if (!question) {
462
- this.domNode.setAttribute("aria-label", ( localize(7153, "Chat question")));
462
+ this.domNode.setAttribute("aria-label", ( localize(7228, "Chat question")));
463
463
  return;
464
464
  }
465
465
  const questionText = question.message ?? question.title;
@@ -467,10 +467,10 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
467
467
  const questionCount = this.carousel.questions.length;
468
468
  let label;
469
469
  if (questionCount === 1) {
470
- label = ( localize(7154, "Chat question: {0}", messageContent));
470
+ label = ( localize(7229, "Chat question: {0}", messageContent));
471
471
  } else {
472
472
  label = ( localize(
473
- 7155,
473
+ 7230,
474
474
  "Chat question {0} of {1}: {2}",
475
475
  this._currentIndex + 1,
476
476
  questionCount,
@@ -481,10 +481,10 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
481
481
  if (verbose && this.carousel.terminalId) {
482
482
  const kbLabel = this._keybindingService.lookupKeybinding("workbench.action.chat.focusQuestionCarouselTerminal")?.getLabel();
483
483
  if (kbLabel) {
484
- label = ( localize(7156, "{0} Use {1} to focus the terminal.", label, kbLabel));
484
+ label = ( localize(7231, "{0} Use {1} to focus the terminal.", label, kbLabel));
485
485
  } else {
486
486
  label = ( localize(
487
- 7157,
487
+ 7232,
488
488
  "{0} Use the Focus Terminal from Question Carousel command to focus the terminal.",
489
489
  label
490
490
  ));
@@ -658,9 +658,9 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
658
658
  this._footerRow = $(".chat-question-footer-row");
659
659
  const leftControls = $(".chat-question-footer-left.chat-question-carousel-nav");
660
660
  leftControls.setAttribute("role", "navigation");
661
- leftControls.setAttribute("aria-label", ( localize(7158, "Question navigation")));
661
+ leftControls.setAttribute("aria-label", ( localize(7233, "Question navigation")));
662
662
  const arrowsContainer = $(".chat-question-nav-arrows");
663
- const previousLabel = this.getLabelWithKeybinding(( localize(7159, "Previous")), PREVIOUS_QUESTION_ACTION_ID);
663
+ const previousLabel = this.getLabelWithKeybinding(( localize(7234, "Previous")), PREVIOUS_QUESTION_ACTION_ID);
664
664
  const prevButton = interactiveStore.add(( new Button(arrowsContainer, {
665
665
  ...defaultButtonStyles,
666
666
  secondary: true,
@@ -674,7 +674,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
674
674
  }));
675
675
  interactiveStore.add(prevButton.onDidClick(() => this.navigate(-1)));
676
676
  this._prevButton = prevButton;
677
- const nextLabel = this.getLabelWithKeybinding(( localize(7160, "Next")), NEXT_QUESTION_ACTION_ID);
677
+ const nextLabel = this.getLabelWithKeybinding(( localize(7235, "Next")), NEXT_QUESTION_ACTION_ID);
678
678
  const nextButton = interactiveStore.add(( new Button(arrowsContainer, {
679
679
  ...defaultButtonStyles,
680
680
  secondary: true,
@@ -694,14 +694,14 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
694
694
  this._footerRow.appendChild(leftControls);
695
695
  const rightControls = $(".chat-question-footer-right");
696
696
  const hint = $("span.chat-question-submit-hint");
697
- hint.textContent = isMacintosh ? ( localize(7161, "⌘⏎ to submit")) : ( localize(7162, "Ctrl+Enter to submit"));
697
+ hint.textContent = isMacintosh ? ( localize(7236, "⌘⏎ to submit")) : ( localize(7237, "Ctrl+Enter to submit"));
698
698
  rightControls.appendChild(hint);
699
699
  this._submitHint = hint;
700
700
  const submitButton = interactiveStore.add(( new Button(rightControls, {
701
701
  ...defaultButtonStyles
702
702
  })));
703
703
  submitButton.element.classList.add("chat-question-submit-button");
704
- submitButton.label = ( localize(7163, "Submit"));
704
+ submitButton.label = ( localize(7238, "Submit"));
705
705
  interactiveStore.add(submitButton.onDidClick(() => this.submit()));
706
706
  this._submitButton = submitButton;
707
707
  this._footerRow.appendChild(rightControls);
@@ -722,7 +722,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
722
722
  this._nextButton.enabled = canAdvance && (!question?.required || hasAnswer) && !hasValidationError;
723
723
  }
724
724
  if (this._stepIndicator) {
725
- this._stepIndicator.textContent = ( localize(7164, "{0}/{1}", this._currentIndex + 1, this.carousel.questions.length));
725
+ this._stepIndicator.textContent = ( localize(7239, "{0}/{1}", this._currentIndex + 1, this.carousel.questions.length));
726
726
  }
727
727
  if (this._submitButton) {
728
728
  const isLastQuestion = this._currentIndex === this.carousel.questions.length - 1;
@@ -741,18 +741,18 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
741
741
  this._footerRow = $(".chat-question-footer-row");
742
742
  const leftControls = $(".chat-question-footer-left.chat-question-carousel-nav");
743
743
  leftControls.setAttribute("role", "navigation");
744
- leftControls.setAttribute("aria-label", ( localize(7158, "Question navigation")));
744
+ leftControls.setAttribute("aria-label", ( localize(7233, "Question navigation")));
745
745
  this._footerRow.appendChild(leftControls);
746
746
  const rightControls = $(".chat-question-footer-right");
747
747
  const hint = $("span.chat-question-submit-hint");
748
- hint.textContent = isMacintosh ? ( localize(7161, "⌘⏎ to submit")) : ( localize(7162, "Ctrl+Enter to submit"));
748
+ hint.textContent = isMacintosh ? ( localize(7236, "⌘⏎ to submit")) : ( localize(7237, "Ctrl+Enter to submit"));
749
749
  rightControls.appendChild(hint);
750
750
  this._submitHint = hint;
751
751
  const submitButton = interactiveStore.add(( new Button(rightControls, {
752
752
  ...defaultButtonStyles
753
753
  })));
754
754
  submitButton.element.classList.add("chat-question-submit-button");
755
- submitButton.label = ( localize(7163, "Submit"));
755
+ submitButton.label = ( localize(7238, "Submit"));
756
756
  interactiveStore.add(submitButton.onDidClick(() => this.submit()));
757
757
  this._submitButton = submitButton;
758
758
  this._footerRow.appendChild(rightControls);
@@ -761,7 +761,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
761
761
  }
762
762
  getLabelWithKeybinding(label, actionId) {
763
763
  const keybindingLabel = this._keybindingService.lookupKeybinding(actionId, this._contextKeyService)?.getLabel();
764
- return keybindingLabel ? ( localize(7165, "{0} ({1})", label, keybindingLabel)) : label;
764
+ return keybindingLabel ? ( localize(7240, "{0} ({1})", label, keybindingLabel)) : label;
765
765
  }
766
766
  renderInput(container, question) {
767
767
  switch (question.type) {
@@ -790,7 +790,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
790
790
  }
791
791
  renderTextInput(container, question) {
792
792
  const inputBox = this._inputBoxes.add(( new InputBox(container, undefined, {
793
- placeholder: ( localize(7166, "Enter your answer")),
793
+ placeholder: ( localize(7241, "Enter your answer")),
794
794
  inputBoxStyles: defaultInputBoxStyles,
795
795
  validationOptions: question.validation ? {
796
796
  validation: value => {
@@ -881,7 +881,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
881
881
  const listItem = $(".chat-question-list-item");
882
882
  listItem.setAttribute("role", "option");
883
883
  listItem.setAttribute("aria-selected", String(isSelected));
884
- listItem.setAttribute("aria-label", ( localize(7167, "Option {0}: {1}", index + 1, option.label)));
884
+ listItem.setAttribute("aria-label", ( localize(7242, "Option {0}: {1}", index + 1, option.label)));
885
885
  listItem.id = `option-${question.id}-${index}`;
886
886
  listItem.tabIndex = -1;
887
887
  const number = $(".chat-question-list-number");
@@ -947,7 +947,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
947
947
  freeformNumber.textContent = `${orderedOptions.length + 1}`;
948
948
  freeformContainer.appendChild(freeformNumber);
949
949
  freeformTextarea = $("textarea.chat-question-freeform-textarea");
950
- freeformTextarea.placeholder = ( localize(7168, "Enter custom answer"));
950
+ freeformTextarea.placeholder = ( localize(7243, "Enter custom answer"));
951
951
  freeformTextarea.rows = 1;
952
952
  if (previousFreeform !== undefined) {
953
953
  freeformTextarea.value = previousFreeform;
@@ -1059,7 +1059,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1059
1059
  const listItem = $(".chat-question-list-item.multi-select");
1060
1060
  listItem.setAttribute("role", "option");
1061
1061
  listItem.setAttribute("aria-selected", String(isChecked));
1062
- listItem.setAttribute("aria-label", ( localize(7167, "Option {0}: {1}", index + 1, option.label)));
1062
+ listItem.setAttribute("aria-label", ( localize(7242, "Option {0}: {1}", index + 1, option.label)));
1063
1063
  listItem.id = `option-${question.id}-${index}`;
1064
1064
  listItem.tabIndex = -1;
1065
1065
  const number = $(".chat-question-list-number");
@@ -1124,7 +1124,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1124
1124
  freeformNumber.textContent = `${orderedOptions.length + 1}`;
1125
1125
  freeformContainer.appendChild(freeformNumber);
1126
1126
  freeformTextarea = $("textarea.chat-question-freeform-textarea");
1127
- freeformTextarea.placeholder = ( localize(7168, "Enter custom answer"));
1127
+ freeformTextarea.placeholder = ( localize(7243, "Enter custom answer"));
1128
1128
  freeformTextarea.rows = 1;
1129
1129
  if (previousFreeform !== undefined) {
1130
1130
  freeformTextarea.value = previousFreeform;
@@ -1292,7 +1292,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1292
1292
  const skippedContainer = $(".chat-question-carousel-summary");
1293
1293
  const skippedMessage = $(".chat-question-summary-skipped");
1294
1294
  const isDismissedByTerminal = this.carousel instanceof ChatQuestionCarouselData && this.carousel.dismissedByTerminalInput;
1295
- skippedMessage.textContent = isDismissedByTerminal ? ( localize(7169, "Deferring to user's input in the terminal")) : ( localize(7170, "Skipped"));
1295
+ skippedMessage.textContent = isDismissedByTerminal ? ( localize(7244, "Deferring to user's input in the terminal")) : ( localize(7245, "Skipped"));
1296
1296
  skippedContainer.appendChild(skippedMessage);
1297
1297
  this.domNode.appendChild(skippedContainer);
1298
1298
  }
@@ -1311,16 +1311,16 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1311
1311
  const questionText = question.message ?? question.title;
1312
1312
  let labelText = typeof questionText === "string" ? questionText : questionText.value;
1313
1313
  labelText = labelText.replace(/[:\s]+$/, "");
1314
- questionRow.textContent = ( localize(7171, "Q: {0}", labelText));
1314
+ questionRow.textContent = ( localize(7246, "Q: {0}", labelText));
1315
1315
  summaryItem.appendChild(questionRow);
1316
1316
  if (answer !== undefined) {
1317
1317
  const formattedAnswer = this.formatAnswerForSummary(question, answer);
1318
1318
  const answerRow = $("div.chat-question-summary-answer-title");
1319
- answerRow.textContent = ( localize(7172, "A: {0}", formattedAnswer));
1319
+ answerRow.textContent = ( localize(7247, "A: {0}", formattedAnswer));
1320
1320
  summaryItem.appendChild(answerRow);
1321
1321
  } else {
1322
1322
  const unanswered = $("div.chat-question-summary-unanswered");
1323
- unanswered.textContent = ( localize(7173, "Not answered yet"));
1323
+ unanswered.textContent = ( localize(7248, "Not answered yet"));
1324
1324
  summaryItem.appendChild(unanswered);
1325
1325
  }
1326
1326
  summaryContainer.appendChild(summaryItem);
@@ -1360,7 +1360,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1360
1360
  if (freeformValue) {
1361
1361
  labels.push(freeformValue);
1362
1362
  }
1363
- return labels.join(( localize(7174, ", ")));
1363
+ return labels.join(( localize(7249, ", ")));
1364
1364
  }
1365
1365
  return String(answer);
1366
1366
  }
@@ -1379,7 +1379,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1379
1379
  }
1380
1380
  const answer = this._answers.get(question.id);
1381
1381
  if (question.required && (answer === undefined || answer === "")) {
1382
- this.showValidationError(( localize(7175, "This field is required")));
1382
+ this.showValidationError(( localize(7250, "This field is required")));
1383
1383
  return false;
1384
1384
  }
1385
1385
  if (question.type === "text" && question.validation && typeof answer === "string" && answer !== "") {
@@ -1404,7 +1404,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1404
1404
  this._currentIndex = i;
1405
1405
  this.persistDraftState();
1406
1406
  this.renderCurrentQuestion(true);
1407
- this.showValidationError(( localize(7175, "This field is required")));
1407
+ this.showValidationError(( localize(7250, "This field is required")));
1408
1408
  return false;
1409
1409
  }
1410
1410
  }
@@ -1412,34 +1412,34 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1412
1412
  }
1413
1413
  getValidationError(value, validation) {
1414
1414
  if (validation.minLength !== undefined && value.length < validation.minLength) {
1415
- return localize(7176, "Minimum length is {0}", validation.minLength);
1415
+ return localize(7251, "Minimum length is {0}", validation.minLength);
1416
1416
  }
1417
1417
  if (validation.maxLength !== undefined && value.length > validation.maxLength) {
1418
- return localize(7177, "Maximum length is {0}", validation.maxLength);
1418
+ return localize(7252, "Maximum length is {0}", validation.maxLength);
1419
1419
  }
1420
1420
  if (validation.format) {
1421
1421
  switch (validation.format) {
1422
1422
  case "email":
1423
1423
  if (!value.includes("@")) {
1424
- return localize(7178, "Please enter a valid email address");
1424
+ return localize(7253, "Please enter a valid email address");
1425
1425
  }
1426
1426
  break;
1427
1427
  case "uri":
1428
1428
  if (!URL.canParse(value)) {
1429
- return localize(7179, "Please enter a valid URI");
1429
+ return localize(7254, "Please enter a valid URI");
1430
1430
  }
1431
1431
  break;
1432
1432
  case "date":
1433
1433
  {
1434
1434
  const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
1435
1435
  if (!dateRegex.test(value) || isNaN(( new Date(value)).getTime())) {
1436
- return localize(7180, "Please enter a valid date (YYYY-MM-DD)");
1436
+ return localize(7255, "Please enter a valid date (YYYY-MM-DD)");
1437
1437
  }
1438
1438
  break;
1439
1439
  }
1440
1440
  case "date-time":
1441
1441
  if (isNaN(( new Date(value)).getTime())) {
1442
- return localize(7181, "Please enter a valid date-time");
1442
+ return localize(7256, "Please enter a valid date-time");
1443
1443
  }
1444
1444
  break;
1445
1445
  }
@@ -1447,16 +1447,16 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1447
1447
  if (validation.isInteger !== undefined || validation.minimum !== undefined || validation.maximum !== undefined) {
1448
1448
  const num = Number(value);
1449
1449
  if (isNaN(num)) {
1450
- return localize(7182, "Please enter a valid number");
1450
+ return localize(7257, "Please enter a valid number");
1451
1451
  }
1452
1452
  if (validation.isInteger && !Number.isInteger(num)) {
1453
- return localize(7183, "Please enter a valid integer");
1453
+ return localize(7258, "Please enter a valid integer");
1454
1454
  }
1455
1455
  if (validation.minimum !== undefined && num < validation.minimum) {
1456
- return localize(7184, "Minimum value is {0}", validation.minimum);
1456
+ return localize(7259, "Minimum value is {0}", validation.minimum);
1457
1457
  }
1458
1458
  if (validation.maximum !== undefined && num > validation.maximum) {
1459
- return localize(7185, "Maximum value is {0}", validation.maximum);
1459
+ return localize(7260, "Maximum value is {0}", validation.maximum);
1460
1460
  }
1461
1461
  }
1462
1462
  return undefined;