@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
@@ -23,14 +23,28 @@ import { ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contr
23
23
  import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
24
24
  import { isOrganizationPromptFile } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/utils/promptsServiceUtils';
25
25
  import { ChatConfiguration, ChatModeKind, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
26
- import { Target, PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
26
+ import { PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
27
+ import { Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
27
28
  import { getOpenChatActionIdForMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
28
29
  import { ToggleAgentModeActionId } from '../../actions/chatExecuteActions.js';
29
30
  import { ChatInputPickerActionViewItem } from './chatInputPickerActionItem.js';
30
31
  import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
32
+ import { IWorkbenchAssignmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service';
33
+ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
31
34
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
32
35
 
33
- const builtinDefaultIcon = Codicon.tasklist;
36
+ const builtinDefaultIcon = mode => {
37
+ switch (mode.name.get().toLowerCase()) {
38
+ case "ask":
39
+ return Codicon.ask;
40
+ case "edit":
41
+ return Codicon.edit;
42
+ case "plan":
43
+ return Codicon.tasklist;
44
+ default:
45
+ return undefined;
46
+ }
47
+ };
34
48
  let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerActionViewItem {
35
49
  constructor(
36
50
  action,
@@ -46,19 +60,23 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
46
60
  commandService,
47
61
  _productService,
48
62
  telemetryService,
49
- openerService
63
+ openerService,
64
+ assignmentService
50
65
  ) {
66
+ const assignments = observableValue("modePickerAssignments", {
67
+ showOldAskMode: false
68
+ });
51
69
  const customAgentTarget = delegate.customAgentTarget?.() ?? Target.Undefined;
52
70
  const builtInCategory = {
53
- label: ( localize(6201, "Built-In")),
71
+ label: ( localize(6839, "Built-In")),
54
72
  order: 0
55
73
  };
56
74
  const customCategory = {
57
- label: ( localize(6202, "Custom")),
75
+ label: ( localize(6840, "Custom")),
58
76
  order: 1
59
77
  };
60
78
  const policyDisabledCategory = {
61
- label: ( localize(6203, "Managed by your organization")),
79
+ label: ( localize(6841, "Managed by your organization")),
62
80
  order: 999,
63
81
  showHeader: true
64
82
  };
@@ -73,11 +91,11 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
73
91
  if (mode.source?.storage === PromptsStorage.extension) {
74
92
  icon = Codicon.eye;
75
93
  id = `viewAgent:${mode.id}`;
76
- label = ( localize(6204, "View {0} agent", mode.label.get()));
94
+ label = ( localize(6842, "View {0} agent", mode.label.get()));
77
95
  } else {
78
96
  icon = Codicon.edit;
79
97
  id = `editAgent:${mode.id}`;
80
- label = ( localize(6205, "Edit {0} agent", mode.label.get()));
98
+ label = ( localize(6843, "Edit {0} agent", mode.label.get()));
81
99
  }
82
100
  const modeResource = mode.uri;
83
101
  toolbarActions.push({
@@ -90,27 +108,6 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
90
108
  openerService.open(modeResource.get());
91
109
  }
92
110
  });
93
- } else if (customAgentTarget === Target.Undefined) {
94
- const label = ( localize(6206, "Configure tools for {0} agent", mode.label.get()));
95
- toolbarActions.push({
96
- id: `configureTools:${mode.id}`,
97
- label,
98
- tooltip: label,
99
- class: ThemeIcon.asClassName(Codicon.tools),
100
- enabled: true,
101
- run: async () => {
102
- actionWidgetService.hide();
103
- if (currentMode.id !== mode.id) {
104
- await commandService.executeCommand(ToggleAgentModeActionId, {
105
- modeId: mode.id,
106
- sessionResource: this.delegate.sessionResource()
107
- });
108
- }
109
- await commandService.executeCommand("workbench.action.chat.configureTools", pickerOptions.actionContext, {
110
- source: "modePicker"
111
- });
112
- }
113
- });
114
111
  }
115
112
  }
116
113
  return {
@@ -151,31 +148,35 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
151
148
  content: mode.description.get() ?? chatAgentService.getDefaultAgent(ChatAgentLocation.Chat, mode.kind)?.description ?? action.tooltip,
152
149
  position: this.pickerOptions.hoverPosition
153
150
  },
154
- icon: mode.icon.get() ?? (isModeConsideredBuiltIn(mode, this._productService) ? builtinDefaultIcon : undefined),
151
+ icon: mode.icon.get() ?? (isModeConsideredBuiltIn(mode, this._productService) ? builtinDefaultIcon(mode) : undefined),
155
152
  category: agentModeDisabledViaPolicy ? policyDisabledCategory : customCategory
156
153
  };
157
154
  };
158
- const isUserDefinedCustomAgent = mode => {
159
- if (mode.isBuiltin || !mode.source) {
160
- return false;
161
- }
162
- return mode.source.storage === PromptsStorage.local || mode.source.storage === PromptsStorage.user;
163
- };
164
155
  const actionProviderWithCustomAgentTarget = {
165
156
  getActions: () => {
166
157
  const modes = chatModeService.getModes();
167
158
  const currentMode = delegate.currentMode.get();
168
159
  const filteredCustomModes = modes.custom.filter(mode => {
169
160
  const target = mode.target.get();
170
- return isUserDefinedCustomAgent(mode) && (target === customAgentTarget);
161
+ return target === customAgentTarget || target === Target.Undefined;
171
162
  });
163
+ const customModes = groupBy(
164
+ filteredCustomModes,
165
+ mode => isModeConsideredBuiltIn(mode, this._productService) ? "builtin" : "custom"
166
+ );
172
167
  const checked = currentMode.id === ChatMode.Agent.id;
173
168
  const defaultAction = {
174
169
  ...makeAction(ChatMode.Agent, ChatMode.Agent),
175
170
  checked
176
171
  };
177
- const customActions = ( filteredCustomModes.map(mode => makeActionFromCustomMode(mode, currentMode)));
178
- return [defaultAction, ...customActions];
172
+ defaultAction.category = builtInCategory;
173
+ const builtInActions = customModes.builtin?.map(mode => {
174
+ const action = makeActionFromCustomMode(mode, currentMode);
175
+ action.category = builtInCategory;
176
+ return action;
177
+ }) ?? [];
178
+ const customActions = customModes.custom?.map(mode => makeActionFromCustomMode(mode, currentMode)) ?? [];
179
+ return [defaultAction, ...builtInActions, ...customActions];
179
180
  }
180
181
  };
181
182
  const actionProvider = {
@@ -183,12 +184,17 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
183
184
  const modes = chatModeService.getModes();
184
185
  const currentMode = delegate.currentMode.get();
185
186
  const agentMode = modes.builtin.find(mode => mode.id === ChatMode.Agent.id);
186
- const shouldHideEditMode = configurationService.getValue(ChatConfiguration.EditModeHidden) && chatAgentService.hasToolsAgent && currentMode.id !== ChatMode.Edit.id;
187
- const otherBuiltinModes = modes.builtin.filter(
188
- mode => mode.id !== ChatMode.Agent.id && !(shouldHideEditMode && mode.id === ChatMode.Edit.id)
189
- );
187
+ const otherBuiltinModes = modes.builtin.filter(mode => {
188
+ return mode.id !== ChatMode.Agent.id && shouldShowBuiltInMode(mode, assignments.get(), agentModeDisabledViaPolicy);
189
+ });
190
+ const filteredCustomModes = modes.custom.filter(mode => {
191
+ if (isModeConsideredBuiltIn(mode, this._productService)) {
192
+ return shouldShowBuiltInMode(mode, assignments.get(), agentModeDisabledViaPolicy);
193
+ }
194
+ return true;
195
+ });
190
196
  const customModes = groupBy(
191
- modes.custom,
197
+ filteredCustomModes,
192
198
  mode => isModeConsideredBuiltIn(mode, this._productService) ? "builtin" : "custom"
193
199
  );
194
200
  const customBuiltinModeActions = customModes.builtin?.map(mode => {
@@ -210,6 +216,7 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
210
216
  },
211
217
  showItemKeybindings: true,
212
218
  reporter: {
219
+ id: "ChatModePicker",
213
220
  name: "ChatModePicker",
214
221
  includeOptions: true
215
222
  }
@@ -233,6 +240,16 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
233
240
  this.renderLabel(this.element);
234
241
  }
235
242
  }));
243
+ assignmentService.getTreatment("chat.showOldAskMode").then(showOldAskMode => {
244
+ assignments.set({
245
+ showOldAskMode: showOldAskMode === "enabled"
246
+ }, undefined);
247
+ });
248
+ this._register(assignmentService.onDidRefetchAssignments(async () => {
249
+ assignments.set({
250
+ showOldAskMode: (await assignmentService.getTreatment("chat.showOldAskMode")) === "enabled"
251
+ }, undefined);
252
+ }));
236
253
  }
237
254
  getModePickerActionBarActions() {
238
255
  const menuActions = this.menuService.createMenu(MenuId.ChatModePicker, this.contextKeyService);
@@ -242,28 +259,34 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
242
259
  menuActions.dispose();
243
260
  return menuContributions;
244
261
  }
262
+ render(container) {
263
+ super.render(container);
264
+ container.classList.add("chat-mode-picker-item");
265
+ }
245
266
  renderLabel(element) {
246
267
  this.setAriaLabelAttributes(element);
247
268
  const currentMode = this.delegate.currentMode.get();
248
- const isDefault = currentMode.id === ChatMode.Agent.id;
249
269
  const state = currentMode.label.get();
250
270
  let icon = currentMode.icon.get();
251
271
  if (!icon && isModeConsideredBuiltIn(currentMode, this._productService)) {
252
- icon = builtinDefaultIcon;
272
+ icon = builtinDefaultIcon(currentMode);
253
273
  }
254
274
  const labelElements = [];
275
+ const collapsed = this.pickerOptions.hideChevrons.get();
255
276
  if (icon) {
256
277
  labelElements.push(...renderLabelWithIcons(`$(${icon.id})`));
257
278
  }
258
- if (!isDefault || !icon || !this.pickerOptions.onlyShowIconsForDefaultActions.get()) {
279
+ if (!collapsed || !icon) {
259
280
  labelElements.push($("span.chat-input-picker-label", undefined, state));
260
281
  }
261
- labelElements.push(...renderLabelWithIcons(`$(chevron-down)`));
282
+ if (!collapsed) {
283
+ labelElements.push(...renderLabelWithIcons(`$(chevron-down)`));
284
+ }
262
285
  reset(element, ...labelElements);
263
286
  return null;
264
287
  }
265
288
  };
266
- ModePickerActionItem = ( __decorate([( __param(3, IActionWidgetService)), ( __param(4, IChatAgentService)), ( __param(5, IKeybindingService)), ( __param(6, IConfigurationService)), ( __param(7, IContextKeyService)), ( __param(8, IChatModeService)), ( __param(9, IMenuService)), ( __param(10, ICommandService)), ( __param(11, IProductService)), ( __param(12, ITelemetryService)), ( __param(13, IOpenerService))], ModePickerActionItem));
289
+ ModePickerActionItem = ( __decorate([( __param(3, IActionWidgetService)), ( __param(4, IChatAgentService)), ( __param(5, IKeybindingService)), ( __param(6, IConfigurationService)), ( __param(7, IContextKeyService)), ( __param(8, IChatModeService)), ( __param(9, IMenuService)), ( __param(10, ICommandService)), ( __param(11, IProductService)), ( __param(12, ITelemetryService)), ( __param(13, IOpenerService)), ( __param(14, IWorkbenchAssignmentService))], ModePickerActionItem));
267
290
  function isModeConsideredBuiltIn(mode, productService) {
268
291
  if (mode.isBuiltin) {
269
292
  return true;
@@ -281,5 +304,22 @@ function isModeConsideredBuiltIn(mode, productService) {
281
304
  }
282
305
  return !isOrganizationPromptFile(modeUri, mode.source.extensionId, productService);
283
306
  }
307
+ function shouldShowBuiltInMode(mode, assignments, agentModeDisabledViaPolicy) {
308
+ if (mode.id === ChatMode.Edit.id || mode.name.get().toLowerCase() === "edit") {
309
+ if (mode.id === ChatMode.Edit.id) {
310
+ return agentModeDisabledViaPolicy;
311
+ } else {
312
+ return !agentModeDisabledViaPolicy;
313
+ }
314
+ }
315
+ if (mode.id === ChatMode.Ask.id || mode.name.get().toLowerCase() === "ask") {
316
+ if (mode.id === ChatMode.Ask.id) {
317
+ return assignments.showOldAskMode || agentModeDisabledViaPolicy;
318
+ } else {
319
+ return !(assignments.showOldAskMode || agentModeDisabledViaPolicy);
320
+ }
321
+ }
322
+ return true;
323
+ }
284
324
 
285
325
  export { ModePickerActionItem };
@@ -16,6 +16,7 @@ export interface IModelPickerDelegate {
16
16
  readonly currentModel: IObservable<ILanguageModelChatMetadataAndIdentifier | undefined>;
17
17
  setModel(model: ILanguageModelChatMetadataAndIdentifier): void;
18
18
  getModels(): ILanguageModelChatMetadataAndIdentifier[];
19
+ canManageModels(): boolean;
19
20
  }
20
21
  /**
21
22
  * Action view item for selecting a language model in the chat interface.
@@ -0,0 +1,28 @@
1
+ import { BaseActionViewItem } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/actionbar/actionViewItems";
2
+ import { IAction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/actions";
3
+ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
4
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
5
+ import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
6
+ import { IChatInputPickerOptions } from "./chatInputPickerActionItem.js";
7
+ import { IModelPickerDelegate } from "./modelPickerActionItem.js";
8
+ /**
9
+ * Enhanced action view item for selecting a language model in the chat interface.
10
+ *
11
+ * Wraps a {@link ModelPickerWidget} and adapts it for use in an action bar,
12
+ * providing curated model suggestions, upgrade prompts, and grouped layout.
13
+ */
14
+ export declare class EnhancedModelPickerActionItem extends BaseActionViewItem {
15
+ private readonly pickerOptions;
16
+ private readonly _contextKeyService;
17
+ private readonly keybindingService;
18
+ private readonly _pickerWidget;
19
+ private readonly _managedHover;
20
+ constructor(action: IAction, delegate: IModelPickerDelegate, pickerOptions: IChatInputPickerOptions, instantiationService: IInstantiationService, _contextKeyService: IContextKeyService, keybindingService: IKeybindingService);
21
+ render(container: HTMLElement): void;
22
+ private _getAnchorElement;
23
+ openModelPicker(): void;
24
+ show(): void;
25
+ private _showPicker;
26
+ private _updateTooltip;
27
+ private _getHoverContents;
28
+ }
@@ -0,0 +1,87 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { getActiveWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
+ import { getBaseLayerHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegate2';
5
+ import { getDefaultHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
6
+ import { BaseActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/actionbar/actionViewItems';
7
+ import { MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
9
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
10
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
11
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
12
+ import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
13
+ import { ModelPickerWidget } from './chatModelPicker.js';
14
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
15
+
16
+ let EnhancedModelPickerActionItem = class EnhancedModelPickerActionItem extends BaseActionViewItem {
17
+ constructor(
18
+ action,
19
+ delegate,
20
+ pickerOptions,
21
+ instantiationService,
22
+ _contextKeyService,
23
+ keybindingService
24
+ ) {
25
+ super(undefined, action);
26
+ this.pickerOptions = pickerOptions;
27
+ this._contextKeyService = _contextKeyService;
28
+ this.keybindingService = keybindingService;
29
+ this._managedHover = this._register(( new MutableDisposable()));
30
+ this._pickerWidget = this._register(instantiationService.createInstance(ModelPickerWidget, delegate));
31
+ this._pickerWidget.setSelectedModel(delegate.currentModel.get());
32
+ this._pickerWidget.setHideChevrons(pickerOptions.hideChevrons);
33
+ this._register(autorun(t => {
34
+ const model = delegate.currentModel.read(t);
35
+ this._pickerWidget.setSelectedModel(model);
36
+ this._updateTooltip();
37
+ }));
38
+ this._register(this._pickerWidget.onDidChangeSelection(model => delegate.setModel(model)));
39
+ }
40
+ render(container) {
41
+ this._pickerWidget.render(container);
42
+ this.element = this._pickerWidget.domNode;
43
+ this._updateTooltip();
44
+ container.classList.add("chat-input-picker-item");
45
+ }
46
+ _getAnchorElement() {
47
+ if (this.element && getActiveWindow().document.contains(this.element)) {
48
+ return this.element;
49
+ }
50
+ return this.pickerOptions.getOverflowAnchor?.() ?? this.element;
51
+ }
52
+ openModelPicker() {
53
+ this._showPicker();
54
+ }
55
+ show() {
56
+ this._showPicker();
57
+ }
58
+ _showPicker() {
59
+ this._pickerWidget.show(this._getAnchorElement());
60
+ }
61
+ _updateTooltip() {
62
+ if (!this.element) {
63
+ return;
64
+ }
65
+ const hoverContent = this._getHoverContents();
66
+ if (typeof hoverContent === "string" && hoverContent) {
67
+ this._managedHover.value = getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate("mouse"), this.element, hoverContent);
68
+ } else {
69
+ this._managedHover.clear();
70
+ }
71
+ }
72
+ _getHoverContents() {
73
+ let label = ( localize(6844, "Pick Model"));
74
+ const keybindingLabel = this.keybindingService.lookupKeybinding(this._action.id, this._contextKeyService)?.getLabel();
75
+ if (keybindingLabel) {
76
+ label += ` (${keybindingLabel})`;
77
+ }
78
+ const {
79
+ statusIcon,
80
+ tooltip
81
+ } = this._pickerWidget.selectedModel?.metadata || {};
82
+ return statusIcon && tooltip ? `${label} • ${tooltip}` : label;
83
+ }
84
+ };
85
+ EnhancedModelPickerActionItem = ( __decorate([( __param(3, IInstantiationService)), ( __param(4, IContextKeyService)), ( __param(5, IKeybindingService))], EnhancedModelPickerActionItem));
86
+
87
+ export { EnhancedModelPickerActionItem };
@@ -0,0 +1,22 @@
1
+ import { IDisposable } 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 { IActionWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service";
4
+ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
5
+ import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
6
+ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
7
+ import { ChatPermissionLevel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
8
+ import { MenuItemAction } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
9
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
10
+ import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
11
+ import { ChatInputPickerActionViewItem, IChatInputPickerOptions } from "./chatInputPickerActionItem.js";
12
+ export interface IPermissionPickerDelegate {
13
+ readonly currentPermissionLevel: IObservable<ChatPermissionLevel>;
14
+ readonly setPermissionLevel: (level: ChatPermissionLevel) => void;
15
+ }
16
+ export declare class PermissionPickerActionItem extends ChatInputPickerActionViewItem {
17
+ private readonly delegate;
18
+ private readonly dialogService;
19
+ constructor(action: MenuItemAction, delegate: IPermissionPickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, telemetryService: ITelemetryService, configurationService: IConfigurationService, dialogService: IDialogService);
20
+ protected renderLabel(element: HTMLElement): IDisposable | null;
21
+ refresh(): void;
22
+ }
@@ -0,0 +1,213 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { $, reset } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
+ import { renderLabelWithIcons } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabels';
5
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
6
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
7
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
8
+ import { IActionWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service';
9
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
10
+ import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
11
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
12
+ import { ChatPermissionLevel, ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
13
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
14
+ import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
15
+ import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
16
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
17
+ import { ChatInputPickerActionViewItem } from './chatInputPickerActionItem.js';
18
+
19
+ const shownWarnings = ( new Set());
20
+ function hasShownElevatedWarning(level) {
21
+ if (( shownWarnings.has(level))) {
22
+ return true;
23
+ }
24
+ if (level === ChatPermissionLevel.AutoApprove && ( shownWarnings.has(ChatPermissionLevel.Autopilot))) {
25
+ return true;
26
+ }
27
+ return false;
28
+ }
29
+ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatInputPickerActionViewItem {
30
+ constructor(
31
+ action,
32
+ delegate,
33
+ pickerOptions,
34
+ actionWidgetService,
35
+ keybindingService,
36
+ contextKeyService,
37
+ telemetryService,
38
+ configurationService,
39
+ dialogService
40
+ ) {
41
+ const isAutoApprovePolicyRestricted = () => configurationService.inspect(ChatConfiguration.GlobalAutoApprove).policyValue === false;
42
+ const isAutopilotEnabled = () => configurationService.getValue(ChatConfiguration.AutopilotEnabled) !== false;
43
+ const actionProvider = {
44
+ getActions: () => {
45
+ const currentLevel = delegate.currentPermissionLevel.get();
46
+ const policyRestricted = isAutoApprovePolicyRestricted();
47
+ const actions = [{
48
+ ...action,
49
+ id: "chat.permissions.default",
50
+ label: ( localize(6845, "Default Approvals")),
51
+ description: ( localize(6846, "Copilot uses your configured settings")),
52
+ icon: ThemeIcon.fromId(Codicon.shield.id),
53
+ checked: currentLevel === ChatPermissionLevel.Default,
54
+ tooltip: "",
55
+ hover: {
56
+ content: ( localize(6847, "Use configured approval settings")),
57
+ position: pickerOptions.hoverPosition
58
+ },
59
+ run: async () => {
60
+ delegate.setPermissionLevel(ChatPermissionLevel.Default);
61
+ if (this.element) {
62
+ this.renderLabel(this.element);
63
+ }
64
+ }
65
+ }, {
66
+ ...action,
67
+ id: "chat.permissions.autoApprove",
68
+ label: ( localize(6848, "Bypass Approvals")),
69
+ description: ( localize(6849, "All tool calls are auto-approved")),
70
+ icon: ThemeIcon.fromId(Codicon.warning.id),
71
+ checked: currentLevel === ChatPermissionLevel.AutoApprove,
72
+ enabled: !policyRestricted,
73
+ tooltip: policyRestricted ? ( localize(6850, "Disabled by enterprise policy")) : "",
74
+ hover: {
75
+ content: policyRestricted ? ( localize(6851, "Disabled by enterprise policy")) : ( localize(6852, "Auto-approve all tool calls and retry on errors")),
76
+ position: pickerOptions.hoverPosition
77
+ },
78
+ run: async () => {
79
+ if (!hasShownElevatedWarning(ChatPermissionLevel.AutoApprove)) {
80
+ const result = await this.dialogService.prompt({
81
+ type: Severity.Warning,
82
+ message: ( localize(6853, "Enable Bypass Approvals?")),
83
+ buttons: [{
84
+ label: ( localize(6854, "Enable")),
85
+ run: () => true
86
+ }, {
87
+ label: ( localize(6855, "Cancel")),
88
+ run: () => false
89
+ }],
90
+ custom: {
91
+ icon: Codicon.warning,
92
+ markdownDetails: [{
93
+ markdown: ( new MarkdownString(( localize(
94
+ 6856,
95
+ "Bypass Approvals will auto-approve all tool calls without asking for confirmation. This includes file edits, terminal commands, and external tool calls."
96
+ ))))
97
+ }]
98
+ }
99
+ });
100
+ if (result.result !== true) {
101
+ return;
102
+ }
103
+ shownWarnings.add(ChatPermissionLevel.AutoApprove);
104
+ }
105
+ delegate.setPermissionLevel(ChatPermissionLevel.AutoApprove);
106
+ if (this.element) {
107
+ this.renderLabel(this.element);
108
+ }
109
+ }
110
+ }];
111
+ if (isAutopilotEnabled()) {
112
+ actions.push({
113
+ ...action,
114
+ id: "chat.permissions.autopilot",
115
+ label: ( localize(6857, "Autopilot (Preview)")),
116
+ description: ( localize(6858, "Autonomously iterates from start to finish")),
117
+ icon: ThemeIcon.fromId(Codicon.rocket.id),
118
+ checked: currentLevel === ChatPermissionLevel.Autopilot,
119
+ enabled: !policyRestricted,
120
+ tooltip: policyRestricted ? ( localize(6859, "Disabled by enterprise policy")) : "",
121
+ hover: {
122
+ content: policyRestricted ? ( localize(6860, "Disabled by enterprise policy")) : ( localize(6861, "Auto-approve all tool calls and continue until the task is done")),
123
+ position: pickerOptions.hoverPosition
124
+ },
125
+ run: async () => {
126
+ if (!hasShownElevatedWarning(ChatPermissionLevel.Autopilot)) {
127
+ const result = await this.dialogService.prompt({
128
+ type: Severity.Warning,
129
+ message: ( localize(6862, "Enable Autopilot?")),
130
+ buttons: [{
131
+ label: ( localize(6863, "Enable")),
132
+ run: () => true
133
+ }, {
134
+ label: ( localize(6864, "Cancel")),
135
+ run: () => false
136
+ }],
137
+ custom: {
138
+ icon: Codicon.rocket,
139
+ markdownDetails: [{
140
+ markdown: ( new MarkdownString(( localize(
141
+ 6865,
142
+ "Autopilot will auto-approve all tool calls and continue working autonomously until the task is complete. The agent will make decisions on your behalf without asking for confirmation.\n\nYou can stop the agent at any time by clicking the stop button. This applies to the current session only."
143
+ ))))
144
+ }]
145
+ }
146
+ });
147
+ if (result.result !== true) {
148
+ return;
149
+ }
150
+ shownWarnings.add(ChatPermissionLevel.Autopilot);
151
+ }
152
+ delegate.setPermissionLevel(ChatPermissionLevel.Autopilot);
153
+ if (this.element) {
154
+ this.renderLabel(this.element);
155
+ }
156
+ }
157
+ });
158
+ }
159
+ return actions;
160
+ }
161
+ };
162
+ super(action, {
163
+ actionProvider,
164
+ reporter: {
165
+ id: "ChatPermissionPicker",
166
+ name: "ChatPermissionPicker",
167
+ includeOptions: true
168
+ },
169
+ listOptions: {
170
+ descriptionBelow: true,
171
+ minWidth: 255
172
+ }
173
+ }, pickerOptions, actionWidgetService, keybindingService, contextKeyService, telemetryService);
174
+ this.delegate = delegate;
175
+ this.dialogService = dialogService;
176
+ }
177
+ renderLabel(element) {
178
+ this.setAriaLabelAttributes(element);
179
+ const level = this.delegate.currentPermissionLevel.get();
180
+ let icon;
181
+ let label;
182
+ switch (level) {
183
+ case ChatPermissionLevel.Autopilot:
184
+ icon = Codicon.rocket;
185
+ label = ( localize(6866, "Autopilot (Preview)"));
186
+ break;
187
+ case ChatPermissionLevel.AutoApprove:
188
+ icon = Codicon.warning;
189
+ label = ( localize(6867, "Bypass Approvals"));
190
+ break;
191
+ default:
192
+ icon = Codicon.shield;
193
+ label = ( localize(6868, "Default Approvals"));
194
+ break;
195
+ }
196
+ const labelElements = [];
197
+ labelElements.push(...renderLabelWithIcons(`$(${icon.id})`));
198
+ labelElements.push($("span.chat-input-picker-label", undefined, label));
199
+ labelElements.push(...renderLabelWithIcons(`$(chevron-down)`));
200
+ reset(element, ...labelElements);
201
+ element.classList.toggle("warning", level === ChatPermissionLevel.Autopilot);
202
+ element.classList.toggle("info", level === ChatPermissionLevel.AutoApprove);
203
+ return null;
204
+ }
205
+ refresh() {
206
+ if (this.element) {
207
+ this.renderLabel(this.element);
208
+ }
209
+ }
210
+ };
211
+ PermissionPickerActionItem = ( __decorate([( __param(3, IActionWidgetService)), ( __param(4, IKeybindingService)), ( __param(5, IContextKeyService)), ( __param(6, ITelemetryService)), ( __param(7, IConfigurationService)), ( __param(8, IDialogService))], PermissionPickerActionItem));
212
+
213
+ export { PermissionPickerActionItem };
@@ -43,5 +43,6 @@ export declare class SessionTypePickerActionItem extends ChatInputPickerActionVi
43
43
  order: number;
44
44
  };
45
45
  protected _getSessionDescription(sessionTypeItem: ISessionTypeItem): string | undefined;
46
+ render(container: HTMLElement): void;
46
47
  protected renderLabel(element: HTMLElement): IDisposable | null;
47
48
  }