@codingame/monaco-vscode-katex-common 27.0.0 → 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 (181) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +2 -0
  3. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
  4. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +30 -2
  5. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.js +1 -0
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +17 -11
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +5 -0
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +90 -43
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  12. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +26 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +106 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +6 -0
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +63 -10
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +1 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +13 -10
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +2 -2
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +28 -2
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +133 -28
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +69 -0
  23. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +55 -46
  24. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +10 -10
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +38 -37
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +5 -5
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +1 -1
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +2 -2
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +72 -57
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
  35. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +1 -16
  36. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -110
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.d.ts +1 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.d.ts +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +1 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.d.ts +1 -1
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +1 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +1 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.d.ts +1 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.d.ts +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +59 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.js +29 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.d.ts +1 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +1 -1
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +1 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.d.ts +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +1 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.d.ts +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +3 -3
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +1 -1
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +8 -6
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.d.ts +15 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.js +55 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +1 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +6 -6
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +6 -4
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +1 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +26 -6
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +290 -126
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +9 -7
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +22 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +263 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +6 -6
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.d.ts +1 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.d.ts +1 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +1 -1
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +22 -13
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +12 -18
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -1
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +3 -13
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +6 -260
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +1 -1
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.d.ts +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +17 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +129 -117
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +0 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.d.ts +1 -1
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +8 -1
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +56 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +5 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +20 -4
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.d.ts +1 -1
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -1
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -15
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +43 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +42 -41
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +2 -4
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +14 -14
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +1 -1
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +3 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +1 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -1
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +1 -1
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +4 -2
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +61 -39
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +7 -8
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +1 -10
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +81 -191
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +31 -17
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +334 -181
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +7 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +3 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +51 -55
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +104 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +127 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +2 -1
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +16 -9
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +2 -1
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +22 -0
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +213 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +1 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +10 -16
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +6 -4
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +174 -10
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +2 -12
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +12 -16
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +1 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +5 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +36 -50
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +19 -4
  163. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +22 -6
  164. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
  165. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +3 -1
  166. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +24 -4
  167. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
  168. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +5 -5
  169. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  170. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  171. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -2
  172. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +1 -1
  173. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +3 -3
  174. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +1 -1
  175. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +38 -46
  176. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  177. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  178. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  179. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  180. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  181. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +6 -10
@@ -6,7 +6,7 @@ import { h } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
6
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
7
  import { NotSelectableGroupId } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/list/list';
8
8
  import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
