@codingame/monaco-vscode-katex-common 26.2.2 → 28.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 (230) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +10 -4
  3. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +37 -11
  4. package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +3 -0
  5. package/vscode/src/vs/platform/actions/browser/buttonbar.js +15 -4
  6. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +576 -0
  7. package/vscode/src/vs/{workbench/contrib → platform}/mcp/common/modelContextProtocolApps.js +1 -0
  8. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +5 -0
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +176 -17
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +5 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +127 -64
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.d.ts +1 -0
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +12 -11
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +26 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +106 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +9 -9
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +14 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +105 -29
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +13 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +69 -43
  23. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +2 -2
  24. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +35 -7
  25. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +187 -78
  26. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +138 -32
  27. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -6
  28. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +394 -87
  29. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
  30. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +28 -13
  31. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +38 -19
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +113 -116
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +16 -15
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -2
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +8 -8
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +5 -5
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +1 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +2 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +30 -11
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +250 -132
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
  43. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +1 -16
  44. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -110
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.d.ts +1 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.d.ts +1 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +3 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +9 -4
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +2 -4
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +7 -10
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.d.ts +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +4 -2
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +22 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +3 -2
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.js +11 -3
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.d.ts +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.d.ts +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -1
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +59 -0
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.js +29 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.d.ts +0 -2
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +0 -6
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.d.ts +1 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +4 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +6 -3
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.d.ts +1 -1
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +1 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.d.ts +3 -2
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +7 -6
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +0 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -27
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +4 -1
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +53 -20
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.d.ts +15 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.js +55 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +1 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -7
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +1 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +3 -2
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +24 -10
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +4 -4
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.js +11 -6
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +62 -7
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +414 -129
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -1
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +4 -3
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +19 -12
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +22 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +263 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +14 -5
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +98 -26
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.d.ts +1 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +1 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.d.ts +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +11 -2
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +252 -80
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts +29 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +246 -8
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts +4 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +39 -18
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +6 -4
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +36 -23
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +3 -13
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +6 -260
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.d.ts +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +5 -7
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +42 -37
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +12 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +65 -18
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatHookContentPart.css +9 -6
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +2 -2
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +356 -415
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +14 -7
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +102 -7
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +68 -19
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/codeBlockPart.css +48 -15
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +5 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +47 -23
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.d.ts +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -2
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +0 -5
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +8 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +57 -4
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +5 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +24 -8
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.d.ts +1 -1
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +18 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +103 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -1
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -18
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +44 -1
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +85 -89
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +3 -5
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +15 -17
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +4 -2
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +41 -2
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +1 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +3 -3
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +2 -2
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +6 -5
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +13 -1
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +1 -1
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +2 -1
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +21 -5
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +341 -88
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +6 -0
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +13 -4
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +35 -0
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +440 -0
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +24 -10
  172. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +437 -241
  173. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  174. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +77 -17
  175. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +521 -284
  176. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +7 -1
  178. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +71 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +664 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +104 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +127 -0
  182. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +12 -1
  183. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +57 -16
  184. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +4 -7
  185. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +89 -49
  186. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +1 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +28 -0
  188. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +87 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +22 -0
  190. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +213 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +1 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +15 -17
  193. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +7 -4
  194. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +563 -140
  195. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +35 -26
  196. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +2 -2
  197. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +26 -23
  198. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +26 -6
  199. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +145 -79
  200. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +36 -50
  201. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +35 -15
  202. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +7 -0
  203. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +127 -30
  204. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +1 -0
  205. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +20 -14
  206. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +6 -6
  207. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +96 -34
  208. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +11 -2
  209. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +68 -27
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +5 -0
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +125 -13
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +8 -11
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +54 -45
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +11 -10
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +172 -112
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -44
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +28 -4
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +84 -3
  221. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +9 -2
  222. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +58 -41
  223. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  224. package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.d.ts +1 -548
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  227. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  229. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +6 -10
  230. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +0 -187
@@ -1,6 +1,5 @@
1
1
 
2
2
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
3
- import { hash } from '@codingame/monaco-vscode-api/vscode/vs/base/common/hash';
4
3
  import { KeyCode, KeyMod } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
