@codingame/monaco-vscode-katex-common 34.1.3 → 35.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 (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
@@ -9,7 +9,7 @@ import { BaseActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/base/
9
9
  import { Delayer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
10
10
  import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
11
11
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
12
- import { Disposable, DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
12
+ import { Disposable, DisposableStore, MutableDisposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
13
13
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
14
14
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
15
15
  import { IAgentHostService } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/agentService.service';
@@ -19,12 +19,17 @@ import { ActionType } from '@codingame/monaco-vscode-api/vscode/vs/platform/agen
19
19
  import { StateComponents } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState';
20
20
  import { ActionListItemKind } from '@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionList';
21
21
  import { IActionWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service';
22
+ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
22
23
  import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
24
+ import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
25
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
23
26
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
24
27
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
25
- import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
28
+ import { ChatConfiguration, ChatPermissionLevel, isChatPermissionLevel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
29
+ import { maybeConfirmElevatedPermissionLevel } from '../../../common/chatPermissionWarnings.js';
26
30
  import { isUntitledChatSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
27
31
  import { IAgentHostSessionWorkingDirectoryResolver } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.service';
32
+ import { IAgentHostNewSessionFolderService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.service';
28
33
  import { IAgentHostUntitledProvisionalSessionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.service';
29
34
  import { toAgentHostBackendSessionUri } from './agentHostSessionUri.js';
30
35
 
@@ -52,32 +57,55 @@ function getConfigIcon(property, value) {
52
57
  }
53
58
  return Codicon.shield;
54
59
  }
60
+ if (property === ClaudeSessionConfigKey.PermissionMode && typeof value === "string") {
61
+ switch (value) {
62
+ case "default":
63
+ return Codicon.shield;
64
+ case "acceptEdits":
65
+ return Codicon.edit;
66
+ case "plan":
67
+ return Codicon.lightbulb;
68
+ case "auto":
69
+ return Codicon.sparkle;
70
+ case "bypassPermissions":
71
+ return Codicon.warning;
72
+ }
73
+ }
55
74
  return undefined;
56
75
  }
57
76
  function isAutoApprovePolicyRestricted(configurationService) {
58
77
  return configurationService.inspect(ChatConfiguration.GlobalAutoApprove).policyValue === false;
59
78
  }
60
79
  function normalizeConfigValue(property, value, policyRestricted) {
61
- if (property === SessionConfigKey.AutoApprove && policyRestricted && (value === "autoApprove" || value === "autopilot")) {
80
+ if (property === SessionConfigKey.AutoApprove && policyRestricted && value !== "default") {
62
81
  return "default";
63
82
  }
64
83
  return value;
65
84
  }
66
85
  function toActionItems(property, items, currentValue, policyRestricted = false) {
67
- return (items.map(item => ({
68
- kind: ActionListItemKind.Action,
69
- label: item.label,
70
- description: item.description,
71
- group: {
72
- title: "",
73
- icon: getConfigIcon(property, item.value)
74
- },
75
- disabled: policyRestricted && property === SessionConfigKey.AutoApprove && (item.value === "autoApprove" || item.value === "autopilot"),
76
- item: {
77
- ...item,
78
- label: isSelectedValue(currentValue, item.value) ? `${item.label} ${( localize(5269, "(Selected)"))}` : item.label
79
- }
80
- })));
86
+ return ( items.map(item => {
87
+ const disabled = policyRestricted && property === SessionConfigKey.AutoApprove && (item.value === "autoApprove" || item.value === "autopilot");
88
+ const hover = getConfigPickerItemHover(property, item, disabled);
89
+ return {
90
+ kind: ActionListItemKind.Action,
91
+ label: item.label,
92
+ detail: item.description,
93
+ group: {
94
+ title: "",
95
+ icon: getConfigIcon(property, item.value)
96
+ },
97
+ disabled,
98
+ ...(hover ? {
99
+ hover: {
100
+ content: hover
101
+ }
102
+ } : {}),
103
+ item: {
104
+ ...item,
105
+ checked: isSelectedValue(currentValue, item.value)
106
+ }
107
+ };
108
+ }));
81
109
  }
82
110
  function isSelectedValue(currentValue, itemValue) {
83
111
  if (typeof currentValue === "boolean") {
@@ -85,6 +113,52 @@ function isSelectedValue(currentValue, itemValue) {
85
113
  }
86
114
  return itemValue === currentValue;
87
115
  }
116
+ function getAutoApproveHover(value, fallback) {
117
+ switch (value) {
118
+ case ChatPermissionLevel.Default:
119
+ return localize(
120
+ 5491,
121
+ "Copilot asks before running tools unless your configured settings allow the tool."
122
+ );
123
+ case ChatPermissionLevel.AutoApprove:
124
+ return localize(5492, "Copilot runs all tools without asking for approval.");
125
+ case ChatPermissionLevel.Autopilot:
126
+ return localize(
127
+ 5493,
128
+ "Copilot runs tools without asking for approval and continues until the task is done."
129
+ );
130
+ }
131
+ return fallback ?? ( localize(
132
+ 5494,
133
+ "Controls whether the agent asks before running tools in this session."
134
+ ));
135
+ }
136
+ function getEnumValueDescription(schema, value) {
137
+ if (typeof value !== "string") {
138
+ return undefined;
139
+ }
140
+ const index = schema.enum?.indexOf(value) ?? -1;
141
+ return index >= 0 ? schema.enumDescriptions?.[index] : undefined;
142
+ }
143
+ function getConfigPickerTriggerHover(property, schema, value, isReadOnly) {
144
+ if (property !== SessionConfigKey.AutoApprove) {
145
+ return schema.description ?? schema.title;
146
+ }
147
+ const hover = getAutoApproveHover(value, getEnumValueDescription(schema, value));
148
+ if (isReadOnly) {
149
+ return localize(5495, "{0} Read-only.", hover);
150
+ }
151
+ return hover;
152
+ }
153
+ function getConfigPickerItemHover(property, item, disabled) {
154
+ if (disabled) {
155
+ return localize(5496, "Disabled by enterprise policy");
156
+ }
157
+ if (property === SessionConfigKey.AutoApprove) {
158
+ return getAutoApproveHover(item.value, item.description);
159
+ }
160
+ return undefined;
161
+ }
88
162
  function renderPickerTrigger(slot, disabled, disposables, onOpen) {
89
163
  const trigger = append(slot, disabled ? $("span.action-label") : $("a.action-label"));
90
164
  if (disabled) {
@@ -117,7 +191,7 @@ function isWellKnownAutoApproveSchema(schema) {
117
191
  if (!schema.enum.includes("default")) {
118
192
  return false;
119
193
  }
120
- return schema.enum.every(value => ( KNOWN_AUTO_APPROVE_VALUES.has(value)));
194
+ return schema.enum.every(value => typeof value === "string" && ( KNOWN_AUTO_APPROVE_VALUES.has(value)));
121
195
  }
122
196
  const WELL_KNOWN_PICKER_PROPERTIES = ( new Set([
123
197
  SessionConfigKey.Mode,
@@ -133,32 +207,44 @@ function isClaimedByDedicatedPicker(property, schema) {
133
207
  }
134
208
  return ( WELL_KNOWN_PICKER_PROPERTIES.has(property));
135
209
  }
210
+ function resolveConfigChipValue(isUntitled, serverValue, overlayValue, schemaDefault) {
211
+ const preferred = isUntitled ? (overlayValue ?? serverValue) : (serverValue ?? overlayValue);
212
+ return preferred ?? schemaDefault;
213
+ }
136
214
  let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable {
137
215
  constructor(
138
216
  _widget,
139
217
  _property,
140
218
  _agentHostService,
141
219
  _actionWidgetService,
220
+ _hoverService,
142
221
  _openerService,
143
222
  _workingDirectoryResolver,
144
223
  _workspaceContextService,
145
224
  _provisional,
146
- _configurationService
225
+ _configurationService,
226
+ _newSessionFolderService,
227
+ _dialogService,
228
+ _storageService
147
229
  ) {
148
230
  super();
149
231
  this._widget = _widget;
150
232
  this._property = _property;
151
233
  this._agentHostService = _agentHostService;
152
234
  this._actionWidgetService = _actionWidgetService;
235
+ this._hoverService = _hoverService;
153
236
  this._openerService = _openerService;
154
237
  this._workingDirectoryResolver = _workingDirectoryResolver;
155
238
  this._workspaceContextService = _workspaceContextService;
156
239
  this._provisional = _provisional;
157
240
  this._configurationService = _configurationService;
241
+ this._newSessionFolderService = _newSessionFolderService;
242
+ this._dialogService = _dialogService;
243
+ this._storageService = _storageService;
244
+ this._initialResolveCts = this._registerInitialResolveCts();
158
245
  this._renderDisposables = this._register(( new DisposableStore()));
159
246
  this._filterDelayer = this._register(( new Delayer(200)));
160
247
  this._subRef = this._register(( new MutableDisposable()));
161
- this._initialResolveCts = this._register(( new MutableDisposable()));
162
248
  this._register(this._widget.onDidChangeViewModel(() => {
163
249
  this._reattach();
164
250
  }));
@@ -170,6 +256,14 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
170
256
  }));
171
257
  this._reattach();
172
258
  }
259
+ _registerInitialResolveCts() {
260
+ const cts = ( new MutableDisposable());
261
+ this._register(toDisposable(() => {
262
+ this._container = undefined;
263
+ this._cancelInitialResolve();
264
+ }));
265
+ return this._register(cts);
266
+ }
173
267
  render(container) {
174
268
  this._container = container;
175
269
  container.classList.add("agent-host-chat-input-picker-host");
@@ -236,7 +330,7 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
236
330
  } catch {}
237
331
  }
238
332
  _renderChip() {
239
- if (!this._container) {
333
+ if (!this._container || this._renderDisposables.isDisposed) {
240
334
  return;
241
335
  }
242
336
  this._renderDisposables.clear();
@@ -262,6 +356,12 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
262
356
  });
263
357
  const isReadOnly = !!ctx.schema.readOnly || (isStartedSession && ctx.schema.sessionMutable === false);
264
358
  const trigger = renderPickerTrigger(slot, isReadOnly, this._renderDisposables, () => this._showPicker(trigger));
359
+ const tooltip = getConfigPickerTriggerHover(this._property, ctx.schema, ctx.value, isReadOnly);
360
+ if (tooltip) {
361
+ this._renderDisposables.add(this._hoverService.setupDelayedHover(trigger, {
362
+ content: tooltip
363
+ }));
364
+ }
265
365
  this._renderTrigger(trigger, ctx.schema, ctx.value, isReadOnly);
266
366
  }
267
367
  _renderTrigger(trigger, schema, value, isReadOnly) {
@@ -277,11 +377,11 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
277
377
  const label = this._labelFor(schema, value);
278
378
  const labelSpan = append(trigger, $("span.agent-host-chat-input-picker-label"));
279
379
  labelSpan.textContent = label;
280
- trigger.setAttribute("aria-label", isReadOnly ? ( localize(5270, "{0}: {1}, Read-Only", schema.title, label)) : ( localize(5271, "{0}: {1}", schema.title, label)));
380
+ trigger.setAttribute("aria-label", isReadOnly ? ( localize(5497, "{0}: {1}, Read-Only", schema.title, label)) : ( localize(5498, "{0}: {1}", schema.title, label)));
281
381
  }
282
382
  _labelFor(schema, value) {
283
383
  if (schema.type === "boolean") {
284
- return value === true ? ( localize(5272, "On")) : ( localize(5273, "Off"));
384
+ return value === true ? ( localize(5499, "On")) : ( localize(5500, "Off"));
285
385
  }
286
386
  if (typeof value === "string") {
287
387
  const index = schema.enum?.indexOf(value) ?? -1;
@@ -305,7 +405,14 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
305
405
  if (!schema) {
306
406
  return undefined;
307
407
  }
308
- const value = overlay?.values?.[this._property] ?? state.config?.values?.[this._property] ?? schema.default;
408
+ const serverValue = state.config?.values?.[this._property];
409
+ const overlayValue = overlay?.values?.[this._property];
410
+ const value = resolveConfigChipValue(
411
+ isUntitledChatSession(sessionResource),
412
+ serverValue,
413
+ overlayValue,
414
+ schema.default
415
+ );
309
416
  return {
310
417
  backendSession: this._subRef.value.backendSession,
311
418
  schema,
@@ -346,16 +453,21 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
346
453
  const policyRestricted = isAutoApprovePolicyRestricted(this._configurationService);
347
454
  const actionItems = toActionItems(this._property, items, currentValue, policyRestricted);
348
455
  if (this._property === ClaudeSessionConfigKey.PermissionMode || this._property === SessionConfigKey.AutoApprove) {
456
+ const learnMoreLabel = ( localize(5501, "Learn more about permissions"));
457
+ actionItems.push({
458
+ kind: ActionListItemKind.Separator,
459
+ label: ""
460
+ });
349
461
  actionItems.push({
350
462
  kind: ActionListItemKind.Action,
351
- label: ( localize(5274, "Learn more about permissions")),
463
+ label: learnMoreLabel,
352
464
  group: {
353
465
  title: "",
354
466
  icon: Codicon.blank
355
467
  },
356
468
  item: {
357
469
  value: LEARN_MORE_VALUE,
358
- label: ( localize(5274, "Learn more about permissions"))
470
+ label: learnMoreLabel
359
471
  }
360
472
  });
361
473
  }
@@ -366,7 +478,7 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
366
478
  void this._openerService.open(( URI.parse(PERMISSION_MODE_LEARN_MORE_URL)));
367
479
  return;
368
480
  }
369
- void this._setValue(ctx.backendSession, item.value);
481
+ void this._confirmAndSetValue(ctx.backendSession, item.value);
370
482
  },
371
483
  onFilter: ctx.schema.enumDynamic ? query => this._filterDelayer.trigger(async () => {
372
484
  const refreshed = this._readContext();
@@ -392,11 +504,11 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
392
504
  [],
393
505
  {
394
506
  getAriaLabel: item => item.label ?? "",
395
- getWidgetAriaLabel: () => ( localize(5275, "{0} Picker", ctx.schema.title))
507
+ getWidgetAriaLabel: () => ( localize(5502, "{0} Picker", ctx.schema.title))
396
508
  },
397
509
  actionItems.length > FILTER_THRESHOLD || ctx.schema.enumDynamic ? {
398
510
  showFilter: true,
399
- filterPlaceholder: ( localize(5276, "Filter..."))
511
+ filterPlaceholder: ( localize(5503, "Filter..."))
400
512
  } : undefined
401
513
  );
402
514
  }
@@ -404,10 +516,10 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
404
516
  if (schema.type === "boolean") {
405
517
  return [{
406
518
  value: "true",
407
- label: ( localize(5277, "On"))
519
+ label: ( localize(5504, "On"))
408
520
  }, {
409
521
  value: "false",
410
- label: ( localize(5278, "Off"))
522
+ label: ( localize(5505, "Off"))
411
523
  }];
412
524
  }
413
525
  const sessionResource = this._widget.viewModel?.sessionResource;
@@ -425,8 +537,8 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
425
537
  } catch {}
426
538
  }
427
539
  return ( (schema.enum ?? []).map((value, index) => ({
428
- value,
429
- label: schema.enumLabels?.[index] ?? value,
540
+ value: String(value),
541
+ label: schema.enumLabels?.[index] ?? String(value),
430
542
  description: schema.enumDescriptions?.[index]
431
543
  })));
432
544
  }
@@ -440,11 +552,11 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
440
552
  _readWorkingDirectory() {
441
553
  const state = this._subRef.value?.sub.value;
442
554
  if (state && !(state instanceof Error)) {
443
- const cwd = state.summary.workingDirectory;
555
+ const cwd = state.workingDirectory;
444
556
  return typeof cwd === "string" ? ( URI.parse(cwd)) : cwd;
445
557
  }
446
558
  const sessionResource = this._widget.viewModel?.sessionResource;
447
- return (sessionResource && this._workingDirectoryResolver.resolve(sessionResource)) ?? this._workspaceContextService.getWorkspace().folders[0]?.uri;
559
+ return (sessionResource && this._newSessionFolderService.getFolder(sessionResource)) ?? (sessionResource && this._workingDirectoryResolver.resolve(sessionResource)) ?? this._newSessionFolderService.getDefaultFolder() ?? this._workspaceContextService.getWorkspace().folders[0]?.uri;
448
560
  }
449
561
  _readCurrentValues() {
450
562
  const sessionResource = this._widget.viewModel?.sessionResource;
@@ -458,6 +570,20 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
458
570
  }
459
571
  return overlay?.values ?? this._initialResolved?.result.values;
460
572
  }
573
+ async _confirmAndSetValue(backendSession, value) {
574
+ if (this._property === SessionConfigKey.AutoApprove) {
575
+ const levelToConfirm = isChatPermissionLevel(value) ? value : (value !== ChatPermissionLevel.Default ? ChatPermissionLevel.AutoApprove : undefined);
576
+ if (levelToConfirm) {
577
+ const confirmed = await maybeConfirmElevatedPermissionLevel(levelToConfirm, this._dialogService, this._storageService, {
578
+ defaultSettingKey: ChatConfiguration.DefaultConfiguration
579
+ });
580
+ if (!confirmed) {
581
+ return;
582
+ }
583
+ }
584
+ }
585
+ await this._setValue(backendSession, value);
586
+ }
461
587
  async _setValue(backendSession, value) {
462
588
  const sessionResource = this._widget.viewModel?.sessionResource;
463
589
  if (!sessionResource) {
@@ -499,7 +625,7 @@ let AgentHostChatInputPicker = class AgentHostChatInputPicker extends Disposable
499
625
  );
500
626
  }
501
627
  };
502
- AgentHostChatInputPicker = ( __decorate([( __param(2, IAgentHostService)), ( __param(3, IActionWidgetService)), ( __param(4, IOpenerService)), ( __param(5, IAgentHostSessionWorkingDirectoryResolver)), ( __param(6, IWorkspaceContextService)), ( __param(7, IAgentHostUntitledProvisionalSessionService)), ( __param(8, IConfigurationService))], AgentHostChatInputPicker));
628
+ AgentHostChatInputPicker = ( __decorate([( __param(2, IAgentHostService)), ( __param(3, IActionWidgetService)), ( __param(4, IHoverService)), ( __param(5, IOpenerService)), ( __param(6, IAgentHostSessionWorkingDirectoryResolver)), ( __param(7, IWorkspaceContextService)), ( __param(8, IAgentHostUntitledProvisionalSessionService)), ( __param(9, IConfigurationService)), ( __param(10, IAgentHostNewSessionFolderService)), ( __param(11, IDialogService)), ( __param(12, IStorageService))], AgentHostChatInputPicker));
503
629
  class AgentHostChatInputPickerActionViewItem extends BaseActionViewItem {
504
630
  constructor(action, _picker) {
505
631
  super(undefined, action);
@@ -511,4 +637,4 @@ class AgentHostChatInputPickerActionViewItem extends BaseActionViewItem {
511
637
  }
512
638
  }
513
639
 
514
- export { AgentHostChatInputPicker, AgentHostChatInputPickerActionViewItem, WELL_KNOWN_PICKER_PROPERTIES, isClaimedByDedicatedPicker, isWellKnownAutoApproveSchema };
640
+ export { AgentHostChatInputPicker, AgentHostChatInputPickerActionViewItem, WELL_KNOWN_PICKER_PROPERTIES, getConfigPickerItemHover, getConfigPickerTriggerHover, isClaimedByDedicatedPicker, isWellKnownAutoApproveSchema, resolveConfigChipValue };
@@ -0,0 +1,47 @@
1
+ import { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { MenuItemAction } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
3
+ import { IActionWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service";
4
+ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
5
+ import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
6
+ import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
7
+ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
8
+ import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
9
+ import { ISCMService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/common/scm.service";
10
+ import type { IChatWidget } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
11
+ import { ChatInputPickerActionViewItem, IChatInputPickerOptions } from "../../widget/input/chatInputPickerActionItem.js";
12
+ import { IAgentHostNewSessionFolderService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.service";
13
+ /**
14
+ * Folder picker for agent-host sessions in multi-root windows. An agent-host
15
+ * session runs in a single working directory chosen at creation time, so before
16
+ * the session starts this chip lets the user pick which root folder the session
17
+ * will run in. The choice is recorded in {@link IAgentHostNewSessionFolderService},
18
+ * keyed by the (untitled) chat session resource, where the working-directory
19
+ * resolution sites pick it up. Once the session has started its working
20
+ * directory is fixed, so the chip stays visible (showing the chosen folder)
21
+ * but is disabled via the action's precondition.
22
+ */
23
+ export declare class AgentHostFolderPickerActionItem extends ChatInputPickerActionViewItem {
24
+ private readonly _widget;
25
+ private readonly _workspaceContextService;
26
+ private readonly _newSessionFolderService;
27
+ private readonly _scmService;
28
+ private readonly _hoverService;
29
+ private _hoverSetup;
30
+ constructor(action: MenuItemAction, _widget: IChatWidget, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, telemetryService: ITelemetryService, _workspaceContextService: IWorkspaceContextService, _newSessionFolderService: IAgentHostNewSessionFolderService, _scmService: ISCMService, _hoverService: IHoverService);
31
+ private _sessionResource;
32
+ private _selectedFolder;
33
+ protected renderLabel(element: HTMLElement): IDisposable | null;
34
+ render(container: HTMLElement): void;
35
+ /**
36
+ * Builds the hover content for the folder chip: the full folder path and,
37
+ * when the folder maps to a git repository, the current branch name.
38
+ * Returns `undefined` when no folder is selected so no hover is shown.
39
+ */
40
+ private _buildHoverContent;
41
+ /**
42
+ * Resolves the current git branch name for the given folder via the SCM
43
+ * service, or `undefined` when the folder has no associated repository or
44
+ * branch information.
45
+ */
46
+ private _branchName;
47
+ }
@@ -0,0 +1,172 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { reset, $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
+ import { renderLabelWithIcons } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabels';
5
+ import { getDefaultHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
6
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
7
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
8
+ import { basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
9
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
10
+ import { IActionWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service';
11
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
12
+ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
13
+ import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
14
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
15
+ import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
16
+ import { ISCMService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/common/scm.service';
17
+ import { ChatInputPickerActionViewItem } from '../../widget/input/chatInputPickerActionItem.js';
18
+ import { IAgentHostNewSessionFolderService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.service';
19
+
20
+ let AgentHostFolderPickerActionItem = class AgentHostFolderPickerActionItem extends ChatInputPickerActionViewItem {
21
+ constructor(
22
+ action,
23
+ _widget,
24
+ pickerOptions,
25
+ actionWidgetService,
26
+ keybindingService,
27
+ contextKeyService,
28
+ telemetryService,
29
+ _workspaceContextService,
30
+ _newSessionFolderService,
31
+ _scmService,
32
+ _hoverService
33
+ ) {
34
+ const actionProvider = {
35
+ getActions: () => {
36
+ const selected = this._selectedFolder();
37
+ return ( this._workspaceContextService.getWorkspace().folders.map(folder => ({
38
+ ...action,
39
+ id: `agentHostFolder.${( folder.uri.toString())}`,
40
+ label: folder.name,
41
+ checked: selected?.toString() === ( folder.uri.toString()),
42
+ icon: {
43
+ id: "folder"
44
+ },
45
+ enabled: true,
46
+ tooltip: folder.uri.fsPath,
47
+ run: async () => {
48
+ const sessionResource = this._sessionResource();
49
+ if (sessionResource) {
50
+ this._newSessionFolderService.setFolder(sessionResource, folder.uri);
51
+ }
52
+ if (this.element) {
53
+ this.renderLabel(this.element);
54
+ }
55
+ }
56
+ })));
57
+ }
58
+ };
59
+ const actionBarActionProvider = {
60
+ getActions: () => []
61
+ };
62
+ const folderPickerOptions = {
63
+ actionProvider,
64
+ actionBarActionProvider,
65
+ showItemKeybindings: false,
66
+ reporter: {
67
+ id: "AgentHostFolderPicker",
68
+ name: "AgentHostFolderPicker",
69
+ includeOptions: false
70
+ }
71
+ };
72
+ super(
73
+ action,
74
+ folderPickerOptions,
75
+ pickerOptions,
76
+ actionWidgetService,
77
+ keybindingService,
78
+ contextKeyService,
79
+ telemetryService
80
+ );
81
+ this._widget = _widget;
82
+ this._workspaceContextService = _workspaceContextService;
83
+ this._newSessionFolderService = _newSessionFolderService;
84
+ this._scmService = _scmService;
85
+ this._hoverService = _hoverService;
86
+ this._hoverSetup = false;
87
+ this._register(this._newSessionFolderService.onDidChangeFolder(() => {
88
+ if (this.element) {
89
+ this.renderLabel(this.element);
90
+ }
91
+ }));
92
+ this._register(this._workspaceContextService.onDidChangeWorkspaceFolders(() => {
93
+ if (this.element) {
94
+ this.renderLabel(this.element);
95
+ }
96
+ }));
97
+ this._register(this._widget.onDidChangeViewModel(() => {
98
+ if (this.element) {
99
+ this.renderLabel(this.element);
100
+ }
101
+ }));
102
+ }
103
+ _sessionResource() {
104
+ return this._widget.viewModel?.sessionResource;
105
+ }
106
+ _selectedFolder() {
107
+ const folders = this._workspaceContextService.getWorkspace().folders;
108
+ const sessionResource = this._sessionResource();
109
+ const stored = sessionResource ? this._newSessionFolderService.getFolder(sessionResource) : undefined;
110
+ if (stored) {
111
+ if (( folders.some(folder => ( folder.uri.toString()) === ( stored.toString())))) {
112
+ return stored;
113
+ }
114
+ this._newSessionFolderService.clear(sessionResource);
115
+ }
116
+ return this._newSessionFolderService.getDefaultFolder() ?? folders[0]?.uri;
117
+ }
118
+ renderLabel(element) {
119
+ this.setAriaLabelAttributes(element);
120
+ const selected = this._selectedFolder();
121
+ const folder = selected && this._workspaceContextService.getWorkspace().folders.find(f => ( f.uri.toString()) === ( selected.toString()));
122
+ const label = folder ? folder.name : (selected ? basename(selected) : ( localize(5506, "Folder")));
123
+ reset(
124
+ element,
125
+ ...renderLabelWithIcons(`$(folder)`),
126
+ $("span.chat-input-picker-label", undefined, label)
127
+ );
128
+ return null;
129
+ }
130
+ render(container) {
131
+ super.render(container);
132
+ if (this.element && !this._hoverSetup) {
133
+ this._hoverSetup = true;
134
+ this._register(this._hoverService.setupManagedHover(
135
+ getDefaultHoverDelegate("element"),
136
+ this.element,
137
+ () => this._buildHoverContent()
138
+ ));
139
+ }
140
+ }
141
+ _buildHoverContent() {
142
+ const selected = this._selectedFolder();
143
+ if (!selected) {
144
+ return undefined;
145
+ }
146
+ const md = ( new MarkdownString("", {
147
+ supportThemeIcons: true
148
+ }));
149
+ const fallbackLines = [];
150
+ md.appendMarkdown(`$(${Codicon.folder.id}) `);
151
+ md.appendText(selected.fsPath);
152
+ fallbackLines.push(selected.fsPath);
153
+ const branch = this._branchName(selected);
154
+ if (branch) {
155
+ md.appendMarkdown("\n\n$(git-branch) ");
156
+ md.appendText(branch);
157
+ fallbackLines.push(branch);
158
+ }
159
+ return {
160
+ markdown: md,
161
+ markdownNotSupportedFallback: fallbackLines.join("\n")
162
+ };
163
+ }
164
+ _branchName(folderUri) {
165
+ const repository = this._scmService.getRepository(folderUri);
166
+ const historyProvider = repository?.provider.historyProvider.get();
167
+ return historyProvider?.historyItemRef.get()?.name.trim() || undefined;
168
+ }
169
+ };
170
+ AgentHostFolderPickerActionItem = ( __decorate([( __param(3, IActionWidgetService)), ( __param(4, IKeybindingService)), ( __param(5, IContextKeyService)), ( __param(6, ITelemetryService)), ( __param(7, IWorkspaceContextService)), ( __param(8, IAgentHostNewSessionFolderService)), ( __param(9, ISCMService)), ( __param(10, IHoverService))], AgentHostFolderPickerActionItem));
171
+
172
+ export { AgentHostFolderPickerActionItem };
@@ -3,6 +3,7 @@ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
3
3
  import { IAgentHostService } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/agentService.service";
4
4
  import type { IChatWidget } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
5
5
  import { IAgentHostSessionWorkingDirectoryResolver } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.service";
6
+ import { IAgentHostNewSessionFolderService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.service";
6
7
  import { IAgentHostUntitledProvisionalSessionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.service";
7
8
  import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
8
9
  /**
@@ -22,6 +23,7 @@ export declare class AgentHostGenericConfigChips extends Disposable {
22
23
  private readonly _provisional;
23
24
  private readonly _workingDirectoryResolver;
24
25
  private readonly _workspaceContextService;
26
+ private readonly _newSessionFolderService;
25
27
  private _container;
26
28
  private readonly _chips;
27
29
  /**
@@ -32,7 +34,7 @@ export declare class AgentHostGenericConfigChips extends Disposable {
32
34
  private readonly _subRef;
33
35
  private _initialResolved;
34
36
  private readonly _initialResolveCts;
35
- constructor(_widget: IChatWidget, _instantiationService: IInstantiationService, _agentHostService: IAgentHostService, _provisional: IAgentHostUntitledProvisionalSessionService, _workingDirectoryResolver: IAgentHostSessionWorkingDirectoryResolver, _workspaceContextService: IWorkspaceContextService);
37
+ constructor(_widget: IChatWidget, _instantiationService: IInstantiationService, _agentHostService: IAgentHostService, _provisional: IAgentHostUntitledProvisionalSessionService, _workingDirectoryResolver: IAgentHostSessionWorkingDirectoryResolver, _workspaceContextService: IWorkspaceContextService, _newSessionFolderService: IAgentHostNewSessionFolderService);
36
38
  render(container: HTMLElement): void;
37
39
  private _reattach;
38
40
  private _cancelInitialResolve;