@codingame/monaco-vscode-katex-common 25.1.2 → 26.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +23 -2
  3. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +64 -27
  4. package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.d.ts +3 -1
  5. package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.js +31 -28
  6. package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +2 -0
  7. package/vscode/src/vs/platform/actions/browser/buttonbar.js +71 -50
  8. package/vscode/src/vs/platform/editor/browser/editor.js +17 -7
  9. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +112 -129
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +10 -1
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +110 -85
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +5 -5
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +21 -6
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +308 -216
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +153 -148
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +27 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +247 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +71 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +347 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +44 -0
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +287 -0
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +20 -0
  23. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +89 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +188 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +677 -0
  26. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentSessionHoverWidget.css +98 -0
  27. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +263 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +34 -25
  29. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +19 -14
  30. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +762 -359
  31. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +22 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +188 -99
  33. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.d.ts +9 -3
  34. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +166 -113
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +12 -5
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +279 -213
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +46 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +533 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +28 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +382 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +101 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +509 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +130 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +276 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +24 -7
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +128 -52
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +153 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +1218 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/media/chatSessionPickerActionItem.css +14 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +39 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +193 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +2 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +93 -89
  54. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcome.js +5 -2
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +42 -47
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +58 -56
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +18 -14
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +17 -15
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +6 -2
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +132 -68
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +0 -2
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +68 -47
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +14 -13
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +4 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +36 -24
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +18 -0
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.js +32 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollections.d.ts +7 -2
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollections.js +15 -4
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.d.ts +1 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +22 -14
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.d.ts +0 -2
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +34 -27
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +198 -135
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.d.ts +2 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.js +38 -10
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +29 -27
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +0 -2
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +41 -36
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +0 -2
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +23 -18
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.js +13 -13
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +0 -3
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +20 -14
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +11 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +291 -152
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +2 -3
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +227 -162
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownDecorationsRenderer.js +68 -72
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +2 -4
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +76 -75
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +2 -5
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +96 -76
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +4 -1
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +74 -38
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +0 -2
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.js +11 -25
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +107 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +814 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +0 -2
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +34 -29
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +8 -10
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +236 -197
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +123 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +492 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +75 -47
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.d.ts +2 -4
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +31 -20
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.d.ts +0 -3
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +42 -36
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +55 -7
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +714 -148
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts +7 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +21 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts +2 -7
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +143 -153
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +14 -5
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +79 -61
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +10 -4
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +209 -77
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +9 -7
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +71 -54
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.d.ts +18 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +83 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +4 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +248 -190
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +1 -14
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +23 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPullRequestContent.css +5 -41
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +493 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +63 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +9 -1
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +121 -5
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +37 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +51 -45
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +46 -42
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +4 -2
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +99 -67
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +112 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +634 -0
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +49 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +132 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.js +15 -9
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +196 -149
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +17 -1
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +577 -193
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +119 -86
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +10 -2
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +165 -36
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationSubPart.d.ts +0 -2
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationSubPart.js +5 -8
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +5 -3
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +75 -65
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +30 -28
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +1 -5
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +102 -106
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +44 -20
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +19 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +67 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.d.ts +57 -0
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.js +69 -0
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +122 -82
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +39 -12
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +1110 -597
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +291 -0
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +485 -0
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatOptions.js +38 -28
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +9 -20
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +650 -689
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +21 -18
  172. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +102 -36
  173. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +1253 -790
  174. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.d.ts +0 -7
  175. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.js +11 -11
  176. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +34 -0
  177. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +55 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.d.ts +6 -2
  179. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.js +51 -35
  180. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +22 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +102 -0
  182. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +16 -4
  183. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +192 -44
  184. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +11 -12
  185. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +99 -66
  186. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +47 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +188 -0
  188. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.d.ts +20 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +115 -0
  190. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +129 -167
  191. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +16 -3
  192. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +37 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +143 -0
  194. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +56 -0
  195. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +206 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +152 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +67 -0
  198. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +22 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +170 -0
  200. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +1 -0
  201. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +80 -19
  202. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService.js +20 -28
  203. package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.d.ts +2 -1
  204. package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.js +22 -19
  205. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +15 -0
  206. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +122 -0
  207. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +19 -104
  208. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +316 -1040
  209. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +28 -0
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +162 -0
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +21 -0
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +98 -0
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +68 -0
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +416 -0
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +1 -6
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +194 -215
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +0 -1
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +74 -104
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +45 -91
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +22 -0
  221. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +98 -0
  222. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +5 -2
  223. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +96 -68
  224. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveCommon.d.ts +7 -0
  225. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveCommon.js +11 -0
  226. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.d.ts +20 -0
  227. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +150 -0
  228. package/vscode/src/vs/workbench/contrib/markdown/browser/markedKatexSupport.js +141 -147
  229. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.d.ts +64 -0
  230. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.js +200 -0
  231. package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.d.ts +548 -0
  232. package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.js +23 -0
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.d.ts +22 -0
  234. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +338 -0
  235. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.d.ts +18 -0
  236. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.js +58 -0
  237. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.d.ts +75 -0
  238. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +364 -0
  239. package/vscode/src/vs/workbench/contrib/replNotebook/browser/interactiveEditor.css +21 -0
  240. package/vscode/src/vs/workbench/contrib/replNotebook/browser/media/interactive.css +36 -0
  241. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.d.ts +110 -0
  242. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +692 -0
  243. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.d.ts +40 -0
  244. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +158 -0
  245. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.d.ts +80 -21
  246. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +440 -82
  247. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatInputRelatedFilesContrib.d.ts +0 -34
  248. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatInputRelatedFilesContrib.js +0 -139
  249. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +0 -10
  250. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +0 -1081
  251. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.d.ts +0 -199
  252. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +0 -482
  253. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +0 -28
  254. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +0 -37
  255. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +0 -94
  256. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +0 -495
  257. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.d.ts +0 -72
  258. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +0 -454
  259. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.d.ts +0 -13
  260. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.js +0 -66
  261. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +0 -41
  262. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +0 -372
  263. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +0 -4
  264. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +0 -58
  265. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.d.ts +0 -26
  266. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +0 -594
  267. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffCellEditorOptions.d.ts +0 -8
  268. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffCellEditorOptions.js +0 -55
  269. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.d.ts +0 -273
  270. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +0 -1746
  271. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.d.ts +0 -50
  272. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +0 -269
  273. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementViewModel.d.ts +0 -258
  274. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementViewModel.js +0 -806
  275. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffNestedCellViewModel.d.ts +0 -41
  276. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffNestedCellViewModel.js +0 -116
  277. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/editorHeightCalculator.d.ts +0 -17
  278. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/editorHeightCalculator.js +0 -62
  279. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/eventDispatcher.d.ts +0 -27
  280. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/eventDispatcher.js +0 -40
  281. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookCellDiffDecorator.d.ts +0 -23
  282. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookCellDiffDecorator.js +0 -295
  283. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookDeletedCellDecorator.d.ts +0 -51
  284. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookDeletedCellDecorator.js +0 -241
  285. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiff.d.ts +0 -24
  286. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiff.js +0 -146
  287. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiffWidget.d.ts +0 -28
  288. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiffWidget.js +0 -90
  289. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInsertedCellDecorator.d.ts +0 -10
  290. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInsertedCellDecorator.js +0 -41
  291. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalCellModelFactory.d.ts +0 -21
  292. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalCellModelFactory.js +0 -42
  293. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalModelRefFactory.d.ts +0 -25
  294. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalModelRefFactory.js +0 -77
  295. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiff.css +0 -469
  296. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.d.ts +0 -149
  297. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +0 -823
  298. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.d.ts +0 -180
  299. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +0 -29
  300. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.d.ts +0 -102
  301. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +0 -567
  302. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffOverviewRuler.d.ts +0 -30
  303. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffOverviewRuler.js +0 -189
  304. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.d.ts +0 -75
  305. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.js +0 -439
  306. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor.d.ts +0 -57
  307. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor.js +0 -263
  308. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditorInput.d.ts +0 -22
  309. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditorInput.js +0 -48
  310. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/unchangedEditorRegions.d.ts +0 -13
  311. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/unchangedEditorRegions.js +0 -39
  312. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookMetadataTextModel.d.ts +0 -19
  313. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookMetadataTextModel.js +0 -89
  314. package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiff.d.ts +0 -26
  315. package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiff.js +0 -92
  316. package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiffEditorInput.d.ts +0 -33
  317. package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiffEditorInput.js +0 -108