5
4
  import { basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
6
5
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
@@ -14,22 +13,27 @@ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/
14
13
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
15
14
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
16
15
  import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
16
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
17
17
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
18
+ import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
19
+ import { IsSessionsWindowContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
18
20
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
21
+ import { getModeNameForTelemetry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
19
22
  import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
20
23
  import { chatVariableLeader } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatParserTypes';
24
+ import { ChatStopCancellationNoopEventName } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
21
25
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
22
- import { ChatModeKind, ChatConfiguration, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
26
+ import { ChatModeKind, ChatAgentLocation, ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
23
27
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
24
- import { PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
25
28
  import { isInClaudeAgentsFolder } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
26
29
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
27
30
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
28
31
  import { AgentSessionProviders, getAgentSessionProvider } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
29
32
  import { getEditingSessionContext } from '../chatEditing/chatEditingActions.js';
30
33
  import { ctxHasEditorModification, ctxIsGlobalEditingSession, ctxHasRequestInProgress } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys';
31
- import { CHAT_CATEGORY, handleModeSwitch, ACTION_ID_NEW_CHAT, handleCurrentEditingSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
34
+ import { CHAT_CATEGORY, handleModeSwitch, ACTION_ID_NEW_CHAT, handleCurrentEditingSession, clearChatSessionPreservingType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
32
35
  import { CreateRemoteAgentJobAction } from './chatContinueInAction.js';
36
+ import { CTX_HOVER_MODE } from '../../../inlineChat/common/inlineChat.js';
33
37
 
34
38
  class SubmitAction extends Action2 {
35
39
  async run(accessor, ...args) {
@@ -66,13 +70,13 @@ class SubmitAction extends Action2 {
66
70
  if (editsToUndo === 1) {
67
71
  if (entriesModifiedInRequestsToRemove.length === 1) {
68
72
  message = ( localize(
69
- 4779,
73
+ 4876,
70
74
  "This will remove your last request and undo the edits made to {0}. Do you want to proceed?",
71
75
  basename(entriesModifiedInRequestsToRemove[0].modifiedURI)
72
76
  ));
73
77
  } else {
74
78
  message = ( localize(
75
- 4780,
79
+ 4877,
76
80
  "This will remove your last request and undo edits made to {0} files in your working set. Do you want to proceed?",
77
81
  entriesModifiedInRequestsToRemove.length
78
82
  ));
@@ -80,24 +84,24 @@ class SubmitAction extends Action2 {
80
84
  } else {
81
85
  if (entriesModifiedInRequestsToRemove.length === 1) {
82
86
  message = ( localize(
83
- 4781,
87
+ 4878,
84
88
  "This will remove all subsequent requests and undo edits made to {0}. Do you want to proceed?",
85
89
  basename(entriesModifiedInRequestsToRemove[0].modifiedURI)
86
90
  ));
87
91
  } else {
88
92
  message = ( localize(
89
- 4782,
93
+ 4879,
90
94
  "This will remove all subsequent requests and undo edits made to {0} files in your working set. Do you want to proceed?",
91
95
  entriesModifiedInRequestsToRemove.length
92
96
  ));
93
97
  }
94
98
  }
95
99
  const confirmation = shouldPrompt ? await dialogService.confirm({
96
- title: editsToUndo === 1 ? ( localize(4783, "Do you want to undo your last edit?")) : ( localize(4784, "Do you want to undo {0} edits?", editsToUndo)),
100
+ title: editsToUndo === 1 ? ( localize(4880, "Do you want to undo your last edit?")) : ( localize(4881, "Do you want to undo {0} edits?", editsToUndo)),
97
101
  message: message,
98
- primaryButton: ( localize(4785, "Yes")),
102
+ primaryButton: ( localize(4882, "Yes")),
99
103
  checkbox: {
100
- label: ( localize(4786, "Don't ask again")),
104
+ label: ( localize(4883, "Don't ask again")),
101
105
  checked: false
102
106
  },
103
107
  type: "info"
@@ -149,9 +153,13 @@ class SubmitAction extends Action2 {
149
153
  }
150
154
  const requestInProgressOrPendingToolCall = ( ContextKeyExpr.or(
151
155
  ChatContextKeys.requestInProgress,
152
- ChatContextKeys.Editing.hasToolConfirmation
156
+ ChatContextKeys.Editing.hasToolConfirmation,
157
+ ChatContextKeys.Editing.hasQuestionCarousel
153
158
  ));
154
- const whenNotInProgress = ( ContextKeyExpr.and(( ChatContextKeys.requestInProgress.negate()), ( ChatContextKeys.Editing.hasToolConfirmation.negate())));
159
+ const requestInProgressWithoutInput = ( ContextKeyExpr.and(ChatContextKeys.requestInProgress, ( ChatContextKeys.inputHasText.negate())));
160
+ const pendingToolCall = ( ContextKeyExpr.or(ChatContextKeys.Editing.hasToolConfirmation, ( ContextKeyExpr.and(ChatContextKeys.Editing.hasQuestionCarousel, ( ChatContextKeys.inputHasText.negate())))));
161
+ const noQuestionCarouselOrHasInput = ( ContextKeyExpr.or(( ChatContextKeys.Editing.hasQuestionCarousel.negate()), ChatContextKeys.inputHasText));
162
+ const whenNotInProgress = ( ChatContextKeys.requestInProgress.negate());
155
163
  class ChatSubmitAction extends SubmitAction {
156
164
  static {
157
165
  this.ID = "workbench.action.chat.submit";
@@ -165,15 +173,15 @@ class ChatSubmitAction extends SubmitAction {
165
173
  ));
166
174
  super({
167
175
  id: ChatSubmitAction.ID,
168
- title: ( localize2(4787, "Send")),
176
+ title: ( localize2(4884, "Send")),
169
177
  f1: false,
170
178
  category: CHAT_CATEGORY,
171
- icon: Codicon.send,
179
+ icon: Codicon.arrowUp,
172
180
  precondition,
173
181
  toggled: {
174
182
  condition: ChatContextKeys.lockedToCodingAgent,
175
- icon: Codicon.send,
176
- tooltip: ( localize(4788, "Send to Agent"))
183
+ icon: Codicon.arrowUp,
184
+ tooltip: ( localize(4885, "Send to Agent"))
177
185
  },
178
186
  keybinding: {
179
187
  when: ( ContextKeyExpr.and(ChatContextKeys.inChatInput, ( ChatContextKeys.withinEditSessionDiff.negate()))),
@@ -183,11 +191,11 @@ class ChatSubmitAction extends SubmitAction {
183
191
  menu: [{
184
192
  id: MenuId.ChatExecute,
185
193
  order: 4,
186
- when: ( ContextKeyExpr.and(whenNotInProgress, menuCondition, ( ChatContextKeys.withinEditSessionDiff.negate()))),
194
+ when: ( ContextKeyExpr.and(whenNotInProgress, menuCondition, ( ChatContextKeys.withinEditSessionDiff.negate()), noQuestionCarouselOrHasInput)),
187
195
  group: "navigation",
188
196
  alt: {
189
197
  id: "workbench.action.chat.sendToNewChat",
190
- title: ( localize2(4789, "Send to New Chat")),
198
+ title: ( localize2(4886, "Send to New Chat")),
191
199
  icon: Codicon.plus
192
200
  }
193
201
  }, {
@@ -207,7 +215,7 @@ class ToggleChatModeAction extends Action2 {
207
215
  constructor() {
208
216
  super({
209
217
  id: ToggleChatModeAction.ID,
210
- title: ( localize2(4790, "Switch to Next Agent")),
218
+ title: ( localize2(4887, "Switch to Next Agent")),
211
219
  f1: true,
212
220
  category: CHAT_CATEGORY,
213
221
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.requestInProgress.negate())))
@@ -215,7 +223,6 @@ class ToggleChatModeAction extends Action2 {
215
223
  }
216
224
  async run(accessor, ...args) {
217
225
  const commandService = accessor.get(ICommandService);
218
- const configurationService = accessor.get(IConfigurationService);
219
226
  const instaService = accessor.get(IInstantiationService);
220
227
  const modeService = accessor.get(IChatModeService);
221
228
  const telemetryService = accessor.get(ITelemetryService);
@@ -232,7 +239,7 @@ class ToggleChatModeAction extends Action2 {
232
239
  }
233
240
  const chatSession = widget.viewModel?.model;
234
241
  const requestCount = chatSession?.getRequests().length ?? 0;
235
- const switchToMode = (arg && (modeService.findModeById(arg.modeId) || modeService.findModeByName(arg.modeId))) ?? this.getNextMode(widget, requestCount, configurationService, modeService);
242
+ const switchToMode = (arg && (modeService.findModeById(arg.modeId) || modeService.findModeByName(arg.modeId))) ?? this.getNextMode(widget, requestCount, modeService);
236
243
  const currentMode = widget.input.currentModeObs.get();
237
244
  if (switchToMode.id === currentMode.id) {
238
245
  return;
@@ -251,13 +258,6 @@ class ToggleChatModeAction extends Action2 {
251
258
  const extensionId = switchToMode.source?.storage === "extension" ? switchToMode.source.extensionId.value : undefined;
252
259
  const toolsCount = switchToMode.customTools?.get()?.length ?? 0;
253
260
  const handoffsCount = switchToMode.handOffs?.get()?.length ?? 0;
254
- const getModeNameForTelemetry = mode => {
255
- const modeStorage = mode.source?.storage;
256
- if (modeStorage === PromptsStorage.local || modeStorage === PromptsStorage.user) {
257
- return String(hash(mode.name.get()));
258
- }
259
- return mode.name.get();
260
- };
261
261
  const modeUri = switchToMode.uri?.get();
262
262
  const isClaudeAgent = modeUri ? isInClaudeAgentsFolder(modeUri) : undefined;
263
263
  telemetryService.publicLog2("chat.modeChange", {
@@ -275,10 +275,10 @@ class ToggleChatModeAction extends Action2 {
275
275
  await commandService.executeCommand(ACTION_ID_NEW_CHAT);
276
276
  }
277
277
  }
278
- getNextMode(chatWidget, requestCount, configurationService, modeService) {
278
+ getNextMode(chatWidget, requestCount, modeService) {
279
279
  const modes = modeService.getModes();
280
280
  const flat = [...modes.builtin.filter(mode => {
281
- return mode.kind !== ChatModeKind.Edit || configurationService.getValue(ChatConfiguration.Edits2Enabled) || requestCount === 0;
281
+ return mode.kind !== ChatModeKind.Edit || requestCount === 0;
282
282
  }), ...(modes.custom ?? [])];
283
283
  const curModeIndex = flat.findIndex(mode => mode.id === chatWidget.input.currentModeObs.get().id);
284
284
  const newMode = flat[(curModeIndex + 1) % flat.length];
@@ -292,7 +292,7 @@ class SwitchToNextModelAction extends Action2 {
292
292
  constructor() {
293
293
  super({
294
294
  id: SwitchToNextModelAction.ID,
295
- title: ( localize2(4791, "Switch to Next Model")),
295
+ title: ( localize2(4888, "Switch to Next Model")),
296
296
  category: CHAT_CATEGORY,
297
297
  f1: true,
298
298
  precondition: ChatContextKeys.enabled
@@ -311,7 +311,7 @@ class OpenModelPickerAction extends Action2 {
311
311
  constructor() {
312
312
  super({
313
313
  id: OpenModelPickerAction.ID,
314
- title: ( localize2(4792, "Open Model Picker")),
314
+ title: ( localize2(4889, "Open Model Picker")),
315
315
  category: CHAT_CATEGORY,
316
316
  f1: false,
317
317
  keybinding: {
@@ -324,8 +324,8 @@ class OpenModelPickerAction extends Action2 {
324
324
  id: MenuId.ChatInput,
325
325
  order: 3,
326
326
  group: "navigation",
327
- when: ( ContextKeyExpr.and(( ChatContextKeys.lockedToCodingAgent.negate()), ( ContextKeyExpr.or(( ContextKeyExpr.equals(ChatContextKeys.location.key, ChatAgentLocation.Chat)), ( ContextKeyExpr.equals(ChatContextKeys.location.key, ChatAgentLocation.EditorInline)), ( ContextKeyExpr.equals(ChatContextKeys.location.key, ChatAgentLocation.Notebook)), ( ContextKeyExpr.equals(ChatContextKeys.location.key, ChatAgentLocation.Terminal)))), (
328
- ContextKeyExpr.or(( ChatContextKeys.inAgentSessionsWelcome.negate()), ( ChatContextKeys.agentSessionType.isEqualTo(AgentSessionProviders.Local))))))
327
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.or(( ChatContextKeys.lockedToCodingAgent.negate()), ChatContextKeys.chatSessionHasTargetedModels)), ( ContextKeyExpr.or(( ContextKeyExpr.equals(ChatContextKeys.location.key, ChatAgentLocation.Chat)), ( ContextKeyExpr.equals(ChatContextKeys.location.key, ChatAgentLocation.EditorInline)), ( ContextKeyExpr.equals(ChatContextKeys.location.key, ChatAgentLocation.Notebook)), ( ContextKeyExpr.equals(ChatContextKeys.location.key, ChatAgentLocation.Terminal)))), (
328
+ ContextKeyExpr.or(( ChatContextKeys.inAgentSessionsWelcome.negate()), ChatContextKeys.chatSessionHasTargetedModels, ( ChatContextKeys.agentSessionType.isEqualTo(AgentSessionProviders.Local))))))
329
329
  }
330
330
  });
331
331
  }
@@ -338,6 +338,34 @@ class OpenModelPickerAction extends Action2 {
338
338
  }
339
339
  }
340
340
  }
341
+ class OpenPermissionPickerAction extends Action2 {
342
+ static {
343
+ this.ID = "workbench.action.chat.openPermissionPicker";
344
+ }
345
+ constructor() {
346
+ super({
347
+ id: OpenPermissionPickerAction.ID,
348
+ title: ( localize2(4890, "Open Permission Picker")),
349
+ tooltip: ( localize(4891, "Set Permissions")),
350
+ category: CHAT_CATEGORY,
351
+ f1: false,
352
+ precondition: ChatContextKeys.enabled,
353
+ menu: {
354
+ id: MenuId.ChatInputSecondary,
355
+ order: 10,
356
+ group: "navigation",
357
+ when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)), ( ChatContextKeys.chatModeKind.notEqualsTo(ChatModeKind.Ask)), ( ChatContextKeys.inQuickChat.negate()), ( ChatContextKeys.lockedToCodingAgent.negate()), ( IsSessionsWindowContext.negate())))
358
+ }
359
+ });
360
+ }
361
+ async run(accessor) {
362
+ const widgetService = accessor.get(IChatWidgetService);
363
+ const widget = widgetService.lastFocusedWidget;
364
+ if (widget) {
365
+ widget.input.openPermissionPicker();
366
+ }
367
+ }
368
+ }
341
369
  class OpenModePickerAction extends Action2 {
342
370
  static {
343
371
  this.ID = "workbench.action.chat.openModePicker";
@@ -345,8 +373,8 @@ class OpenModePickerAction extends Action2 {
345
373
  constructor() {
346
374
  super({
347
375
  id: OpenModePickerAction.ID,
348
- title: ( localize2(4793, "Open Agent Picker")),
349
- tooltip: ( localize(4794, "Set Agent")),
376
+ title: ( localize2(4892, "Open Agent Picker")),
377
+ tooltip: ( localize(4893, "Set Agent")),
350
378
  category: CHAT_CATEGORY,
351
379
  f1: false,
352
380
  precondition: ChatContextKeys.enabled,
@@ -359,7 +387,7 @@ class OpenModePickerAction extends Action2 {
359
387
  id: MenuId.ChatInput,
360
388
  order: 1,
361
389
  when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)), ( ChatContextKeys.inQuickChat.negate()), ( ContextKeyExpr.or(( ChatContextKeys.lockedToCodingAgent.negate()), ChatContextKeys.chatSessionHasCustomAgentTarget)), (
362
- ContextKeyExpr.or(( ChatContextKeys.inAgentSessionsWelcome.negate()), ( ChatContextKeys.agentSessionType.isEqualTo(AgentSessionProviders.Local)))))),
390
+ ContextKeyExpr.or(( ChatContextKeys.inAgentSessionsWelcome.negate()), ChatContextKeys.chatSessionHasCustomAgentTarget, ( ChatContextKeys.agentSessionType.isEqualTo(AgentSessionProviders.Local)))))),
363
391
  group: "navigation"
364
392
  }]
365
393
  });
@@ -379,15 +407,20 @@ class OpenSessionTargetPickerAction extends Action2 {
379
407
  constructor() {
380
408
  super({
381
409
  id: OpenSessionTargetPickerAction.ID,
382
- title: ( localize2(4795, "Open Session Target Picker")),
383
- tooltip: ( localize(4796, "Set Session Target")),
410
+ title: ( localize2(4894, "Open Session Target Picker")),
411
+ tooltip: ( localize(4895, "Set Session Target")),
384
412
  category: CHAT_CATEGORY,
385
413
  f1: false,
386
414
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(ChatContextKeys.chatSessionIsEmpty, ChatContextKeys.inAgentSessionsWelcome)), ( ChatContextKeys.currentlyEditingInput.negate()), ( ChatContextKeys.currentlyEditing.negate()))),
387
415
  menu: [{
388
416
  id: MenuId.ChatInput,
389
417
  order: 0,
390
- when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)), ( ChatContextKeys.inQuickChat.negate()), ChatContextKeys.chatSessionIsEmpty)),
418
+ when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)), ( ChatContextKeys.inQuickChat.negate()), ChatContextKeys.chatSessionIsEmpty, IsSessionsWindowContext)),
419
+ group: "navigation"
420
+ }, {
421
+ id: MenuId.ChatInputSecondary,
422
+ order: 0,
423
+ when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)), ( ChatContextKeys.inQuickChat.negate()), ( IsSessionsWindowContext.negate()), ChatContextKeys.chatSessionIsEmpty)),
391
424
  group: "navigation"
392
425
  }]
393
426
  });
@@ -407,15 +440,20 @@ class OpenDelegationPickerAction extends Action2 {
407
440
  constructor() {
408
441
  super({
409
442
  id: OpenDelegationPickerAction.ID,
410
- title: ( localize2(4797, "Open Delegation Picker")),
411
- tooltip: ( localize(4798, "Delegate Session")),
443
+ title: ( localize2(4896, "Open Delegation Picker")),
444
+ tooltip: ( localize(4897, "Delegate Session")),
412
445
  category: CHAT_CATEGORY,
413
446
  f1: false,
414
447
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.chatSessionIsEmpty.negate()), ( ChatContextKeys.currentlyEditingInput.negate()), ( ChatContextKeys.currentlyEditing.negate()))),
415
448
  menu: [{
416
449
  id: MenuId.ChatInput,
417
450
  order: 0.5,
418
- when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)), ( ChatContextKeys.inQuickChat.negate()), ( ChatContextKeys.chatSessionIsEmpty.negate()))),
451
+ when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)), ( ChatContextKeys.inQuickChat.negate()), ( ChatContextKeys.chatSessionIsEmpty.negate()), IsSessionsWindowContext)),
452
+ group: "navigation"
453
+ }, {
454
+ id: MenuId.ChatInputSecondary,
455
+ order: 0.5,
456
+ when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)), ( ChatContextKeys.inQuickChat.negate()), ( ChatContextKeys.chatSessionIsEmpty.negate()), ( IsSessionsWindowContext.negate()))),
419
457
  group: "navigation"
