@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
@@ -2,7 +2,7 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { sep } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
4
4
  import { raceCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
5
- import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
5
+ import { CancellationToken, CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
6
6
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
7
7
  import { Emitter, AsyncEmitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
8
8
  import { Disposable, DisposableMap, DisposableStore, combinedDisposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
@@ -39,13 +39,13 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/in
39
39
  import { renderAsPlaintext } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
40
40
  import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
41
41
  import { ChatViewId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
42
- import { AgentSessionProviders, backgroundAgentDisplayName, getAgentSessionProviderName } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
43
- import { BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
42
+ import { AgentSessionProviders, getAgentSessionProviderName } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
43
+ import { isCancellationError, BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
44
44
  import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
45
45
  import { LocalChatSessionUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
46
46
  import { assertNever } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
47
47
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
48
- import { Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
48
+ import { Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
49
49
  import { autorun, autorunIterableDelta } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
50
50
  import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
51
51
  import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
@@ -53,39 +53,39 @@ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/v
53
53
  const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
54
54
  extensionPoint: "chatSessions",
55
55
  jsonSchema: {
56
- description: ( localize(5508, "Contributes chat session integrations to the chat widget.")),
56
+ description: ( localize(6010, "Contributes chat session integrations to the chat widget.")),
57
57
  type: "array",
58
58
  items: {
59
59
  type: "object",
60
60
  additionalProperties: false,
61
61
  properties: {
62
62
  type: {
63
- description: ( localize(5509, "Unique identifier for the type of chat session.")),
63
+ description: ( localize(6011, "Unique identifier for the type of chat session.")),
64
64
  type: "string"
65
65
  },
66
66
  name: {
67
67
  description: ( localize(
68
- 5510,
68
+ 6012,
69
69
  "Name of the dynamically registered chat participant (eg: @agent). Must not contain whitespace."
70
70
  )),
71
71
  type: "string",
72
72
  pattern: "^[\\w-]+$"
73
73
  },
74
74
  displayName: {
75
- description: ( localize(5511, "A longer name for this item which is used for display in menus.")),
75
+ description: ( localize(6013, "A longer name for this item which is used for display in menus.")),
76
76
  type: "string"
77
77
  },
78
78
  description: {
79
- description: ( localize(5512, "Description of the chat session for use in menus and tooltips.")),
79
+ description: ( localize(6014, "Description of the chat session for use in menus and tooltips.")),
80
80
  type: "string"
81
81
  },
82
82
  when: {
83
- description: ( localize(5513, "Condition which must be true to show this item.")),
83
+ description: ( localize(6015, "Condition which must be true to show this item.")),
84
84
  type: "string"
85
85
  },
86
86
  icon: {
87
87
  description: ( localize(
88
- 5514,
88
+ 6016,
89
89
  "Icon identifier (codicon ID) for the chat session editor tab. For example, \"$(github)\" or \"$(cloud)\"."
90
90
  )),
91
91
  anyOf: [{
@@ -94,22 +94,22 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
94
94
  type: "object",
95
95
  properties: {
96
96
  light: {
97
- description: ( localize(5515, "Icon path when a light theme is used")),
97
+ description: ( localize(6017, "Icon path when a light theme is used")),
98
98
  type: "string"
99
99
  },
100
100
  dark: {
101
- description: ( localize(5516, "Icon path when a dark theme is used")),
101
+ description: ( localize(6018, "Icon path when a dark theme is used")),
102
102
  type: "string"
103
103
  }
104
104
  }
105
105
  }]
106
106
  },
107
107
  order: {
108
- description: ( localize(5517, "Order in which this item should be displayed.")),
108
+ description: ( localize(6019, "Order in which this item should be displayed.")),
109
109
  type: "integer"
110
110
  },
111
111
  alternativeIds: {
112
- description: ( localize(5518, "Alternative identifiers for backward compatibility.")),
112
+ description: ( localize(6020, "Alternative identifiers for backward compatibility.")),
113
113
  type: "array",
114
114
  items: {
115
115
  type: "string"
@@ -117,87 +117,95 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
117
117
  },
118
118
  welcomeTitle: {
119
119
  description: ( localize(
120
- 5519,
120
+ 6021,
121
121
  "Title text to display in the chat welcome view for this session type."
122
122
  )),
123
123
  type: "string"
124
124
  },
125
125
  welcomeMessage: {
126
126
  description: ( localize(
127
- 5520,
127
+ 6022,
128
128
  "Message text (supports markdown) to display in the chat welcome view for this session type."
129
129
  )),
130
130
  type: "string"
131
131
  },
132
132
  welcomeTips: {
133
133
  description: ( localize(
134
- 5521,
134
+ 6023,
135
135
  "Tips text (supports markdown and theme icons) to display in the chat welcome view for this session type."
136
136
  )),
137
137
  type: "string"
138
138
  },
139
139
  inputPlaceholder: {
140
140
  description: ( localize(
141
- 5522,
141
+ 6024,
142
142
  "Placeholder text to display in the chat input box for this session type."
143
143
  )),
144
144
  type: "string"
145
145
  },
146
146
  capabilities: {
147
- description: ( localize(5523, "Optional capabilities for this chat session.")),
147
+ description: ( localize(6025, "Optional capabilities for this chat session.")),
148
148
  type: "object",
149
149
  additionalProperties: false,
150
150
  properties: {
151
151
  supportsFileAttachments: {
152
152
  description: ( localize(
153
- 5524,
153
+ 6026,
154
154
  "Whether this chat session supports attaching files or file references."
155
155
  )),
156
156
  type: "boolean"
157
157
  },
158
158
  supportsToolAttachments: {
159
159
  description: ( localize(
160
- 5525,
160
+ 6027,
161
161
  "Whether this chat session supports attaching tools or tool references."
162
162
  )),
163
163
  type: "boolean"
164
164
  },
165
165
  supportsMCPAttachments: {
166
- description: ( localize(5526, "Whether this chat session supports attaching MCP resources.")),
166
+ description: ( localize(6028, "Whether this chat session supports attaching MCP resources.")),
167
167
  type: "boolean"
168
168
  },
169
169
  supportsImageAttachments: {
170
- description: ( localize(5527, "Whether this chat session supports attaching images.")),
170
+ description: ( localize(6029, "Whether this chat session supports attaching images.")),
171
171
  type: "boolean"
172
172
  },
173
173
  supportsSearchResultAttachments: {
174
- description: ( localize(5528, "Whether this chat session supports attaching search results.")),
174
+ description: ( localize(6030, "Whether this chat session supports attaching search results.")),
175
175
  type: "boolean"
176
176
  },
177
177
  supportsInstructionAttachments: {
178
- description: ( localize(5529, "Whether this chat session supports attaching instructions.")),
178
+ description: ( localize(6031, "Whether this chat session supports attaching instructions.")),
179
179
  type: "boolean"
180
180
  },
181
181
  supportsSourceControlAttachments: {
182
182
  description: ( localize(
183
- 5530,
183
+ 6032,
184
184
  "Whether this chat session supports attaching source control changes."
185
185
  )),
186
186
  type: "boolean"
187
187
  },
188
188
  supportsProblemAttachments: {
189
- description: ( localize(5531, "Whether this chat session supports attaching problems.")),
189
+ description: ( localize(6033, "Whether this chat session supports attaching problems.")),
190
190
  type: "boolean"
191
191
  },
192
192
  supportsSymbolAttachments: {
193
- description: ( localize(5532, "Whether this chat session supports attaching symbols.")),
193
+ description: ( localize(6034, "Whether this chat session supports attaching symbols.")),
194
+ type: "boolean"
195
+ },
196
+ supportsPromptAttachments: {
197
+ description: ( localize(6035, "Whether this chat session supports attaching prompts.")),
198
+ type: "boolean"
199
+ },
200
+ supportsHandOffs: {
201
+ description: ( localize(6036, "Whether this chat session supports hand-off prompts.")),
194
202
  type: "boolean"
195
203
  }
196
204
  }
197
205
  },
198
206
  commands: {
199
207
  markdownDescription: ( localize(
200
- 5533,
208
+ 6037,
201
209
  "Commands available for this chat session, which the user can invoke with a `/`."
202
210
  )),
203
211
  type: "array",
@@ -214,17 +222,17 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
214
222
  properties: {
215
223
  name: {
216
224
  description: ( localize(
217
- 5534,
225
+ 6038,
218
226
  "A short name by which this command is referred to in the UI, e.g. `fix` or `explain` for commands that fix an issue or explain code. The name should be unique among the commands provided by this participant."
219
227
  )),
220
228
  type: "string"
221
229
  },
222
230
  description: {
223
- description: ( localize(5535, "A description of this command.")),
231
+ description: ( localize(6039, "A description of this command.")),
224
232
  type: "string"
225
233
  },
226
234
  when: {
227
- description: ( localize(5536, "A condition which must be true to enable this command.")),
235
+ description: ( localize(6040, "A condition which must be true to enable this command.")),
228
236
  type: "string"
229
237
  }
230
238
  }
@@ -232,7 +240,7 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
232
240
  },
233
241
  canDelegate: {
234
242
  description: ( localize(
235
- 5537,
243
+ 6041,
236
244
  "Whether delegation is supported. Default is false. Note that enabling this is experimental and may not be respected at all times."
237
245
  )),
238
246
  type: "boolean",
@@ -240,10 +248,18 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
240
248
  },
241
249
  customAgentTarget: {
242
250
  description: ( localize(
243
- 5538,
251
+ 6042,
244
252
  "When set, the chat session will show a filtered mode picker that prefers custom agents whose target property matches this value. Custom agents without a target property are still shown in all session types. This enables the use of standard agent/mode with contributed sessions."
245
253
  )),
246
254
  type: "string"
255
+ },
256
+ requiresCustomModels: {
257
+ description: ( localize(
258
+ 6043,
259
+ "When set, the chat session will show a filtered model picker that prefers custom models. This enables the use of standard model picker with contributed sessions."
260
+ )),
261
+ type: "boolean",
262
+ default: false
247
263
  }
248
264
  },
249
265
  required: ["type", "name", "displayName", "description"]
@@ -313,7 +329,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
313
329
  this._menuService = _menuService;
314
330
  this._themeService = _themeService;
315
331
  this._labelService = _labelService;
316
- this._itemsProviders = ( new Map());
332
+ this._itemControllers = ( new Map());
317
333
  this._contributions = ( new Map());
318
334
  this._contributionDisposables = this._register(( new DisposableMap()));
319
335
  this._contentProviders = ( new Map());
@@ -332,12 +348,14 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
332
348
  this._onRequestNotifyExtension = this._register(( new AsyncEmitter()));
333
349
  this.inProgressMap = ( new Map());
334
350
  this._sessionTypeOptions = ( new Map());
351
+ this._sessionTypeNewSessionOptions = ( new Map());
335
352
  this._sessionTypeIcons = ( new Map());
336
353
  this._sessionTypeWelcomeTitles = ( new Map());
337
354
  this._sessionTypeWelcomeMessages = ( new Map());
338
355
  this._sessionTypeWelcomeTips = ( new Map());
339
356
  this._sessionTypeInputPlaceholders = ( new Map());
340
357
  this._sessions = ( new ResourceMap());
358
+ this._resourceAliases = ( new ResourceMap());
341
359
  this._hasCanDelegateProvidersKey = ChatContextKeys.hasCanDelegateProviders.bindTo(this._contextKeyService);
342
360
  this._register(extensionPoint.setHandler(extensions => {
343
361
  for (const ext of extensions) {
@@ -359,9 +377,8 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
359
377
  this._evaluateAvailability();
360
378
  }));
361
379
  const builtinSessionProviders = [AgentSessionProviders.Local];
362
- const contributedSessionProviders = observableFromEvent(this.onDidChangeAvailability, () => Array.from(( this._contributions.keys())).filter(isAgentSessionProviderType)).recomputeInitiallyAndOnChange(this._store);
380
+ const contributedSessionProviders = observableFromEvent(this.onDidChangeAvailability, () => Array.from(( this._contributions.keys())).filter(key => ( this._contributionDisposables.has(key)) && isAgentSessionProviderType(key))).recomputeInitiallyAndOnChange(this._store);
363
381
  this._register(autorun(reader => {
364
- backgroundAgentDisplayName.read(reader);
365
382
  const activatedProviders = [...builtinSessionProviders, ...contributedSessionProviders.read(reader)];
366
383
  for (const provider of ( Object.values(AgentSessionProviders))) {
367
384
  if (activatedProviders.includes(provider)) {
@@ -371,7 +388,11 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
371
388
  }
372
389
  }
373
390
  }));
374
- this._register(this.onDidChangeSessionItems(chatSessionType => {
391
+ this._register(this.onDidChangeSessionItems((
392
+ {
393
+ chatSessionType
394
+ }
395
+ ) => {
375
396
  this.updateInProgressStatus(chatSessionType).catch(error => {
376
397
  this._logService.warn(`Failed to update progress status for '${chatSessionType}':`, error);
377
398
  });
@@ -388,11 +409,11 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
388
409
  reportInProgress(chatSessionType, count) {
389
410
  let displayName;
390
411
  if (chatSessionType === AgentSessionProviders.Local) {
391
- displayName = ( localize(5539, "Local Agent"));
412
+ displayName = ( localize(6044, "Local Agent"));
392
413
  } else if (chatSessionType === AgentSessionProviders.Background) {
393
- displayName = ( localize(5540, "Background Agent"));
414
+ displayName = ( localize(6045, "Background Agent"));
394
415
  } else if (chatSessionType === AgentSessionProviders.Cloud) {
395
- displayName = ( localize(5541, "Cloud Agent"));
416
+ displayName = ( localize(6046, "Cloud Agent"));
396
417
  } else {
397
418
  displayName = this._contributions.get(chatSessionType)?.contribution.displayName;
398
419
  }
@@ -421,7 +442,13 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
421
442
  }
422
443
  }
423
444
  registerContribution(contribution, ext) {
445
+ this._logService.info(
446
+ `[ChatSessionsService] registerContribution called for type='${contribution.type}', canDelegate=${contribution.canDelegate}, when='${contribution.when}', extension='${ext.identifier.value}'`
447
+ );
424
448
  if (( this._contributions.has(contribution.type))) {
449
+ this._logService.info(
450
+ `[ChatSessionsService] registerContribution: type='${contribution.type}' already registered, skipping`
451
+ );
425
452
  return {
426
453
  dispose: () => {}
427
454
  };
@@ -548,7 +575,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
548
575
  constructor() {
549
576
  super({
550
577
  id: `workbench.action.chat.openSessionWithPrompt.${contribution.type}`,
551
- title: ( localize2(5542, "New {0} with Prompt", contribution.displayName)),
578
+ title: ( localize2(6047, "New {0} with Prompt", contribution.displayName)),
552
579
  category: CHAT_CATEGORY,
553
580
  icon: Codicon.plus,
554
581
  f1: false,
@@ -562,12 +589,20 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
562
589
  } = contribution;
563
590
  if (chatOptions) {
564
591
  const resource = URI.revive(chatOptions.resource);
565
- const ref = await chatService.loadSessionForResource(resource, ChatAgentLocation.Chat, CancellationToken.None);
566
- await chatService.sendRequest(resource, chatOptions.prompt, {
567
- agentIdSilent: type,
568
- attachedContext: chatOptions.attachedContext
569
- });
570
- ref?.dispose();
592
+ const ref = await chatService.acquireOrLoadSession(resource, ChatAgentLocation.Chat, CancellationToken.None);
593
+ try {
594
+ const result = await chatService.sendRequest(resource, chatOptions.prompt, {
595
+ agentIdSilent: type,
596
+ attachedContext: chatOptions.attachedContext
597
+ });
598
+ if (result.kind === "queued") {
599
+ await result.deferred;
600
+ } else if (result.kind === "sent") {
601
+ await result.data.responseCompletePromise;
602
+ }
603
+ } finally {
604
+ ref?.dispose();
605
+ }
571
606
  }
572
607
  }
573
608
  }),
@@ -575,7 +610,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
575
610
  constructor() {
576
611
  super({
577
612
  id: `workbench.action.chat.openNewSessionEditor.${contribution.type}`,
578
- title: ( localize2(5543, "New {0}", contribution.displayName)),
613
+ title: ( localize2(6048, "New {0}", contribution.displayName)),
579
614
  category: CHAT_CATEGORY,
580
615
  icon: Codicon.plus,
581
616
  f1: true,
@@ -598,7 +633,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
598
633
  constructor() {
599
634
  super({
600
635
  id: `workbench.action.chat.openNewSessionSidebar.${contribution.type}`,
601
- title: ( localize2(5544, "New {0}", contribution.displayName)),
636
+ title: ( localize2(6049, "New {0}", contribution.displayName)),
602
637
  category: CHAT_CATEGORY,
603
638
  icon: Codicon.plus,
604
639
  f1: false,
@@ -630,6 +665,9 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
630
665
  } of ( this._contributions.values())) {
631
666
  const isCurrentlyRegistered = ( this._contributionDisposables.has(contribution.type));
632
667
  const shouldBeRegistered = this._isContributionAvailable(contribution);
668
+ this._logService.trace(
669
+ `[ChatSessionsService] _evaluateAvailability: type='${contribution.type}', isCurrentlyRegistered=${isCurrentlyRegistered}, shouldBeRegistered=${shouldBeRegistered}, when='${contribution.when}'`
670
+ );
633
671
  if (isCurrentlyRegistered && !shouldBeRegistered) {
634
672
  this._contributionDisposables.deleteAndDispose(contribution.type);
635
673
  this._disposeSessionsForContribution(contribution.type);
@@ -641,18 +679,25 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
641
679
  }
642
680
  if (hasChanges) {
643
681
  this._onDidChangeAvailability.fire();
644
- for (const provider of ( this._itemsProviders.values())) {
645
- this._onDidChangeItemsProviders.fire(provider);
682
+ for (const chatSessionType of ( this._itemControllers.keys())) {
683
+ this._onDidChangeItemsProviders.fire({
684
+ chatSessionType
685
+ });
646
686
  }
647
687
  for (const {
648
688
  contribution
649
689
  } of ( this._contributions.values())) {
650
- this._onDidChangeSessionItems.fire(contribution.type);
690
+ this._onDidChangeSessionItems.fire({
691
+ chatSessionType: contribution.type
692
+ });
651
693
  }
652
694
  }
653
695
  this._updateHasCanDelegateProvidersContextKey();
654
696
  }
655
697
  _enableContribution(contribution, ext) {
698
+ this._logService.info(
699
+ `[ChatSessionsService] _enableContribution: type='${contribution.type}', canDelegate=${contribution.canDelegate}`
700
+ );
656
701
  const disposableStore = ( new DisposableStore());
657
702
  this._contributionDisposables.set(contribution.type, disposableStore);
658
703
  if (contribution.canDelegate) {
@@ -741,6 +786,9 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
741
786
  return this._isContributionAvailable(contribution) ? contribution : undefined;
742
787
  }
743
788
  async activateChatSessionItemProvider(chatViewType) {
789
+ await this.doActivateChatSessionItemController(chatViewType);
790
+ }
791
+ async doActivateChatSessionItemController(chatViewType) {
744
792
  await this._extensionService.whenInstalledExtensionsRegistered();
745
793
  const resolvedType = this._resolveToPrimaryType(chatViewType);
746
794
  if (resolvedType) {
@@ -748,94 +796,100 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
748
796
  }
749
797
  const contribution = this._contributions.get(chatViewType)?.contribution;
750
798
  if (contribution && !this._isContributionAvailable(contribution)) {
751
- return undefined;
799
+ return false;
752
800
  }
753
- if (( this._itemsProviders.has(chatViewType))) {
754
- return this._itemsProviders.get(chatViewType);
801
+ if (( this._itemControllers.has(chatViewType))) {
802
+ return true;
755
803
  }
756
804
  await this._extensionService.activateByEvent(`onChatSession:${chatViewType}`);
757
- return this._itemsProviders.get(chatViewType);
805
+ const controller = this._itemControllers.get(chatViewType);
806
+ return !!controller;
758
807
  }
759
- async canResolveChatSession(chatSessionResource) {
808
+ async canResolveChatSession(sessionType) {
760
809
  await this._extensionService.whenInstalledExtensionsRegistered();
761
- const resolvedType = this._resolveToPrimaryType(chatSessionResource.scheme) || chatSessionResource.scheme;
810
+ const resolvedType = this._resolveToPrimaryType(sessionType) || sessionType;
762
811
  const contribution = this._contributions.get(resolvedType)?.contribution;
763
812
  if (contribution && !this._isContributionAvailable(contribution)) {
764
813
  return false;
765
814
  }
766
- if (( this._contentProviders.has(chatSessionResource.scheme))) {
815
+ if (( this._contentProviders.has(sessionType))) {
767
816
  return true;
768
817
  }
769
- await this._extensionService.activateByEvent(`onChatSession:${chatSessionResource.scheme}`);
770
- return ( this._contentProviders.has(chatSessionResource.scheme));
818
+ await this._extensionService.activateByEvent(`onChatSession:${sessionType}`);
819
+ return ( this._contentProviders.has(sessionType));
771
820
  }
772
- async getChatSessionItems(providersToResolve, token) {
773
- const results = [];
774
- const resolvedProviderTypes = ( new Set());
775
- for (const contrib of this.getAllChatSessionContributions()) {
821
+ async tryActivateControllers(providersToResolve) {
822
+ await Promise.all(( this.getAllChatSessionContributions().map(async contrib => {
776
823
  if (providersToResolve && !providersToResolve.includes(contrib.type)) {
777
- continue;
824
+ return;
778
825
  }
779
- const provider = await this.activateChatSessionItemProvider(contrib.type);
780
- if (!provider) {
826
+ if (!(await this.doActivateChatSessionItemController(contrib.type))) {
781
827
  if (providersToResolve?.includes(contrib.type)) {
782
828
  this._logService.trace(
783
829
  `[ChatSessionsService] No enabled provider found for chat session type ${contrib.type}`
784
830
  );
785
831
  }
786
- continue;
787
- }
788
- try {
789
- const providerSessions = await raceCancellationError(provider.provideChatSessionItems(token), token);
790
- this._logService.trace(
791
- `[ChatSessionsService] Resolved ${providerSessions.length} sessions for provider ${provider.chatSessionType}`
792
- );
793
- results.push({
794
- chatSessionType: provider.chatSessionType,
795
- items: providerSessions
796
- });
797
- resolvedProviderTypes.add(provider.chatSessionType);
798
- } catch (error) {
799
- this._logService.error(
800
- `[ChatSessionsService] Failed to resolve sessions for provider ${provider.chatSessionType}`,
801
- error
802
- );
803
- continue;
804
- }
805
- }
806
- for (const [chatSessionType, provider] of this._itemsProviders) {
807
- if (( resolvedProviderTypes.has(chatSessionType))) {
808
- continue;
809
832
  }
810
- if (providersToResolve && !providersToResolve.includes(chatSessionType)) {
811
- continue;
833
+ })));
834
+ }
835
+ async getChatSessionItems(providersToResolve, token) {
836
+ await this.tryActivateControllers(providersToResolve);
837
+ const results = [];
838
+ await Promise.all(( Array.from(this._itemControllers).map(async ([chatSessionType, controllerEntry]) => {
839
+ const resolvedType = this._resolveToPrimaryType(chatSessionType) ?? chatSessionType;
840
+ if (providersToResolve && !providersToResolve.includes(resolvedType)) {
841
+ return;
812
842
  }
813
843
  try {
814
- const providerSessions = await raceCancellationError(provider.provideChatSessionItems(token), token);
844
+ await controllerEntry.initialRefresh;
845
+ const providerSessions = controllerEntry.controller.items;
815
846
  this._logService.trace(
816
- `[ChatSessionsService] Resolved ${providerSessions.length} sessions for built-in provider ${chatSessionType}`
847
+ `[ChatSessionsService] Resolved ${providerSessions.length} sessions for provider ${resolvedType}`
817
848
  );
818
849
  results.push({
819
- chatSessionType,
850
+ chatSessionType: resolvedType,
820
851
  items: providerSessions
821
852
  });
822
- } catch (error) {
823
- this._logService.error(
824
- `[ChatSessionsService] Failed to resolve sessions for built-in provider ${chatSessionType}`,
825
- error
826
- );
827
- continue;
853
+ } catch (err) {
854
+ if (!isCancellationError(err)) {
855
+ this._logService.error(
856
+ `[ChatSessionsService] Failed to resolve sessions for provider ${resolvedType}`,
857
+ err
858
+ );
859
+ }
828
860
  }
829
- }
861
+ })));
830
862
  return results;
831
863
  }
832
- registerChatSessionItemProvider(provider) {
833
- const chatSessionType = provider.chatSessionType;
834
- this._itemsProviders.set(chatSessionType, provider);
835
- this._onDidChangeItemsProviders.fire(provider);
864
+ async refreshChatSessionItems(providersToResolve, token) {
865
+ await this.tryActivateControllers(providersToResolve);
866
+ await Promise.all(( Array.from(this._itemControllers).map(async ([chatSessionType, controllerEntry]) => {
867
+ try {
868
+ await controllerEntry.controller.refresh(token);
869
+ } catch (err) {
870
+ if (!isCancellationError(err)) {
871
+ this._logService.error(
872
+ `[ChatSessionsService] Failed to resolve sessions for provider ${chatSessionType}`,
873
+ err
874
+ );
875
+ }
876
+ }
877
+ })));
878
+ }
879
+ registerChatSessionItemController(chatSessionType, controller) {
836
880
  const disposables = ( new DisposableStore());
837
- disposables.add(provider.onDidChangeChatSessionItems(() => {
838
- this._onDidChangeSessionItems.fire(chatSessionType);
881
+ const initialRefreshCts = disposables.add(( new CancellationTokenSource()));
882
+ this._itemControllers.set(chatSessionType, {
883
+ controller,
884
+ initialRefresh: controller.refresh(initialRefreshCts.token)
885
+ });
886
+ this._onDidChangeItemsProviders.fire({
887
+ chatSessionType
888
+ });
889
+ disposables.add(controller.onDidChangeChatSessionItems(() => {
890
+ this._onDidChangeSessionItems.fire({
891
+ chatSessionType
892
+ });
839
893
  }));
840
894
  this.updateInProgressStatus(chatSessionType).catch(error => {
841
895
  this._logService.warn(
@@ -845,11 +899,14 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
845
899
  });
846
900
  return {
847
901
  dispose: () => {
902
+ initialRefreshCts.cancel();
848
903
  disposables.dispose();
849
- const provider = this._itemsProviders.get(chatSessionType);
850
- if (provider) {
851
- this._itemsProviders.delete(chatSessionType);
852
- this._onDidChangeItemsProviders.fire(provider);
904
+ const controller = this._itemControllers.get(chatSessionType);
905
+ if (controller) {
906
+ this._itemControllers.delete(chatSessionType);
907
+ this._onDidChangeItemsProviders.fire({
908
+ chatSessionType
909
+ });
853
910
  }
854
911
  }
855
912
  };
@@ -948,34 +1005,72 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
948
1005
  const confirmationTitle = state.confirmationMessages?.title;
949
1006
  const titleMessage = confirmationTitle && (typeof confirmationTitle === "string" ? confirmationTitle : confirmationTitle.value);
950
1007
  const descriptionValue = typeof description === "string" ? description : description.value;
951
- description = titleMessage ?? ( localize(5545, "Waiting for confirmation: {0}", descriptionValue));
1008
+ description = titleMessage ?? ( localize(6050, "Waiting for confirmation: {0}", descriptionValue));
952
1009
  }
953
1010
  } else if (part.kind === "toolInvocationSerialized") {
954
1011
  description = part.invocationMessage;
955
1012
  } else if (part.kind === "progressMessage") {
956
1013
  description = part.content;
957
1014
  } else if (part.kind === "thinking") {
958
- description = ( localize(5546, "Thinking..."));
1015
+ description = ( localize(6051, "Thinking..."));
959
1016
  }
960
1017
  }
961
1018
  return description ? renderAsPlaintext(description, {
962
1019
  useLinkFormatter: true
963
1020
  }) : "";
964
1021
  }
1022
+ async createNewChatSessionItem(chatSessionType, request, token) {
1023
+ const controllerData = this._itemControllers.get(chatSessionType);
1024
+ if (!controllerData) {
1025
+ return undefined;
1026
+ }
1027
+ await controllerData.initialRefresh;
1028
+ return controllerData.controller.newChatSessionItem?.(request, token);
1029
+ }
965
1030
  async getOrCreateChatSession(sessionResource, token) {
966
- const existingSessionData = this._sessions.get(sessionResource);
967
- if (existingSessionData) {
968
- return existingSessionData.session;
1031
+ {
1032
+ const existingSessionData = this._sessions.get(sessionResource);
1033
+ if (existingSessionData) {
1034
+ return existingSessionData.session;
1035
+ }
969
1036
  }
970
- if (!(await raceCancellationError(this.canResolveChatSession(sessionResource), token))) {
1037
+ if (!(await raceCancellationError(this.canResolveChatSession(sessionResource.scheme), token))) {
971
1038
  throw Error(`Can not find provider for ${sessionResource}`);
972
1039
  }
1040
+ {
1041
+ const existingSessionData = this._sessions.get(sessionResource);
1042
+ if (existingSessionData) {
1043
+ return existingSessionData.session;
1044
+ }
1045
+ }
973
1046
  const resolvedType = this._resolveToPrimaryType(sessionResource.scheme) || sessionResource.scheme;
974
1047
  const provider = this._contentProviders.get(resolvedType);
975
1048
  if (!provider) {
976
1049
  throw Error(`Can not find provider for ${sessionResource}`);
977
1050
  }
978
- const session = await raceCancellationError(provider.provideChatSessionContent(sessionResource, token), token);
1051
+ let session;
1052
+ const newSessionOptions = this.getNewSessionOptionsForSessionType(resolvedType);
1053
+ if (sessionResource.path.startsWith("/untitled") && newSessionOptions) {
1054
+ session = {
1055
+ sessionResource: sessionResource,
1056
+ onWillDispose: Event.None,
1057
+ history: [],
1058
+ options: newSessionOptions ?? {},
1059
+ dispose: () => {}
1060
+ };
1061
+ } else {
1062
+ session = await raceCancellationError(provider.provideChatSessionContent(sessionResource, token), token);
1063
+ }
1064
+ for (const [optionId, value] of Object.entries(session.options ?? {})) {
1065
+ this.setSessionOption(sessionResource, optionId, value);
1066
+ }
1067
+ {
1068
+ const existingSessionData = this._sessions.get(sessionResource);
1069
+ if (existingSessionData) {
1070
+ session.dispose();
1071
+ return existingSessionData.session;
1072
+ }
1073
+ }
979
1074
  const sessionData = ( new ContributedChatSessionData(
980
1075
  session,
981
1076
  sessionResource.scheme,
@@ -987,22 +1082,26 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
987
1082
  }
988
1083
  ));
989
1084
  this._sessions.set(sessionResource, sessionData);
1085
+ this._onDidChangeSessionOptions.fire(sessionResource);
990
1086
  return session;
991
1087
  }
992
1088
  hasAnySessionOptions(sessionResource) {
993
- const session = this._sessions.get(sessionResource);
1089
+ const session = this._sessions.get(this._resolveResource(sessionResource));
994
1090
  return !!session && !!session.options && ( Object.keys(session.options)).length > 0;
995
1091
  }
996
1092
  getSessionOption(sessionResource, optionId) {
997
- const session = this._sessions.get(sessionResource);
1093
+ const session = this._sessions.get(this._resolveResource(sessionResource));
998
1094
  return session?.getOption(optionId);
999
1095
  }
1000
1096
  setSessionOption(sessionResource, optionId, value) {
1001
- const session = this._sessions.get(sessionResource);
1097
+ const session = this._sessions.get(this._resolveResource(sessionResource));
1002
1098
  return !!session?.setOption(optionId, value);
1003
1099
  }
1004
- notifySessionItemsChanged(chatSessionType) {
1005
- this._onDidChangeSessionItems.fire(chatSessionType);
1100
+ _resolveResource(resource) {
1101
+ return this._resourceAliases.get(resource) ?? resource;
1102
+ }
1103
+ registerSessionResourceAlias(untitledResource, realResource) {
1104
+ this._resourceAliases.set(realResource, untitledResource);
1006
1105
  }
1007
1106
  setOptionGroupsForSessionType(chatSessionType, handle, optionGroups) {
1008
1107
  if (optionGroups) {
@@ -1015,6 +1114,12 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
1015
1114
  getOptionGroupsForSessionType(chatSessionType) {
1016
1115
  return this._sessionTypeOptions.get(chatSessionType);
1017
1116
  }
1117
+ getNewSessionOptionsForSessionType(chatSessionType) {
1118
+ return this._sessionTypeNewSessionOptions.get(chatSessionType);
1119
+ }
1120
+ setNewSessionOptionsForSessionType(chatSessionType, options) {
1121
+ this._sessionTypeNewSessionOptions.set(chatSessionType, options);
1122
+ }
1018
1123
  async notifySessionOptionsChange(sessionResource, updates) {
1019
1124
  if (!updates.length) {
1020
1125
  return;
@@ -1032,7 +1137,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
1032
1137
  for (const u of updates) {
1033
1138
  this.setSessionOption(sessionResource, u.optionId, u.value);
1034
1139
  }
1035
- this._onDidChangeSessionOptions.fire(sessionResource);
1140
+ this._onDidChangeSessionOptions.fire(this._resolveResource(sessionResource));
1036
1141
  this._logService.trace(
1037
1142
  `[ChatSessionsService] notifySessionOptionsChange: finished for ${sessionResource}`
1038
1143
  );
@@ -1065,6 +1170,10 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
1065
1170
  const contribution = this._contributions.get(chatSessionType)?.contribution;
1066
1171
  return contribution?.customAgentTarget ?? Target.Undefined;
1067
1172
  }
1173
+ requiresCustomModelsForSessionType(chatSessionType) {
1174
+ const contribution = this._contributions.get(chatSessionType)?.contribution;
1175
+ return !!contribution?.requiresCustomModels;
1176
+ }
1068
1177
  getContentProviderSchemes() {
1069
1178
  return Array.from(( this._contentProviders.keys()));
1070
1179
  }
@@ -1075,7 +1184,7 @@ function registerNewSessionInPlaceAction(type, displayName) {
1075
1184
  constructor() {
1076
1185
  super({
1077
1186
  id: `workbench.action.chat.openNewChatSessionInPlace.${type}`,
1078
- title: ( localize2(5547, "New {0}", displayName)),
1187
+ title: ( localize2(6052, "New {0}", displayName)),
1079
1188
  category: CHAT_CATEGORY,
1080
1189
  f1: false,
1081
1190
  precondition: ChatContextKeys.enabled
@@ -1091,7 +1200,7 @@ function registerNewSessionInPlaceAction(type, displayName) {
1091
1200
  }
1092
1201
  await openChatSession(accessor, {
1093
1202
  type: type,
1094
- displayName: ( localize(5548, "Chat")),
1203
+ displayName: ( localize(6053, "Chat")),
1095
1204
  position: chatSessionPosition,
1096
1205
  replaceEditor: true
1097
1206
  });
@@ -1103,7 +1212,7 @@ function registerNewSessionExternalAction(type, displayName, commandId) {
1103
1212
  constructor() {
1104
1213
  super({
1105
1214
  id: `workbench.action.chat.openNewChatSessionExternal.${type}`,
1106
- title: ( localize2(5549, "New {0}", displayName)),
1215
+ title: ( localize2(6054, "New {0}", displayName)),
1107
1216
  category: CHAT_CATEGORY,
1108
1217
  f1: false,
1109
1218
  precondition: ChatContextKeys.enabled
@@ -1146,7 +1255,7 @@ async function openChatSession(accessor, openOptions, chatSendOptions) {
1146
1255
  override: ChatEditorInput.EditorID,
1147
1256
  pinned: true,
1148
1257
  title: {
1149
- fallback: ( localize(5550, "{0}", openOptions.displayName))
1258
+ fallback: ( localize(6055, "{0}", openOptions.displayName))
1150
1259
  }
1151
1260
  };
1152
1261
  if (openOptions.replaceEditor) {
@@ -1184,6 +1293,15 @@ async function openChatSession(accessor, openOptions, chatSendOptions) {
1184
1293
  }
1185
1294
  if (chatSendOptions) {
1186
1295
  try {
1296
+ if (chatSendOptions.initialSessionOptions) {
1297
+ const model = chatService.getSession(resource);
1298
+ if (model?.contributedChatSession) {
1299
+ model.setContributedChatSession({
1300
+ ...model.contributedChatSession,
1301
+ initialSessionOptions: chatSendOptions.initialSessionOptions
1302
+ });
1303
+ }
1304
+ }
1187
1305
  await chatService.sendRequest(resource, chatSendOptions.prompt, {
1188
1306
  agentIdSilent: openOptions.type,
1189
1307
  attachedContext: chatSendOptions.attachedContext