@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
@@ -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
- import { AgentSessionProviders } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
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());
@@ -73,11 +97,18 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
73
97
  [h("div.agent-session-diff-container@diffContainer", [
74
98
  h("span.agent-session-diff-added@addedSpan"),
75
99
  h("span.agent-session-diff-removed@removedSpan")
76
- ]), h("div.agent-session-badge@badge"), h("div.agent-session-description@description"), h("div.agent-session-status@statusContainer", [
77
- h("span.agent-session-status-provider-icon@statusProviderIcon"),
78
- h("span.agent-session-status-time@statusTime")
100
+ ]), h("div.agent-session-description@description"), h("div.agent-session-details-right", [
101
+ h("div.agent-session-badge@badge"),
102
+ h("span.agent-session-separator@separator"),
103
+ h("div.agent-session-status@statusContainer", [
104
+ h("span.agent-session-status-provider-icon@statusProviderIcon"),
105
+ h("span.agent-session-status-time@statusTime")
106
+ ])
79
107
  ])]
80
- )])
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
+ ])])
81
112
  ]);
82
113
  const contextKeyService = disposables.add(this.contextKeyService.createScoped(elements.item));
83
114
  const scopedInstantiationService = disposables.add(this.instantiationService.createChild(( new ServiceCollection([IContextKeyService, contextKeyService]))));
@@ -104,10 +135,14 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
104
135
  diffAddedSpan: elements.addedSpan,
105
136
  diffRemovedSpan: elements.removedSpan,
106
137
  badge: elements.badge,
138
+ separator: elements.separator,
107
139
  description: elements.description,
108
140
  statusContainer: elements.statusContainer,
109
141
  statusProviderIcon: elements.statusProviderIcon,
110
142
  statusTime: elements.statusTime,
143
+ approvalRow: elements.approvalRow,
144
+ approvalLabel: elements.approvalLabel,
145
+ approvalButtonContainer: elements.approvalButtonContainer,
111
146
  contextKeyService,
112
147
  elementDisposable,
113
148
  disposables
@@ -146,16 +181,17 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
146
181
  hasAgentSessionChanges = hasDiff;
147
182
  }
148
183
  ChatContextKeys.hasAgentSessionChanges.bindTo(template.contextKeyService).set(hasAgentSessionChanges);
149
- let hasBadge = false;
150
- if (!isSessionInProgressStatus(session.element.status)) {
151
- hasBadge = this.renderBadge(session, template);
152
- }
184
+ const hasBadge = this.renderBadge(session, template);
153
185
  template.badge.classList.toggle("has-badge", hasBadge);
154
186
  if (!hasDiff) {
155
- this.renderDescription(session, template, hasBadge);
187
+ this.renderDescription(session, template);
156
188
  }
189
+ template.separator.classList.toggle("has-separator", hasBadge);
157
190
  this.renderStatus(session, template);
158
191
  this.renderHover(session, template);
192
+ if (this._approvalModel) {
193
+ this.renderApprovalRow(session, template);
194
+ }
159
195
  }
160
196
  renderBadge(session, template) {
161
197
  const badge = session.element.badge;
@@ -209,35 +245,32 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
209
245
  }
210
246
  return Codicon.circleSmallFilled;
211
247
  }
