@codingame/monaco-vscode-katex-common 31.0.1 → 32.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +15 -3
  3. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +6 -5
  4. package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +5 -1
  5. package/vscode/src/vs/platform/actions/browser/buttonbar.js +45 -14
  6. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +15 -1
  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 +15 -10
  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 +51 -54
  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/agentSessionHoverWidget.d.ts +3 -1
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +45 -23
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +13 -7
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +5 -3
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +4 -1
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +46 -32
  21. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +8 -0
  22. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +155 -46
  24. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +20 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.d.ts +4 -1
  27. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +37 -14
  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/chatSessions/media/chatSessionPickerActionItem.css +1 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.d.ts +28 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +250 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  34. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +14 -11
  35. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
  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/chatAttachmentsContentPart.js +7 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +7 -3
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +12 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +51 -20
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +6 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +56 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.d.ts +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.js +2 -2
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.d.ts +3 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.js +4 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +68 -10
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.d.ts +58 -2
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +653 -75
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +28 -10
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +5 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +91 -54
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +7 -5
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +53 -51
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -11
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +4 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +42 -22
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +6 -2
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +93 -35
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +5 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +169 -27
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +13 -4
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +29 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +1 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +60 -15
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +13 -6
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +15 -8
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +6 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +125 -26
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +2 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +29 -23
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.d.ts +14 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +119 -10
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +1 -1
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/media/toolRiskBadge.css +77 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +38 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +125 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +1 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +132 -59
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +16 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +156 -67
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +55 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.js +93 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +21 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +133 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +53 -8
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +288 -125
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +23 -2
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +699 -145
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +12 -8
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +12 -11
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.d.ts +62 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +120 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +191 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatPhoneInputPresenter.css +22 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +3 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +9 -25
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +4 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +20 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +89 -108
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +521 -9
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +19 -19
  136. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
  137. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.d.ts +2 -0
  138. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.js +6 -0
  139. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.d.ts +27 -0
  140. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +82 -0
  141. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +3 -0
  142. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +44 -17
  143. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -3
  144. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +3 -46
  145. package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.d.ts → inlineChatAffordanceWidget.d.ts} +1 -1
  146. package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.js → inlineChatAffordanceWidget.js} +6 -6
  147. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -18
  148. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +19 -400
  149. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +4 -9
  150. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +1 -1
  151. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +5 -19
  152. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +47 -133
  153. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +3 -1
  154. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +103 -25
  155. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +29 -0
  156. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +3 -32
  157. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +39 -92
  158. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  159. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  160. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  161. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  163. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  164. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  165. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  166. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  167. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  168. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  169. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +7 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +99 -32
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +13 -1
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +76 -14
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -3
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +9 -1
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +89 -28
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +1 -1
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -1
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +11 -7
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +3 -1
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +7 -3
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  184. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
  185. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  186. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +8 -0
  187. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +11 -2
  188. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +20 -0
  189. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +59 -4
  190. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -1
  191. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +24 -3
  192. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +47 -0
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +111 -30
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +60 -3
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +455 -171
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +33 -0
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +82 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.d.ts +31 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.js +49 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.d.ts +18 -0
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.js +302 -0
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +7 -0
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.js +118 -0
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +34 -4
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +233 -48
  206. package/vscode/src/vs/platform/actions/browser/actionbar.d.ts +0 -16
  207. package/vscode/src/vs/platform/actions/browser/actionbar.js +0 -22
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -539
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -29
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -386
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +0 -101
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +0 -509
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -130
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +0 -276
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.d.ts +0 -45
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.js +0 -93
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +0 -39
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +0 -617
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +0 -231
@@ -16,12 +16,11 @@ import { getToolApprovalMessage } from './toolInvocationParts/chatToolPartUtilit
16
16
  import { IChatMarkdownAnchorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service';
17
17
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
18
18
  import { AccessibilityWorkbenchSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
19
- import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
20
19
  import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
21
20
  import { HoverStyle } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hover';
22
21
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
23
22
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
24
- import { buildPhrasePool, defaultThinkingMessages } from './chatThinkingContentPart.js';
23
+ import { maybePickFunWorkingMessage, buildPhrasePool, defaultThinkingMessages } from './chatThinkingContentPart.js';
25
24
 
26
25
  let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
27
26
  constructor(
@@ -137,6 +136,31 @@ let ChatProgressSubPart = class ChatProgressSubPart extends Disposable {
137
136
  }
138
137
  };
139
138
  ChatProgressSubPart = ( __decorate([( __param(3, IHoverService))], ChatProgressSubPart));
139
+ const WORKING_LABEL_MIN_DWELL_MS = 1200;
140
+ const lastPickedWorkingLabelByElement = ( new Map());
141
+ function pickWorkingLabel(elementId, configurationService) {
142
+ const now = Date.now();
143
+ for (const [id, entry] of lastPickedWorkingLabelByElement) {
144
+ if (now - entry.pickedAt >= WORKING_LABEL_MIN_DWELL_MS) {
145
+ lastPickedWorkingLabelByElement.delete(id);
146
+ }
147
+ }
148
+ const existing = lastPickedWorkingLabelByElement.get(elementId);
149
+ if (existing && now - existing.pickedAt < WORKING_LABEL_MIN_DWELL_MS) {
150
+ existing.pickedAt = now;
151
+ return existing.label;
152
+ }
153
+ const fun = maybePickFunWorkingMessage();
154
+ const label = fun ?? (() => {
155
+ const pool = buildPhrasePool(defaultThinkingMessages, configurationService);
156
+ return pool[Math.floor(Math.random() * pool.length)];
157
+ })();
158
+ lastPickedWorkingLabelByElement.set(elementId, {
159
+ label,
160
+ pickedAt: now
161
+ });
162
+ return label;
163
+ }
140
164
  let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extends Disposable {
141
165
  constructor(
142
166
  workingProgress,
@@ -149,13 +173,7 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
149
173
  ) {
150
174
  super();
151
175
  this.explicitContent = workingProgress.content;
152
- const persistentProgressEnabled = configurationService.getValue(ChatConfiguration.ChatPersistentProgressEnabled) !== false;
153
- if (persistentProgressEnabled) {
154
- const pool = buildPhrasePool(defaultThinkingMessages, configurationService);
155
- this.label = pool[Math.floor(Math.random() * pool.length)];
156
- } else {
157
- this.label = ( localize(6871, "Working"));
158
- }
176
+ this.label = pickWorkingLabel(context.element.id, configurationService);
159
177
  this.domNode = $(".progress-container");
160
178
  const iconElement = $("div");
161
179
  const state = workingProgress.state;
@@ -184,7 +202,7 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
184
202
  }
185
203
  this._register(languageModelToolsService.onDidPrepareToolCallBecomeUnresponsive(e => {
186
204
  if (isEqual(context.element.sessionResource, e.sessionResource)) {
187
- this.updateWorkingContent(( new MarkdownString(( localize(6872, "Waiting for tool '{0}' to respond...", e.toolData.displayName)))));
205
+ this.updateWorkingContent(( new MarkdownString(( localize(7134, "Waiting for tool '{0}' to respond...", e.toolData.displayName)))));
188
206
  }
189
207
  }));
190
208
  }
@@ -10,6 +10,7 @@ import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/h
10
10
  import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
11
11
  import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
12
12
  import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
13
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
13
14
  export interface IChatQuestionCarouselOptions {
14
15
  onSubmit: (answers: Map<string, IChatQuestionAnswerValue> | undefined) => void;
15
16
  shouldAutoFocus?: boolean;
@@ -23,6 +24,7 @@ export declare class ChatQuestionCarouselPart extends Disposable implements ICha
23
24
  private readonly _contextKeyService;
24
25
  private readonly _keybindingService;
25
26
  private readonly _commandService;
27
+ private readonly _configurationService;
26
28
  readonly domNode: HTMLElement;
27
29
  private readonly _onDidChangeHeight;
28
30
  readonly onDidChangeHeight: Event<void>;
@@ -54,10 +56,11 @@ export declare class ChatQuestionCarouselPart extends Disposable implements ICha
54
56
  */
55
57
  private readonly _interactiveUIStore;
56
58
  private readonly _inChatQuestionCarouselContextKey;
59
+ private readonly _chatQuestionCarouselHasTerminalContextKey;
57
60
  private _validationMessageElement;
58
61
  private _currentValidationError;
59
62
  private _focusTerminalButtonContainer;
60
- constructor(carousel: IChatQuestionCarousel, context: IChatContentPartRenderContext, _options: IChatQuestionCarouselOptions, _markdownRendererService: IMarkdownRendererService, _hoverService: IHoverService, _accessibilityService: IAccessibilityService, _contextKeyService: IContextKeyService, _keybindingService: IKeybindingService, _commandService: ICommandService);
63
+ constructor(carousel: IChatQuestionCarousel, context: IChatContentPartRenderContext, _options: IChatQuestionCarouselOptions, _markdownRendererService: IMarkdownRendererService, _hoverService: IHoverService, _accessibilityService: IAccessibilityService, _contextKeyService: IContextKeyService, _keybindingService: IKeybindingService, _commandService: ICommandService, _configurationService: IConfigurationService);
61
64
  /**
62
65
  * Saves the current question's answer to the answers map.
63
66
  */
@@ -131,6 +134,7 @@ export declare class ChatQuestionCarouselPart extends Disposable implements ICha
131
134
  hasFocus(): boolean;
132
135
  navigateToPreviousQuestion(): boolean;
133
136
  navigateToNextQuestion(): boolean;
137
+ focusTerminal(): boolean;
134
138
  private renderCurrentQuestion;
135
139
  /**
136
140
  * Renders or updates the persistent footer with nav arrows, step indicator, and submit button.
@@ -27,8 +27,10 @@ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/h
27
27
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
28
28
  import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
29
29
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
30
+ import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
30
31
  import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
31
32
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
33
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
32
34
  import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat';
33
35
  import { RunInTerminalTool } from '../../../../terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js';
34
36
  import * as chatQuestionCarousel from './media/chatQuestionCarousel.css';
@@ -46,7 +48,8 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
46
48
  _accessibilityService,
47
49
  _contextKeyService,
48
50
  _keybindingService,
49
- _commandService
51
+ _commandService,
52
+ _configurationService
50
53
  ) {
51
54
  super();
52
55
  this.carousel = carousel;
@@ -57,6 +60,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
57
60
  this._contextKeyService = _contextKeyService;
58
61
  this._keybindingService = _keybindingService;
59
62
  this._commandService = _commandService;
63
+ this._configurationService = _configurationService;
60
64
  this._onDidChangeHeight = this._register(( new Emitter()));
61
65
  this.onDidChangeHeight = this._onDidChangeHeight.event;
62
66
  this._currentIndex = 0;
@@ -73,19 +77,25 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
73
77
  this.domNode = $(".chat-question-carousel-container");
74
78
  this.domNode.id = generateUuid();
75
79
  this._inChatQuestionCarouselContextKey = ChatContextKeys.inChatQuestionCarousel.bindTo(this._contextKeyService);
80
+ this._chatQuestionCarouselHasTerminalContextKey = ChatContextKeys.chatQuestionCarouselHasTerminal.bindTo(this._contextKeyService);
76
81
  const focusTracker = this._register(trackFocus(this.domNode));
77
- this._register(
78
- focusTracker.onDidFocus(() => this._inChatQuestionCarouselContextKey.set(true))
79
- );
80
- this._register(
81
- focusTracker.onDidBlur(() => this._inChatQuestionCarouselContextKey.set(false))
82
- );
82
+ this._register(focusTracker.onDidFocus(() => {
83
+ this._inChatQuestionCarouselContextKey.set(true);
84
+ this._chatQuestionCarouselHasTerminalContextKey.set(!!this.carousel.terminalId);
85
+ }));
86
+ this._register(focusTracker.onDidBlur(() => {
87
+ this._inChatQuestionCarouselContextKey.set(false);
88
+ this._chatQuestionCarouselHasTerminalContextKey.reset();
89
+ }));
83
90
  this._register({
84
- dispose: () => this._inChatQuestionCarouselContextKey.reset()
91
+ dispose: () => {
92
+ this._inChatQuestionCarouselContextKey.reset();
93
+ this._chatQuestionCarouselHasTerminalContextKey.reset();
94
+ }
85
95
  });
86
96
  this.domNode.tabIndex = 0;
87
97
  this.domNode.setAttribute("role", "region");
88
- this.domNode.setAttribute("aria-roledescription", ( localize(6873, "chat question")));
98
+ this.domNode.setAttribute("aria-roledescription", ( localize(7135, "chat question")));
89
99
  this._updateAriaLabel();
90
100
  if (carousel instanceof ChatQuestionCarouselData) {
91
101
  if (typeof carousel.draftCurrentIndex === "number") {
@@ -117,7 +127,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
117
127
  this._questionContainer = $(".chat-question-carousel-content");
118
128
  this.domNode.append(this._questionContainer);
119
129
  this._headerActionsContainer = $(".chat-question-header-actions");
120
- const collapseToggleTitle = ( localize(6874, "Collapse Questions"));
130
+ const collapseToggleTitle = ( localize(7136, "Collapse Questions"));
121
131
  const collapseButton = interactiveStore.add(( new Button(this._headerActionsContainer, {
122
132
  ...defaultButtonStyles,
123
133
  secondary: true,
@@ -128,7 +138,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
128
138
  this._collapseButton = collapseButton;
129
139
  if (carousel.allowSkip) {
130
140
  this._closeButtonContainer = $(".chat-question-close-container");
131
- const skipAllTitle = ( localize(6875, "Skip all questions"));
141
+ const skipAllTitle = ( localize(7137, "Skip all questions"));
132
142
  const skipAllButton = interactiveStore.add(( new Button(this._closeButtonContainer, {
133
143
  ...defaultButtonStyles,
134
144
  secondary: true,
@@ -144,7 +154,9 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
144
154
  }
145
155
  if (carousel.terminalId) {
146
156
  this._focusTerminalButtonContainer = $(".chat-question-focus-terminal-container");
147
- const focusTerminalTitle = ( localize(6876, "Focus Terminal"));
157
+ const focusTerminalTitle = ( localize(7138, "Focus Terminal"));
158
+ const kbLabel = this._keybindingService.lookupKeybinding("workbench.action.chat.focusQuestionCarouselTerminal")?.getLabel();
159
+ const focusTerminalAriaLabel = kbLabel ? ( localize(7139, "Focus Terminal ({0})", kbLabel)) : focusTerminalTitle;
148
160
  const focusTerminalButton = interactiveStore.add(( new Button(this._focusTerminalButtonContainer, {
149
161
  ...defaultButtonStyles,
150
162
  secondary: true,
@@ -152,7 +164,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
152
164
  })));
153
165
  focusTerminalButton.label = `$(${Codicon.terminal.id})`;
154
166
  focusTerminalButton.element.classList.add("chat-question-focus-terminal");
155
- focusTerminalButton.element.setAttribute("aria-label", focusTerminalTitle);
167
+ focusTerminalButton.element.setAttribute("aria-label", focusTerminalAriaLabel);
156
168
  interactiveStore.add(this._hoverService.setupDelayedHover(focusTerminalButton.element, {
157
169
  content: focusTerminalTitle
158
170
  }));
@@ -244,7 +256,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
244
256
  this.domNode.classList.toggle("chat-question-carousel-collapsed", this._isCollapsed);
245
257
  if (this._collapseButton) {
246
258
  const collapsed = this._isCollapsed;
247
- const buttonTitle = collapsed ? ( localize(6877, "Expand Questions")) : ( localize(6874, "Collapse Questions"));
259
+ const buttonTitle = collapsed ? ( localize(7140, "Expand Questions")) : ( localize(7136, "Collapse Questions"));
248
260
  const contentId = this.domNode.id;
249
261
  this._collapseButton.label = collapsed ? `$(${Codicon.chevronUp.id})` : `$(${Codicon.chevronDown.id})`;
250
262
  this._collapseButton.element.setAttribute("aria-label", buttonTitle);
@@ -299,7 +311,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
299
311
  const messageContent = this.getQuestionText(questionText);
300
312
  const questionCount = this.carousel.questions.length;
301
313
  const alertMessage = questionCount === 1 ? messageContent : ( localize(
302
- 6878,
314
+ 7141,
303
315
  "Question {0} of {1}: {2}",
304
316
  this._currentIndex + 1,
305
317
  questionCount,
@@ -447,23 +459,38 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
447
459
  _updateAriaLabel() {
448
460
  const question = this.carousel.questions[this._currentIndex];
449
461
  if (!question) {
450
- this.domNode.setAttribute("aria-label", ( localize(6879, "Chat question")));
462
+ this.domNode.setAttribute("aria-label", ( localize(7142, "Chat question")));
451
463
  return;
452
464
  }
453
465
  const questionText = question.message ?? question.title;
454
466
  const messageContent = this.getQuestionText(questionText);
455
467
  const questionCount = this.carousel.questions.length;
468
+ let label;
456
469
  if (questionCount === 1) {
457
- this.domNode.setAttribute("aria-label", ( localize(6880, "Chat question: {0}", messageContent)));
470
+ label = ( localize(7143, "Chat question: {0}", messageContent));
458
471
  } else {
459
- this.domNode.setAttribute("aria-label", ( localize(
460
- 6881,
472
+ label = ( localize(
473
+ 7144,
461
474
  "Chat question {0} of {1}: {2}",
462
475
  this._currentIndex + 1,
463
476
  questionCount,
464
477
  messageContent
465
- )));
478
+ ));
466
479
  }
480
+ const verbose = this._configurationService.getValue(AccessibilityVerbositySettingId.ChatQuestionCarousel);
481
+ if (verbose && this.carousel.terminalId) {
482
+ const kbLabel = this._keybindingService.lookupKeybinding("workbench.action.chat.focusQuestionCarouselTerminal")?.getLabel();
483
+ if (kbLabel) {
484
+ label = ( localize(7145, "{0} Use {1} to focus the terminal.", label, kbLabel));
485
+ } else {
486
+ label = ( localize(
487
+ 7146,
488
+ "{0} Use the Focus Terminal from Question Carousel command to focus the terminal.",
489
+ label
490
+ ));
491
+ }
492
+ }
493
+ this.domNode.setAttribute("aria-label", label);
467
494
  }
468
495
  focus() {
469
496
  this.domNode.focus();
@@ -485,6 +512,13 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
485
512
  this.navigate(1);
486
513
  return true;
487
514
  }
515
+ focusTerminal() {
516
+ if (!this.carousel.terminalId) {
517
+ return false;
518
+ }
519
+ this._focusTerminal();
520
+ return true;
521
+ }
488
522
  renderCurrentQuestion(focusContainerForScreenReader = false) {
489
523
  if (!this._questionContainer) {
490
524
  return;
@@ -585,7 +619,10 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
585
619
  this.layoutInputScrollable(inputScrollable);
586
620
  });
587
621
  };
588
- const inputResizeObserver = questionRenderStore.add(new DisposableResizeObserver(() => scheduleLayoutInputScrollable()));
622
+ const inputResizeObserver = questionRenderStore.add(new DisposableResizeObserver(
623
+ "ChatQuestionCarouselPart.inputScrollable",
624
+ () => scheduleLayoutInputScrollable()
625
+ ));
589
626
  questionRenderStore.add(inputResizeObserver.observe(inputScrollableNode));
590
627
  questionRenderStore.add(inputResizeObserver.observe(inputContainer));
591
628
  questionRenderStore.add(addDisposableListener(
@@ -621,9 +658,9 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
621
658
  this._footerRow = $(".chat-question-footer-row");
622
659
  const leftControls = $(".chat-question-footer-left.chat-question-carousel-nav");
623
660
  leftControls.setAttribute("role", "navigation");
624
- leftControls.setAttribute("aria-label", ( localize(6882, "Question navigation")));
661
+ leftControls.setAttribute("aria-label", ( localize(7147, "Question navigation")));
625
662
  const arrowsContainer = $(".chat-question-nav-arrows");
626
- const previousLabel = this.getLabelWithKeybinding(( localize(6883, "Previous")), PREVIOUS_QUESTION_ACTION_ID);
663
+ const previousLabel = this.getLabelWithKeybinding(( localize(7148, "Previous")), PREVIOUS_QUESTION_ACTION_ID);
627
664
  const prevButton = interactiveStore.add(( new Button(arrowsContainer, {
628
665
  ...defaultButtonStyles,
629
666
  secondary: true,
@@ -637,7 +674,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
637
674
  }));
638
675
  interactiveStore.add(prevButton.onDidClick(() => this.navigate(-1)));
639
676
  this._prevButton = prevButton;
640
- const nextLabel = this.getLabelWithKeybinding(( localize(6884, "Next")), NEXT_QUESTION_ACTION_ID);
677
+ const nextLabel = this.getLabelWithKeybinding(( localize(7149, "Next")), NEXT_QUESTION_ACTION_ID);
641
678
  const nextButton = interactiveStore.add(( new Button(arrowsContainer, {
642
679
  ...defaultButtonStyles,
643
680
  secondary: true,
@@ -657,14 +694,14 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
657
694
  this._footerRow.appendChild(leftControls);
658
695
  const rightControls = $(".chat-question-footer-right");
659
696
  const hint = $("span.chat-question-submit-hint");
660
- hint.textContent = isMacintosh ? ( localize(6885, "⌘⏎ to submit")) : ( localize(6886, "Ctrl+Enter to submit"));
697
+ hint.textContent = isMacintosh ? ( localize(7150, "⌘⏎ to submit")) : ( localize(7151, "Ctrl+Enter to submit"));
661
698
  rightControls.appendChild(hint);
662
699
  this._submitHint = hint;
663
700
  const submitButton = interactiveStore.add(( new Button(rightControls, {
664
701
  ...defaultButtonStyles
665
702
  })));
666
703
  submitButton.element.classList.add("chat-question-submit-button");
667
- submitButton.label = ( localize(6887, "Submit"));
704
+ submitButton.label = ( localize(7152, "Submit"));
668
705
  interactiveStore.add(submitButton.onDidClick(() => this.submit()));
669
706
  this._submitButton = submitButton;
670
707
  this._footerRow.appendChild(rightControls);
@@ -685,7 +722,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
685
722
  this._nextButton.enabled = canAdvance && (!question?.required || hasAnswer) && !hasValidationError;
686
723
  }
687
724
  if (this._stepIndicator) {
688
- this._stepIndicator.textContent = ( localize(6888, "{0}/{1}", this._currentIndex + 1, this.carousel.questions.length));
725
+ this._stepIndicator.textContent = ( localize(7153, "{0}/{1}", this._currentIndex + 1, this.carousel.questions.length));
689
726
  }
690
727
  if (this._submitButton) {
691
728
  const isLastQuestion = this._currentIndex === this.carousel.questions.length - 1;
@@ -704,18 +741,18 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
704
741
  this._footerRow = $(".chat-question-footer-row");
705
742
  const leftControls = $(".chat-question-footer-left.chat-question-carousel-nav");
706
743
  leftControls.setAttribute("role", "navigation");
707
- leftControls.setAttribute("aria-label", ( localize(6882, "Question navigation")));
744
+ leftControls.setAttribute("aria-label", ( localize(7147, "Question navigation")));
708
745
  this._footerRow.appendChild(leftControls);
709
746
  const rightControls = $(".chat-question-footer-right");
710
747
  const hint = $("span.chat-question-submit-hint");
711
- hint.textContent = isMacintosh ? ( localize(6885, "⌘⏎ to submit")) : ( localize(6886, "Ctrl+Enter to submit"));
748
+ hint.textContent = isMacintosh ? ( localize(7150, "⌘⏎ to submit")) : ( localize(7151, "Ctrl+Enter to submit"));
712
749
  rightControls.appendChild(hint);
713
750
  this._submitHint = hint;
714
751
  const submitButton = interactiveStore.add(( new Button(rightControls, {
715
752
  ...defaultButtonStyles
716
753
  })));
717
754
  submitButton.element.classList.add("chat-question-submit-button");
718
- submitButton.label = ( localize(6887, "Submit"));
755
+ submitButton.label = ( localize(7152, "Submit"));
719
756
  interactiveStore.add(submitButton.onDidClick(() => this.submit()));
720
757
  this._submitButton = submitButton;
721
758
  this._footerRow.appendChild(rightControls);
@@ -724,7 +761,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
724
761
  }
725
762
  getLabelWithKeybinding(label, actionId) {
726
763
  const keybindingLabel = this._keybindingService.lookupKeybinding(actionId, this._contextKeyService)?.getLabel();
727
- return keybindingLabel ? ( localize(6889, "{0} ({1})", label, keybindingLabel)) : label;
764
+ return keybindingLabel ? ( localize(7154, "{0} ({1})", label, keybindingLabel)) : label;
728
765
  }
729
766
  renderInput(container, question) {
730
767
  switch (question.type) {
@@ -753,7 +790,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
753
790
  }
754
791
  renderTextInput(container, question) {
755
792
  const inputBox = this._inputBoxes.add(( new InputBox(container, undefined, {
756
- placeholder: ( localize(6890, "Enter your answer")),
793
+ placeholder: ( localize(7155, "Enter your answer")),
757
794
  inputBoxStyles: defaultInputBoxStyles,
758
795
  validationOptions: question.validation ? {
759
796
  validation: value => {
@@ -844,7 +881,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
844
881
  const listItem = $(".chat-question-list-item");
845
882
  listItem.setAttribute("role", "option");
846
883
  listItem.setAttribute("aria-selected", String(isSelected));
847
- listItem.setAttribute("aria-label", ( localize(6891, "Option {0}: {1}", index + 1, option.label)));
884
+ listItem.setAttribute("aria-label", ( localize(7156, "Option {0}: {1}", index + 1, option.label)));
848
885
  listItem.id = `option-${question.id}-${index}`;
849
886
  listItem.tabIndex = -1;
850
887
  const number = $(".chat-question-list-number");
@@ -910,7 +947,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
910
947
  freeformNumber.textContent = `${orderedOptions.length + 1}`;
911
948
  freeformContainer.appendChild(freeformNumber);
912
949
  freeformTextarea = $("textarea.chat-question-freeform-textarea");
913
- freeformTextarea.placeholder = ( localize(6892, "Enter custom answer"));
950
+ freeformTextarea.placeholder = ( localize(7157, "Enter custom answer"));
914
951
  freeformTextarea.rows = 1;
915
952
  if (previousFreeform !== undefined) {
916
953
  freeformTextarea.value = previousFreeform;
@@ -1022,7 +1059,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1022
1059
  const listItem = $(".chat-question-list-item.multi-select");
1023
1060
  listItem.setAttribute("role", "option");
1024
1061
  listItem.setAttribute("aria-selected", String(isChecked));
1025
- listItem.setAttribute("aria-label", ( localize(6891, "Option {0}: {1}", index + 1, option.label)));
1062
+ listItem.setAttribute("aria-label", ( localize(7156, "Option {0}: {1}", index + 1, option.label)));
1026
1063
  listItem.id = `option-${question.id}-${index}`;
1027
1064
  listItem.tabIndex = -1;
1028
1065
  const number = $(".chat-question-list-number");
@@ -1087,7 +1124,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1087
1124
  freeformNumber.textContent = `${orderedOptions.length + 1}`;
1088
1125
  freeformContainer.appendChild(freeformNumber);
1089
1126
  freeformTextarea = $("textarea.chat-question-freeform-textarea");
1090
- freeformTextarea.placeholder = ( localize(6892, "Enter custom answer"));
1127
+ freeformTextarea.placeholder = ( localize(7157, "Enter custom answer"));
1091
1128
  freeformTextarea.rows = 1;
1092
1129
  if (previousFreeform !== undefined) {
1093
1130
  freeformTextarea.value = previousFreeform;
@@ -1255,7 +1292,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1255
1292
  const skippedContainer = $(".chat-question-carousel-summary");
1256
1293
  const skippedMessage = $(".chat-question-summary-skipped");
1257
1294
  const isDismissedByTerminal = this.carousel instanceof ChatQuestionCarouselData && this.carousel.dismissedByTerminalInput;
1258
- skippedMessage.textContent = isDismissedByTerminal ? ( localize(6893, "Deferring to user's input in the terminal")) : ( localize(6894, "Skipped"));
1295
+ skippedMessage.textContent = isDismissedByTerminal ? ( localize(7158, "Deferring to user's input in the terminal")) : ( localize(7159, "Skipped"));
1259
1296
  skippedContainer.appendChild(skippedMessage);
1260
1297
  this.domNode.appendChild(skippedContainer);
1261
1298
  }
@@ -1274,16 +1311,16 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1274
1311
  const questionText = question.message ?? question.title;
1275
1312
  let labelText = typeof questionText === "string" ? questionText : questionText.value;
1276
1313
  labelText = labelText.replace(/[:\s]+$/, "");
1277
- questionRow.textContent = ( localize(6895, "Q: {0}", labelText));
1314
+ questionRow.textContent = ( localize(7160, "Q: {0}", labelText));
1278
1315
  summaryItem.appendChild(questionRow);
1279
1316
  if (answer !== undefined) {
1280
1317
  const formattedAnswer = this.formatAnswerForSummary(question, answer);
1281
1318
  const answerRow = $("div.chat-question-summary-answer-title");
1282
- answerRow.textContent = ( localize(6896, "A: {0}", formattedAnswer));
1319
+ answerRow.textContent = ( localize(7161, "A: {0}", formattedAnswer));
1283
1320
  summaryItem.appendChild(answerRow);
1284
1321
  } else {
1285
1322
  const unanswered = $("div.chat-question-summary-unanswered");
1286
- unanswered.textContent = ( localize(6897, "Not answered yet"));
1323
+ unanswered.textContent = ( localize(7162, "Not answered yet"));
1287
1324
  summaryItem.appendChild(unanswered);
1288
1325
  }
1289
1326
  summaryContainer.appendChild(summaryItem);
@@ -1323,7 +1360,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1323
1360
  if (freeformValue) {
1324
1361
  labels.push(freeformValue);
1325
1362
  }
1326
- return labels.join(( localize(6898, ", ")));
1363
+ return labels.join(( localize(7163, ", ")));
1327
1364
  }
1328
1365
  return String(answer);
1329
1366
  }
@@ -1342,7 +1379,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1342
1379
  }
1343
1380
  const answer = this._answers.get(question.id);
1344
1381
  if (question.required && (answer === undefined || answer === "")) {
1345
- this.showValidationError(( localize(6899, "This field is required")));
1382
+ this.showValidationError(( localize(7164, "This field is required")));
1346
1383
  return false;
1347
1384
  }
1348
1385
  if (question.type === "text" && question.validation && typeof answer === "string" && answer !== "") {
@@ -1367,7 +1404,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1367
1404
  this._currentIndex = i;
1368
1405
  this.persistDraftState();
1369
1406
  this.renderCurrentQuestion(true);
1370
- this.showValidationError(( localize(6899, "This field is required")));
1407
+ this.showValidationError(( localize(7164, "This field is required")));
1371
1408
  return false;
1372
1409
  }
1373
1410
  }
@@ -1375,34 +1412,34 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1375
1412
  }
1376
1413
  getValidationError(value, validation) {
1377
1414
  if (validation.minLength !== undefined && value.length < validation.minLength) {
1378
- return localize(6900, "Minimum length is {0}", validation.minLength);
1415
+ return localize(7165, "Minimum length is {0}", validation.minLength);
1379
1416
  }
1380
1417
  if (validation.maxLength !== undefined && value.length > validation.maxLength) {
1381
- return localize(6901, "Maximum length is {0}", validation.maxLength);
1418
+ return localize(7166, "Maximum length is {0}", validation.maxLength);
1382
1419
  }
1383
1420
  if (validation.format) {
1384
1421
  switch (validation.format) {
1385
1422
  case "email":
1386
1423
  if (!value.includes("@")) {
1387
- return localize(6902, "Please enter a valid email address");
1424
+ return localize(7167, "Please enter a valid email address");
1388
1425
  }
1389
1426
  break;
1390
1427
  case "uri":
1391
1428
  if (!URL.canParse(value)) {
1392
- return localize(6903, "Please enter a valid URI");
1429
+ return localize(7168, "Please enter a valid URI");
1393
1430
  }
1394
1431
  break;
1395
1432
  case "date":
1396
1433
  {
1397
1434
  const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
1398
1435
  if (!dateRegex.test(value) || isNaN(( new Date(value)).getTime())) {
1399
- return localize(6904, "Please enter a valid date (YYYY-MM-DD)");
1436
+ return localize(7169, "Please enter a valid date (YYYY-MM-DD)");
1400
1437
  }
1401
1438
  break;
1402
1439
  }
1403
1440
  case "date-time":
1404
1441
  if (isNaN(( new Date(value)).getTime())) {
1405
- return localize(6905, "Please enter a valid date-time");
1442
+ return localize(7170, "Please enter a valid date-time");
1406
1443
  }
1407
1444
  break;
1408
1445
  }
@@ -1410,16 +1447,16 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1410
1447
  if (validation.isInteger !== undefined || validation.minimum !== undefined || validation.maximum !== undefined) {
1411
1448
  const num = Number(value);
1412
1449
  if (isNaN(num)) {
1413
- return localize(6906, "Please enter a valid number");
1450
+ return localize(7171, "Please enter a valid number");
1414
1451
  }
1415
1452
  if (validation.isInteger && !Number.isInteger(num)) {
1416
- return localize(6907, "Please enter a valid integer");
1453
+ return localize(7172, "Please enter a valid integer");
1417
1454
  }
1418
1455
  if (validation.minimum !== undefined && num < validation.minimum) {
1419
- return localize(6908, "Minimum value is {0}", validation.minimum);
1456
+ return localize(7173, "Minimum value is {0}", validation.minimum);
1420
1457
  }
1421
1458
  if (validation.maximum !== undefined && num > validation.maximum) {
1422
- return localize(6909, "Maximum value is {0}", validation.maximum);
1459
+ return localize(7174, "Maximum value is {0}", validation.maximum);
1423
1460
  }
1424
1461
  }
1425
1462
  return undefined;
@@ -1454,6 +1491,6 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
1454
1491
  super.dispose();
1455
1492
  }
1456
1493
  };
1457
- ChatQuestionCarouselPart = ( __decorate([( __param(3, IMarkdownRendererService)), ( __param(4, IHoverService)), ( __param(5, IAccessibilityService)), ( __param(6, IContextKeyService)), ( __param(7, IKeybindingService)), ( __param(8, ICommandService))], ChatQuestionCarouselPart));
1494
+ ChatQuestionCarouselPart = ( __decorate([( __param(3, IMarkdownRendererService)), ( __param(4, IHoverService)), ( __param(5, IAccessibilityService)), ( __param(6, IContextKeyService)), ( __param(7, IKeybindingService)), ( __param(8, ICommandService)), ( __param(9, IConfigurationService))], ChatQuestionCarouselPart));
1458
1495
 
1459
1496
  export { ChatQuestionCarouselPart };
@@ -50,14 +50,16 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
50
50
  const markdownContent = this._register(renderer.render(( new MarkdownString(errorDetails.message))));
51
51
  append(messageContainer, markdownContent.element);
52
52
  let primaryButtonLabel;
53
+ const isUsageBasedBilling = chatEntitlementService.quotas.usageBasedBilling === true;
53
54
  switch (chatEntitlementService.entitlement) {
54
55
  case ChatEntitlement.EDU:
55
56
  case ChatEntitlement.Pro:
56
57
  case ChatEntitlement.ProPlus:
57
- primaryButtonLabel = ( localize(6910, "Manage Paid Premium Requests"));
58
+ case ChatEntitlement.Max:
59
+ primaryButtonLabel = isUsageBasedBilling ? ( localize(7175, "Configure Additional Spend")) : ( localize(7176, "Configure Budget"));
58
60
  break;
59
61
  case ChatEntitlement.Free:
60
- primaryButtonLabel = ( localize(6911, "Upgrade to GitHub Copilot Pro"));
62
+ primaryButtonLabel = ( localize(7177, "Upgrade to GitHub Copilot Pro"));
61
63
  break;
62
64
  }
63
65
  let hasAddedWaitWarning = false;
@@ -66,7 +68,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
66
68
  return;
67
69
  }
68
70
  hasAddedWaitWarning = true;
69
- append(messageContainer, $(".chat-quota-wait-warning", undefined, ( localize(6912, "Changes may take a few minutes to take effect."))));
71
+ append(messageContainer, $(".chat-quota-wait-warning", undefined, ( localize(7178, "Changes may take a few minutes to take effect."))));
70
72
  };
71
73
  let hasAddedRetryButton = false;
72
74
  const addRetryButtonIfNeeded = () => {
@@ -79,7 +81,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
79
81
  buttonForeground: asCssVariable(textLinkForeground)
80
82
  })));
81
83
  retryButton.element.classList.add("chat-quota-error-secondary-button");
82
- retryButton.label = ( localize(6913, "Click to Retry"));
84
+ retryButton.label = ( localize(7179, "Click to Retry"));
83
85
  this._register(retryButton.onDidClick(() => {
84
86
  const widget = chatWidgetService.getWidgetBySessionResource(element.sessionResource);
85
87
  if (!widget) {
@@ -98,7 +100,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
98
100
  primaryButton.label = primaryButtonLabel;
99
101
  primaryButton.element.classList.add("chat-quota-error-button");
100
102
  this._register(primaryButton.onDidClick(async () => {
101
- const commandId = chatEntitlementService.entitlement === ChatEntitlement.Free ? "workbench.action.chat.upgradePlan" : "workbench.action.chat.manageOverages";
103
+ const commandId = chatEntitlementService.entitlement === ChatEntitlement.Free ? "workbench.action.chat.upgradePlan" : "workbench.action.chat.manageAdditionalSpend";
102
104
  telemetryService.publicLog2("workbenchActionExecuted", {
103
105
  id: commandId,
104
106
  from: "chat-response"