9
- import { hasValidDiff, getAgentChangesSummary, isAgentSessionSection, isAgentSessionsModel, AgentSessionSection, isAgentSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel';
9
+ import { hasValidDiff, getAgentChangesSummary, isAgentSessionSection, isAgentSession, isAgentSessionsModel, AgentSessionSection } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel';
10
10
  import { IconLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabel';
11
11
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
12
12
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
@@ -19,6 +19,7 @@ import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arr
19
19
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
20
20
  import { fillEditorsDragData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/dnd';
21
21
  import { HoverStyle } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hover';
22
+ import { HoverPosition } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverWidget';
22
23
  import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
23
24
  import { IntervalTimer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
24
25
  import { MenuWorkbenchToolBar } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/toolbar';
@@ -26,12 +27,18 @@ import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/
26
27
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
27
28
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
28
29
  import { ServiceCollection } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/serviceCollection';
30
+ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
29
31
  import { renderAsPlaintext } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
30
32
  import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
31
33
  import { AgentSessionHoverWidget } from './agentSessionHoverWidget.js';
32
34
  import { AgentSessionProviders, getAgentSessionTime } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
33
35
  import { AgentSessionsGrouping } from './agentSessionsFilter.js';
36
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
37
+ import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
38
+ import { defaultButtonStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
39
+ import { BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
34
40
  import { isSessionInProgressStatus, ChatSessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
41
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
35
42
 
36
43
  var AgentSessionRenderer_1, AgentSessionSectionRenderer_1;
37
44
  registerCss(agentsessionsviewer);
@@ -42,8 +49,22 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
42
49
  static {
43
50
  this.TEMPLATE_ID = "agent-session";
44
51
  }
52
+ static {
53
+ this.APPROVAL_ROW_MAX_LINES = 3;
54
+ }
55
+ static {
56
+ this._APPROVAL_ROW_LINE_HEIGHT = 18;
57
+ }
58
+ static {
59
+ this._APPROVAL_ROW_OVERHEAD = 14;
60
+ }
61
+ static getApprovalRowHeight(label) {
62
+ const lineCount = Math.min(label.split(/\r?\n/).length, AgentSessionRenderer_1.APPROVAL_ROW_MAX_LINES);
63
+ return lineCount * AgentSessionRenderer_1._APPROVAL_ROW_LINE_HEIGHT + AgentSessionRenderer_1._APPROVAL_ROW_OVERHEAD;
64
+ }
45
65
  constructor(
46
66
  options,
67
+ _approvalModel,
47
68
  markdownRendererService,
48
69
  productService,
49
70
  hoverService,
@@ -52,6 +73,7 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
52
73
  ) {
53
74
  super();
54
75
  this.options = options;
76
+ this._approvalModel = _approvalModel;
55
77
  this.markdownRendererService = markdownRendererService;
56
78
  this.productService = productService;
57
79
  this.hoverService = hoverService;
@@ -59,6 +81,8 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
59
81
  this.contextKeyService = contextKeyService;
60
82
  this.templateId = AgentSessionRenderer_1.TEMPLATE_ID;
61
83
  this.sessionHover = this._register(( new MutableDisposable()));
84
+ this._onDidChangeItemHeight = this._register(( new Emitter()));
85
+ this.onDidChangeItemHeight = this._onDidChangeItemHeight.event;
62
86
  }
63
87
  renderTemplate(container) {
64
88
  const disposables = ( new DisposableStore());
@@ -81,7 +105,10 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
81
105
  h("span.agent-session-status-time@statusTime")
82
106
  ])
83
107
  ])]
84
- )])
108
+ ), h("div.agent-session-approval-row@approvalRow", [
109
+ h("span.agent-session-approval-label@approvalLabel"),
110
+ h("div.agent-session-approval-button@approvalButtonContainer")
111
+ ])])
85
112
  ]);
86
113
  const contextKeyService = disposables.add(this.contextKeyService.createScoped(elements.item));
87
114
  const scopedInstantiationService = disposables.add(this.instantiationService.createChild(( new ServiceCollection([IContextKeyService, contextKeyService]))));
@@ -113,6 +140,9 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
113
140
  statusContainer: elements.statusContainer,
114
141
  statusProviderIcon: elements.statusProviderIcon,
115
142
  statusTime: elements.statusTime,
143
+ approvalRow: elements.approvalRow,
144
+ approvalLabel: elements.approvalLabel,
145
+ approvalButtonContainer: elements.approvalButtonContainer,
116
146
  contextKeyService,
117
147
  elementDisposable,
118
148
  disposables
@@ -159,6 +189,9 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
159
189
  template.separator.classList.toggle("has-separator", hasBadge);
160
190
  this.renderStatus(session, template);
161
191
  this.renderHover(session, template);
192
+ if (this._approvalModel) {
193
+ this.renderApprovalRow(session, template);
194
+ }
162
195
  }
163
196
  renderBadge(session, template) {
164
197
  const badge = session.element.badge;
@@ -219,9 +252,9 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
219
252
  return;
220
253
  }
