@codingame/monaco-vscode-katex-common 34.1.3 → 35.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 (244) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/base/browser/animationSync.d.ts +36 -0
  3. package/vscode/src/vs/base/browser/animationSync.js +23 -0
  4. package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.js +23 -2
  5. package/vscode/src/vs/platform/actions/browser/buttonbar.js +3 -2
  6. package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.d.ts +5 -5
  7. package/vscode/src/vs/platform/agentHost/common/fileEditDiff.d.ts +32 -0
  8. package/vscode/src/vs/platform/agentHost/common/fileEditDiff.js +33 -0
  9. package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAnnotations.d.ts +90 -0
  10. package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAttachments.d.ts +30 -0
  11. package/vscode/src/vs/platform/agentHost/common/meta/agentToolCallMeta.d.ts +65 -0
  12. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +16 -5
  13. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +3 -2
  14. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-resource-watch/reducer.d.ts +21 -0
  15. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +8 -0
  16. package/vscode/src/vs/platform/agentHost/common/state/sessionReducers.d.ts +9 -0
  17. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +2 -2
  18. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +29 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +105 -28
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +15 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +74 -44
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +2 -2
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +98 -24
  28. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +8 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +31 -4
  30. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +45 -4
  31. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +163 -37
  32. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerActionItem.d.ts +47 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerActionItem.js +172 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +3 -1
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +7 -4
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionReferenceAttachment.d.ts +12 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSnapshotController.d.ts +116 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSnapshotController.js +348 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.d.ts +211 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.js +64 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +18 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +13 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +1 -1
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +30 -18
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +4 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +29 -4
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +24 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +119 -41
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +27 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.d.ts +63 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.js +97 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +5 -6
  56. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +105 -88
  57. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +1 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +46 -48
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +28 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +98 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +3 -3
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +9 -7
  64. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatTurnPills.css +162 -0
  65. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.d.ts +9 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +95 -24
  67. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +22 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +151 -20
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +20 -2
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +5 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +61 -17
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAutoModeResolutionContentPart.d.ts +20 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAutoModeResolutionContentPart.js +55 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +6 -2
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +81 -30
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +2 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.d.ts +11 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.js +13 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +9 -33
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.d.ts +6 -2
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.js +21 -11
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +6 -2
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +40 -19
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.d.ts +35 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.js +140 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.d.ts +24 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.js +58 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +3 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +29 -8
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +1 -1
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +44 -44
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -2
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +12 -66
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +39 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +167 -43
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +1 -15
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +9 -86
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.d.ts +12 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.js +23 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +9 -1
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +141 -72
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +2 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +17 -3
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTurnPillsPart.d.ts +29 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTurnPillsPart.js +110 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatAgentFeedbackReviewConfirmation.css +133 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatAutoModeResolution.css +30 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +4 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +18 -8
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +23 -7
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +33 -18
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +23 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +44 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +2 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +9 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +21 -4
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAgentFeedbackReviewConfirmationSubPart.d.ts +48 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAgentFeedbackReviewConfirmationSubPart.js +279 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +43 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +53 -15
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +7 -9
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.d.ts +4 -1
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +24 -10
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/{chatMissingSandboxDepsConfirmationSubPart.d.ts → chatSandboxPrerequisiteConfirmationSubPart.d.ts} +3 -2
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/{chatMissingSandboxDepsConfirmationSubPart.js → chatSandboxPrerequisiteConfirmationSubPart.js} +14 -10
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +0 -1
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +30 -59
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +2 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +41 -29
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +2 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +12 -9
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +1 -1
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +43 -35
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +2 -1
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +11 -8
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeHelper.d.ts +18 -0
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeHelper.js +51 -0
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +4 -4
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +18 -3
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +266 -98
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +1 -0
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +8 -3
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.d.ts +32 -0
  172. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.js +135 -0
  173. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatTurnPills.d.ts +85 -0
  174. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatTurnPills.js +275 -0
  175. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +18 -1
  176. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +84 -37
  177. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  178. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatGoalBannerWidget.js +4 -4
  179. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +14 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +6 -1
  181. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +52 -4
  182. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +187 -13
  183. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +435 -139
  184. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatePersistence.d.ts +6 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatePersistence.js +21 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationLogic.d.ts +50 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationLogic.js +49 -0
  188. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.d.ts +79 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.js +127 -0
  190. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +84 -8
  191. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +658 -430
  192. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +72 -8
  193. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +82 -7
  194. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
  195. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.d.ts +3 -3
  196. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.js +6 -3
  197. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +2 -1
  198. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +23 -9
  199. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatGoalBannerWidget.css +2 -2
  200. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +28 -12
  201. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +3 -0
  202. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +15 -14
  203. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +60 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +18 -7
  205. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +49 -1
  206. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +141 -81
  207. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +7 -15
  208. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +30 -47
  209. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  210. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerInputActionItem.d.ts +20 -0
  211. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerInputActionItem.js +18 -0
  212. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +469 -148
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +11 -2
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +79 -28
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +71 -2
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +107 -45
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +20 -0
  218. package/vscode/src/vs/workbench/contrib/chat/common/chatErrorMessages.d.ts +110 -0
  219. package/vscode/src/vs/workbench/contrib/chat/common/chatErrorMessages.js +37 -0
  220. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +4 -1
  221. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +13 -11
  222. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.d.ts +8 -1
  223. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +57 -21
  224. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
  225. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +4 -4
  226. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  227. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
  229. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  230. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.d.ts +39 -8
  231. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.js +168 -72
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  234. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  235. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  236. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  237. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  238. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  239. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  240. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  241. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  242. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  243. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.d.ts +0 -30
  244. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.js +0 -147