@@ -0,0 +1,677 @@
1
+
2
+ import { registerCss } from '@codingame/monaco-vscode-api/css';
3
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
+ import * as agentsessionsviewer from './media/agentsessionsviewer.css';
5
+ import { h } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
+ import { NotSelectableGroupId } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/list/list';
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';
10
+ import { IconLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabel';
11
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
12
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
13
+ import { getDurationString, fromNow } from '@codingame/monaco-vscode-api/vscode/vs/base/common/date';
14
+ import { createMatches } from '@codingame/monaco-vscode-api/vscode/vs/base/common/filters';
15
+ import { IMarkdownRendererService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service';
16
+ import { allowedChatMarkdownHtmlTags } from '../widget/chatContentMarkdownRenderer.js';
17
+ import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
18
+ import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
19
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
20
+ import { fillEditorsDragData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/dnd';
21
+ import { HoverStyle } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hover';
22
+ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
23
+ import { IntervalTimer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
24
+ import { MenuWorkbenchToolBar } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/toolbar';
25
+ import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
26
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
27
+ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
28
+ import { ServiceCollection } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/serviceCollection';
29
+ import { renderAsPlaintext } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
30
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
31
+ import { AgentSessionHoverWidget } from './agentSessionHoverWidget.js';
32
+ import { AgentSessionProviders } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
33
+ import { AgentSessionsGrouping } from './agentSessionsFilter.js';
34
+ import { isSessionInProgressStatus, ChatSessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
35
+
36
+ var AgentSessionRenderer_1, AgentSessionSectionRenderer_1;
37
+ registerCss(agentsessionsviewer);
38
+ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
39
+ static {
40
+ AgentSessionRenderer_1 = this;
41
+ }
42
+ static {
43
+ this.TEMPLATE_ID = "agent-session";
44
+ }
45
+ constructor(
46
+ options,
47
+ markdownRendererService,
48
+ productService,
49
+ hoverService,
50
+ instantiationService,
51
+ contextKeyService
52
+ ) {
53
+ super();
54
+ this.options = options;
55
+ this.markdownRendererService = markdownRendererService;
56
+ this.productService = productService;
57
+ this.hoverService = hoverService;
58
+ this.instantiationService = instantiationService;
59
+ this.contextKeyService = contextKeyService;
60
+ this.templateId = AgentSessionRenderer_1.TEMPLATE_ID;
61
+ this.sessionHover = this._register(( new MutableDisposable()));
62
+ }
63
+ renderTemplate(container) {
64
+ const disposables = ( new DisposableStore());
65
+ const elementDisposable = disposables.add(( new DisposableStore()));
66
+ const elements = h("div.agent-session-item@item", [
67
+ h("div.agent-session-icon-col", [h("div.agent-session-icon@icon")]),
68
+ h("div.agent-session-main-col", [h("div.agent-session-title-row", [
69
+ h("div.agent-session-title@title"),
70
+ h("div.agent-session-title-toolbar@titleToolbar")
71
+ ]), h(
72
+ "div.agent-session-details-row",
73
+ [h("div.agent-session-diff-container@diffContainer", [
74
+ h("span.agent-session-diff-added@addedSpan"),
75
+ 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")
79
+ ])]
80
+ )])
81
+ ]);
82
+ const contextKeyService = disposables.add(this.contextKeyService.createScoped(elements.item));
83
+ const scopedInstantiationService = disposables.add(this.instantiationService.createChild(( new ServiceCollection([IContextKeyService, contextKeyService]))));
84
+ const titleToolbar = disposables.add(scopedInstantiationService.createInstance(
85
+ MenuWorkbenchToolBar,
86
+ elements.titleToolbar,
87
+ MenuId.AgentSessionItemToolbar,
88
+ {
89
+ menuOptions: {
90
+ shouldForwardArgs: true
91
+ }
92
+ }
93
+ ));
94
+ container.appendChild(elements.item);
95
+ return {
96
+ element: elements.item,
97
+ icon: elements.icon,
98
+ title: disposables.add(( new IconLabel(elements.title, {
99
+ supportHighlights: true,
100
+ supportIcons: true
101
+ }))),
102
+ titleToolbar,
103
+ diffContainer: elements.diffContainer,
104
+ diffAddedSpan: elements.addedSpan,
105
+ diffRemovedSpan: elements.removedSpan,
106
+ badge: elements.badge,
107
+ description: elements.description,
108
+ statusContainer: elements.statusContainer,
109
+ statusProviderIcon: elements.statusProviderIcon,
110
+ statusTime: elements.statusTime,
111
+ contextKeyService,
112
+ elementDisposable,
113
+ disposables
114
+ };
115
+ }
116
+ renderElement(session, index, template, details) {
117
+ template.elementDisposable.clear();
118
+ template.diffAddedSpan.textContent = "";
119
+ template.diffRemovedSpan.textContent = "";
120
+ template.badge.textContent = "";
121
+ template.description.textContent = "";
122
+ template.element.classList.toggle("archived", session.element.isArchived());
123
+ template.icon.className = `agent-session-icon ${ThemeIcon.asClassName(this.getIcon(session.element))}`;
124
+ const markdownTitle = ( new MarkdownString(session.element.label));
125
+ template.title.setLabel(renderAsPlaintext(markdownTitle), undefined, {
126
+ matches: createMatches(session.filterData)
127
+ });
128
+ ChatContextKeys.isArchivedAgentSession.bindTo(template.contextKeyService).set(session.element.isArchived());
129
+ ChatContextKeys.isReadAgentSession.bindTo(template.contextKeyService).set(session.element.isRead());
130
+ ChatContextKeys.agentSessionType.bindTo(template.contextKeyService).set(session.element.providerType);
131
+ template.titleToolbar.context = session.element;
132
+ let hasDiff = false;
133
+ const {
134
+ changes: diff
135
+ } = session.element;
136
+ if (!isSessionInProgressStatus(session.element.status) && diff && hasValidDiff(diff)) {
137
+ if (this.renderDiff(session, template)) {
138
+ hasDiff = true;
139
+ }
140
+ }
141
+ template.diffContainer.classList.toggle("has-diff", hasDiff);
142
+ let hasAgentSessionChanges = false;
143
+ if (session.element.providerType === AgentSessionProviders.Background || session.element.providerType === AgentSessionProviders.Cloud) {
144
+ hasAgentSessionChanges = Array.isArray(diff) && diff.length > 0;
145
+ } else {
146
+ hasAgentSessionChanges = hasDiff;
147
+ }
148
+ ChatContextKeys.hasAgentSessionChanges.bindTo(template.contextKeyService).set(hasAgentSessionChanges);
149
+ let hasBadge = false;
150
+ if (!isSessionInProgressStatus(session.element.status)) {
151
+ hasBadge = this.renderBadge(session, template);
152
+ }
153
+ template.badge.classList.toggle("has-badge", hasBadge);
154
+ if (!hasDiff) {
155
+ this.renderDescription(session, template, hasBadge);
156
+ }
157
+ this.renderStatus(session, template);
158
+ this.renderHover(session, template);
159
+ }
160
+ renderBadge(session, template) {
161
+ const badge = session.element.badge;
162
+ if (badge) {
163
+ this.renderMarkdownOrText(badge, template.badge, template.elementDisposable);
164
+ }
165
+ return !!badge;
166
+ }
167
+ renderMarkdownOrText(content, container, disposables) {
168
+ if (typeof content === "string") {
169
+ container.textContent = content;
170
+ } else {
171
+ disposables.add(this.markdownRendererService.render(content, {
172
+ sanitizerConfig: {
173
+ replaceWithPlaintext: true,
174
+ allowedTags: {
175
+ override: allowedChatMarkdownHtmlTags
176
+ },
177
+ allowedLinkSchemes: {
178
+ augment: [this.productService.urlProtocol]
179
+ }
180
+ }
181
+ }, container));
182
+ }
183
+ }
184
+ renderDiff(session, template) {
185
+ const diff = getAgentChangesSummary(session.element.changes);
186
+ if (!diff) {
187
+ return false;
188
+ }
189
+ if (diff.insertions >= 0 ) {
190
+ template.diffAddedSpan.textContent = `+${diff.insertions}`;
191
+ }
192
+ if (diff.deletions >= 0 ) {
193
+ template.diffRemovedSpan.textContent = `-${diff.deletions}`;
194
+ }
195
+ return true;
196
+ }
197
+ getIcon(session) {
198
+ if (session.status === ChatSessionStatus.InProgress) {
199
+ return Codicon.sessionInProgress;
200
+ }
201
+ if (session.status === ChatSessionStatus.NeedsInput) {
202
+ return Codicon.report;
203
+ }
204
+ if (session.status === ChatSessionStatus.Failed) {
205
+ return Codicon.error;
206
+ }
207
+ if (!session.isRead() && !session.isArchived()) {
208
+ return Codicon.circleFilled;
209
+ }
210
+ return Codicon.circleSmallFilled;
211
+ }
212
+ renderDescription(session, template, hasBadge) {
213
+ const description = session.element.description;
214
+ if (description) {
215
+ this.renderMarkdownOrText(description, template.description, template.elementDisposable);
216
+ }
217
+ else {
218
+ if (session.element.status === ChatSessionStatus.InProgress) {
219
+ template.description.textContent = ( localize(4974, "Working..."));
220
+ } else if (session.element.status === ChatSessionStatus.NeedsInput) {
221
+ template.description.textContent = ( localize(4975, "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(4976, "Failed after {0}.", duration)) : ( localize(4977, "Completed in {0}.", duration));
232
+ } else {
233
+ template.description.textContent = session.element.status === ChatSessionStatus.Failed ? ( localize(4978, "Failed")) : ( localize(4979, "Completed"));
234
+ }
235
+ }
236
+ }
237
+ toDuration(startTime, endTime, useFullTimeWords, disallowNow) {
238
+ const elapsed = Math.max(Math.round((endTime - startTime) / 1000) * 1000, 1000 );
239
+ if (!disallowNow && elapsed < 60000) {
240
+ return localize(4980, "now");
241
+ }
242
+ return getDurationString(elapsed, useFullTimeWords);
243
+ }
244
+ renderStatus(session, template) {
245
+ const getTimeLabel = session => {
246
+ let timeLabel;
247
+ if (session.status === ChatSessionStatus.InProgress && session.timing.lastRequestStarted) {
248
+ timeLabel = this.toDuration(session.timing.lastRequestStarted, Date.now(), false, false);
249
+ }
250
+ if (!timeLabel) {
251
+ const date = session.timing.lastRequestEnded ?? session.timing.lastRequestStarted ?? session.timing.created;
252
+ const seconds = Math.round((( new Date()).getTime() - date) / 1000);
253
+ if (seconds < 60) {
254
+ timeLabel = ( localize(4980, "now"));
255
+ } else {
256
+ timeLabel = fromNow(date, true);
257
+ }
258
+ }
259
+ return timeLabel;
260
+ };
261
+ template.statusProviderIcon.className = `agent-session-status-provider-icon ${ThemeIcon.asClassName(session.element.icon)}`;
262
+ template.statusTime.textContent = getTimeLabel(session.element);
263
+ const timer = template.elementDisposable.add(( new IntervalTimer()));
264
+ timer.cancelAndSet(
265
+ () => template.statusTime.textContent = getTimeLabel(session.element),
266
+ session.element.status === ChatSessionStatus.InProgress ? 1000 : 60 * 1000
267
+ );
268
+ }
269
+ renderHover(session, template) {
270
+ if (!isSessionInProgressStatus(session.element.status) && session.element.isRead()) {
271
+ return;
272
+ }
273
+ const reducedDelay = session.element.status === ChatSessionStatus.NeedsInput;
274
+ template.elementDisposable.add(
275
+ this.hoverService.setupDelayedHover(template.element, () => this.buildHoverContent(session.element), {
276
+ groupId: "agent.sessions",
277
+ reducedDelay
278
+ })
279
+ );
280
+ }
281
+ buildHoverContent(session) {
282
+ if (this.sessionHover.value?.session.resource.toString() !== ( session.resource.toString())) {
283
+ this.sessionHover.value = this.instantiationService.createInstance(AgentSessionHoverWidget, session);
284
+ }
285
+ const widget = this.sessionHover.value;
286
+ return {
287
+ id: `agent.session.hover.${( session.resource.toString())}`,
288
+ content: widget.domNode,
289
+ style: HoverStyle.Pointer,
290
+ onDidShow: () => widget.onRendered(),
291
+ position: {
292
+ hoverPosition: this.options.getHoverPosition()
293
+ }
294
+ };
295
+ }
296
+ renderCompressedElements(node, index, templateData, details) {
297
+ throw ( new Error("Should never happen since session is incompressible"));
298
+ }
299
+ disposeElement(element, index, template, details) {
300
+ template.elementDisposable.clear();
301
+ }
302
+ disposeTemplate(templateData) {
303
+ templateData.disposables.dispose();
304
+ }
305
+ };
306
+ AgentSessionRenderer = AgentSessionRenderer_1 = ( __decorate([( __param(1, IMarkdownRendererService)), ( __param(2, IProductService)), ( __param(3, IHoverService)), ( __param(4, IInstantiationService)), ( __param(5, IContextKeyService))], AgentSessionRenderer));
307
+ function toStatusLabel(status) {
308
+ let statusLabel;
309
+ switch (status) {
310
+ case ChatSessionStatus.NeedsInput:
311
+ statusLabel = ( localize(4981, "Needs Input"));
312
+ break;
313
+ case ChatSessionStatus.InProgress:
314
+ statusLabel = ( localize(4982, "In Progress"));
315
+ break;
316
+ case ChatSessionStatus.Failed:
317
+ statusLabel = ( localize(4983, "Failed"));
318
+ break;
319
+ default:
320
+ statusLabel = ( localize(4984, "Completed"));
321
+ }
322
+ return statusLabel;
323
+ }
324
+ let AgentSessionSectionRenderer = class AgentSessionSectionRenderer {
325
+ static {
326
+ AgentSessionSectionRenderer_1 = this;
327
+ }
328
+ static {
329
+ this.TEMPLATE_ID = "agent-session-section";
330
+ }
331
+ constructor(instantiationService, contextKeyService) {
332
+ this.instantiationService = instantiationService;
333
+ this.contextKeyService = contextKeyService;
334
+ this.templateId = AgentSessionSectionRenderer_1.TEMPLATE_ID;
335
+ }
336
+ renderTemplate(container) {
337
+ const disposables = ( new DisposableStore());
338
+ const elements = h("div.agent-session-section@container", [
339
+ h("span.agent-session-section-label@label"),
340
+ h("div.agent-session-section-toolbar@toolbar")
341
+ ]);
342
+ const contextKeyService = disposables.add(this.contextKeyService.createScoped(elements.container));
343
+ const scopedInstantiationService = disposables.add(this.instantiationService.createChild(( new ServiceCollection([IContextKeyService, contextKeyService]))));
344
+ const toolbar = disposables.add(scopedInstantiationService.createInstance(
345
+ MenuWorkbenchToolBar,
346
+ elements.toolbar,
347
+ MenuId.AgentSessionSectionToolbar,
348
+ {
349
+ menuOptions: {
350
+ shouldForwardArgs: true
351
+ }
352
+ }
353
+ ));
354
+ container.appendChild(elements.container);
355
+ return {
356
+ container: elements.container,
357
+ label: elements.label,
358
+ toolbar,
359
+ contextKeyService,
360
+ disposables
361
+ };
362
+ }
363
+ renderElement(element, index, template, details) {
364
+ template.label.textContent = element.element.label;
365
+ ChatContextKeys.agentSessionSection.bindTo(template.contextKeyService).set(element.element.section);
366
+ template.toolbar.context = element.element;
367
+ }
368
+ renderCompressedElements(node, index, templateData, details) {
369
+ throw ( new Error("Should never happen since section header is incompressible"));
370
+ }
371
+ disposeElement(element, index, template, details) {}
372
+ disposeTemplate(templateData) {
373
+ templateData.disposables.dispose();
374
+ }
375
+ };
376
+ AgentSessionSectionRenderer = AgentSessionSectionRenderer_1 = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IContextKeyService))], AgentSessionSectionRenderer));
377
+ class AgentSessionsListDelegate {
378
+ static {
379
+ this.ITEM_HEIGHT = 52;
380
+ }
381
+ static {
382
+ this.SECTION_HEIGHT = 26;
383
+ }
384
+ getHeight(element) {
385
+ if (isAgentSessionSection(element)) {
386
+ return AgentSessionsListDelegate.SECTION_HEIGHT;
387
+ }
388
+ return AgentSessionsListDelegate.ITEM_HEIGHT;
389
+ }
390
+ getTemplateId(element) {
391
+ if (isAgentSessionSection(element)) {
392
+ return AgentSessionSectionRenderer.TEMPLATE_ID;
393
+ }
394
+ return AgentSessionRenderer.TEMPLATE_ID;
395
+ }
396
+ }
397
+ class AgentSessionsAccessibilityProvider {
398
+ getWidgetRole() {
399
+ return "list";
400
+ }
401
+ getRole(element) {
402
+ return "listitem";
403
+ }
404
+ getWidgetAriaLabel() {
405
+ return localize(4985, "Agent Sessions");
406
+ }
407
+ getAriaLabel(element) {
408
+ if (isAgentSessionSection(element)) {
409
+ return localize(4986, "{0} sessions section", element.label);
410
+ }
411
+ return localize(
412
+ 4987,
413
+ "{0} session {1} ({2}), created {3}",
414
+ element.providerLabel,
415
+ element.label,
416
+ toStatusLabel(element.status),
417
+ ( new Date(element.timing.created)).toLocaleString()
418
+ );
419
+ }
420
+ }
421
+ class AgentSessionsDataSource {
422
+ static {
423
+ this.CAPPED_SESSIONS_LIMIT = 3;
424
+ }
425
+ constructor(filter, sorter) {
426
+ this.filter = filter;
427
+ this.sorter = sorter;
428
+ }
429
+ hasChildren(element) {
430
+ if (isAgentSessionsModel(element)) {
431
+ return true;
432
+ }
433
+ else if (isAgentSessionSection(element)) {
434
+ return element.sessions.length > 0;
435
+ }
436
+ else {
437
+ return false;
438
+ }
439
+ }
440
+ getChildren(element) {
441
+ if (isAgentSessionsModel(element)) {
442
+ let filteredSessions = element.sessions.filter(session => !this.filter?.exclude(session));
443
+ const limitResultsCount = this.filter?.limitResults?.();
444
+ if (!this.filter?.groupResults?.() || typeof limitResultsCount === "number") {
445
+ filteredSessions.sort(this.sorter.compare.bind(this.sorter));
446
+ }
447
+ if (typeof limitResultsCount === "number") {
448
+ filteredSessions = filteredSessions.slice(0, limitResultsCount);
449
+ }
450
+ this.filter?.notifyResults?.(filteredSessions.length);
451
+ if (this.filter?.groupResults?.()) {
452
+ return this.groupSessionsIntoSections(filteredSessions);
453
+ }
454
+ return filteredSessions;
455
+ }
456
+ else if (isAgentSessionSection(element)) {
457
+ return element.sessions;
458
+ }
459
+ else {
460
+ return [];
461
+ }
462
+ }
463
+ groupSessionsIntoSections(sessions) {
464
+ const sortedSessions = sessions.sort(this.sorter.compare.bind(this.sorter));
465
+ if (this.filter?.groupResults?.() === AgentSessionsGrouping.Capped) {
466
+ return this.groupSessionsCapped(sortedSessions);
467
+ } else {
468
+ return this.groupSessionsByDate(sortedSessions);
469
+ }
470
+ }
471
+ groupSessionsCapped(sortedSessions) {
472
+ const result = [];
473
+ const firstArchivedIndex = sortedSessions.findIndex(session => session.isArchived());
474
+ const nonArchivedCount = firstArchivedIndex === -1 ? sortedSessions.length : firstArchivedIndex;
475
+ const topSessions = sortedSessions.slice(
476
+ 0,
477
+ Math.min(AgentSessionsDataSource.CAPPED_SESSIONS_LIMIT, nonArchivedCount)
478
+ );
479
+ const othersSessions = sortedSessions.slice(topSessions.length);
480
+ result.push(...topSessions);
481
+ if (othersSessions.length > 0) {
482
+ result.push({
483
+ section: AgentSessionSection.More,
484
+ label: ( localize(4988, "More ({0})", othersSessions.length)),
485
+ sessions: othersSessions
486
+ });
487
+ }
488
+ return result;
489
+ }
490
+ groupSessionsByDate(sortedSessions) {
491
+ const result = [];
492
+ const groupedSessions = groupAgentSessionsByDate(sortedSessions);
493
+ for (const {
494
+ sessions,
495
+ section,
496
+ label
497
+ } of ( groupedSessions.values())) {
498
+ if (sessions.length === 0) {
499
+ continue;
500
+ }
501
+ result.push({
502
+ section,
503
+ label,
504
+ sessions
505
+ });
506
+ }
507
+ return result;
508
+ }
509
+ }
510
+ const DAY_THRESHOLD = 24 * 60 * 60 * 1000;
511
+ const WEEK_THRESHOLD = 7 * DAY_THRESHOLD;
512
+ const AgentSessionSectionLabels = {
513
+ [AgentSessionSection.InProgress]: ( localize(4989, "In Progress")),
514
+ [AgentSessionSection.Today]: ( localize(4990, "Today")),
515
+ [AgentSessionSection.Yesterday]: ( localize(4991, "Yesterday")),
516
+ [AgentSessionSection.Week]: ( localize(4992, "Last Week")),
517
+ [AgentSessionSection.Older]: ( localize(4993, "Older")),
518
+ [AgentSessionSection.Archived]: ( localize(4994, "Archived")),
519
+ [AgentSessionSection.More]: ( localize(4995, "More"))
520
+ };
521
+ function groupAgentSessionsByDate(sessions) {
522
+ const now = Date.now();
523
+ const startOfToday = ( new Date(now)).setHours(0, 0, 0, 0);
524
+ const startOfYesterday = startOfToday - DAY_THRESHOLD;
525
+ const weekThreshold = now - WEEK_THRESHOLD;
526
+ const inProgressSessions = [];
527
+ const todaySessions = [];
528
+ const yesterdaySessions = [];
529
+ const weekSessions = [];
530
+ const olderSessions = [];
531
+ const archivedSessions = [];
532
+ for (const session of sessions) {
533
+ if (session.isArchived()) {
534
+ archivedSessions.push(session);
535
+ } else if (isSessionInProgressStatus(session.status)) {
536
+ inProgressSessions.push(session);
537
+ } else {
538
+ const sessionTime = session.timing.lastRequestEnded ?? session.timing.lastRequestStarted ?? session.timing.created;
539
+ if (sessionTime >= startOfToday) {
540
+ todaySessions.push(session);
541
+ } else if (sessionTime >= startOfYesterday) {
542
+ yesterdaySessions.push(session);
543
+ } else if (sessionTime >= weekThreshold) {
544
+ weekSessions.push(session);
545
+ } else {
546
+ olderSessions.push(session);
547
+ }
548
+ }
549
+ }
550
+ return (new Map([[AgentSessionSection.InProgress, {
551
+ section: AgentSessionSection.InProgress,
552
+ label: AgentSessionSectionLabels[AgentSessionSection.InProgress],
553
+ sessions: inProgressSessions
554
+ }], [AgentSessionSection.Today, {
555
+ section: AgentSessionSection.Today,
556
+ label: AgentSessionSectionLabels[AgentSessionSection.Today],
557
+ sessions: todaySessions
558
+ }], [AgentSessionSection.Yesterday, {
559
+ section: AgentSessionSection.Yesterday,
560
+ label: AgentSessionSectionLabels[AgentSessionSection.Yesterday],
561
+ sessions: yesterdaySessions
562
+ }], [AgentSessionSection.Week, {
563
+ section: AgentSessionSection.Week,
564
+ label: AgentSessionSectionLabels[AgentSessionSection.Week],
565
+ sessions: weekSessions
566
+ }], [AgentSessionSection.Older, {
567
+ section: AgentSessionSection.Older,
568
+ label: AgentSessionSectionLabels[AgentSessionSection.Older],
569
+ sessions: olderSessions
570
+ }], [AgentSessionSection.Archived, {
571
+ section: AgentSessionSection.Archived,
572
+ label: ( localize(4996, "Archived ({0})", archivedSessions.length)),
573
+ sessions: archivedSessions
574
+ }]]));
575
+ }
576
+ class AgentSessionsIdentityProvider {
577
+ getId(element) {
578
+ if (isAgentSessionSection(element)) {
579
+ return `section-${element.section}`;
580
+ }
581
+ if (isAgentSession(element)) {
582
+ return ( element.resource.toString());
583
+ }
584
+ return "agent-sessions-id";
585
+ }
586
+ getGroupId(element) {
587
+ if (isAgentSessionSection(element) || isAgentSessionsModel(element)) {
588
+ return NotSelectableGroupId;
589
+ }
590
+ return 1;
591
+ }
592
+ }
593
+ class AgentSessionsCompressionDelegate {
594
+ isIncompressible(element) {
595
+ return true;
596
+ }
597
+ }
598
+ class AgentSessionsSorter {
599
+ constructor(options) {
600
+ this.options = options;
601
+ }
602
+ compare(sessionA, sessionB) {
603
+ const aNeedsInput = sessionA.status === ChatSessionStatus.NeedsInput;
604
+ const bNeedsInput = sessionB.status === ChatSessionStatus.NeedsInput;
605
+ if (aNeedsInput && !bNeedsInput) {
606
+ return -1;
607
+ }
608
+ if (!aNeedsInput && bNeedsInput) {
609
+ return 1;
610
+ }
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
+ const aArchived = sessionA.isArchived();
620
+ const bArchived = sessionB.isArchived();
621
+ if (!aArchived && bArchived) {
622
+ return -1;
623
+ }
624
+ if (aArchived && !bArchived) {
625
+ return 1;
626
+ }
627
+ const override = this.options?.overrideCompare?.(sessionA, sessionB);
628
+ if (typeof override === "number") {
629
+ return override;
630
+ }
631
+ const timeA = sessionA.timing.lastRequestEnded ?? sessionA.timing.lastRequestStarted ?? sessionA.timing.created;
632
+ const timeB = sessionB.timing.lastRequestEnded ?? sessionB.timing.lastRequestStarted ?? sessionB.timing.created;
633
+ return timeB - timeA;
634
+ }
635
+ }
636
+ class AgentSessionsKeyboardNavigationLabelProvider {
637
+ getKeyboardNavigationLabel(element) {
638
+ if (isAgentSessionSection(element)) {
639
+ return element.label;
640
+ }
641
+ return element.label;
642
+ }
643
+ getCompressedNodeKeyboardNavigationLabel(elements) {
644
+ return undefined;
645
+ }
646
+ }
647
+ let AgentSessionsDragAndDrop = class AgentSessionsDragAndDrop extends Disposable {
648
+ constructor(instantiationService) {
649
+ super();
650
+ this.instantiationService = instantiationService;
651
+ }
652
+ onDragStart(data, originalEvent) {
653
+ const elements = data.getData().filter(e => isAgentSession(e));
654
+ const uris = coalesce(( elements.map(e => e.resource)));
655
+ this.instantiationService.invokeFunction(accessor => fillEditorsDragData(accessor, uris, originalEvent));
656
+ }
657
+ getDragURI(element) {
658
+ if (isAgentSessionSection(element)) {
659
+ return null;
660
+ }
661
+ return ( element.resource.toString());
662
+ }
663
+ getDragLabel(elements, originalEvent) {
664
+ const sessions = elements.filter(e => isAgentSession(e));
665
+ if (sessions.length === 1) {
666
+ return sessions[0].label;
667
+ }
668
+ return localize(4997, "{0} agent sessions", sessions.length);
669
+ }
670
+ onDragOver(data, targetElement, targetIndex, targetSector, originalEvent) {
671
+ return false;
672
+ }
673
+ drop(data, targetElement, targetIndex, targetSector, originalEvent) {}
674
+ };
675
+ AgentSessionsDragAndDrop = ( __decorate([( __param(0, IInstantiationService))], AgentSessionsDragAndDrop));
676
+
677
+ export { AgentSessionRenderer, AgentSessionSectionLabels, AgentSessionSectionRenderer, AgentSessionsAccessibilityProvider, AgentSessionsCompressionDelegate, AgentSessionsDataSource, AgentSessionsDragAndDrop, AgentSessionsIdentityProvider, AgentSessionsKeyboardNavigationLabelProvider, AgentSessionsListDelegate, AgentSessionsSorter, groupAgentSessionsByDate, toStatusLabel };