221
254
  if (session.element.status === ChatSessionStatus.InProgress) {
222
- template.description.textContent = ( localize(5104, "Working..."));
255
+ template.description.textContent = ( localize(5126, "Working..."));
223
256
  } else if (session.element.status === ChatSessionStatus.NeedsInput) {
224
- template.description.textContent = ( localize(5105, "Input needed."));
257
+ template.description.textContent = ( localize(5127, "Input needed."));
225
258
  } else if (session.element.timing.lastRequestEnded && session.element.timing.lastRequestStarted && session.element.timing.lastRequestEnded > session.element.timing.lastRequestStarted) {
226
259
  const duration = this.toDuration(
227
260
  session.element.timing.lastRequestStarted,
@@ -229,15 +262,15 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
229
262
  false,
230
263
  true
231
264
  );
232
- template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(5106, "Failed after {0}", duration)) : ( localize(5107, "Completed in {0}", duration));
265
+ template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(5128, "Failed after {0}", duration)) : ( localize(5129, "Completed in {0}", duration));
233
266
  } else {
234
- template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(5108, "Failed")) : ( localize(5109, "Completed"));
267
+ template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(5130, "Failed")) : ( localize(5131, "Completed"));
235
268
  }
236
269
  }
237
270
  toDuration(startTime, endTime, useFullTimeWords, disallowNow) {
238
271
  const elapsed = Math.max(Math.round((endTime - startTime) / 1000) * 1000, 1000 );
239
272
  if (!disallowNow && elapsed < 60000) {
240
- return localize(5110, "now");
273
+ return localize(5132, "now");
241
274
  }
242
275
  return getDurationString(elapsed, useFullTimeWords);
243
276
  }
@@ -251,7 +284,7 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
251
284
  const date = getAgentSessionTime(session.timing);
252
285
  const seconds = Math.round((( new Date()).getTime() - date) / 1000);
253
286
  if (seconds < 60) {
254
- timeLabel = ( localize(5110, "now"));
287
+ timeLabel = ( localize(5132, "now"));
255
288
  } else {
256
289
  timeLabel = sessionDateFromNow(date);
257
290
  }
@@ -259,7 +292,15 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
259
292
  return timeLabel;
260
293
  };
261
294
  const isLocal = session.element.providerType === AgentSessionProviders.Local;
262
- template.statusProviderIcon.className = isLocal ? "" : `agent-session-status-provider-icon ${ThemeIcon.asClassName(session.element.icon)}`;
295
+ if (isLocal) {
296
+ template.statusProviderIcon.className = "";
297
+ } else if (this.options.showIsolationIcon && session.element.providerType === AgentSessionProviders.Background) {
298
+ const hasWorktree = typeof session.element.metadata?.worktreePath === "string";
299
+ const isolationIcon = hasWorktree ? Codicon.worktree : Codicon.folder;
300
+ template.statusProviderIcon.className = `agent-session-status-provider-icon ${ThemeIcon.asClassName(isolationIcon)}`;
301
+ } else {
302
+ template.statusProviderIcon.className = `agent-session-status-provider-icon ${ThemeIcon.asClassName(session.element.icon)}`;
303
+ }
263
304
  template.statusTime.textContent = getTimeLabel(session.element);
264
305
  const timer = template.elementDisposable.add(( new IntervalTimer()));
265
306
  timer.cancelAndSet(
@@ -297,6 +338,55 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
297
338
  }
298
339
  };
299
340
  }