@@ -35,6 +35,13 @@ export declare function hasModelsTargetingSession(allModels: ILanguageModelChatM
35
35
  * If no models target this session, the model must not be session-specific.
36
36
  */
37
37
  export declare function isModelValidForSession(model: ILanguageModelChatMetadataAndIdentifier, allModels: ILanguageModelChatMetadataAndIdentifier[], sessionType: string | undefined): boolean;
38
+ /**
39
+ * Find a model in `pool` that matches `previous` by id, then family, then
40
+ * name (case-insensitive). Used to carry a selection across model pools
41
+ * (e.g. `copilot/claude-sonnet-4.6` → `agent-host-copilotcli:claude-sonnet-4.6`).
42
+ * Returns `undefined` when no candidate matches.
43
+ */
44
+ export declare function findBestMatchingModel(previous: ILanguageModelChatMetadataAndIdentifier | undefined, pool: readonly ILanguageModelChatMetadataAndIdentifier[]): ILanguageModelChatMetadataAndIdentifier | undefined;
38
45
  /**
39
46
  * Find the default model for a given location from a list of models.
40
47
  * Prefers the model marked as default for the location, falls back to the first model.
@@ -82,15 +89,15 @@ export declare function resolveModelFromSyncState(stateModel: ILanguageModelChat
82
89
  action: "keep" | "apply" | "default";
83
90
  };
84
91
  /**
85
- * Merges live models with cached models per-vendor, evicting cache for vendors
86
- * no longer contributed.
92
+ * Merges live models with cached models per-vendor, evicting cache for vendors no longer contributed.
87
93
  *
88
- * - `resolvedVendors`: vendors whose providers have produced at least one
89
- * result. An empty live list for these is authoritative (e.g. BYOK key
90
- * removed) and their cache entries are dropped.
91
- * - When no contributor info is available yet and there are no live models
92
- * (startup / extension reload), the full cache is returned to avoid
93
- * flickering the picker to empty.
94
+ * - `resolvedVendors`: vendors that have finished resolving. An empty live list for these is authoritative
95
+ * (e.g. BYOK key removed), so their cache is dropped.
96
+ * - Copilot is the exception: its models are gated on an async token that can resolve slower than fast/local BYOK
97
+ * providers, so an early empty resolution is transient. Keeping its cache avoids resetting (and persisting) a
98
+ * restored Copilot selection to a BYOK default, which also preserves the selection across sign-out/in (see #321037).
99
+ * - When nothing is contributed yet and there are no live models (startup / reload), the full cache is returned to
100
+ * avoid flickering the picker to empty.
94
101
  */
95
102
  export declare function mergeModelsWithCache(liveModels: ILanguageModelChatMetadataAndIdentifier[], cachedModels: ILanguageModelChatMetadataAndIdentifier[], contributedVendors: Set<string>, resolvedVendors?: ReadonlySet<string>): ILanguageModelChatMetadataAndIdentifier[];
96
103
  /**
@@ -111,4 +118,61 @@ export declare function shouldResetOnModelListChange(currentModelId: string | un
111
118
  * restoration.
112
119
  */
113
120
  export declare function shouldRestoreLateArrivingModel(persistedModelId: string, persistedAsDefault: boolean, model: ILanguageModelChatMetadataAndIdentifier, location: ChatAgentLocation): boolean;
121
+ /**
122
+ * Resolve a configured default-model value to a concrete model from the given pool.
123
+ *
124
+ * The configured value (e.g. from `chat.defaultModel`, which may be set
125
+ * by enterprise policy) is matched case-insensitively in this order:
126
+ * 1. `auto` — the synthetic "Auto" model (id `auto`), when present.
127
+ * 2. A full model id — an exact match on `metadata.id`.
128
+ * 3. A model family name (e.g. `opus`, `gemini`) — the model with the highest
129
+ * {@link compareModelVersions version} among models whose `metadata.family` matches.
130
+ *
131
+ * Returns `undefined` when the value is empty or no model matches, letting the caller
132
+ * fall back to its normal default selection.
133
+ */
134
+ export declare function resolveConfiguredModel(configuredValue: string | undefined, models: ILanguageModelChatMetadataAndIdentifier[]): ILanguageModelChatMetadataAndIdentifier | undefined;
135
+ /**
136
+ * Why a model picker has no model to offer, when that is the case. Drives a
137
+ * "Models" placeholder plus a contextual action instead of a misleading
138
+ * lone "Auto".
139
+ */
140
+ export declare enum ModelPickerUnavailableReason {
141
+ /** The workspace is untrusted, which disables the model providers. */
142
+ Restricted = "restricted",
143
+ /** Chat requires sign-in / setup before any model is available. */
144
+ SetupRequired = "setupRequired"
145
+ }
146
+ /**
147
+ * Determines whether a model picker should present an "unavailable" state and,
148
+ * if so, why. Returns `undefined` when the picker has a usable model (or its
149
+ * state is not yet known), so the normal model / Auto label is shown.
150
+ *
151
+ * A model counts as usable only when it is both offered by this picker
152
+ * (`pickerModels`, already filtered to the picker's location / session type) AND
153
+ * currently live in the language model registry (`liveModelIds`). This ignores
154
+ * two kinds of phantom models that would otherwise mask the unavailable state:
155
+ * - stale cross-window machine cache entries (present in `pickerModels` but not live), and
156
+ * - models registered for other surfaces such as agent-host session-scoped models
157
+ * (live in the global registry but not offered by this picker).
158
+ *
159
+ * Once trust has initialized, Restricted Mode takes precedence: an untrusted workspace is
160
+ * reported as Restricted even when a live picker-offered model exists, because Restricted Mode disables all model providers. This matters because a
161
+ * harness's session-scoped models (e.g. `claude-code`, `copilotcli`) register
162
+ * without a trust gate and stay live while untrusted, which would otherwise mask
163
+ * the Restricted state behind a misleading "Auto". In a *trusted* workspace, a
164
+ * live, picker-offered model (e.g. BYOK) wins over setup, so BYOK and anonymous
165
+ * access are never shown a setup-required state regardless of sign-in. `trusted`
166
+ * reflects `isWorkspaceTrusted()` (which is `true` when trust is disabled
167
+ * entirely) and is only authoritative once `trustInitialized` is `true`; until
168
+ * then this returns `undefined` to avoid a trusted workspace briefly rendering as
169
+ * unavailable at startup.
170
+ */
171
+ export declare function getModelPickerUnavailableReason(context: {
172
+ readonly trustInitialized: boolean;
173
+ readonly trusted: boolean;
174
+ readonly pickerModels: readonly ILanguageModelChatMetadataAndIdentifier[];
175
+ readonly liveModelIds: Iterable<string>;
176
+ readonly requiresSetup: boolean;
177
+ }): ModelPickerUnavailableReason | undefined;
114
178
  export {};
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { ChatModeKind, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
3
- import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
3
+ import { ILanguageModelChatMetadata, COPILOT_VENDOR_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
4
4
 
5
5
  function filterModelsForSession(models, sessionType, currentModeKind, location) {
6
6
  if (sessionType && sessionType !== "local" && hasModelsTargetingSession(models, sessionType)) {
@@ -36,6 +36,15 @@ function isModelValidForSession(model, allModels, sessionType) {
36
36
  }
37
37
  return !model.metadata.targetChatSessionType;
38
38
  }
39
+ function findBestMatchingModel(previous, pool) {
40
+ if (!previous || pool.length === 0) {
41
+ return undefined;
42
+ }
43
+ const id = previous.metadata.id?.trim().toLowerCase();
44
+ const family = previous.metadata.family?.trim().toLowerCase();
45
+ const name = previous.metadata.name?.trim().toLowerCase();
46
+ return (id ? pool.find(m => m.metadata.id?.trim().toLowerCase() === id) : undefined) ?? (family ? pool.find(m => m.metadata.family?.trim().toLowerCase() === family) : undefined) ?? (name ? pool.find(m => m.metadata.name?.trim().toLowerCase() === name) : undefined);
47
+ }
39
48
  function findDefaultModel(models, location) {
40
49
  return models.find(m => m.metadata.isDefaultForLocation[location]) || models[0];
41
50
  }
@@ -77,14 +86,14 @@ function shouldResetModelToDefault(currentModel, availableModels, context, allMo
77
86
  return false;
78
87
  }
79
88
  function resolveModelFromSyncState(stateModel, currentModel, allModels, sessionType, context) {
80
- if (currentModel && currentModel.identifier === stateModel.identifier) {
89
+ if (!isModelValidForSession(stateModel, allModels, sessionType)) {
81
90
  return {
82
- action: "keep"
91
+ action: "default"
83
92
  };
84
93
  }
85
- if (!isModelValidForSession(stateModel, allModels, sessionType)) {
94
+ if (currentModel && currentModel.identifier === stateModel.identifier) {
86
95
  return {
87
- action: "default"
96
+ action: "keep"
88
97
  };
89
98
  }
90
99
  if (context) {
@@ -108,7 +117,16 @@ function mergeModelsWithCache(liveModels, cachedModels, contributedVendors, reso
108
117
  return cachedModels;
109
118
  }
110
119
  const liveVendors = ( new Set(( liveModels.map(m => m.metadata.vendor))));
111
- const usableCached = cachedModels.filter(m => ( contributedVendors.has(m.metadata.vendor)) && !( liveVendors.has(m.metadata.vendor)) && !resolvedVendors?.has(m.metadata.vendor));
120
+ const usableCached = cachedModels.filter(m => {
121
+ const vendor = m.metadata.vendor;
122
+ if (!( contributedVendors.has(vendor)) || ( liveVendors.has(vendor))) {
123
+ return false;
124
+ }
125
+ if (resolvedVendors?.has(vendor) && vendor !== COPILOT_VENDOR_ID) {
126
+ return false;
127
+ }
128
+ return true;
129
+ });
112
130
  return [...liveModels, ...usableCached];
113
131
  }
114
132
  function shouldResetOnModelListChange(currentModelId, availableModels) {
@@ -124,5 +142,62 @@ function shouldRestoreLateArrivingModel(persistedModelId, persistedAsDefault, mo
124
142
  const result = shouldRestorePersistedModel(persistedModelId, persistedAsDefault, [model], location);
125
143
  return result.shouldRestore;
126
144
  }
145
+ const AUTO_MODEL_ID = "auto";
146
+ function compareModelVersions(a, b) {
147
+ const rawA = a ?? "";
148
+ const rawB = b ?? "";
149
+ const segmentsA = rawA.match(/\d+/g)?.map(Number) ?? [];
150
+ const segmentsB = rawB.match(/\d+/g)?.map(Number) ?? [];
151
+ const length = Math.max(segmentsA.length, segmentsB.length);
152
+ for (let i = 0; i < length; i++) {
153
+ const numA = segmentsA[i] ?? 0;
154
+ const numB = segmentsB[i] ?? 0;
155
+ if (numA !== numB) {
156
+ return numA - numB;
157
+ }
158
+ }
159
+ return rawA.localeCompare(rawB);
160
+ }
161
+ function resolveConfiguredModel(configuredValue, models) {
162
+ const value = configuredValue?.trim().toLowerCase();
163
+ if (!value) {
164
+ return undefined;
165
+ }
166
+ if (value === AUTO_MODEL_ID) {
167
+ return models.find(m => m.metadata.id?.trim().toLowerCase() === AUTO_MODEL_ID);
168
+ }
169
+ const byId = models.find(m => m.metadata.id?.trim().toLowerCase() === value);
170
+ if (byId) {
171
+ return byId;
172
+ }
173
+ const family = models.filter(m => m.metadata.family?.trim().toLowerCase() === value);
174
+ if (family.length > 0) {
175
+ return family.reduce(
176
+ (latest, candidate) => compareModelVersions(candidate.metadata.version, latest.metadata.version) > 0 ? candidate : latest
177
+ );
178
+ }
179
+ return undefined;
180
+ }
181
+ var ModelPickerUnavailableReason;
182
+ (function(ModelPickerUnavailableReason) {
183
+ ModelPickerUnavailableReason["Restricted"] = "restricted";
184
+ ModelPickerUnavailableReason["SetupRequired"] = "setupRequired";
185
+ })(ModelPickerUnavailableReason || (ModelPickerUnavailableReason = {}));
186
+ function getModelPickerUnavailableReason(context) {
187
+ if (!context.trustInitialized) {
188
+ return undefined;
189
+ }
190
+ if (!context.trusted) {
191
+ return ModelPickerUnavailableReason.Restricted;
192
+ }
193
+ const live = context.liveModelIds instanceof Set ? context.liveModelIds : ( new Set(context.liveModelIds));
194
+ if (( context.pickerModels.some(model => ( live.has(model.identifier))))) {
195
+ return undefined;
196
+ }
197
+ if (context.requiresSetup) {
198
+ return ModelPickerUnavailableReason.SetupRequired;
199
+ }
200
+ return undefined;
201
+ }
127
202
 
128
- export { filterModelsForSession, findDefaultModel, hasModelsTargetingSession, isModelSupportedForInlineChat, isModelSupportedForMode, isModelValidForSession, mergeModelsWithCache, resolveModelFromSyncState, shouldResetModelToDefault, shouldResetOnModelListChange, shouldRestoreLateArrivingModel, shouldRestorePersistedModel };
203
+ export { ModelPickerUnavailableReason, filterModelsForSession, findBestMatchingModel, findDefaultModel, getModelPickerUnavailableReason, hasModelsTargetingSession, isModelSupportedForInlineChat, isModelSupportedForMode, isModelValidForSession, mergeModelsWithCache, resolveConfiguredModel, resolveModelFromSyncState, shouldResetModelToDefault, shouldResetOnModelListChange, shouldRestoreLateArrivingModel, shouldRestorePersistedModel };
@@ -87,7 +87,7 @@ let MobileChatInputCombinedPickerActionItem = class MobileChatInputCombinedPicke
87
87
  append(trigger, renderIcon(modeIcon));
88
88
  }
89
89
  const currentModel = this._modelDelegate.currentModel.get();
90
- const labelText = currentModel?.metadata.name ?? ( localize(7735, "Auto"));
90
+ const labelText = currentModel?.metadata.name ?? ( localize(8315, "Auto"));
91
91
  const labelSpan = append(trigger, $("span.chat-input-picker-label"));
92
92
  labelSpan.textContent = labelText;
93
93
  const ariaParts = [];
@@ -96,7 +96,7 @@ let MobileChatInputCombinedPickerActionItem = class MobileChatInputCombinedPicke
96
96
  ariaParts.push(modeLabel);
97
97
  }
98
98
  ariaParts.push(labelText);
99
- trigger.ariaLabel = ( localize(7736, "Pick Mode and Model, {0}", ariaParts.join(", ")));
99
+ trigger.ariaLabel = ( localize(8316, "Pick Mode and Model, {0}", ariaParts.join(", ")));
100
100
  }
101
101
  onClick() {}
102
102
  async _showSheet() {
@@ -5,7 +5,7 @@ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform
5
5
  import { IChatMode } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes";
6
6
  import { ILanguageModelChatMetadataAndIdentifier } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels";
7
7
  import { UserSelectedTools } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents";
8
- import { IToolAndToolSetEnablementMap } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
8
+ import { ToolAndToolSetEnablementMap } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
9
9
  import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service";
10
10
  export declare enum ToolsScope {
11
11
  Global = 0,
@@ -26,11 +26,11 @@ export declare class ChatSelectedTools extends Disposable {
26
26
  * All tools and tool sets with their enabled state.
27
27
  * Tools are filtered based on the current model context.
28
28
  */
29
- readonly entriesMap: IObservable<IToolAndToolSetEnablementMap>;
29
+ readonly entriesMap: IObservable<ToolAndToolSetEnablementMap>;
30
30
  readonly userSelectedTools: IObservable<UserSelectedTools>;
31
31
  get entriesScope(): ToolsScope;
32
32
  get currentMode(): IChatMode;
33
33
  resetSessionEnablementState(): void;
34
- set(enablementMap: IToolAndToolSetEnablementMap, sessionOnly: boolean): void;
34
+ set(enablementMap: ToolAndToolSetEnablementMap, sessionOnly: boolean): void;
35
35
  private updateCustomModeTools;
36
36
  }
@@ -10,7 +10,7 @@ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode
10
10
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
11
11
  import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
12
12
  import { PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
13
- import { isToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
13
+ import { isToolSet, ToolAndToolSetEnablementMap } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
14
14
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
15
15
  import { PromptFileRewriter } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/promptSyntax/promptFileRewriter';
16
16
  import { ObservableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/map';
@@ -21,7 +21,7 @@ var ToolEnablementStates;
21
21
  function fromMap(map) {
22
22
  const toolSets = ( new Map()),
23
23
  tools = ( new Map());
24
- for (const [entry, enabled] of map.entries()) {
24
+ for (const [entry, enabled] of map) {
25
25
  if (isToolSet(entry)) {
26
26
  toolSets.set(entry.id, enabled);
27
27
  } else {
@@ -114,13 +114,16 @@ let ChatSelectedTools = class ChatSelectedTools extends Disposable {
114
114
  }
115
115
  }
116
116
  for (const toolSet of this._toolsService.getToolSetsForModel(lm, r)) {
117
+ if (toolSet.hiddenInToolsPicker) {
118
+ continue;
119
+ }
117
120
  const toolSetEnabled = currentMap.toolSets.get(toolSet.id) !== false;
118
121
  map.set(toolSet, toolSetEnabled);
119
122
  for (const tool of toolSet.getTools(r)) {
120
123
  map.set(tool, toolSetEnabled || currentMap.tools.get(tool.id) === true);
121
124
  }
122
125
  }
123
- return map;
126
+ return ToolAndToolSetEnablementMap.fromMap(map);
124
127
  });
125
128
  this.userSelectedTools = derived(r => {
126
129
  const result = {};
@@ -10,6 +10,7 @@ import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/
10
10
  import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
11
11
  import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
12
12
  import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service";
13
+ import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
13
14
  import { AgentSessionTarget } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions";
14
15
  import { ISessionTypePickerDelegate } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
15
16
  import { IChatInputPickerOptions } from "./chatInputPickerActionItem.js";
@@ -22,7 +23,7 @@ import { IGitService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/co
22
23
  export declare class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
23
24
  private readonly gitService;
24
25
  private readonly _isSessionsWindow;
25
- constructor(action: MenuItemAction, chatSessionPosition: "sidebar" | "editor", delegate: ISessionTypePickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, chatSessionsService: IChatSessionsService, commandService: ICommandService, openerService: IOpenerService, telemetryService: ITelemetryService, chatEntitlementService: IChatEntitlementService, configurationService: IConfigurationService, gitService: IGitService);
26
+ constructor(action: MenuItemAction, chatSessionPosition: "sidebar" | "editor", delegate: ISessionTypePickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, chatSessionsService: IChatSessionsService, commandService: ICommandService, openerService: IOpenerService, telemetryService: ITelemetryService, chatEntitlementService: IChatEntitlementService, languageModelsService: ILanguageModelsService, configurationService: IConfigurationService, gitService: IGitService);
26
27
  protected _run(sessionTypeItem: ISessionTypeItem): void;
27
28
  protected _getSelectedSessionType(): AgentSessionTarget | undefined;
28
29
  protected _isSessionTypeEnabled(type: AgentSessionTarget): boolean;
@@ -14,10 +14,13 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
14
14
  import { IsSessionsWindowContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
15
15
  import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
16
16
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
17
+ import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
18
+ import { isVisibleEditorChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
17
19
  import { ACTION_ID_NEW_CHAT } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
18
20
  import { getAgentSessionProvider, AgentSessionProviders, getAgentCanContinueIn, isFirstPartyAgentSessionProvider } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
19
21
  import { SessionTypePickerActionItem } from './sessionTargetPickerActionItem.js';
20
22
  import { IGitService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/git/common/gitService.service';
23
+ import { isAgentHostTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
21
24
 
22
25
  let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
23
26
  constructor(
@@ -33,6 +36,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
33
36
  openerService,
34
37
  telemetryService,
35
38
  chatEntitlementService,
39
+ languageModelsService,
36
40
  configurationService,
37
41
  gitService
38
42
  ) {
@@ -49,6 +53,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
49
53
  openerService,
50
54
  telemetryService,
51
55
  chatEntitlementService,
56
+ languageModelsService,
52
57
  configurationService
53
58
  );
54
59
  this.gitService = gitService;
@@ -71,12 +76,15 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
71
76
  }
72
77
  _isSessionTypeEnabled(type) {
73
78
  const allContributions = this.chatSessionsService.getAllChatSessionContributions();
74
- const contribution = allContributions.find(contribution => getAgentSessionProvider(contribution.type) === type);
79
+ const contribution = allContributions.find(
80
+ contribution => getAgentSessionProvider(contribution.type) === type || contribution.type === type
81
+ );
75
82
  const activeProvider = this.delegate.getActiveSessionProvider();
76
- if (!this._isSessionsWindow && activeProvider !== AgentSessionProviders.Local) {
83
+ const isAgentHostSource = activeProvider !== undefined && isAgentHostTarget(activeProvider);
84
+ if (!this._isSessionsWindow && activeProvider !== AgentSessionProviders.Local && !isAgentHostSource) {
77
85
  return false;
78
86
  }
79
- if (this._isSessionsWindow && activeProvider !== AgentSessionProviders.Background) {
87
+ if (this._isSessionsWindow && activeProvider !== AgentSessionProviders.Background && !isAgentHostSource) {
80
88
  return false;
81
89
  }
82
90
  if (this._isSessionsWindow && type === AgentSessionProviders.Cloud && !this._hasGitRepository()) {
@@ -100,18 +108,24 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
100
108
  if (this.delegate.getActiveSessionProvider() === type) {
101
109
  return true;
102
110
  }
111
+ if (this._isSessionsWindow && type === AgentSessionProviders.Background && this.chatSessionsService.getChatSessionContribution(AgentSessionProviders.AgentHostCopilot)) {
112
+ return false;
113
+ }
114
+ if (!isVisibleEditorChatSessionType(type, this.configurationService, this.chatSessionsService)) {
115
+ return false;
116
+ }
103
117
  return getAgentCanContinueIn(type);
104
118
  }
105
119
  _getSessionCategory(sessionTypeItem) {
106
120
  if (isFirstPartyAgentSessionProvider(sessionTypeItem.type)) {
107
121
  return {
108
- label: ( localize(7744, "Continue In")),
122
+ label: ( localize(8324, "Continue In")),
109
123
  order: 1,
110
124
  showHeader: true
111
125
  };
112
126
  }
113
127
  return {
114
- label: ( localize(7745, "Continue In (Third Party)")),
128
+ label: ( localize(8325, "Continue In (Third Party)")),
115
129
  order: 2,
116
130
  showHeader: false
117
131
  };
@@ -123,7 +137,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
123
137
  const learnMoreUrl = "https://aka.ms/vscode-continue-chat-in";
124
138
  return {
125
139
  id: "workbench.action.chat.agentOverview.learnMoreHandOff",
126
- label: ( localize(7746, "Learn about agent handoff...")),
140
+ label: ( localize(8326, "Learn about agent handoff...")),
127
141
  tooltip: learnMoreUrl,
128
142
  class: undefined,
129
143
  enabled: true,
@@ -139,7 +153,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
139
153
  return [{
140
154
  id: "newChatSession",
141
155
  class: undefined,
142
- label: ( localize(7747, "New Chat Session")),
156
+ label: ( localize(8327, "New Chat Session")),
143
157
  tooltip: "",
144
158
  hover: {
145
159
  content: ""
@@ -148,7 +162,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
148
162
  icon: Codicon.plus,
149
163
  enabled: true,
150
164
  category: {
151
- label: ( localize(7748, "New Chat Session")),
165
+ label: ( localize(8328, "New Chat Session")),
152
166
  order: 0,
153
167
  showHeader: false
154
168
  },
@@ -159,6 +173,6 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
159
173
  }];
160
174
  }
161
175
  };
162
- DelegationSessionPickerActionItem = ( __decorate([( __param(4, IActionWidgetService)), ( __param(5, IKeybindingService)), ( __param(6, IContextKeyService)), ( __param(7, IChatSessionsService)), ( __param(8, ICommandService)), ( __param(9, IOpenerService)), ( __param(10, ITelemetryService)), ( __param(11, IChatEntitlementService)), ( __param(12, IConfigurationService)), ( __param(13, IGitService))], DelegationSessionPickerActionItem));
176
+ DelegationSessionPickerActionItem = ( __decorate([( __param(4, IActionWidgetService)), ( __param(5, IKeybindingService)), ( __param(6, IContextKeyService)), ( __param(7, IChatSessionsService)), ( __param(8, ICommandService)), ( __param(9, IOpenerService)), ( __param(10, ITelemetryService)), ( __param(11, IChatEntitlementService)), ( __param(12, ILanguageModelsService)), ( __param(13, IConfigurationService)), ( __param(14, IGitService))], DelegationSessionPickerActionItem));
163
177
 
164
178
  export { DelegationSessionPickerActionItem };
@@ -25,7 +25,7 @@
25
25
  border-top-right-radius: 4px;
26
26
  background-color: color-mix(in srgb, var(--vscode-focusBorder) 6%, var(--vscode-editorWidget-background));
27
27
  color: var(--vscode-foreground);
28
- font-size: 12px;
28
+ font-size: var(--vscode-agents-fontSize-label1);
29
29
  line-height: 18px;
30
30
  min-width: 0;
31
31
  }
@@ -39,7 +39,7 @@
39
39
 
40
40
  .chat-goal-banner .chat-goal-banner-label {
41
41
  flex-shrink: 0;
42
- font-weight: 600;
42
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
43
43
  }
44
44
 
45
45
  .chat-goal-banner .chat-goal-banner-text {
@@ -84,9 +84,9 @@
84
84
 
85
85
  /* Title */
86
86
  .chat-input-notification .chat-input-notification-title {
87
- font-size: var(--vscode-chat-font-size-body-s);
88
- font-weight: 600;
89
- line-height: 1.4;
87
+ font-size: var(--vscode-agents-fontSize-label1);
88
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
89
+ line-height: 18px;
90
90
  color: var(--vscode-foreground);
91
91
  flex: 1;
92
92
  min-width: 0;
@@ -106,9 +106,19 @@
106
106
  margin: 0;
107
107
  }
108
108
 
109
+ .chat-input-notification .chat-input-notification-title-markdown a,
110
+ .chat-input-notification .chat-input-notification-title-markdown a:visited {
111
+ color: var(--vscode-textLink-foreground);
112
+ }
113
+
114
+ .chat-input-notification .chat-input-notification-title-markdown a:hover,
115
+ .chat-input-notification .chat-input-notification-title-markdown a:active {
116
+ color: var(--vscode-textLink-activeForeground);
117
+ }
118
+
109
119
  .chat-input-notification .chat-input-notification-title-markdown code {
110
120
  font-family: var(--monaco-monospace-font);
111
- font-size: 11px;
121
+ font-size: var(--vscode-agents-fontSize-body2);
112
122
  padding: 0 3px;
113
123
  border-radius: 3px;
114
124
  background: var(--vscode-textCodeBlock-background);
@@ -125,8 +135,8 @@
125
135
 
126
136
  /* Description */
127
137
  .chat-input-notification .chat-input-notification-description {
128
- font-size: var(--vscode-chat-font-size-body-s);
129
- line-height: 1.4;
138
+ font-size: var(--vscode-agents-fontSize-label1);
139
+ line-height: 18px;
130
140
  color: var(--vscode-descriptionForeground);
131
141
  flex: 1 1 auto;
132
142
  min-width: 0;
@@ -146,8 +156,8 @@
146
156
 
147
157
  /* Action buttons */
148
158
  .chat-input-notification .chat-input-notification-action-button {
149
- font-size: var(--vscode-chat-font-size-body-s);
150
- padding: 2px 8px;
159
+ font-size: var(--vscode-agents-fontSize-label2);
160
+ padding: 4px 12px;
151
161
  min-width: unset;
152
162
  width: auto;
153
163
  height: 24px;
@@ -167,8 +177,9 @@
167
177
  opacity: 1;
168
178
  }
169
179
 
170
- /* Dismiss button */
171
- .chat-input-notification .chat-input-notification-dismiss {
180
+ /* Dismiss + mute icon buttons (header, right-aligned) */
181
+ .chat-input-notification .chat-input-notification-dismiss,
182
+ .chat-input-notification .chat-input-notification-mute {
172
183
  display: flex;
173
184
  align-items: center;
174
185
  justify-content: center;
@@ -181,14 +192,19 @@
181
192
  border: none;
182
193
  outline: none;
183
194
  flex-shrink: 0;
195
+ }
196
+
197
+ .chat-input-notification .chat-input-notification-dismiss {
184
198
  margin-left: auto;
185
199
  }
186
200
 
187
- .chat-input-notification .chat-input-notification-dismiss:hover {
201
+ .chat-input-notification .chat-input-notification-dismiss:hover,
202
+ .chat-input-notification .chat-input-notification-mute:hover {
188
203
  background-color: var(--vscode-toolbar-hoverBackground);
189
204
  }
190
205
 
191
- .chat-input-notification .chat-input-notification-dismiss:focus-visible {
206
+ .chat-input-notification .chat-input-notification-dismiss:focus-visible,
207
+ .chat-input-notification .chat-input-notification-mute:focus-visible {
192
208
  outline: 1px solid var(--vscode-focusBorder);
193
209
  outline-offset: -1px;
194
210
  }
@@ -20,6 +20,8 @@ export interface IModePickerDelegate {
20
20
  readonly currentMode: IObservable<IChatMode>;
21
21
  readonly currentChatModes: IObservable<IChatModes>;
22
22
  readonly sessionResource: () => URI | undefined;
23
+ /** Direct mode-change callback for hosts without a registered IChatWidget (bypasses ToggleAgentModeActionId). */
24
+ readonly setMode?: (mode: IChatMode) => void;
23
25
  /**
24
26
  * When set, the mode picker will show custom agents whose target matches this value.
25
27
  * Custom agents without a target are always shown in all session types. If no agents match the target, shows a default "Agent" option.
@@ -36,3 +38,4 @@ export declare class ModePickerActionItem extends ChatInputPickerActionViewItem
36
38
  render(container: HTMLElement): void;
37
39
  protected renderLabel(element: HTMLElement): IDisposable | null;
38
40
  }
41
+ export declare function isModeConsideredBuiltIn(mode: IChatMode, productService: IProductService): boolean;
@@ -36,8 +36,6 @@ const builtinDefaultIcon = mode => {
36
36
  switch (mode.name.get().toLowerCase()) {
37
37
  case "ask":
38
38
  return Codicon.ask;
39
- case "edit":
40
- return Codicon.edit;
41
39
  case "plan":
42
40
  return Codicon.tasklist;
43
41
  default:
@@ -66,15 +64,15 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
66
64
  });
67
65
  const getCustomAgentTarget = () => delegate.customAgentTarget?.() ?? Target.Undefined;
68
66
  const builtInCategory = {
69
- label: ( localize(7769, "Built-In")),
67
+ label: ( localize(8349, "Built-In")),
70
68
  order: 0
71
69
  };
72
70
  const customCategory = {
73
- label: ( localize(7770, "Custom")),
71
+ label: ( localize(8350, "Custom")),
74
72
  order: 1
75
73
  };
76
74
  const policyDisabledCategory = {
77
- label: ( localize(7771, "Managed by your organization")),
75
+ label: ( localize(8351, "Managed by your organization")),
78
76
  order: 999,
79
77
  showHeader: true
80
78
  };
@@ -89,11 +87,11 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
89
87
  if (mode.source?.storage === PromptsStorage.extension) {
90
88
  icon = Codicon.file;
91
89
  id = `viewAgent:${mode.id}`;
92
- label = ( localize(7772, "View {0} agent", mode.label.get()));
90
+ label = ( localize(8352, "View {0} agent", mode.label.get()));
93
91
  } else {
94
92
  icon = Codicon.edit;
95
93
  id = `editAgent:${mode.id}`;
96
- label = ( localize(7773, "Edit {0} agent", mode.label.get()));
94
+ label = ( localize(8353, "Edit {0} agent", mode.label.get()));
97
95
  }
98
96
  const modeResource = mode.uri;
99
97
  toolbarActions.push({
@@ -125,6 +123,13 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
125
123
  if (isDisabledViaPolicy) {
126
124
  return;
127
125
  }
126
+ if (this.delegate.setMode && !this.delegate.sessionResource()) {
127
+ this.delegate.setMode(mode);
128
+ if (this.element) {
129
+ this.renderLabel(this.element);
130
+ }
131
+ return;
132
+ }
128
133
  const result = await commandService.executeCommand(ToggleAgentModeActionId, {
129
134
  modeId: mode.id,
130
135
  sessionResource: this.delegate.sessionResource()
@@ -308,12 +313,8 @@ function isModeConsideredBuiltIn(mode, productService) {
308
313
  return !isOrganizationPromptFile(modeUri, mode.source.extensionId, productService);
309
314
  }
310
315
  function shouldShowBuiltInMode(mode, assignments, agentModeDisabledViaPolicy) {
311
- if (mode.id === ChatMode.Edit.id || mode.name.get().toLowerCase() === "edit") {
312
- if (mode.id === ChatMode.Edit.id) {
313
- return agentModeDisabledViaPolicy;
314
- } else {
315
- return !agentModeDisabledViaPolicy;
316
- }
316
+ if (mode.id === ChatMode.Edit.id) {
317
+ return agentModeDisabledViaPolicy;
317
318
  }
318
319
  if (mode.id === ChatMode.Ask.id || mode.name.get().toLowerCase() === "ask") {
319
320
  if (mode.id === ChatMode.Ask.id) {
@@ -325,4 +326,4 @@ function shouldShowBuiltInMode(mode, assignments, agentModeDisabledViaPolicy) {
325
326
  return true;
326
327
  }
327
328
 
328
- export { ModePickerActionItem };
329
+ export { ModePickerActionItem, isModeConsideredBuiltIn };