420
458
  }]
421
459
  });
@@ -435,15 +473,20 @@ class OpenWorkspacePickerAction extends Action2 {
435
473
  constructor() {
436
474
  super({
437
475
  id: OpenWorkspacePickerAction.ID,
438
- title: ( localize2(4799, "Open Workspace Picker")),
439
- tooltip: ( localize(4800, "Select Target Workspace")),
476
+ title: ( localize2(4898, "Open Workspace Picker")),
477
+ tooltip: ( localize(4899, "Select Target Workspace")),
440
478
  category: CHAT_CATEGORY,
441
479
  f1: false,
442
480
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ChatContextKeys.inAgentSessionsWelcome)),
443
481
  menu: [{
444
482
  id: MenuId.ChatInput,
445
483
  order: 0.6,
446
- when: ( ContextKeyExpr.and(ChatContextKeys.inAgentSessionsWelcome, ( ChatContextKeys.chatSessionType.isEqualTo("local")))),
484
+ when: ( ContextKeyExpr.and(ChatContextKeys.inAgentSessionsWelcome, ( ChatContextKeys.chatSessionType.isEqualTo("local")), IsSessionsWindowContext)),
485
+ group: "navigation"
486
+ }, {
487
+ id: MenuId.ChatInputSecondary,
488
+ order: 0.6,
489
+ when: ( ContextKeyExpr.and(ChatContextKeys.inAgentSessionsWelcome, ( ChatContextKeys.chatSessionType.isEqualTo("local")), ( IsSessionsWindowContext.negate()))),
447
490
  group: "navigation"
448
491
  }]
449
492
  });