341
+ renderApprovalRow(session, template) {
342
+ if (this._approvalModel === undefined) {
343
+ throw ( new BugIndicatingError("Approval model is required to render approval row"));
344
+ }
345
+ const approvalModel = this._approvalModel;
346
+ const initialInfo = approvalModel.getApproval(session.element.resource).get();
347
+ let wasVisible = !!initialInfo;
348
+ template.approvalRow.classList.toggle("visible", wasVisible);
349
+ const buttonStore = template.elementDisposable.add(( new DisposableStore()));
350
+ template.elementDisposable.add(autorun(reader => {
351
+ buttonStore.clear();
352
+ const info = approvalModel.getApproval(session.element.resource).read(reader);
353
+ const visible = !!info;
354
+ template.approvalRow.classList.toggle("visible", visible);
355
+ if (info) {
356
+ const lines = info.label.split("\n");
357
+ const maxLines = AgentSessionRenderer_1.APPROVAL_ROW_MAX_LINES;
358
+ const visibleLines = lines.slice(0, maxLines);
359
+ if (lines.length > maxLines) {
360
+ visibleLines[maxLines - 1] = `${visibleLines[maxLines - 1]} \u2026`;
361
+ }
362
+ const langId = info.languageId ?? "json";
363
+ const labelContent = ( new MarkdownString());
364
+ for (const line of visibleLines) {
365
+ labelContent.appendCodeblock(langId, line);
366
+ }
367
+ this.renderMarkdownOrText(labelContent, template.approvalLabel, buttonStore);
368
+ const fullContent = ( new MarkdownString()).appendCodeblock(info.languageId ?? "json", info.label);
369
+ buttonStore.add(this.hoverService.setupDelayedHover(template.approvalLabel, {
370
+ content: fullContent,
371
+ style: HoverStyle.Pointer,
372
+ position: {
373
+ hoverPosition: HoverPosition.BELOW
374
+ }
375
+ }));
376
+ template.approvalButtonContainer.textContent = "";
377
+ const button = buttonStore.add(( new Button(template.approvalButtonContainer, {
378
+ title: ( localize(5133, "Allow once")),
379
+ ...defaultButtonStyles
380
+ })));
381
+ button.label = ( localize(5134, "Allow"));
382
+ buttonStore.add(button.onDidClick(() => info.confirm()));
383
+ }
384
+ if (wasVisible !== visible) {
385
+ wasVisible = visible;
386
+ this._onDidChangeItemHeight.fire(session.element);
387
+ }
388
+ }));
389
+ }
300
390
  renderCompressedElements(node, index, templateData, details) {
301
391
  throw ( new Error("Should never happen since session is incompressible"));
302
392
  }
@@ -307,21 +397,21 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
307
397
  templateData.disposables.dispose();
308
398
  }
309
399
  };
310
- AgentSessionRenderer = AgentSessionRenderer_1 = ( __decorate([( __param(1, IMarkdownRendererService)), ( __param(2, IProductService)), ( __param(3, IHoverService)), ( __param(4, IInstantiationService)), ( __param(5, IContextKeyService))], AgentSessionRenderer));
400
+ AgentSessionRenderer = AgentSessionRenderer_1 = ( __decorate([( __param(2, IMarkdownRendererService)), ( __param(3, IProductService)), ( __param(4, IHoverService)), ( __param(5, IInstantiationService)), ( __param(6, IContextKeyService))], AgentSessionRenderer));
311
401
  function toStatusLabel(status) {
312
402
  let statusLabel;
313
403
  switch (status) {
314
404
  case ChatSessionStatus.NeedsInput:
315
- statusLabel = ( localize(5111, "Needs Input"));
405
+ statusLabel = ( localize(5135, "Needs Input"));
316
406
  break;
317
407
  case ChatSessionStatus.InProgress:
318
- statusLabel = ( localize(5112, "In Progress"));
408
+ statusLabel = ( localize(5136, "In Progress"));
319
409
  break;
320
410
  case ChatSessionStatus.Failed:
321
- statusLabel = ( localize(5113, "Failed"));
411
+ statusLabel = ( localize(5137, "Failed"));
322
412
  break;
323
413
  default:
324
- statusLabel = ( localize(5114, "Completed"));
414
+ statusLabel = ( localize(5138, "Completed"));
325
415
  }
326
416
  return statusLabel;
327
417
  }
