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

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
@@ -29,6 +29,7 @@ import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/edito
29
29
  import { OffsetRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/offsetRange';
30
30
  import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
31
31
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
32
+ import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
32
33
  import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
33
34
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
34
35
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
@@ -49,18 +50,18 @@ import { decidedChatEditingResourceContextKey, ModifiedFileEntryState, hasUndeci
49
50
  import { IChatEditingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService.service';
50
51
  import { IChatLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/widget/chatLayoutService.service';
51
52
  import { getModeNameForTelemetry, ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
52
- import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
53
53
  import { ChatRequestToolPart, ChatRequestToolSetPart, ChatRequestDynamicVariablePart, IParsedChatRequest, chatAgentLeader, chatSubcommandLeader, ChatRequestSlashPromptPart, formatChatQuestion, ChatRequestAgentPart } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatParserTypes';
54
54
  import { ChatRequestParser } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatRequestParser';
55
55
  import { getDynamicVariablesForWidget, getSelectedToolAndToolSetsForWidget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatVariables';
56
56
  import { ChatRequestQueueKind, ChatSendResult } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
57
57
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
58
+ import { localChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
58
59
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
59
60
  import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service';
60
61
  import { IChatTodoListService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/chatTodoListService.service';
61
62
  import { isWorkspaceVariableEntry, isPromptFileVariableEntry, isPromptTextVariableEntry, toPromptFileVariableEntry, PromptFileVariableKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
62
63
  import { isResponseVM, isRequestVM, ChatViewModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
63
- import { ChatModeKind, ChatPermissionLevel, ChatConfiguration, ThinkingDisplayMode, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
64
+ import { ChatConfiguration, ChatModeKind, ChatPermissionLevel, ThinkingDisplayMode, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
64
65
  import { isToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
65
66
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
66
67
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
@@ -79,6 +80,8 @@ import { ChatTipContentPart } from './chatContentParts/chatTipContentPart.js';
79
80
  import { ChatContentMarkdownRenderer } from './chatContentMarkdownRenderer.js';
80
81
  import { IAgentSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.service';
81
82
  import { IChatDebugService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatDebugService.service';
83
+ import { getChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
84
+ import { ICustomizationHarnessService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService.service';
82
85
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
83
86
  import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
84
87
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
@@ -110,7 +113,7 @@ const supportsAllAttachments = {
110
113
  supportsHandOffs: true,
111
114
  supportsCheckpoints: true
112
115
  };
113
- const DISCLAIMER = ( localize(7140, "AI responses may be inaccurate"));
116
+ const DISCLAIMER = ( localize(7439, "AI responses may be inaccurate"));
114
117
  let ChatWidget = class ChatWidget extends Disposable {
115
118
  static {
116
119
  ChatWidget_1 = this;
@@ -165,7 +168,8 @@ let ChatWidget = class ChatWidget extends Disposable {
165
168
  selectedAgent: this._lastSelectedAgent,
166
169
  mode: this.input.currentModeKind,
167
170
  attachmentCapabilities: this.attachmentCapabilities,
168
- forcedAgent: this._lockedAgent?.id ? this.chatAgentService.getAgent(this._lockedAgent.id) : undefined
171
+ forcedAgent: this._lockedAgent?.id ? this.chatAgentService.getAgent(this._lockedAgent.id) : undefined,
172
+ sessionType: getChatSessionType(this.viewModel.model.sessionResource)
169
173
  }
170
174
  );
171
175
  this._onDidChangeParsedInput.fire();
@@ -204,8 +208,8 @@ let ChatWidget = class ChatWidget extends Disposable {
204
208
  chatEditingService,
205
209
  telemetryService,
206
210
  promptsService,
211
+ customizationHarnessService,
207
212
  toolsService,
208
- chatModeService,
209
213
  chatLayoutService,
210
214
  chatEntitlementService,
211
215
  chatSessionsService,
@@ -214,7 +218,8 @@ let ChatWidget = class ChatWidget extends Disposable {
214
218
  lifecycleService,
215
219
  chatAttachmentResolveService,
216
220
  chatTipService,
217
- chatDebugService
221
+ chatDebugService,
222
+ accessibilityService
218
223
  ) {
219
224
  super();
220
225
  this.viewOptions = viewOptions;
@@ -233,8 +238,8 @@ let ChatWidget = class ChatWidget extends Disposable {
233
238
  this.chatSlashCommandService = chatSlashCommandService;
234
239
  this.telemetryService = telemetryService;
235
240
  this.promptsService = promptsService;
241
+ this.customizationHarnessService = customizationHarnessService;
236
242
  this.toolsService = toolsService;
237
- this.chatModeService = chatModeService;
238
243
  this.chatLayoutService = chatLayoutService;
239
244
  this.chatEntitlementService = chatEntitlementService;
240
245
  this.chatSessionsService = chatSessionsService;
@@ -244,6 +249,7 @@ let ChatWidget = class ChatWidget extends Disposable {
244
249
  this.chatAttachmentResolveService = chatAttachmentResolveService;
245
250
  this.chatTipService = chatTipService;
246
251
  this.chatDebugService = chatDebugService;
252
+ this.accessibilityService = accessibilityService;
247
253
  this._onDidSubmitAgent = this._register(( new Emitter()));
248
254
  this.onDidSubmitAgent = this._onDidSubmitAgent.event;
249
255
  this._onDidChangeAgent = this._register(( new Emitter()));
@@ -332,6 +338,15 @@ let ChatWidget = class ChatWidget extends Disposable {
332
338
  this.updateChatViewVisibility();
333
339
  }
334
340
  }
341
+ if (e.affectsConfiguration(ChatConfiguration.ProgressBorder)) {
342
+ this.updateWorkingProgressBorder();
343
+ }
344
+ }));
345
+ this._register(this.accessibilityService.onDidChangeReducedMotion(() => {
346
+ this.updateWorkingProgressBorder();
347
+ if (this.visible) {
348
+ this.listWidget.rerender();
349
+ }
335
350
  }));
336
351
  this._register(
337
352
  bindContextKey(decidedChatEditingResourceContextKey, contextKeyService, reader => {
@@ -505,6 +520,19 @@ let ChatWidget = class ChatWidget extends Disposable {
505
520
  get inlineInputPart() {
506
521
  return this.inlineInputPartDisposable.value;
507
522
  }
523
+ updateWorkingProgressBorder() {
524
+ const inputPart = this.inputPartDisposable.value;
525
+ if (!inputPart) {
526
+ return;
527
+ }
528
+ const inputContainer = inputPart.inputContainerElement;
529
+ if (!inputContainer) {
530
+ return;
531
+ }
532
+ const enabled = this.configurationService.getValue(ChatConfiguration.ProgressBorder) === true && !this.accessibilityService.isMotionReduced() && !isInlineChat(this);
533
+ const inProgress = !!this.viewModel?.model.requestInProgress.get();
534
+ inputContainer.classList.toggle("working", enabled && inProgress);
535
+ }
508
536
  get inputEditor() {
509
537
  return this.input.inputEditor;
510
538
  }
@@ -576,11 +604,20 @@ let ChatWidget = class ChatWidget extends Disposable {
576
604
  ...this.viewOptions.rendererOptions,
577
605
  renderStyle
578
606
  });
607
+ this._register(
608
+ addDisposableListener(this.container, EventType.MOUSE_WHEEL, e => {
609
+ if (e.defaultPrevented || e.target !== this.container) {
610
+ return;
611
+ }
612
+ this.listWidget.delegateScrollFromMouseWheelEvent(e);
613
+ })
614
+ );
579
615
  this._register(addDisposableListener(parent, EventType.MOUSE_WHEEL, e => {
580
616
  if (e.defaultPrevented) {
581
617
  return;
582
618
  }
583
- if (isAncestor(e.target, this.container)) {
619
+ const target = e.target;
620
+ if (target && isAncestor(target, this.container)) {
584
621
  return;
585
622
  }
586
623
  this.listWidget.delegateScrollFromMouseWheelEvent(e);
@@ -681,6 +718,9 @@ let ChatWidget = class ChatWidget extends Disposable {
681
718
  }
682
719
  return this.input.navigateToNextQuestion();
683
720
  }
721
+ focusQuestionCarouselTerminal() {
722
+ return this.input.focusQuestionCarouselTerminal();
723
+ }
684
724
  toggleTipFocus() {
685
725
  if (this._gettingStartedTipPartRef?.hasFocus()) {
686
726
  this.focusInput();
@@ -700,16 +740,19 @@ let ChatWidget = class ChatWidget extends Disposable {
700
740
  return;
701
741
  }
702
742
  const previous = this.parsedChatRequest;
743
+ const context = {
744
+ selectedAgent: this._lastSelectedAgent,
745
+ mode: this.input.currentModeKind,
746
+ attachmentCapabilities: this.attachmentCapabilities,
747
+ sessionType: getChatSessionType(this.viewModel.model.sessionResource),
748
+ forcedAgent: this._lockedAgent?.id ? this.chatAgentService.getAgent(this._lockedAgent.id) : undefined
749
+ };
703
750
  this.parsedChatRequest = this.instantiationService.createInstance(ChatRequestParser).parseChatRequestWithReferences(
704
751
  getDynamicVariablesForWidget(this),
705
752
  getSelectedToolAndToolSetsForWidget(this),
706
753
  this.getInput(),
707
754
  this.location,
708
- {
709
- selectedAgent: this._lastSelectedAgent,
710
- mode: this.input.currentModeKind,
711
- attachmentCapabilities: this.attachmentCapabilities
712
- }
755
+ context
713
756
  );
714
757
  if (!previous || !IParsedChatRequest.equals(previous, this.parsedChatRequest)) {
715
758
  this._onDidChangeParsedInput.fire();
@@ -822,7 +865,7 @@ let ChatWidget = class ChatWidget extends Disposable {
822
865
  if (this.chatEntitlementService.anonymous && !this.chatEntitlementService.sentiment.completed) {
823
866
  const providers = product.defaultChatAgent.provider;
824
867
  additionalMessage = ( new MarkdownString(( localize(
825
- 7141,
868
+ 7440,
826
869
  "By continuing with {0} Copilot, you agree to {1}'s [Terms]({2}) and [Privacy Statement]({3}).",
827
870
  providers.default.name,
828
871
  providers.default.name,
@@ -904,7 +947,7 @@ let ChatWidget = class ChatWidget extends Disposable {
904
947
  return ( new MarkdownString(""));
905
948
  } else if (this._instructionFilesExist === false) {
906
949
  return (new MarkdownString(localize(
907
- 7142,
950
+ 7441,
908
951
  "[Generate Agent Instructions]({0}) to onboard AI onto your codebase.",
909
952
  `command:${GENERATE_AGENT_INSTRUCTIONS_COMMAND_ID}`
910
953
  ), {
@@ -930,19 +973,19 @@ let ChatWidget = class ChatWidget extends Disposable {
930
973
  const providerTitle = contribution?.welcomeTitle;
931
974
  const providerMessage = contribution?.welcomeMessage;
932
975
  const message = providerMessage ? ( new MarkdownString(providerMessage)) : (this._lockedAgent?.prefix === "@copilot " ? ( new MarkdownString(( localize(
933
- 7143,
976
+ 7442,
934
977
  "This chat session will be forwarded to the {0} [coding agent]({1}) where work is completed in the background. ",
935
978
  this._lockedAgent.prefix,
936
979
  "https://aka.ms/coding-agent-docs"
937
980
  )) + DISCLAIMER, {
938
981
  isTrusted: true
939
982
  })) : ( new MarkdownString(( localize(
940
- 7144,
983
+ 7443,
941
984
  "This chat session will be forwarded to the {0} coding agent where work is completed in the background. ",
942
985
  this._lockedAgent?.prefix
943
986
  )) + DISCLAIMER)));
944
987
  return {
945
- title: providerTitle ?? ( localize(7145, "Delegate to {0}", this._lockedAgent?.prefix)),
988
+ title: providerTitle ?? ( localize(7444, "Delegate to {0}", this._lockedAgent?.prefix)),
946
989
  message,
947
990
  icon: providerIcon ?? Codicon.sendToRemoteAgent,
948
991
  additionalMessage,
@@ -951,11 +994,11 @@ let ChatWidget = class ChatWidget extends Disposable {
951
994
  }
952
995
  let title;
953
996
  if (this.input.currentModeKind === ChatModeKind.Ask) {
954
- title = ( localize(7146, "Ask about your code"));
997
+ title = ( localize(7445, "Ask about your code"));
955
998
  } else if (this.input.currentModeKind === ChatModeKind.Edit) {
956
- title = ( localize(7147, "Edit in context"));
999
+ title = ( localize(7446, "Edit in context"));
957
1000
  } else {
958
- title = ( localize(7148, "Build with Agent"));
1001
+ title = ( localize(7447, "Build with Agent"));
959
1002
  }
960
1003
  return {
961
1004
  title,
@@ -998,10 +1041,11 @@ let ChatWidget = class ChatWidget extends Disposable {
998
1041
  }
999
1042
  const modeInfo = lastItem.model.request?.modeInfo;
1000
1043
  let responseMode;
1044
+ const modes = this.input.currentChatModesObs.get();
1001
1045
  if (modeInfo?.modeInstructions?.name) {
1002
- responseMode = this.chatModeService.findModeByName(modeInfo.modeInstructions.name);
1046
+ responseMode = modes.findModeByName(modeInfo.modeInstructions.name);
1003
1047
  } else if (modeInfo?.modeId) {
1004
- responseMode = this.chatModeService.findModeById(modeInfo.modeId);
1048
+ responseMode = modes.findModeById(modeInfo.modeId);
1005
1049
  } else {
1006
1050
  responseMode = this.input.currentModeObs.get();
1007
1051
  }
@@ -1037,7 +1081,7 @@ let ChatWidget = class ChatWidget extends Disposable {
1037
1081
  }
1038
1082
  const promptToUse = handoff.prompt;
1039
1083
  const currentMode = this.input.currentModeObs.get();
1040
- const toMode = handoff.agent ? this.chatModeService.findModeByName(handoff.agent) : undefined;
1084
+ const toMode = handoff.agent ? this.input.currentChatModesObs.get().findModeByName(handoff.agent) : undefined;
1041
1085
  this.telemetryService.publicLog2("chat.handoffClicked", {
1042
1086
  fromAgent: getModeNameForTelemetry(currentMode),
1043
1087
  toAgent: agentId || (toMode ? getModeNameForTelemetry(toMode) : ""),
@@ -1059,14 +1103,22 @@ let ChatWidget = class ChatWidget extends Disposable {
1059
1103
  e => this.logService.error(`[Handoff] Failed to submit delegated handoff to '@${agentId}'`, e)
1060
1104
  );
1061
1105
  } else if (handoff.agent) {
1062
- this._switchToAgentByName(handoff.agent);
1106
+ const switched = await this._switchToAgentByName(handoff.agent);
1107
+ if (!switched) {
1108
+ this.logService.warn(
1109
+ `[Handoff] Did not execute handoff '${handoff.label}' to '${handoff.agent}' because switching agents was unsuccessful`
1110
+ );
1111
+ return;
1112
+ }
1063
1113
  if (handoff.model) {
1064
1114
  this.input.switchModelByQualifiedName([handoff.model]);
1065
1115
  }
1066
1116
  this.input.setValue(promptToUse, false);
1067
1117
  this.input.focus();
1068
1118
  if (handoff.send) {
1069
- this.acceptInput();
1119
+ this.acceptInput().catch(
1120
+ e => this.logService.error(`[Handoff] Failed to submit handoff to '${handoff.agent}'`, e)
1121
+ );
1070
1122
  }
1071
1123
  }
1072
1124
  }
@@ -1175,7 +1227,7 @@ let ChatWidget = class ChatWidget extends Disposable {
1175
1227
  }
1176
1228
  }
1177
1229
  async archiveLocalParentSession(sessionResource) {
1178
- if (sessionResource.scheme !== Schemas.vscodeLocalChatSession && !IsSessionsWindowContext.getValue(this.contextKeyService)) {
1230
+ if (getChatSessionType(sessionResource) !== localChatSessionType && !IsSessionsWindowContext.getValue(this.contextKeyService)) {
1179
1231
  return;
1180
1232
  }
1181
1233
  this.logService.debug(
@@ -1500,7 +1552,10 @@ let ChatWidget = class ChatWidget extends Disposable {
1500
1552
  if (e.followup.subCommand) {
1501
1553
  msg += `${chatSubcommandLeader}${e.followup.subCommand} `;
1502
1554
  }
1503
- } else if (!e.followup.agentId && e.followup.subCommand && this.chatSlashCommandService.hasCommand(e.followup.subCommand)) {
1555
+ } else if (!e.followup.agentId && e.followup.subCommand && this.chatSlashCommandService.hasCommand(
1556
+ e.followup.subCommand,
1557
+ getChatSessionType(this.viewModel.model.sessionResource)
1558
+ )) {
1504
1559
  msg = `${chatSubcommandLeader}${e.followup.subCommand} `;
1505
1560
  }
1506
1561
  msg += e.followup.message;
@@ -1592,10 +1647,12 @@ let ChatWidget = class ChatWidget extends Disposable {
1592
1647
  throw ( new Error("Call render() before setModel()"));
1593
1648
  }
1594
1649
  if (!model) {
1650
+ this.inputPart.flushInputStateToModel();
1595
1651
  if (this.viewModel?.editing) {
1596
1652
  this.finishedEditing();
1597
1653
  }
1598
1654
  this.viewModel = undefined;
1655
+ this.updateWorkingProgressBorder();
1599
1656
  this.onDidChangeItems();
1600
1657
  this._hasPendingRequestsContextKey.set(false);
1601
1658
  return;
@@ -1615,14 +1672,14 @@ let ChatWidget = class ChatWidget extends Disposable {
1615
1672
  const tipContainer = this.inputPart.gettingStartedTipContainerElement;
1616
1673
  clearNode(tipContainer);
1617
1674
  setVisibility(false, tipContainer);
1618
- this.inputPart.setInputModel(model.inputModel, model.getRequests().length === 0);
1675
+ this.inputPart.setInputModel(model.inputModel, model.getRequests().length === 0, model.sessionResource);
1619
1676
  this.viewModel = this.instantiationService.createInstance(ChatViewModel, model, undefined);
1620
1677
  this.listWidget.setViewModel(this.viewModel);
1621
1678
  if (this._lockedAgent) {
1622
1679
  let placeholder = this.chatSessionsService.getChatSessionContribution(this._lockedAgent.id)?.inputPlaceholder;
1623
1680
  if (!placeholder) {
1624
1681
  placeholder = ( localize(
1625
- 7149,
1682
+ 7448,
1626
1683
  "Chat with {0}",
1627
1684
  this._lockedAgent.displayName || this._lockedAgent.name
1628
1685
  ));
@@ -1645,6 +1702,7 @@ let ChatWidget = class ChatWidget extends Disposable {
1645
1702
  }
1646
1703
  this.requestInProgress.set(this.viewModel.model.requestInProgress.get());
1647
1704
  this.hasActiveRequest.set(this.viewModel.model.hasActiveRequest.get());
1705
+ this.updateWorkingProgressBorder();
1648
1706
  if (events?.some(e => e?.kind === "changePlaceholder")) {
1649
1707
  this.inputEditor.updateOptions({
1650
1708
  placeholder: this.viewModel.inputPlaceholder
@@ -1661,14 +1719,21 @@ let ChatWidget = class ChatWidget extends Disposable {
1661
1719
  this.finishedEditing();
1662
1720
  }
1663
1721
  this.viewModel = undefined;
1722
+ this.updateWorkingProgressBorder();
1664
1723
  this.onDidChangeItems();
1665
1724
  }));
1666
1725
  this._sessionIsEmptyContextKey.set(model.getRequests().length === 0);
1667
- const supportsFork = this.chatSessionsService.sessionSupportsFork(model.sessionResource);
1668
- this._chatSessionSupportsForkContextKey.set(supportsFork);
1669
- this.listWidget?.updateRendererOptions({
1670
- supportsFork
1671
- });
1726
+ const updateSupportsFork = () => {
1727
+ const supportsFork = this.chatSessionsService.sessionSupportsFork(model.sessionResource);
1728
+ this._chatSessionSupportsForkContextKey.set(supportsFork);
1729
+ this.listWidget?.updateRendererOptions({
1730
+ supportsFork
1731
+ });
1732
+ };
1733
+ updateSupportsFork();
1734
+ this.viewModelDisposables.add(
1735
+ this.chatSessionsService.onDidChangeAvailability(() => updateSupportsFork())
1736
+ );
1672
1737
  this._sessionHasDebugDataContextKey.set(this.chatDebugService.getEvents(model.sessionResource).length > 0);
1673
1738
  let lastSteeringCount = 0;
1674
1739
  const updatePendingRequestKeys = announceSteering => {
@@ -1677,7 +1742,7 @@ let ChatWidget = class ChatWidget extends Disposable {
1677
1742
  this._hasPendingRequestsContextKey.set(pendingCount > 0);
1678
1743
  const steeringCount = pendingRequests.filter(pending => pending.kind === ChatRequestQueueKind.Steering).length;
1679
1744
  if (announceSteering && steeringCount > 0 && lastSteeringCount === 0) {
1680
- status(( localize(7150, "Steering")));
1745
+ status(( localize(7449, "Steering")));
1681
1746
  }
1682
1747
  lastSteeringCount = steeringCount;
1683
1748
  };
@@ -1752,6 +1817,9 @@ let ChatWidget = class ChatWidget extends Disposable {
1752
1817
  return this.contribs.find(c => c.id === id);
1753
1818
  }
1754
1819
  lockToCodingAgent(name, displayName, agentId) {
1820
+ if (this._lockedAgent?.id === agentId && this._lockedAgent.name === name && this._lockedAgent.displayName === displayName) {
1821
+ return;
1822
+ }
1755
1823
  this._lockedAgent = {
1756
1824
  id: agentId,
1757
1825
  name,
@@ -1775,6 +1843,9 @@ let ChatWidget = class ChatWidget extends Disposable {
1775
1843
  }
1776
1844
  }
1777
1845
  unlockFromCodingAgent() {
1846
+ if (!this._lockedAgent) {
1847
+ return;
1848
+ }
1778
1849
  this._lockedAgent = undefined;
1779
1850
  this._lockedToCodingAgentContextKey.set(false);
1780
1851
  this._lockedCodingAgentIdContextKey.set("");
@@ -1850,15 +1921,16 @@ let ChatWidget = class ChatWidget extends Disposable {
1850
1921
  requestKind
1851
1922
  });
1852
1923
  }
1853
- async _applyPromptFileIfSet(requestInput) {
1924
+ async _applyPromptFileIfSet(requestInput, sessionResource) {
1854
1925
  const agentSlashPromptPart = this.parsedInput.parts.find(r => r instanceof ChatRequestSlashPromptPart);
1855
1926
  if (!agentSlashPromptPart) {
1856
- return;
1927
+ return true;
1857
1928
  }
1858
1929
  this.chatTipService.recordSlashCommandUsage(agentSlashPromptPart.name);
1859
- const slashCommand = await this.promptsService.resolvePromptSlashCommand(agentSlashPromptPart.name, CancellationToken.None);
1930
+ const sessionType = getChatSessionType(sessionResource);
1931
+ const slashCommand = await this.customizationHarnessService.resolvePromptSlashCommand(agentSlashPromptPart.name, sessionType, CancellationToken.None);
1860
1932
  if (!slashCommand) {
1861
- return;
1933
+ return true;
1862
1934
  }
1863
1935
  const parseResult = slashCommand.parsedPromptFile;
1864
1936
  const refs = parseResult.body?.variableReferences.map((
@@ -1890,8 +1962,12 @@ let ChatWidget = class ChatWidget extends Disposable {
1890
1962
  }
1891
1963
  this.telemetryService.publicLog2("chat.promptRun", promptRunEvent);
1892
1964
  if (parseResult.header) {
1893
- await this._applyPromptMetadata(parseResult.header, requestInput);
1965
+ const applied = await this._applyPromptMetadata(parseResult.header, requestInput);
1966
+ if (!applied) {
1967
+ return false;
1968
+ }
1894
1969
  }
1970
+ return true;
1895
1971
  }
1896
1972
  async _acceptInput(query, options = {}) {
1897
1973
  if (!query && this.input.generating) {
@@ -1958,7 +2034,10 @@ let ChatWidget = class ChatWidget extends Disposable {
1958
2034
  if (!requestInProgress && !isEditing && !(await this.confirmPendingRequestsBeforeSend(model, options))) {
1959
2035
  return;
1960
2036
  }
1961
- await this._applyPromptFileIfSet(requestInputs);
2037
+ const promptApplied = await this._applyPromptFileIfSet(requestInputs, this.viewModel.sessionResource);
2038
+ if (!promptApplied) {
2039
+ return;
2040
+ }
1962
2041
  if (this.viewOptions.enableWorkingSet !== undefined && this.input.currentModeKind === ChatModeKind.Edit) {
1963
2042
  const uniqueWorkingSetEntries = ( new ResourceSet());
1964
2043
  const editingSessionAttachedContext = requestInputs.attachedContext;
@@ -2090,16 +2169,16 @@ let ChatWidget = class ChatWidget extends Disposable {
2090
2169
  }
2091
2170
  const promptResult = await this.dialogService.prompt({
2092
2171
  type: "question",
2093
- message: ( localize(7151, "You already have pending requests.")),
2172
+ message: ( localize(7450, "You already have pending requests.")),
2094
2173
  detail: ( localize(
2095
- 7152,
2174
+ 7451,
2096
2175
  "Do you want to keep them in the queue or remove them before sending this message?"
2097
2176
  )),
2098
2177
  buttons: [{
2099
- label: ( localize(7153, "Keep Pending Requests")),
2178
+ label: ( localize(7452, "Keep Pending Requests")),
2100
2179
  run: () => "keep"
2101
2180
  }, {
2102
- label: ( localize(7154, "Remove Pending Requests")),
2181
+ label: ( localize(7453, "Remove Pending Requests")),
2103
2182
  run: () => "remove"
2104
2183
  }],
2105
2184
  cancelButton: true
@@ -2115,6 +2194,9 @@ let ChatWidget = class ChatWidget extends Disposable {
2115
2194
  return true;
2116
2195
  }
2117
2196
  getModeRequestOptions() {
2197
+ if (!this.inputPartDisposable.value) {
2198
+ return {};
2199
+ }
2118
2200
  const sessionResource = this.viewModel?.sessionResource;
2119
2201
  const capturedModeId = this.input.currentModeObs.get().id;
2120
2202
  const userSelectedTools = this.input.selectedToolsModel.userSelectedTools;
@@ -2289,27 +2371,30 @@ let ChatWidget = class ChatWidget extends Disposable {
2289
2371
  }
2290
2372
  async _switchToAgentByName(agentName) {
2291
2373
  const currentAgent = this.input.currentModeObs.get();
2292
- if (agentName !== currentAgent.name.get()) {
2293
- const agent = this.chatModeService.findModeByName(agentName);
2294
- if (agent) {
2295
- if (currentAgent.kind !== agent.kind) {
2296
- const chatModeCheck = await this.instantiationService.invokeFunction(
2297
- handleModeSwitch,
2298
- currentAgent.kind,
2299
- agent.kind,
2300
- this.viewModel?.model.getRequests().length ?? 0,
2301
- this.viewModel?.model
2302
- );
2303
- if (!chatModeCheck) {
2304
- return;
2305
- }
2306
- if (chatModeCheck.needToClearSession) {
2307
- await this.clear();
2308
- }
2309
- }
2310
- this.input.setChatMode(agent.id);
2374
+ if (agentName === currentAgent.name.get()) {
2375
+ return true;
2376
+ }
2377
+ const agent = this.input.currentChatModesObs.get().findModeByName(agentName);
2378
+ if (!agent) {
2379
+ return false;
2380
+ }
2381
+ if (currentAgent.kind !== agent.kind) {
2382
+ const chatModeCheck = await this.instantiationService.invokeFunction(
2383
+ handleModeSwitch,
2384
+ currentAgent.kind,
2385
+ agent.kind,
2386
+ this.viewModel?.model.getRequests().length ?? 0,
2387
+ this.viewModel?.model
2388
+ );
2389
+ if (!chatModeCheck) {
2390
+ return false;
2391
+ }
2392
+ if (chatModeCheck.needToClearSession) {
2393
+ await this.clear();
2311
2394
  }
2312
2395
  }
2396
+ this.input.setChatMode(agent.id);
2397
+ return true;
2313
2398
  }
2314
2399
  async _applyPromptMetadata(
2315
2400
  {
@@ -2323,7 +2408,10 @@ let ChatWidget = class ChatWidget extends Disposable {
2323
2408
  agent = ChatMode.Agent.name.get();
2324
2409
  }
2325
2410
  if (agent) {
2326
- this._switchToAgentByName(agent);
2411
+ const switched = await this._switchToAgentByName(agent);
2412
+ if (!switched) {
2413
+ return false;
2414
+ }
2327
2415
  }
2328
2416
  if (tools !== undefined && this.input.currentModeKind === ChatModeKind.Agent) {
2329
2417
  const enablementMap = this.toolsService.toToolAndToolSetEnablementMap(tools, this.input.selectedLanguageModel.get()?.metadata);
@@ -2332,12 +2420,13 @@ let ChatWidget = class ChatWidget extends Disposable {
2332
2420
  if (model !== undefined) {
2333
2421
  this.input.switchModelByQualifiedName(model);
2334
2422
  }
2423
+ return true;
2335
2424
  }
2336
2425
  delegateScrollFromMouseWheelEvent(browserEvent) {
2337
2426
  this.listWidget.delegateScrollFromMouseWheelEvent(browserEvent);
2338
2427
  }
2339
2428
  };
2340
- ChatWidget = ChatWidget_1 = ( __decorate([( __param(4, ICodeEditorService)), ( __param(5, IConfigurationService)), ( __param(6, IDialogService)), ( __param(7, IContextKeyService)), ( __param(8, IInstantiationService)), ( __param(9, IChatService)), ( __param(10, IChatAgentService)), ( __param(11, IChatWidgetService)), ( __param(12, IChatAccessibilityService)), ( __param(13, ILogService)), ( __param(14, IThemeService)), ( __param(15, IChatSlashCommandService)), ( __param(16, IChatEditingService)), ( __param(17, ITelemetryService)), ( __param(18, IPromptsService)), ( __param(19, ILanguageModelToolsService)), ( __param(20, IChatModeService)), ( __param(21, IChatLayoutService)), ( __param(22, IChatEntitlementService)), ( __param(23, IChatSessionsService)), ( __param(24, IAgentSessionsService)), ( __param(25, IChatTodoListService)), ( __param(26, ILifecycleService)), ( __param(27, IChatAttachmentResolveService)), ( __param(28, IChatTipService)), ( __param(29, IChatDebugService))], ChatWidget));
2429
+ ChatWidget = ChatWidget_1 = ( __decorate([( __param(4, ICodeEditorService)), ( __param(5, IConfigurationService)), ( __param(6, IDialogService)), ( __param(7, IContextKeyService)), ( __param(8, IInstantiationService)), ( __param(9, IChatService)), ( __param(10, IChatAgentService)), ( __param(11, IChatWidgetService)), ( __param(12, IChatAccessibilityService)), ( __param(13, ILogService)), ( __param(14, IThemeService)), ( __param(15, IChatSlashCommandService)), ( __param(16, IChatEditingService)), ( __param(17, ITelemetryService)), ( __param(18, IPromptsService)), ( __param(19, ICustomizationHarnessService)), ( __param(20, ILanguageModelToolsService)), ( __param(21, IChatLayoutService)), ( __param(22, IChatEntitlementService)), ( __param(23, IChatSessionsService)), ( __param(24, IAgentSessionsService)), ( __param(25, IChatTodoListService)), ( __param(26, ILifecycleService)), ( __param(27, IChatAttachmentResolveService)), ( __param(28, IChatTipService)), ( __param(29, IChatDebugService)), ( __param(30, IAccessibilityService))], ChatWidget));
2341
2430
  const MIN_LIST_HEIGHT = 50;
2342
2431
 
2343
2432
  export { ChatWidget, isQuickChat };
@@ -45,7 +45,7 @@ let ChatFollowups = class ChatFollowups extends Disposable {
45
45
  } else if (followup.kind === "command") {
46
46
  button.element.classList.add("interactive-followup-command");
47
47
  }
48
- button.element.ariaLabel = ( localize(7155, "Follow up question: {0}", baseTitle));
48
+ button.element.ariaLabel = ( localize(7454, "Follow up question: {0}", baseTitle));
49
49
  button.label = ( new MarkdownString(baseTitle));
50
50
  this._register(button.onDidClick(() => this.clickHandler(followup)));
51
51
  }
@@ -0,0 +1,55 @@
1
+ import { IMarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
2
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { IChatInputNotificationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.service";
4
+ export declare enum ChatInputNotificationSeverity {
5
+ Info = 0,
6
+ Warning = 1,
7
+ Error = 2
8
+ }
9
+ export interface IChatInputNotificationAction {
10
+ readonly label: string;
11
+ readonly commandId: string;
12
+ readonly commandArgs?: unknown[];
13
+ }
14
+ export interface IChatInputNotification {
15
+ readonly id: string;
16
+ readonly severity: ChatInputNotificationSeverity;
17
+ readonly message: string | IMarkdownString;
18
+ readonly description: string | undefined;
19
+ readonly actions: readonly IChatInputNotificationAction[];
20
+ readonly dismissible: boolean;
21
+ readonly autoDismissOnMessage: boolean;
22
+ }
23
+ export declare class ChatInputNotificationService extends Disposable implements IChatInputNotificationService {
24
+ readonly _serviceBrand: undefined;
25
+ private readonly _notifications;
26
+ private readonly _dismissed;
27
+ /** Insertion order tracking — higher index = more recently set. */
28
+ private readonly _insertionOrder;
29
+ private _insertionCounter;
30
+ private readonly _onDidChange;
31
+ readonly onDidChange: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
32
+ /**
33
+ * Signature of the last active notification we announced via ARIA, so we
34
+ * don't re-announce the same content when the model fires `onDidChange`
35
+ * for unrelated reasons or when the same notification is re-pushed.
36
+ */
37
+ private _lastAnnouncedSignature;
38
+ setNotification(notification: IChatInputNotification): void;
39
+ deleteNotification(id: string): void;
40
+ dismissNotification(id: string): void;
41
+ getActiveNotification(): IChatInputNotification | undefined;
42
+ handleMessageSent(): void;
43
+ private _fireDidChange;
44
+ /**
45
+ * Announce the currently active notification to screen readers, but only
46
+ * when its content differs from the last announced one. This prevents
47
+ * the same notification from being announced repeatedly when:
48
+ * - the same notification is re-pushed by an extension (e.g. on every
49
+ * quota change tick),
50
+ * - multiple chat widgets are mounted (panel, side bar, etc.) — the
51
+ * announcement happens once at the singleton level instead of once
52
+ * per widget.
53
+ */
54
+ private _announceActiveIfChanged;
55
+ }