212
- renderDescription(session, template, hasBadge) {
248
+ renderDescription(session, template) {
213
249
  const description = session.element.description;
214
250
  if (description) {
215
251
  this.renderMarkdownOrText(description, template.description, template.elementDisposable);
252
+ return;
216
253
  }
217
- else {
218
- if (session.element.status === ChatSessionStatus.InProgress) {
219
- template.description.textContent = ( localize(4990, "Working..."));
220
- } else if (session.element.status === ChatSessionStatus.NeedsInput) {
221
- template.description.textContent = ( localize(4991, "Input needed."));
222
- } else if (hasBadge && session.element.status === ChatSessionStatus.Completed) {
223
- template.description.textContent = "";
224
- } else if (session.element.timing.lastRequestEnded && session.element.timing.lastRequestStarted && session.element.timing.lastRequestEnded > session.element.timing.lastRequestStarted) {
225
- const duration = this.toDuration(
226
- session.element.timing.lastRequestStarted,
227
- session.element.timing.lastRequestEnded,
228
- false,
229
- true
230
- );
231
- template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(4992, "Failed after {0}.", duration)) : ( localize(4993, "Completed in {0}.", duration));
232
- } else {
233
- template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(4994, "Failed")) : ( localize(4995, "Completed"));
234
- }
254
+ if (session.element.status === ChatSessionStatus.InProgress) {
255
+ template.description.textContent = ( localize(5126, "Working..."));
256
+ } else if (session.element.status === ChatSessionStatus.NeedsInput) {
257
+ template.description.textContent = ( localize(5127, "Input needed."));
258
+ } else if (session.element.timing.lastRequestEnded && session.element.timing.lastRequestStarted && session.element.timing.lastRequestEnded > session.element.timing.lastRequestStarted) {
259
+ const duration = this.toDuration(
260
+ session.element.timing.lastRequestStarted,
261
+ session.element.timing.lastRequestEnded,
262
+ false,
263
+ true
264
+ );
265
+ template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(5128, "Failed after {0}", duration)) : ( localize(5129, "Completed in {0}", duration));
266
+ } else {
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(4996, "now");
273
+ return localize(5132, "now");
241
274
  }
242
275
  return getDurationString(elapsed, useFullTimeWords);
243
276
  }
@@ -248,17 +281,26 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
248
281
  timeLabel = this.toDuration(session.timing.lastRequestStarted, Date.now(), false, false);
249
282
  }
250
283
  if (!timeLabel) {
251
- const date = session.timing.lastRequestEnded ?? session.timing.lastRequestStarted ?? session.timing.created;
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(4996, "now"));
287
+ timeLabel = ( localize(5132, "now"));
255
288
  } else {
256
- timeLabel = fromNow(date, true);
289
+ timeLabel = sessionDateFromNow(date);
257
290
  }
258
291
  }
259
292
  return timeLabel;
260
293
  };
261
- template.statusProviderIcon.className = `agent-session-status-provider-icon ${ThemeIcon.asClassName(session.element.icon)}`;
294
+ const isLocal = session.element.providerType === AgentSessionProviders.Local;
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
+ }
262
304
  template.statusTime.textContent = getTimeLabel(session.element);
263
305
  const timer = template.elementDisposable.add(( new IntervalTimer()));
264
306
  timer.cancelAndSet(
@@ -267,6 +309,9 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
267
309
  );
268
310
  }
269
311
  renderHover(session, template) {
312
+ if (this.options.disableHover) {
313
+ return;
314
+ }
270
315
  if (!isSessionInProgressStatus(session.element.status) && session.element.isRead()) {
271
316
  return;
272
317
  }
@@ -293,6 +338,55 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
293
338
  }
294
339
  };
295
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
+ }
296
390
  renderCompressedElements(node, index, templateData, details) {
297
391
  throw ( new Error("Should never happen since session is incompressible"));
298
392
  }
@@ -303,21 +397,21 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
303
397
  templateData.disposables.dispose();
304
398
  }
305
399
  };
306
- 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));
307
401
  function toStatusLabel(status) {
308
402
  let statusLabel;
309
403
  switch (status) {
310
404
  case ChatSessionStatus.NeedsInput:
311
- statusLabel = ( localize(4997, "Needs Input"));
405
+ statusLabel = ( localize(5135, "Needs Input"));
312
406
  break;
313
407
  case ChatSessionStatus.InProgress:
314
- statusLabel = ( localize(4998, "In Progress"));
408
+ statusLabel = ( localize(5136, "In Progress"));
315
409
  break;
316
410
  case ChatSessionStatus.Failed:
317
- statusLabel = ( localize(4999, "Failed"));
411
+ statusLabel = ( localize(5137, "Failed"));
318
412
  break;
319
413
  default:
320
- statusLabel = ( localize(5000, "Completed"));
414
+ statusLabel = ( localize(5138, "Completed"));
321
415
  }
322
416
  return statusLabel;
323
417
  }