@@ -385,11 +475,22 @@ class AgentSessionsListDelegate {
385
475
  static {
386
476
  this.SECTION_HEIGHT = 26;
387
477
  }
478
+ constructor(_approvalModel) {
479
+ this._approvalModel = _approvalModel;
480
+ }
388
481
  getHeight(element) {
389
482
  if (isAgentSessionSection(element)) {
390
483
  return AgentSessionsListDelegate.SECTION_HEIGHT;
391
484
  }
392
- return AgentSessionsListDelegate.ITEM_HEIGHT;
485
+ let height = AgentSessionsListDelegate.ITEM_HEIGHT;
486
+ const approval = this._approvalModel?.getApproval(element.resource).get();
487
+ if (approval) {
488
+ height += AgentSessionRenderer.getApprovalRowHeight(approval.label);
489
+ }
490
+ return height;
491
+ }
492
+ hasDynamicHeight(element) {
493
+ return !!this._approvalModel && isAgentSession(element);
393
494
  }
394
495
  getTemplateId(element) {
395
496
  if (isAgentSessionSection(element)) {
@@ -406,14 +507,14 @@ class AgentSessionsAccessibilityProvider {
406
507
  return "listitem";
407
508
  }
408
509
  getWidgetAriaLabel() {
409
- return localize(5115, "Agent Sessions");
510
+ return localize(5139, "Agent Sessions");
410
511
  }
411
512
  getAriaLabel(element) {
412
513
  if (isAgentSessionSection(element)) {
413
- return localize(5116, "{0} sessions section", element.label);
514
+ return localize(5140, "{0} sessions section", element.label);
414
515
  }
415
516
  return localize(
416
- 5117,
517
+ 5141,
417
518
  "{0} session {1} ({2}), created {3}",
418
519
  element.providerLabel,
419
520
  element.label,
@@ -422,13 +523,16 @@ class AgentSessionsAccessibilityProvider {
422
523
  );
423
524
  }
424
525
  }
425
- class AgentSessionsDataSource {
526
+ class AgentSessionsDataSource extends Disposable {
426
527
  static {
427
528
  this.CAPPED_SESSIONS_LIMIT = 3;
428
529
  }
429
530
  constructor(filter, sorter) {
531
+ super();
430
532
  this.filter = filter;
431
533
  this.sorter = sorter;
534
+ this._onDidGetChildren = this._register(( new Emitter()));
535
+ this.onDidGetChildren = this._onDidGetChildren.event;
432
536
  }
433
537
  hasChildren(element) {
434
538
  if (isAgentSessionsModel(element)) {
@@ -452,6 +556,7 @@ class AgentSessionsDataSource {
452
556
  filteredSessions = filteredSessions.slice(0, limitResultsCount);
453
557
  }
454
558
  this.filter?.notifyResults?.(filteredSessions.length);
559
+ this._onDidGetChildren.fire(filteredSessions.length);
455
560
  if (this.filter?.groupResults?.()) {
456
561
  return this.groupSessionsIntoSections(filteredSessions);
457
562
  }
@@ -515,12 +620,12 @@ class AgentSessionsDataSource {
515
620
  }
516
621
  }
517
622
  const AgentSessionSectionLabels = {
518
- [AgentSessionSection.Today]: ( localize(5118, "Today")),
519
- [AgentSessionSection.Yesterday]: ( localize(5119, "Yesterday")),
520
- [AgentSessionSection.Week]: ( localize(5120, "Last 7 days")),
521
- [AgentSessionSection.Older]: ( localize(5121, "Older")),
522
- [AgentSessionSection.Archived]: ( localize(5122, "Archived")),
523
- [AgentSessionSection.More]: ( localize(5123, "More"))
623
+ [AgentSessionSection.Today]: ( localize(5142, "Today")),
624
+ [AgentSessionSection.Yesterday]: ( localize(5143, "Yesterday")),
625
+ [AgentSessionSection.Week]: ( localize(5144, "Last 7 days")),
626
+ [AgentSessionSection.Older]: ( localize(5145, "Older")),
627
+ [AgentSessionSection.Archived]: ( localize(5146, "Archived")),
628
+ [AgentSessionSection.More]: ( localize(5147, "More"))
524
629
  };
525
630
  const DAY_THRESHOLD = 24 * 60 * 60 * 1000;
526
631
  const WEEK_THRESHOLD = 7 * DAY_THRESHOLD;
@@ -578,10 +683,10 @@ function sessionDateFromNow(sessionTime) {
578
683
  const startOfYesterday = startOfToday - DAY_THRESHOLD;
579
684
  const startOfTwoDaysAgo = startOfYesterday - DAY_THRESHOLD;
580
685
  if (sessionTime < startOfToday && sessionTime >= startOfYesterday) {
581
- return localize(5124, "1 day");
686
+ return localize(5148, "1 day");
582
687
  }
583
688
  if (sessionTime < startOfYesterday && sessionTime >= startOfTwoDaysAgo) {
584
- return localize(5125, "2 days");
689
+ return localize(5149, "2 days");
585
690
  }
586
691
  return fromNow(sessionTime, false);
587
692
  }
@@ -669,7 +774,7 @@ let AgentSessionsDragAndDrop = class AgentSessionsDragAndDrop extends Disposable
669
774
  if (sessions.length === 1) {
670
775
  return sessions[0].label;
671
776
  }
672
- return localize(5126, "{0} agent sessions", sessions.length);
777
+ return localize(5150, "{0} agent sessions", sessions.length);
673
778
  }
674
779
  onDragOver(data, targetElement, targetIndex, targetSector, originalEvent) {
675
780
  return false;
@@ -251,6 +251,53 @@
251
251
  }
252
252
  }
253
253
  }
254
+ .agent-session-approval-row {
255
+ display: none;
256
+ align-items: flex-end;
257
+ gap: 8px;
258
+ margin-top: 4px;
259
+ padding: 4px 8px;
260
+ box-sizing: border-box;
261
+ border: 1px solid var(--vscode-contrastBorder, var(--vscode-widget-border, transparent));
262
+ border-radius: 4px;
263
+ background-color: var(--vscode-editor-background);
264
+ color: var(--vscode-editor-foreground);
265
+
266
+ &.visible {
267
+ display: flex;
268
+ }
269
+
270
+ .agent-session-approval-label {
271
+ flex: 1;
272
+ overflow: hidden;
273
+ min-width: 0;
274
+
275
+ & > .rendered-markdown,
276
+ & > .rendered-markdown > .code,
277
+ & > .rendered-markdown > .code > span {
278
+ display: block;
279
+ overflow: hidden;
280
+ }
281
+
282
+ .monaco-tokenized-source {
283
+ display: block;
284
+ overflow: hidden;
285
+ white-space: nowrap;
286
+ text-overflow: ellipsis;
287
+ font-size: 12px;
288
+ }
289
+ }
290
+
291
+ .agent-session-approval-button {
292
+ flex-shrink: 0;
293
+
294
+ .monaco-button {
295
+ padding: 2px 10px;
296
+ font-size: 12px;
297
+ white-space: nowrap;
298
+ }
299
+ }
300
+ }
254
301
  }
255
302
 
256
303
  .agent-session-section {
@@ -297,4 +344,26 @@
297
344
  .monaco-list:not(:focus) .monaco-list-row.selected .agent-session-section-label {
298
345
  color: var(--vscode-list-inactiveSelectionForeground);
299
346
  }
347
+
348
+ .agent-sessions-empty-filter-message {
349
+ padding: 8px 12px;
350
+ font-size: 12px;
351
+ color: var(--vscode-descriptionForeground);
352
+
353
+ .reset-filter-link {
354
+ color: var(--vscode-textLink-foreground);
355
+ cursor: pointer;
356
+ text-decoration: none;
357
+
358
+ &:hover {
359
+ text-decoration: underline;
360
+ }
361
+
362
+ &:focus-visible {
363
+ text-decoration: underline;
364
+ outline: 1px solid var(--vscode-focusBorder);
365
+ outline-offset: 1px;
366
+ }
367
+ }
368
+ }
300
369
  }