@@ -457,7 +500,7 @@ class ChatSessionPrimaryPickerAction extends Action2 {
457
500
  constructor() {
458
501
  super({
459
502
  id: ChatSessionPrimaryPickerAction.ID,
460
- title: ( localize2(4801, "Open Model Picker")),
503
+ title: ( localize2(4900, "Open Primary Session Picker")),
461
504
  category: CHAT_CATEGORY,
462
505
  f1: false,
463
506
  precondition: ChatContextKeys.enabled,
@@ -485,7 +528,7 @@ class ChangeChatModelAction extends Action2 {
485
528
  constructor() {
486
529
  super({
487
530
  id: ChangeChatModelAction.ID,
488
- title: ( localize2(4802, "Change Model")),
531
+ title: ( localize2(4901, "Change Model")),
489
532
  category: CHAT_CATEGORY,
490
533
  f1: false,
491
534
  precondition: ChatContextKeys.enabled
@@ -517,19 +560,19 @@ class ChatEditingSessionSubmitAction extends SubmitAction {
517
560
  ));
518
561
  super({
519
562
  id: ChatEditingSessionSubmitAction.ID,
520
- title: ( localize2(4803, "Send")),
563
+ title: ( localize2(4902, "Send")),
521
564
  f1: false,
522
565
  category: CHAT_CATEGORY,
523
- icon: Codicon.send,
566
+ icon: Codicon.arrowUp,
524
567
  precondition,
525
568
  menu: [{
526
569
  id: MenuId.ChatExecute,
527
570
  order: 4,
528
- when: ( ContextKeyExpr.and(notInProgressOrEditing, menuCondition)),
571
+ when: ( ContextKeyExpr.and(notInProgressOrEditing, menuCondition, noQuestionCarouselOrHasInput)),
529
572
  group: "navigation",
530
573
  alt: {
531
574
  id: "workbench.action.chat.sendToNewChat",
532
- title: ( localize2(4789, "Send to New Chat")),
575
+ title: ( localize2(4886, "Send to New Chat")),
533
576
  icon: Codicon.plus
534
577
  }
535
578
  }]
@@ -544,7 +587,7 @@ class SubmitWithoutDispatchingAction extends Action2 {
544
587
  const precondition = ( ContextKeyExpr.and(ChatContextKeys.inputHasText, whenNotInProgress, ( ChatContextKeys.chatModeKind.isEqualTo(ChatModeKind.Ask))));
545
588
  super({
546
589
  id: SubmitWithoutDispatchingAction.ID,
547
- title: ( localize2(4804, "Send")),
590
+ title: ( localize2(4903, "Send")),
548
591
  f1: false,
549
592
  category: CHAT_CATEGORY,
550
593
  precondition,
@@ -572,7 +615,7 @@ class ChatSubmitWithCodebaseAction extends Action2 {
572
615
  const precondition = ( ContextKeyExpr.and(ChatContextKeys.inputHasText, whenNotInProgress));
573
616
  super({
574
617
  id: ChatSubmitWithCodebaseAction.ID,
575
- title: ( localize2(4805, "Send with {0}", `${chatVariableLeader}codebase`)),
618
+ title: ( localize2(4904, "Send with {0}", `${chatVariableLeader}codebase`)),
576
619
  precondition,
577
620
  keybinding: {
578
621
  when: ChatContextKeys.inChatInput,
@@ -609,7 +652,7 @@ class SendToNewChatAction extends Action2 {
609
652
  const precondition = ChatContextKeys.inputHasText;
610
653
  super({
611
654
  id: "workbench.action.chat.sendToNewChat",
612
- title: ( localize2(4789, "Send to New Chat")),
655
+ title: ( localize2(4886, "Send to New Chat")),
613
656
  precondition,
614
657
  category: CHAT_CATEGORY,
615
658
  f1: false,
@@ -623,6 +666,7 @@ class SendToNewChatAction extends Action2 {
623
666
  async run(accessor, ...args) {
624
667
  const context = args[0];
625
668
  const widgetService = accessor.get(IChatWidgetService);
669
+ const viewsService = accessor.get(IViewsService);
626
670
  const dialogService = accessor.get(IDialogService);
627
671
  const chatService = accessor.get(IChatService);
628
672
  const widget = context?.widget ?? widgetService.lastFocusedWidget;
@@ -631,14 +675,15 @@ class SendToNewChatAction extends Action2 {
631
675
  }
632
676
  const inputBeforeClear = widget.getInput();
633
677
  if (widget.viewModel) {
634
- chatService.cancelCurrentRequestForSession(widget.viewModel.sessionResource);
678
+ chatService.cancelCurrentRequestForSession(widget.viewModel.sessionResource, "newSessionAction");
635
679
  }
636
680
  if (widget.viewModel?.model) {
637
681
  if (!(await handleCurrentEditingSession(widget.viewModel.model, undefined, dialogService))) {
638
682
  return;
639
683
  }
640
684
  }
641
- await widget.clear();
685
+ widget.setInput("");
686
+ await clearChatSessionPreservingType(widget, viewsService);
642
687
  widget.acceptInput(inputBeforeClear, {
643
688
  storeToHistory: true
644
689
  });
@@ -652,18 +697,18 @@ class CancelAction extends Action2 {
652
697
  constructor() {
653
698
  super({
654
699
  id: CancelAction.ID,
655
- title: ( localize2(4806, "Cancel")),
700
+ title: ( localize2(4905, "Cancel")),
656
701
  f1: false,
657
702
  category: CHAT_CATEGORY,
658
703
  icon: Codicon.stopCircle,
659
704
  menu: [{
660
705
  id: MenuId.ChatExecute,
661
- when: ( ContextKeyExpr.and(requestInProgressOrPendingToolCall, ( ChatContextKeys.remoteJobCreating.negate()), ( ChatContextKeys.currentlyEditing.negate()))),
706
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.or(requestInProgressWithoutInput, pendingToolCall)), ( ChatContextKeys.remoteJobCreating.negate()), ( ChatContextKeys.currentlyEditing.negate()))),
662
707
  order: 4,
663
708
  group: "navigation"
664
709
  }, {
665
710
  id: MenuId.ChatEditorInlineExecute,
666
- when: ( ContextKeyExpr.and(( ctxIsGlobalEditingSession.negate()), ctxHasRequestInProgress)),
711
+ when: ( ContextKeyExpr.and(( ctxIsGlobalEditingSession.negate()), ctxHasRequestInProgress, ( CTX_HOVER_MODE.negate()))),
667
712
  order: 4,
668
713
  group: "navigation"
669
714
  }],
@@ -680,13 +725,30 @@ class CancelAction extends Action2 {
680
725
  run(accessor, ...args) {
681
726
  const context = args[0];
682
727
  const widgetService = accessor.get(IChatWidgetService);
728
+ const logService = accessor.get(ILogService);
729
+ const telemetryService = accessor.get(ITelemetryService);
683
730
  const widget = context?.widget ?? widgetService.lastFocusedWidget;
684
731
  if (!widget) {
732
+ telemetryService.publicLog2(ChatStopCancellationNoopEventName, {
733
+ source: "cancelAction",
734
+ reason: "noWidget",
735
+ requestInProgress: "unknown",
736
+ pendingRequests: 0
737
+ });
738
+ logService.info("ChatCancelAction#run: No focused chat widget was found");
685
739
  return;
686
740
  }
687
741
  const chatService = accessor.get(IChatService);
688
742
  if (widget.viewModel) {
689
- chatService.cancelCurrentRequestForSession(widget.viewModel.sessionResource);
743
+ chatService.cancelCurrentRequestForSession(widget.viewModel.sessionResource, "cancelAction");
744
+ } else {
745
+ telemetryService.publicLog2(ChatStopCancellationNoopEventName, {
746
+ source: "cancelAction",
747
+ reason: "noViewModel",
748
+ requestInProgress: "unknown",
749
+ pendingRequests: 0
750
+ });
751
+ logService.info("ChatCancelAction#run: Canceled chat widget has no view model");
690
752
  }
691
753
  }
692
754
  }
@@ -698,7 +760,7 @@ class CancelEdit extends Action2 {
698
760
  constructor() {
699
761
  super({
700
762
  id: CancelEdit.ID,
701
- title: ( localize2(4807, "Cancel Edit")),
763
+ title: ( localize2(4906, "Cancel Edit")),
702
764
  f1: false,
703
765
  category: CHAT_CATEGORY,
704
766
  icon: Codicon.x,
@@ -739,6 +801,7 @@ function registerChatExecuteActions() {
739
801
  registerAction2(ToggleChatModeAction);
740
802
  registerAction2(SwitchToNextModelAction);
741
803
  registerAction2(OpenModelPickerAction);
804
+ registerAction2(OpenPermissionPickerAction);
742
805
  registerAction2(OpenModePickerAction);
743
806
  registerAction2(OpenSessionTargetPickerAction);
744
807
  registerAction2(OpenDelegationPickerAction);
@@ -748,4 +811,4 @@ function registerChatExecuteActions() {
748
811
  registerAction2(CancelEdit);
749
812
  }
750
813
 
751
- export { CancelAction, CancelChatActionId, CancelChatEditId, CancelEdit, ChangeChatModelActionId, ChatEditingSessionSubmitAction, ChatSessionPrimaryPickerAction, ChatSubmitAction, ChatSubmitWithCodebaseAction, OpenDelegationPickerAction, OpenModePickerAction, OpenModelPickerAction, OpenSessionTargetPickerAction, OpenWorkspacePickerAction, ToggleAgentModeActionId, registerChatExecuteActions };
814
+ export { CancelAction, CancelChatActionId, CancelChatEditId, CancelEdit, ChangeChatModelActionId, ChatEditingSessionSubmitAction, ChatSessionPrimaryPickerAction, ChatSubmitAction, ChatSubmitWithCodebaseAction, OpenDelegationPickerAction, OpenModePickerAction, OpenModelPickerAction, OpenPermissionPickerAction, OpenSessionTargetPickerAction, OpenWorkspacePickerAction, ToggleAgentModeActionId, registerChatExecuteActions };
@@ -1,2 +1,3 @@
1
+ export declare const MarkHelpfulActionId = "workbench.action.chat.markHelpful";
1
2
  export declare const MarkUnhelpfulActionId = "workbench.action.chat.markUnhelpful";
2
3
  export declare function registerChatTitleActions(): void;
@@ -22,6 +22,7 @@ import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/c
22
22
  import { IChatWidgetService, IChatAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
23
23
  import { CHAT_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
24
24
 
25
+ const MarkHelpfulActionId = "workbench.action.chat.markHelpful";
25
26
  const MarkUnhelpfulActionId = "workbench.action.chat.markUnhelpful";
26
27
  const enableFeedbackConfig = "config.telemetry.feedback.enabled";
27
28
  function registerChatTitleActions() {
@@ -29,7 +30,7 @@ function registerChatTitleActions() {
29
30
  constructor() {
30
31
  super({
31
32
  id: "workbench.action.chat.markHelpful",
32
- title: ( localize2(4857, "Helpful")),
33
+ title: ( localize2(4963, "Helpful")),
33
34
  f1: false,
34
35
  category: CHAT_CATEGORY,
35
36
  icon: Codicon.thumbsup,
@@ -83,7 +84,7 @@ function registerChatTitleActions() {
83
84
  constructor() {
84
85
  super({
85
86
  id: MarkUnhelpfulActionId,
86
- title: ( localize2(4858, "Unhelpful")),
87
+ title: ( localize2(4964, "Unhelpful")),
87
88
  f1: false,
88
89
  category: CHAT_CATEGORY,
89
90
  icon: Codicon.thumbsdown,
@@ -140,7 +141,7 @@ function registerChatTitleActions() {
140
141
  constructor() {
141
142
  super({
142
143
  id: "workbench.action.chat.reportIssueForBug",
143
- title: ( localize2(4859, "Report Issue")),
144
+ title: ( localize2(4965, "Report Issue")),
144
145
  f1: false,
145
146
  category: CHAT_CATEGORY,
146
147
  icon: Codicon.report,
@@ -187,7 +188,7 @@ function registerChatTitleActions() {
187
188
  constructor() {
188
189
  super({
189
190
  id: "workbench.action.chat.retry",
190
- title: ( localize2(4860, "Retry")),
191
+ title: ( localize2(4966, "Retry")),
191
192
  f1: false,
192
193
  category: CHAT_CATEGORY,
193
194
  icon: Codicon.refresh,
@@ -235,19 +236,19 @@ function registerChatTitleActions() {
235
236
  const entriesModifiedInLastRequest = currentEditingSession.entries.get().filter(entry => entry.lastModifyingRequestId === item.requestId);
236
237
  const shouldPrompt = entriesModifiedInLastRequest.length > 0 && configurationService.getValue("chat.editing.confirmEditRequestRetry") === true;
237
238
  const confirmation = shouldPrompt ? await dialogService.confirm({
238
- title: ( localize(4861, "Do you want to retry your last request?")),
239
+ title: ( localize(4967, "Do you want to retry your last request?")),
239
240
  message: entriesModifiedInLastRequest.length === 1 ? ( localize(
240
- 4862,
241
+ 4968,
241
242
  "This will undo edits made to {0} since this request.",
242
243
  basename(entriesModifiedInLastRequest[0].modifiedURI)
243
244
  )) : ( localize(
244
- 4863,
245
+ 4969,
245
246
  "This will undo edits made to {0} files in your working set since this request. Do you want to proceed?",
246
247
  entriesModifiedInLastRequest.length
247
248
  )),
248
- primaryButton: ( localize(4864, "Yes")),
249
+ primaryButton: ( localize(4970, "Yes")),
249
250
  checkbox: {
250
- label: ( localize(4865, "Don't ask again")),
251
+ label: ( localize(4971, "Don't ask again")),
251
252
  checked: false
252
253
  },
253
254
  type: "info"
@@ -279,7 +280,7 @@ function registerChatTitleActions() {
279
280
  constructor() {
280
281
  super({
281
282
  id: "workbench.action.chat.insertIntoNotebook",
282
- title: ( localize2(4866, "Insert into Notebook")),
283
+ title: ( localize2(4972, "Insert into Notebook")),
283
284
  f1: false,
284
285
  category: CHAT_CATEGORY,
285
286
  icon: Codicon.insert,
@@ -366,4 +367,4 @@ function splitMarkdownAndCodeBlocks(markdown) {
366
367
  return splitContent;
367
368
  }
368
369
 
369
- export { MarkUnhelpfulActionId, registerChatTitleActions };
370
+ export { MarkHelpfulActionId, MarkUnhelpfulActionId, registerChatTitleActions };
@@ -0,0 +1,26 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
+ import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
5
+ import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
6
+ export interface IAgentSessionApprovalInfo {
7
+ readonly label: string;
8
+ readonly languageId: string | undefined;
9
+ confirm(): void;
10
+ }
11
+ /**
12
+ * Tracks approval state for all live chat sessions. For each session,
13
+ * exposes an observable that emits {@link IAgentSessionApprovalInfo}
14
+ * when a tool invocation is waiting for user confirmation, or `undefined`
15
+ * when no approval is needed.
16
+ */
17
+ export declare class AgentSessionApprovalModel extends Disposable {
18
+ private readonly _chatService;
19
+ private readonly _languageService;
20
+ private readonly _approvals;
21
+ private readonly _modelTrackers;
22
+ constructor(_chatService: IChatService, _languageService: ILanguageService);
23
+ getApproval(sessionResource: URI): IObservable<IAgentSessionApprovalInfo | undefined>;
24
+ private _getOrCreateApproval;
25
+ private _trackModel;
26
+ }