@@ -376,16 +470,27 @@ let AgentSessionSectionRenderer = class AgentSessionSectionRenderer {
376
470
  AgentSessionSectionRenderer = AgentSessionSectionRenderer_1 = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IContextKeyService))], AgentSessionSectionRenderer));
377
471
  class AgentSessionsListDelegate {
378
472
  static {
379
- this.ITEM_HEIGHT = 52;
473
+ this.ITEM_HEIGHT = 54;
380
474
  }
381
475
  static {
382
476
  this.SECTION_HEIGHT = 26;
383
477
  }
478
+ constructor(_approvalModel) {
479
+ this._approvalModel = _approvalModel;
480
+ }
384
481
  getHeight(element) {
385
482
  if (isAgentSessionSection(element)) {
386
483
  return AgentSessionsListDelegate.SECTION_HEIGHT;
387
484
  }
388
- 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);
389
494
  }
390
495
  getTemplateId(element) {
391
496
  if (isAgentSessionSection(element)) {
@@ -402,14 +507,14 @@ class AgentSessionsAccessibilityProvider {
402
507
  return "listitem";
403
508
  }
404
509
  getWidgetAriaLabel() {
405
- return localize(5001, "Agent Sessions");
510
+ return localize(5139, "Agent Sessions");
406
511
  }
407
512
  getAriaLabel(element) {
408
513
  if (isAgentSessionSection(element)) {
409
- return localize(5002, "{0} sessions section", element.label);
514
+ return localize(5140, "{0} sessions section", element.label);
410
515
  }
411
516
  return localize(
412
- 5003,
517
+ 5141,
413
518
  "{0} session {1} ({2}), created {3}",
414
519
  element.providerLabel,
415
520
  element.label,
@@ -418,13 +523,16 @@ class AgentSessionsAccessibilityProvider {
418
523
  );
419
524
  }
420
525
  }
421
- class AgentSessionsDataSource {
526
+ class AgentSessionsDataSource extends Disposable {
422
527
  static {
423
528
  this.CAPPED_SESSIONS_LIMIT = 3;
424
529
  }
425
530
  constructor(filter, sorter) {
531
+ super();
426
532
  this.filter = filter;
427
533
  this.sorter = sorter;
534
+ this._onDidGetChildren = this._register(( new Emitter()));
535
+ this.onDidGetChildren = this._onDidGetChildren.event;
428
536
  }
429
537
  hasChildren(element) {
430
538
  if (isAgentSessionsModel(element)) {
@@ -448,6 +556,7 @@ class AgentSessionsDataSource {
448
556
  filteredSessions = filteredSessions.slice(0, limitResultsCount);
449
557
  }
450
558
  this.filter?.notifyResults?.(filteredSessions.length);
559
+ this._onDidGetChildren.fire(filteredSessions.length);
451
560
  if (this.filter?.groupResults?.()) {
452
561
  return this.groupSessionsIntoSections(filteredSessions);
453
562
  }
@@ -463,6 +572,9 @@ class AgentSessionsDataSource {
463
572
  groupSessionsIntoSections(sessions) {
464
573
  const sortedSessions = sessions.sort(this.sorter.compare.bind(this.sorter));
465
574
  if (this.filter?.groupResults?.() === AgentSessionsGrouping.Capped) {
575
+ if (this.filter?.getExcludes().read) {
576
+ return sortedSessions;
577
+ }
466
578
  return this.groupSessionsCapped(sortedSessions);
467
579
  } else {
468
580
  return this.groupSessionsByDate(sortedSessions);
@@ -481,7 +593,7 @@ class AgentSessionsDataSource {
481
593
  if (othersSessions.length > 0) {
482
594
  result.push({
483
595
  section: AgentSessionSection.More,
484
- label: ( localize(5004, "More ({0})", othersSessions.length)),
596
+ label: AgentSessionSectionLabels[AgentSessionSection.More],
485
597
  sessions: othersSessions
486
598
  });
487
599
  }
@@ -507,23 +619,21 @@ class AgentSessionsDataSource {
507
619
  return result;
508
620
  }
509
621
  }
510
- const DAY_THRESHOLD = 24 * 60 * 60 * 1000;
511
- const WEEK_THRESHOLD = 7 * DAY_THRESHOLD;
512
622
  const AgentSessionSectionLabels = {
513
- [AgentSessionSection.InProgress]: ( localize(5005, "In Progress")),
514
- [AgentSessionSection.Today]: ( localize(5006, "Today")),
515
- [AgentSessionSection.Yesterday]: ( localize(5007, "Yesterday")),
516
- [AgentSessionSection.Week]: ( localize(5008, "Last Week")),
517
- [AgentSessionSection.Older]: ( localize(5009, "Older")),
518
- [AgentSessionSection.Archived]: ( localize(5010, "Archived")),
519
- [AgentSessionSection.More]: ( localize(5011, "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"))
520
629
  };
630
+ const DAY_THRESHOLD = 24 * 60 * 60 * 1000;
631
+ const WEEK_THRESHOLD = 7 * DAY_THRESHOLD;
521
632
  function groupAgentSessionsByDate(sessions) {
522
633
  const now = Date.now();
523
634
  const startOfToday = ( new Date(now)).setHours(0, 0, 0, 0);
524
635
  const startOfYesterday = startOfToday - DAY_THRESHOLD;
525
636
  const weekThreshold = now - WEEK_THRESHOLD;
526
- const inProgressSessions = [];
527
637
  const todaySessions = [];
528
638
  const yesterdaySessions = [];
529
639
  const weekSessions = [];
@@ -532,10 +642,8 @@ function groupAgentSessionsByDate(sessions) {
532
642
  for (const session of sessions) {
533
643
  if (session.isArchived()) {
534
644
  archivedSessions.push(session);
535
- } else if (isSessionInProgressStatus(session.status)) {
536
- inProgressSessions.push(session);
537
645
  } else {
538
- const sessionTime = session.timing.lastRequestEnded ?? session.timing.lastRequestStarted ?? session.timing.created;
646
+ const sessionTime = getAgentSessionTime(session.timing);
539
647
  if (sessionTime >= startOfToday) {
540
648
  todaySessions.push(session);
541
649
  } else if (sessionTime >= startOfYesterday) {
@@ -547,11 +655,7 @@ function groupAgentSessionsByDate(sessions) {
547
655
  }
548
656
  }
549
657
  }
550
- return (new Map([[AgentSessionSection.InProgress, {
551
- section: AgentSessionSection.InProgress,
552
- label: AgentSessionSectionLabels[AgentSessionSection.InProgress],
553
- sessions: inProgressSessions
554
- }], [AgentSessionSection.Today, {
658
+ return ( new Map([[AgentSessionSection.Today, {
555
659
  section: AgentSessionSection.Today,
556
660
  label: AgentSessionSectionLabels[AgentSessionSection.Today],
557
661
  sessions: todaySessions
@@ -569,10 +673,23 @@ function groupAgentSessionsByDate(sessions) {
569
673
  sessions: olderSessions
570
674
  }], [AgentSessionSection.Archived, {
571
675
  section: AgentSessionSection.Archived,
572
- label: ( localize(5012, "Archived ({0})", archivedSessions.length)),
676
+ label: AgentSessionSectionLabels[AgentSessionSection.Archived],
573
677
  sessions: archivedSessions
574
678
  }]]));
575
679
  }
680
+ function sessionDateFromNow(sessionTime) {
681
+ const now = Date.now();
682
+ const startOfToday = ( new Date(now)).setHours(0, 0, 0, 0);
683
+ const startOfYesterday = startOfToday - DAY_THRESHOLD;
684
+ const startOfTwoDaysAgo = startOfYesterday - DAY_THRESHOLD;
685
+ if (sessionTime < startOfToday && sessionTime >= startOfYesterday) {
686
+ return localize(5148, "1 day");
687
+ }
688
+ if (sessionTime < startOfYesterday && sessionTime >= startOfTwoDaysAgo) {
689
+ return localize(5149, "2 days");
690
+ }
691
+ return fromNow(sessionTime, false);
692
+ }
576
693
  class AgentSessionsIdentityProvider {
577
694
  getId(element) {
578
695
  if (isAgentSessionSection(element)) {
@@ -608,14 +725,6 @@ class AgentSessionsSorter {
608
725
  if (!aNeedsInput && bNeedsInput) {
609
726
  return 1;
610
727
  }
611
- const aInProgress = sessionA.status === ChatSessionStatus.InProgress;
612
- const bInProgress = sessionB.status === ChatSessionStatus.InProgress;
613
- if (aInProgress && !bInProgress) {
614
- return -1;
615
- }
616
- if (!aInProgress && bInProgress) {
617
- return 1;
618
- }
619
728
  const aArchived = sessionA.isArchived();
620
729
  const bArchived = sessionB.isArchived();
621
730
  if (!aArchived && bArchived) {
@@ -628,8 +737,8 @@ class AgentSessionsSorter {
628
737
  if (typeof override === "number") {
629
738
  return override;
630
739
  }
631
- const timeA = sessionA.timing.lastRequestEnded ?? sessionA.timing.lastRequestStarted ?? sessionA.timing.created;
632
- const timeB = sessionB.timing.lastRequestEnded ?? sessionB.timing.lastRequestStarted ?? sessionB.timing.created;
740
+ const timeA = getAgentSessionTime(sessionA.timing);
741
+ const timeB = getAgentSessionTime(sessionB.timing);
633
742
  return timeB - timeA;
634
743
  }
635
744
  }
@@ -665,7 +774,7 @@ let AgentSessionsDragAndDrop = class AgentSessionsDragAndDrop extends Disposable
665
774
  if (sessions.length === 1) {
666
775
  return sessions[0].label;
667
776
  }
668
- return localize(5013, "{0} agent sessions", sessions.length);
777
+ return localize(5150, "{0} agent sessions", sessions.length);
669
778
  }
670
779
  onDragOver(data, targetElement, targetIndex, targetSector, originalEvent) {
671
780
  return false;
@@ -674,4 +783,4 @@ let AgentSessionsDragAndDrop = class AgentSessionsDragAndDrop extends Disposable
674
783
  };
675
784
  AgentSessionsDragAndDrop = ( __decorate([( __param(0, IInstantiationService))], AgentSessionsDragAndDrop));
676
785
 
677
- export { AgentSessionRenderer, AgentSessionSectionLabels, AgentSessionSectionRenderer, AgentSessionsAccessibilityProvider, AgentSessionsCompressionDelegate, AgentSessionsDataSource, AgentSessionsDragAndDrop, AgentSessionsIdentityProvider, AgentSessionsKeyboardNavigationLabelProvider, AgentSessionsListDelegate, AgentSessionsSorter, groupAgentSessionsByDate, toStatusLabel };
786
+ export { AgentSessionRenderer, AgentSessionSectionLabels, AgentSessionSectionRenderer, AgentSessionsAccessibilityProvider, AgentSessionsCompressionDelegate, AgentSessionsDataSource, AgentSessionsDragAndDrop, AgentSessionsIdentityProvider, AgentSessionsKeyboardNavigationLabelProvider, AgentSessionsListDelegate, AgentSessionsSorter, groupAgentSessionsByDate, sessionDateFromNow, toStatusLabel };