@codingame/monaco-vscode-chat-service-override 34.1.2 → 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 (427) hide show
  1. package/index.js +38 -0
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/browser/agentHost.config.contribution.d.ts +1 -0
  4. package/vscode/src/vs/platform/agentHost/browser/agentHost.config.contribution.js +40 -0
  5. package/vscode/src/vs/platform/agentHost/browser/agentHostConnectionsService.d.ts +27 -0
  6. package/vscode/src/vs/platform/agentHost/browser/agentHostConnectionsService.js +91 -0
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +20 -4
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +148 -15
  9. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +1 -0
  10. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +9 -1
  11. package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.js +57 -3
  12. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +10 -14
  13. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +29 -8
  14. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +109 -2
  15. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +207 -21
  16. package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +362 -37
  17. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +698 -91
  18. package/vscode/src/vs/platform/agentHost/common/agentService.js +46 -3
  19. package/vscode/src/vs/platform/agentHost/common/customAgents.js +1 -0
  20. package/vscode/src/vs/platform/agentHost/common/resourceReadLogging.d.ts +1 -0
  21. package/vscode/src/vs/platform/agentHost/common/resourceReadLogging.js +26 -0
  22. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.d.ts +5 -5
  23. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +17 -17
  24. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +96 -12
  25. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +226 -19
  26. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/reducer.d.ts +18 -0
  27. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/reducer.js +89 -0
  28. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.js +10 -0
  29. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/reducer.d.ts +6 -0
  30. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/reducer.js +400 -0
  31. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/reducer.js +129 -446
  32. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.d.ts +2 -2
  33. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +1 -1
  34. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +1 -1
  35. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +35 -25
  36. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +7 -1
  37. package/vscode/src/vs/{workbench/contrib → platform}/browserView/common/browserChatToolReferenceNames.d.ts +4 -0
  38. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +1 -1
  39. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +1 -0
  40. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.d.ts +0 -6
  41. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.js +5 -18
  42. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.d.ts +52 -3
  43. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.js +212 -34
  44. package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.js +3 -4
  45. package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.js +11 -10
  46. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +13 -6
  47. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +6 -1
  48. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.d.ts +2 -0
  49. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.js +399 -0
  50. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.d.ts +20 -0
  51. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.js +85 -0
  52. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.d.ts +177 -0
  53. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.js +898 -0
  54. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.d.ts +24 -0
  55. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.js +204 -0
  56. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWindowService.d.ts +61 -0
  57. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWindowService.js +338 -0
  58. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.d.ts +10 -0
  59. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.js +57 -0
  60. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.d.ts +33 -0
  61. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.js +98 -0
  62. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.d.ts +30 -0
  63. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.js +149 -0
  64. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.d.ts +12 -0
  65. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.js +116 -0
  66. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.d.ts +32 -0
  67. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.js +226 -0
  68. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.d.ts +18 -0
  69. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.js +138 -0
  70. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/tokens.d.ts +26 -0
  71. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/tokens.js +25 -0
  72. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/transcriptComponent.d.ts +13 -0
  73. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/transcriptComponent.js +108 -0
  74. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.d.ts +13 -0
  75. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.js +63 -0
  76. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.d.ts +1 -0
  77. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.js +178 -0
  78. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.d.ts +47 -0
  79. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.js +322 -0
  80. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.d.ts +15 -0
  81. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.js +15 -0
  82. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.d.ts +2 -0
  83. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.js +26 -0
  84. package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.d.ts +132 -0
  85. package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.js +237 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  87. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
  88. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +32 -16
  89. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  90. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.d.ts +1 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +71 -60
  92. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClear.js +6 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +15 -15
  95. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  96. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
  97. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +19 -24
  98. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +9 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +14 -5
  101. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  102. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  103. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  104. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +14 -14
  105. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +13 -13
  106. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +66 -52
  107. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  108. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -36
  109. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  110. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
  111. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
  112. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +1 -1
  113. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +128 -13
  114. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +6 -6
  115. package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.js +1 -1
  116. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +10 -10
  117. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  118. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  119. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +1 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +58 -9
  121. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  122. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.d.ts +15 -3
  123. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.js +64 -17
  124. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.d.ts +45 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.js +15 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.d.ts +25 -5
  127. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.js +143 -20
  128. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.js +7 -31
  129. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.d.ts +23 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.js +52 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
  132. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolSetEnablementService.d.ts +47 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolSetEnablementService.js +163 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +26 -3
  135. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +106 -8
  136. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.d.ts +16 -3
  137. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.js +44 -14
  138. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  139. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -59
  140. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  141. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  144. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  145. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  146. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +22 -22
  147. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  148. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  149. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentDisabledInputTipContribution.d.ts +27 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentDisabledInputTipContribution.js +152 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +11 -5
  152. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +9 -36
  154. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +8 -0
  155. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +17 -15
  156. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +143 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +30 -0
  158. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +6 -3
  159. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +3 -1
  160. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +1 -3
  161. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +107 -126
  162. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +46 -46
  163. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +19 -22
  164. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +244 -190
  165. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -0
  166. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +13 -1
  167. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.d.ts +3 -1
  168. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.js +7 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +5 -1
  170. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +47 -28
  171. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +2 -5
  172. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +4 -8
  173. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/automationsListWidget.d.ts +87 -0
  174. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/automationsListWidget.js +772 -0
  175. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +24 -8
  176. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -8
  177. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +1 -7
  178. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
  179. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.d.ts +42 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.js +130 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
  182. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.d.ts +46 -0
  183. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.js +94 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +9 -1
  185. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +421 -201
  186. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +1426 -97
  187. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +1 -1
  188. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +1 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +107 -127
  190. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +29 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +331 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.d.ts +120 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.js +898 -0
  194. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +581 -336
  196. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.d.ts +123 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.js +567 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  199. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.js +168 -84
  200. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.d.ts +183 -2
  201. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +897 -251
  202. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.d.ts +213 -0
  203. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.js +720 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  205. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  206. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  207. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  216. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  217. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  218. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +354 -1
  219. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +9 -2
  220. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  221. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +1 -1
  222. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  223. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  224. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  225. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  226. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +11 -4
  227. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  229. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +4 -4
  230. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +1 -1
  232. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  233. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.d.ts +9 -3
  234. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +55 -8
  235. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  236. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  237. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +18 -1
  238. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +192 -87
  239. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +37 -3
  240. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  241. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  242. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.d.ts +40 -1
  243. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +230 -41
  244. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  245. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.d.ts +30 -0
  246. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.js +29 -0
  247. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -25
  248. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  249. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  250. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +35 -32
  251. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +26 -2
  252. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +56 -32
  253. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
  254. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +0 -1
  255. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +109 -68
  256. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +38 -5
  257. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +175 -50
  258. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +4 -0
  259. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
  260. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
  261. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  262. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  263. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +5 -5
  264. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +5 -5
  265. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  266. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  267. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  268. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  269. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  270. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +4 -5
  271. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +1 -1
  272. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  273. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +32 -3
  274. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +183 -84
  275. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
  276. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +3 -1
  277. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +20 -9
  278. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  279. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  280. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  281. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  282. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolSetsCodeLensProvider.d.ts +1 -0
  283. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolSetsCodeLensProvider.js +109 -0
  284. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  285. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  286. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  287. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  288. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  289. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  290. package/vscode/src/vs/workbench/contrib/chat/browser/tools/clientToolSetsContribution.d.ts +17 -0
  291. package/vscode/src/vs/workbench/contrib/chat/browser/tools/clientToolSetsContribution.js +117 -0
  292. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  293. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +40 -4
  294. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +169 -34
  295. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +7 -7
  296. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +5 -1
  297. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +2 -2
  298. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +8 -8
  299. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +2 -2
  300. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  301. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.d.ts +125 -0
  302. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.js +399 -0
  303. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/ttsPlaybackService.d.ts +34 -0
  304. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/ttsPlaybackService.js +198 -0
  305. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceClientService.d.ts +85 -0
  306. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceClientService.js +504 -0
  307. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.d.ts +321 -0
  308. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.js +2117 -0
  309. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.d.ts +57 -0
  310. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.js +367 -0
  311. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +16 -12
  312. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.d.ts +2 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +68 -18
  314. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +11 -10
  315. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +2 -2
  316. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  317. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  318. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.d.ts +7 -0
  319. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +13 -2
  320. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +23 -5
  321. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +320 -40
  322. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  323. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +80 -4
  324. package/vscode/src/vs/workbench/contrib/chat/common/automations/automation.d.ts +78 -0
  325. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.d.ts +13 -0
  326. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.service.d.ts +11 -0
  327. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.service.js +6 -0
  328. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.service.d.ts +16 -0
  329. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.service.js +6 -0
  330. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.d.ts +46 -0
  331. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.service.d.ts +36 -0
  332. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.service.js +6 -0
  333. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.d.ts +12 -0
  334. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.js +6 -0
  335. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +9 -0
  336. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +6 -0
  337. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +2 -0
  338. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +7 -1
  339. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +28 -0
  340. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +226 -88
  341. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +6 -0
  342. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +8 -3
  343. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +13 -2
  344. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +12 -8
  345. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +5 -0
  346. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +5 -2
  347. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.d.ts +15 -0
  348. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.js +177 -0
  349. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +2 -18
  350. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +78 -136
  351. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +1 -16
  352. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +1 -17
  353. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +2 -0
  354. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +16 -5
  355. package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.d.ts +31 -0
  356. package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.js +122 -0
  357. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +24 -18
  358. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +3 -0
  359. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +113 -10
  360. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  361. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  362. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +10 -0
  363. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +227 -152
  364. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  365. package/vscode/src/vs/workbench/contrib/chat/common/voicePlaybackService.d.ts +26 -0
  366. package/vscode/src/vs/workbench/contrib/chat/common/voicePlaybackService.js +98 -0
  367. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.d.ts +5 -0
  368. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.js +7 -6
  369. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +11 -12
  370. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
  371. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.d.ts +2 -0
  372. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +7 -0
  373. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  374. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  375. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  376. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  380. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  381. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  382. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  383. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +32 -20
  384. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  385. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.d.ts +23 -5
  386. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.js +37 -30
  387. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +7 -0
  388. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +7 -0
  389. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -0
  390. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/largeOutputFileWriter.d.ts +33 -0
  391. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/largeOutputFileWriter.js +71 -0
  392. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +19 -0
  393. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +29 -9
  394. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +7 -20
  395. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +4 -4
  396. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +2 -1
  397. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  398. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  399. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +10 -8
  400. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  401. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +4 -4
  402. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  403. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  404. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +3 -3
  405. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +26 -2
  406. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -3
  407. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +416 -252
  408. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +1 -1
  409. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +3 -2
  410. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +10 -10
  411. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  412. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  413. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  414. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  415. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.d.ts +2 -3
  416. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.js +5 -5
  417. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +6 -2
  418. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +25 -8
  419. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.d.ts +8 -3
  420. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.js +15 -0
  421. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +0 -20
  422. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +0 -77
  423. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +0 -52
  424. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +0 -82
  425. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.d.ts +0 -38
  426. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.js +0 -47
  427. /package/vscode/src/vs/{workbench/contrib → platform}/browserView/common/browserChatToolReferenceNames.js +0 -0
@@ -11,6 +11,13 @@
11
11
  overflow: hidden;
12
12
  }
13
13
 
14
+ /* Inset button focus rings so they aren't clipped by a widget's overflow:hidden edge. !important overrides button.css. */
15
+ .ai-customization-management-editor .monaco-button:focus,
16
+ .ai-customization-list-widget .monaco-button:focus,
17
+ .mcp-list-widget .monaco-button:focus {
18
+ outline-offset: -1px !important;
19
+ }
20
+
14
21
  /* Sidebar */
15
22
  .ai-customization-management-editor .management-sidebar {
16
23
  height: 100%;
@@ -45,7 +52,7 @@
45
52
  color: var(--vscode-foreground);
46
53
  cursor: pointer;
47
54
  font-size: 12px;
48
- font-weight: 600;
55
+ font-weight: 400;
49
56
  line-height: 18px;
50
57
  font-family: inherit;
51
58
  transition: background-color 0.1s ease;
@@ -304,7 +311,8 @@
304
311
  }
305
312
 
306
313
  /* Empty state - engaging design */
307
- .ai-customization-list-widget .list-empty-state {
314
+ .ai-customization-list-widget .list-empty-state,
315
+ .ai-customization-management-editor .tools-list-widget .list-empty-state {
308
316
  display: flex;
309
317
  flex-direction: column;
310
318
  align-items: center;
@@ -315,19 +323,15 @@
315
323
  flex: 1;
316
324
  }
317
325
 
318
- .ai-customization-list-widget .list-empty-state .empty-state-icon {
319
- font-size: 48px;
320
- opacity: 0.4;
321
- margin-bottom: 8px;
322
- }
323
-
324
- .ai-customization-list-widget .list-empty-state .empty-state-text {
326
+ .ai-customization-list-widget .list-empty-state .empty-state-text,
327
+ .ai-customization-management-editor .tools-list-widget .list-empty-state .empty-state-text {
325
328
  font-size: 16px;
326
- font-weight: 500;
329
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
327
330
  color: var(--vscode-foreground);
328
331
  }
329
332
 
330
- .ai-customization-list-widget .list-empty-state .empty-state-subtext {
333
+ .ai-customization-list-widget .list-empty-state .empty-state-subtext,
334
+ .ai-customization-management-editor .tools-list-widget .list-empty-state .empty-state-subtext {
331
335
  font-size: var(--vscode-agents-fontSize-body1);
332
336
  color: var(--vscode-descriptionForeground);
333
337
  max-width: 250px;
@@ -587,14 +591,15 @@
587
591
 
588
592
  /* Section title header at top of list widget (shared by all list widgets) */
589
593
  .ai-customization-list-widget .section-title-header,
590
- .mcp-list-widget .section-title-header {
594
+ .mcp-list-widget .section-title-header,
595
+ .ai-customization-management-editor .tools-list-widget .section-title-header {
591
596
  flex-shrink: 0;
592
- padding: 0 0 32px;
593
- border-bottom: 1px solid var(--vscode-panel-border);
597
+ padding: 0;
594
598
  }
595
599
 
596
600
  .ai-customization-list-widget .section-title-header .section-title-row,
597
- .mcp-list-widget .section-title-header .section-title-row {
601
+ .mcp-list-widget .section-title-header .section-title-row,
602
+ .ai-customization-management-editor .tools-list-widget .section-title-header .section-title-row {
598
603
  display: flex;
599
604
  align-items: center;
600
605
  gap: 6px;
@@ -613,7 +618,8 @@
613
618
  }
614
619
 
615
620
  .ai-customization-list-widget .section-title-header .section-title,
616
- .mcp-list-widget .section-title-header .section-title {
621
+ .mcp-list-widget .section-title-header .section-title,
622
+ .ai-customization-management-editor .tools-list-widget .section-title-header .section-title {
617
623
  font-size: var(--vscode-agents-fontSize-heading2);
618
624
  font-weight: var(--vscode-agents-fontWeight-semiBold);
619
625
  margin: 0;
@@ -621,7 +627,8 @@
621
627
  }
622
628
 
623
629
  .ai-customization-list-widget .section-title-header .section-title-description,
624
- .mcp-list-widget .section-title-header .section-title-description {
630
+ .mcp-list-widget .section-title-header .section-title-description,
631
+ .ai-customization-management-editor .tools-list-widget .section-title-header .section-title-description {
625
632
  font-size: var(--vscode-agents-fontSize-body1);
626
633
  line-height: 1.45;
627
634
  color: var(--vscode-descriptionForeground);
@@ -634,7 +641,8 @@
634
641
  }
635
642
 
636
643
  .ai-customization-list-widget .section-title-header .section-title-link,
637
- .mcp-list-widget .section-title-header .section-title-link {
644
+ .mcp-list-widget .section-title-header .section-title-link,
645
+ .ai-customization-management-editor .tools-list-widget .section-title-header .section-title-link {
638
646
  font-size: var(--vscode-agents-fontSize-body1);
639
647
  /* Match the description's line-height so the link's inline-flex line-box */
640
648
  /* does not change the total header height between sections. */
@@ -648,10 +656,18 @@
648
656
  }
649
657
 
650
658
  .ai-customization-list-widget .section-title-header .section-title-link:hover,
651
- .mcp-list-widget .section-title-header .section-title-link:hover {
659
+ .mcp-list-widget .section-title-header .section-title-link:hover,
660
+ .ai-customization-management-editor .tools-list-widget .section-title-header .section-title-link:hover {
652
661
  text-decoration: underline;
653
662
  }
654
663
 
664
+ /* Inset the focus ring so it isn't clipped by the widget's overflow:hidden at the header's edge. */
665
+ .ai-customization-list-widget .section-title-header .section-title-link:focus-visible,
666
+ .mcp-list-widget .section-title-header .section-title-link:focus-visible,
667
+ .ai-customization-management-editor .tools-list-widget .section-title-header .section-title-link:focus-visible {
668
+ outline-offset: -1px;
669
+ }
670
+
655
671
  /* Section footer at bottom of list widget */
656
672
  .ai-customization-list-widget .section-footer {
657
673
  flex-shrink: 0;
@@ -758,7 +774,9 @@
758
774
  .ai-customization-management-editor .prompts-content-container,
759
775
  .ai-customization-management-editor .mcp-content-container,
760
776
  .ai-customization-management-editor .plugin-content-container,
761
- .ai-customization-management-editor .models-content-container {
777
+ .ai-customization-management-editor .models-content-container,
778
+ .ai-customization-management-editor .tools-content-container,
779
+ .ai-customization-management-editor .automations-content-container {
762
780
  height: 100%;
763
781
  display: flex;
764
782
  flex-direction: column;
@@ -770,6 +788,236 @@
770
788
  box-sizing: border-box;
771
789
  }
772
790
 
791
+ /* Tools section list widget */
792
+ .ai-customization-management-editor .tools-list-widget {
793
+ height: 100%;
794
+ display: flex;
795
+ flex-direction: column;
796
+ gap: 16px;
797
+ overflow: hidden;
798
+ }
799
+
800
+ .ai-customization-management-editor .tools-list-search-and-button-container {
801
+ display: flex;
802
+ align-items: center;
803
+ gap: 8px;
804
+ flex: none;
805
+ }
806
+
807
+ .ai-customization-management-editor .tools-list-search-container {
808
+ flex: 1;
809
+ }
810
+
811
+ .ai-customization-management-editor .tools-list-search-container .monaco-inputbox {
812
+ width: 100%;
813
+ }
814
+
815
+ .ai-customization-management-editor .tools-list-browse-button-container {
816
+ flex-shrink: 0;
817
+ }
818
+
819
+ .ai-customization-management-editor .tools-list-browse-button-container .monaco-button {
820
+ white-space: nowrap;
821
+ }
822
+
823
+ /* Marketplace browse (gallery) list */
824
+ .ai-customization-management-editor .tools-gallery-container {
825
+ display: flex;
826
+ flex-direction: column;
827
+ flex: 1;
828
+ min-height: 0;
829
+ }
830
+
831
+ .ai-customization-management-editor .tools-gallery-list {
832
+ flex: 1;
833
+ min-height: 0;
834
+ }
835
+
836
+ /* Shared gallery row used by the tools, MCP server and plugin marketplace lists. See galleryItemRenderer.ts */
837
+ .ai-customization-management-editor .gallery-item {
838
+ display: flex;
839
+ align-items: center;
840
+ gap: 8px;
841
+ padding: 8px 12px;
842
+ box-sizing: border-box;
843
+ border-radius: 4px;
844
+ cursor: default;
845
+ }
846
+
847
+ .ai-customization-management-editor .gallery-item:hover {
848
+ background-color: var(--vscode-list-hoverBackground);
849
+ }
850
+
851
+ .ai-customization-management-editor .gallery-item-details {
852
+ display: flex;
853
+ flex-direction: column;
854
+ flex: 1;
855
+ min-width: 0;
856
+ overflow: hidden;
857
+ }
858
+
859
+ .ai-customization-management-editor .gallery-item-name {
860
+ font-size: var(--vscode-agents-fontSize-body1);
861
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
862
+ line-height: 18px;
863
+ overflow: hidden;
864
+ text-overflow: ellipsis;
865
+ white-space: nowrap;
866
+ }
867
+
868
+ .ai-customization-management-editor .gallery-item-description,
869
+ .ai-customization-management-editor .gallery-item-publisher {
870
+ font-size: var(--vscode-agents-fontSize-body2);
871
+ color: var(--vscode-descriptionForeground);
872
+ line-height: 16px;
873
+ overflow: hidden;
874
+ text-overflow: ellipsis;
875
+ white-space: nowrap;
876
+ }
877
+
878
+ .ai-customization-management-editor .gallery-item-action {
879
+ flex-shrink: 0;
880
+ }
881
+
882
+ .ai-customization-management-editor .gallery-item-action .monaco-button {
883
+ white-space: nowrap;
884
+ font-size: var(--vscode-agents-fontSize-body2);
885
+ padding: 2px 10px;
886
+ }
887
+
888
+ .ai-customization-management-editor .gallery-item-action .monaco-button:focus-visible {
889
+ outline-offset: -1px;
890
+ }
891
+
892
+ /* DomScrollableElement wrapper around the tool tree; takes remaining height for the overlay scrollbar. */
893
+ .ai-customization-management-editor .tools-list-tree-scrollable {
894
+ position: relative;
895
+ flex: 1;
896
+ min-height: 0;
897
+ }
898
+
899
+ /* The scrolled element: bound it to the wrapper so clientHeight < scrollHeight when content overflows. */
900
+ .ai-customization-management-editor .tools-list-tree {
901
+ position: absolute;
902
+ inset: 0;
903
+ overflow: hidden;
904
+ display: flex;
905
+ flex-direction: column;
906
+ gap: 2px;
907
+ }
908
+
909
+ /* Top-level tool-set row */
910
+ .ai-customization-management-editor .tools-list-setrow {
911
+ display: flex;
912
+ align-items: center;
913
+ gap: 8px;
914
+ padding: 6px 12px;
915
+ border-radius: 4px;
916
+ outline-offset: -1px;
917
+ }
918
+
919
+ .ai-customization-management-editor .tools-list-setrow:hover,
920
+ .ai-customization-management-editor .tools-list-toolrow:hover {
921
+ background: var(--vscode-list-hoverBackground);
922
+ }
923
+
924
+ /* Match the other customization lists' focus ring: :focus-within for inner checkbox/chevron, :focus for a row click. */
925
+ .ai-customization-management-editor .tools-list-setrow:focus,
926
+ .ai-customization-management-editor .tools-list-setrow:focus-within,
927
+ .ai-customization-management-editor .tools-list-toolrow:focus,
928
+ .ai-customization-management-editor .tools-list-toolrow:focus-within {
929
+ outline: 1px solid var(--vscode-list-focusOutline);
930
+ background: var(--vscode-list-focusBackground, var(--vscode-list-hoverBackground));
931
+ }
932
+
933
+ .ai-customization-management-editor .tools-list-chevron {
934
+ flex: none;
935
+ width: 16px;
936
+ height: 16px;
937
+ display: inline-flex;
938
+ align-items: center;
939
+ justify-content: center;
940
+ font-size: 12px;
941
+ color: var(--vscode-foreground);
942
+ opacity: 0.7;
943
+ cursor: pointer;
944
+ margin-left: auto;
945
+ }
946
+
947
+ /* Child tool row (indented under the tool set) */
948
+ .ai-customization-management-editor .tools-list-children {
949
+ display: flex;
950
+ flex-direction: column;
951
+ gap: 2px;
952
+ }
953
+
954
+ .ai-customization-management-editor .tools-list-toolrow {
955
+ display: flex;
956
+ align-items: center;
957
+ gap: 8px;
958
+ padding: 4px 12px 4px 40px;
959
+ border-radius: 4px;
960
+ cursor: pointer;
961
+ outline-offset: -1px;
962
+ }
963
+
964
+ .ai-customization-management-editor .tools-list-toolrow.readonly {
965
+ cursor: default;
966
+ }
967
+
968
+ .ai-customization-management-editor .tools-list-row-main {
969
+ display: flex;
970
+ align-items: flex-start;
971
+ gap: 8px;
972
+ flex: 1;
973
+ min-width: 0;
974
+ cursor: pointer;
975
+ }
976
+
977
+ .ai-customization-management-editor .tools-list-row-text {
978
+ display: flex;
979
+ flex-direction: column;
980
+ flex: 1;
981
+ min-width: 0;
982
+ }
983
+
984
+ .ai-customization-management-editor .tools-list-row-label {
985
+ font-size: var(--vscode-agents-fontSize-body1);
986
+ line-height: 18px;
987
+ overflow: hidden;
988
+ text-overflow: ellipsis;
989
+ white-space: nowrap;
990
+ }
991
+
992
+ .ai-customization-management-editor .tools-list-setrow .tools-list-row-label {
993
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
994
+ }
995
+
996
+ /* Search match highlighting in tool set / tool names */
997
+ .ai-customization-management-editor .tools-list-row-label .highlight {
998
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
999
+ color: var(--vscode-list-highlightForeground);
1000
+ }
1001
+
1002
+ .ai-customization-management-editor .tools-list-row-subtext {
1003
+ font-size: var(--vscode-agents-fontSize-body2);
1004
+ line-height: 14px;
1005
+ color: var(--vscode-descriptionForeground);
1006
+ overflow: hidden;
1007
+ text-overflow: ellipsis;
1008
+ white-space: nowrap;
1009
+ }
1010
+
1011
+ /* Enabled/total tool count shown at the right of a tool-set row */
1012
+ .ai-customization-management-editor .tools-list-row-count {
1013
+ flex: none;
1014
+ font-size: var(--vscode-agents-fontSize-body2);
1015
+ color: var(--vscode-descriptionForeground);
1016
+ font-variant-numeric: tabular-nums;
1017
+ white-space: nowrap;
1018
+ cursor: pointer;
1019
+ }
1020
+
773
1021
  /* Embedded MCP server detail view */
774
1022
  .ai-customization-management-editor .mcp-detail-container {
775
1023
  position: relative;
@@ -792,7 +1040,8 @@
792
1040
  }
793
1041
 
794
1042
  /* Embedded plugin detail view */
795
- .ai-customization-management-editor .plugin-detail-container {
1043
+ .ai-customization-management-editor .plugin-detail-container,
1044
+ .ai-customization-management-editor .tools-detail-container {
796
1045
  position: relative;
797
1046
  height: 100%;
798
1047
  display: flex;
@@ -808,23 +1057,27 @@
808
1057
 
809
1058
  /* Inline back button with the embedded detail header */
810
1059
  .ai-customization-management-editor .mcp-detail-container .ai-customization-embedded-detail,
811
- .ai-customization-management-editor .plugin-detail-container .ai-customization-embedded-detail {
1060
+ .ai-customization-management-editor .plugin-detail-container .ai-customization-embedded-detail,
1061
+ .ai-customization-management-editor .tools-detail-container .ai-customization-embedded-detail {
812
1062
  padding: 0;
813
1063
  }
814
1064
 
815
1065
  .ai-customization-management-editor .mcp-detail-container .ai-customization-embedded-detail .embedded-detail-header,
816
- .ai-customization-management-editor .plugin-detail-container .ai-customization-embedded-detail .embedded-detail-header {
1066
+ .ai-customization-management-editor .plugin-detail-container .ai-customization-embedded-detail .embedded-detail-header,
1067
+ .ai-customization-management-editor .tools-detail-container .ai-customization-embedded-detail .embedded-detail-header {
817
1068
  align-items: center;
818
1069
  }
819
1070
 
820
1071
  .ai-customization-management-editor .mcp-detail-container .ai-customization-embedded-detail .embedded-detail-leading-slot:not(:empty),
821
- .ai-customization-management-editor .plugin-detail-container .ai-customization-embedded-detail .embedded-detail-leading-slot:not(:empty) {
1072
+ .ai-customization-management-editor .plugin-detail-container .ai-customization-embedded-detail .embedded-detail-leading-slot:not(:empty),
1073
+ .ai-customization-management-editor .tools-detail-container .ai-customization-embedded-detail .embedded-detail-leading-slot:not(:empty) {
822
1074
  display: flex;
823
1075
  align-items: center;
824
1076
  margin-inline-end: 4px;
825
1077
  }
826
1078
 
827
- .ai-customization-management-editor .plugin-detail-editor-container {
1079
+ .ai-customization-management-editor .plugin-detail-editor-container,
1080
+ .ai-customization-management-editor .tools-detail-editor-container {
828
1081
  flex: 1;
829
1082
  overflow: auto;
830
1083
  min-height: 0;
@@ -840,8 +1093,14 @@
840
1093
  min-width: 0;
841
1094
  }
842
1095
 
1096
+ /* The tools detail lists many short tool descriptions, so let it use the full editor width. */
1097
+ .ai-customization-management-editor .ai-customization-embedded-detail.embedded-tool-detail {
1098
+ max-width: none;
1099
+ }
1100
+
843
1101
  .ai-customization-management-editor .ai-customization-embedded-detail.is-empty .embedded-detail-header,
844
- .ai-customization-management-editor .ai-customization-embedded-detail.is-empty .embedded-detail-description {
1102
+ .ai-customization-management-editor .ai-customization-embedded-detail.is-empty .embedded-detail-description,
1103
+ .ai-customization-management-editor .ai-customization-embedded-detail.is-empty .embedded-detail-tools {
845
1104
  display: none;
846
1105
  }
847
1106
 
@@ -909,6 +1168,61 @@
909
1168
  padding: 8px 0;
910
1169
  }
911
1170
 
1171
+ /* Included tools list (tool extension detail) */
1172
+ .ai-customization-management-editor .ai-customization-embedded-detail .embedded-detail-tools {
1173
+ display: flex;
1174
+ flex-direction: column;
1175
+ gap: 8px;
1176
+ padding-inline-start: 32px;
1177
+ min-width: 0;
1178
+ }
1179
+
1180
+ .ai-customization-management-editor .ai-customization-embedded-detail .embedded-detail-tools-heading {
1181
+ font-size: var(--vscode-agents-fontSize-body1);
1182
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
1183
+ color: var(--vscode-foreground);
1184
+ margin: 0;
1185
+ }
1186
+
1187
+ .ai-customization-management-editor .ai-customization-embedded-detail .embedded-detail-tools-message {
1188
+ color: var(--vscode-descriptionForeground);
1189
+ font-size: var(--vscode-agents-fontSize-body1);
1190
+ }
1191
+
1192
+ .ai-customization-management-editor .ai-customization-embedded-detail .embedded-detail-tools-list {
1193
+ display: flex;
1194
+ flex-direction: column;
1195
+ gap: 16px;
1196
+ min-width: 0;
1197
+ }
1198
+
1199
+ .ai-customization-management-editor .ai-customization-embedded-detail .embedded-detail-tool {
1200
+ display: flex;
1201
+ flex-direction: column;
1202
+ gap: 2px;
1203
+ min-width: 0;
1204
+ }
1205
+
1206
+ .ai-customization-management-editor .ai-customization-embedded-detail .embedded-detail-tool-name {
1207
+ font-size: var(--vscode-agents-fontSize-body1);
1208
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
1209
+ color: var(--vscode-foreground);
1210
+ word-break: break-word;
1211
+ }
1212
+
1213
+ .ai-customization-management-editor .ai-customization-embedded-detail .embedded-detail-tool-description {
1214
+ font-size: var(--vscode-agents-fontSize-body2);
1215
+ color: var(--vscode-descriptionForeground);
1216
+ line-height: 1.4;
1217
+ word-break: break-word;
1218
+ /* Keep descriptions short and scannable; the full text is available once installed. */
1219
+ display: -webkit-box;
1220
+ -webkit-box-orient: vertical;
1221
+ -webkit-line-clamp: 2;
1222
+ line-clamp: 2;
1223
+ overflow: hidden;
1224
+ }
1225
+
912
1226
  /* Models section footer */
913
1227
  .ai-customization-management-editor .models-content-container .section-footer {
914
1228
  flex-shrink: 0;
@@ -971,12 +1285,6 @@
971
1285
  flex: 1;
972
1286
  }
973
1287
 
974
- .mcp-list-widget .mcp-empty-state .empty-icon {
975
- font-size: 48px;
976
- opacity: 0.4;
977
- margin-bottom: 8px;
978
- }
979
-
980
1288
  .mcp-list-widget .mcp-empty-state .empty-text {
981
1289
  font-size: 16px;
982
1290
  font-weight: 500;
@@ -1132,6 +1440,11 @@
1132
1440
  color: var(--vscode-editor-background);
1133
1441
  }
1134
1442
 
1443
+ .mcp-server-item .mcp-server-status.auth-required {
1444
+ background-color: color-mix(in srgb, var(--vscode-terminal-ansiYellow) 50%, transparent);
1445
+ color: var(--vscode-editor-background);
1446
+ }
1447
+
1135
1448
  .mcp-server-item .mcp-server-status.error {
1136
1449
  background-color: color-mix(in srgb, var(--vscode-terminal-ansiRed) 50%, transparent);
1137
1450
  color: var(--vscode-editor-background);
@@ -1156,75 +1469,19 @@
1156
1469
  display: flex;
1157
1470
  gap: 4px;
1158
1471
  flex-shrink: 0;
1159
- /* Horizontal-only padding so focused button outlines do not clip against */
1160
- /* the widget's overflow:hidden. Vertical padding is omitted so the button */
1161
- /* group does not make the search row taller than on other sections. */
1162
- padding: 0 1px;
1163
- }
1164
-
1165
- .mcp-list-widget .list-button-group .monaco-button:focus-visible {
1166
- outline-offset: -1px;
1167
1472
  }
1168
1473
 
1169
- /* Gallery item specifics */
1170
- .mcp-gallery-item .mcp-gallery-name-row {
1474
+ /* Embedded Editor View */
1475
+ .ai-customization-management-editor .editor-content-container {
1476
+ height: 100%;
1171
1477
  display: flex;
1172
- align-items: baseline;
1173
- gap: 6px;
1478
+ flex-direction: column;
1479
+ padding: 0;
1480
+ background: var(--vscode-agentsPanel-background);
1481
+ border: 1px solid var(--vscode-agentsPanel-border);
1482
+ border-radius: 6px;
1174
1483
  overflow: hidden;
1175
- }
1176
-
1177
- .mcp-gallery-item .mcp-gallery-publisher {
1178
- font-size: var(--vscode-agents-fontSize-body2);
1179
- color: var(--vscode-descriptionForeground);
1180
- white-space: nowrap;
1181
- overflow: hidden;
1182
- text-overflow: ellipsis;
1183
- }
1184
-
1185
- .mcp-gallery-item .mcp-gallery-action {
1186
- flex-shrink: 0;
1187
- }
1188
-
1189
- .mcp-gallery-item.extension-list-item {
1190
- padding: 6px 16px;
1191
- }
1192
-
1193
- .mcp-gallery-item.extension-list-item > .details {
1194
- flex: 1;
1195
- min-width: 0;
1196
- overflow: hidden;
1197
- }
1198
-
1199
- .mcp-gallery-item.extension-list-item > .details > .description {
1200
- font-size: 12px;
1201
- color: var(--vscode-descriptionForeground);
1202
- white-space: nowrap;
1203
- overflow: hidden;
1204
- text-overflow: ellipsis;
1205
- line-height: 16px;
1206
- }
1207
-
1208
- .mcp-gallery-item .mcp-gallery-install-button {
1209
- font-size: var(--vscode-agents-fontSize-body2);
1210
- padding: 2px 10px;
1211
- }
1212
-
1213
- .mcp-gallery-item .mcp-gallery-install-button:focus-visible {
1214
- outline-offset: -1px;
1215
- }
1216
-
1217
- /* Embedded Editor View */
1218
- .ai-customization-management-editor .editor-content-container {
1219
- height: 100%;
1220
- display: flex;
1221
- flex-direction: column;
1222
- padding: 0;
1223
- background: var(--vscode-agentsPanel-background);
1224
- border: 1px solid var(--vscode-agentsPanel-border);
1225
- border-radius: 6px;
1226
- overflow: hidden;
1227
- box-sizing: border-box;
1484
+ box-sizing: border-box;
1228
1485
  }
1229
1486
 
1230
1487
  .ai-customization-management-editor .editor-header {
@@ -1522,3 +1779,1075 @@ pane is first mounted. View switches inside the modal are not animated. */
1522
1779
  }
1523
1780
 
1524
1781
  /* Welcome page styles live in the welcome page variant stylesheets. */
1782
+
1783
+
1784
+ /* Automations section
1785
+ *
1786
+ * The outer `.automations-content-container` shares the panel-surface
1787
+ * styling with the prompts / MCP / plugin / models containers (see the
1788
+ * shared rule above near line 758) so the Automations tab visually
1789
+ * matches its siblings: 40px panel padding, agentsPanel background,
1790
+ * rounded border. The list-widget below fills that panel.
1791
+ *
1792
+ * No standalone rule is needed here. The shared selector covers it. */
1793
+
1794
+ .automations-list-widget {
1795
+ display: flex;
1796
+ flex-direction: column;
1797
+ flex: 1;
1798
+ min-height: 0;
1799
+ }
1800
+
1801
+ .automations-list-widget .automations-empty-state {
1802
+ display: flex;
1803
+ flex-direction: column;
1804
+ align-items: center;
1805
+ justify-content: center;
1806
+ padding: 48px 24px;
1807
+ gap: 8px;
1808
+ text-align: center;
1809
+ flex: 1;
1810
+ }
1811
+
1812
+ .automations-list-widget .automations-empty-state .automations-empty-title {
1813
+ font-size: 16px;
1814
+ font-weight: 500;
1815
+ color: var(--vscode-foreground);
1816
+ margin: 0;
1817
+ }
1818
+
1819
+ .automations-list-widget .automations-empty-state .automations-empty-message {
1820
+ font-size: var(--vscode-agents-fontSize-body1);
1821
+ color: var(--vscode-descriptionForeground);
1822
+ max-width: 320px;
1823
+ line-height: 1.4;
1824
+ margin: 0;
1825
+ }
1826
+
1827
+ .automations-list-widget .automations-empty-state .automations-empty-cta {
1828
+ margin-top: 16px;
1829
+ min-width: 160px;
1830
+ align-self: center;
1831
+ }
1832
+
1833
+ /* Header. This mirrors `.section-title-header` on the prompts side so the
1834
+ * Automations tab reads with the same vertical rhythm and underline
1835
+ * treatment as Agents / Skills / Prompts / Instructions. Horizontal
1836
+ * padding is absent because the parent `.automations-content-container`
1837
+ * already owns 40px panel padding. */
1838
+ .automations-list-widget .automations-header {
1839
+ flex-shrink: 0;
1840
+ padding: 0 0 32px;
1841
+ border-bottom: 1px solid var(--vscode-panel-border);
1842
+ }
1843
+
1844
+ .automations-list-widget .automations-header-row {
1845
+ display: flex;
1846
+ flex-direction: row;
1847
+ align-items: center;
1848
+ justify-content: space-between;
1849
+ gap: 8px 16px;
1850
+ flex-wrap: wrap;
1851
+ }
1852
+
1853
+ .automations-list-widget .automations-header-title {
1854
+ font-size: var(--vscode-agents-fontSize-heading2);
1855
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
1856
+ color: var(--vscode-foreground);
1857
+ margin: 0;
1858
+ min-width: 0;
1859
+ }
1860
+
1861
+ .automations-list-widget .automations-header-subtitle {
1862
+ font-size: var(--vscode-agents-fontSize-body1);
1863
+ line-height: 1.45;
1864
+ color: var(--vscode-descriptionForeground);
1865
+ margin: 0 0 8px 0;
1866
+ /* Reserve ~2 lines so vertical rhythm matches the prompts-side
1867
+ * `.section-title-description` even when our subtitle is short. */
1868
+ min-height: 38px;
1869
+ }
1870
+
1871
+ .automations-list-widget .automations-new-button {
1872
+ width: auto;
1873
+ flex: 0 0 auto;
1874
+ padding: 4px 14px;
1875
+ }
1876
+
1877
+ /* When the widget is empty, hide the header so the empty-state CTA reads
1878
+ * as the primary action and there is not a duplicate New button. */
1879
+ .automations-list-widget.automations-empty .automations-header {
1880
+ display: none;
1881
+ }
1882
+
1883
+ /* List */
1884
+ .automations-list-widget .automations-list {
1885
+ display: flex;
1886
+ flex-direction: column;
1887
+ flex: 1;
1888
+ min-height: 0;
1889
+ overflow: auto;
1890
+ gap: 6px;
1891
+ }
1892
+
1893
+ .automations-list-widget .automations-row {
1894
+ display: flex;
1895
+ flex-direction: row;
1896
+ align-items: flex-start;
1897
+ gap: 12px;
1898
+ padding: 12px 16px;
1899
+ border-radius: 6px;
1900
+ cursor: pointer;
1901
+ }
1902
+
1903
+ .automations-list-widget .automations-row:not(.automations-row-disabled):hover {
1904
+ background-color: var(--vscode-list-hoverBackground);
1905
+ }
1906
+
1907
+ .automations-list-widget .automations-row-wrapper:has(> .automations-row-history) .automations-row:not(.automations-row-disabled):hover {
1908
+ background-color: transparent;
1909
+ }
1910
+
1911
+ .automations-list-widget .automations-row:has(:focus-visible) {
1912
+ outline: 1px solid var(--vscode-focusBorder);
1913
+ outline-offset: -1px;
1914
+ }
1915
+
1916
+ .automations-list-widget .automations-row-disabled {
1917
+ opacity: 0.6;
1918
+ }
1919
+
1920
+ .automations-list-widget .automations-row-main {
1921
+ display: flex;
1922
+ flex-direction: column;
1923
+ gap: 4px;
1924
+ flex: 1;
1925
+ min-width: 0;
1926
+ }
1927
+
1928
+ .automations-list-widget .automations-row-name {
1929
+ font-size: var(--vscode-agents-fontSize-body1);
1930
+ font-weight: 600;
1931
+ color: var(--vscode-foreground);
1932
+ display: flex;
1933
+ flex-direction: row;
1934
+ align-items: center;
1935
+ gap: 8px;
1936
+ word-break: break-word;
1937
+ }
1938
+
1939
+ .automations-list-widget .automations-row-disabled-badge {
1940
+ font-size: 11px;
1941
+ font-weight: 400;
1942
+ padding: 1px 6px;
1943
+ border-radius: 3px;
1944
+ background-color: var(--vscode-badge-background);
1945
+ color: var(--vscode-badge-foreground);
1946
+ }
1947
+
1948
+ .automations-list-widget .automations-row-meta {
1949
+ display: flex;
1950
+ flex-direction: row;
1951
+ align-items: center;
1952
+ gap: 6px;
1953
+ font-size: 12px;
1954
+ color: var(--vscode-descriptionForeground);
1955
+ flex-wrap: wrap;
1956
+ }
1957
+
1958
+ .automations-list-widget .automations-row-meta-sep {
1959
+ opacity: 0.6;
1960
+ }
1961
+
1962
+ .automations-list-widget .automations-row-prompt {
1963
+ font-size: 12px;
1964
+ color: var(--vscode-descriptionForeground);
1965
+ margin-top: 2px;
1966
+ overflow: hidden;
1967
+ text-overflow: ellipsis;
1968
+ word-break: break-word;
1969
+ }
1970
+
1971
+ .automations-list-widget .automations-row-actions {
1972
+ display: flex;
1973
+ flex-direction: row;
1974
+ gap: 4px;
1975
+ align-items: center;
1976
+ flex: 0 0 auto;
1977
+ }
1978
+
1979
+ .automations-list-widget .automations-row-action-button {
1980
+ display: inline-flex;
1981
+ align-items: center;
1982
+ justify-content: center;
1983
+ width: 24px;
1984
+ height: 24px;
1985
+ padding: 0;
1986
+ border: none;
1987
+ border-radius: 4px;
1988
+ background: transparent;
1989
+ color: var(--vscode-icon-foreground);
1990
+ cursor: pointer;
1991
+ font-size: 16px;
1992
+ }
1993
+
1994
+ .automations-list-widget .automations-row-action-button:hover:not(:disabled) {
1995
+ background-color: var(--vscode-toolbar-hoverBackground);
1996
+ }
1997
+
1998
+ .automations-list-widget .automations-row-action-button:focus {
1999
+ outline: 1px solid var(--vscode-focusBorder);
2000
+ outline-offset: -1px;
2001
+ }
2002
+
2003
+ .automations-list-widget .automations-row-action-button:disabled {
2004
+ opacity: 0.4;
2005
+ cursor: default;
2006
+ }
2007
+
2008
+ /* Run history (inline) */
2009
+ .automations-list-widget .automations-row-wrapper {
2010
+ display: flex;
2011
+ flex-direction: column;
2012
+ border-radius: 6px;
2013
+ overflow: hidden;
2014
+ }
2015
+
2016
+ /*
2017
+ * When a wrapper has an expanded history panel, flatten the row's bottom
2018
+ * corners so the row + history read as one visually connected card.
2019
+ */
2020
+ .automations-list-widget .automations-row-wrapper:has(> .automations-row-history) .automations-row {
2021
+ border-bottom-left-radius: 0;
2022
+ border-bottom-right-radius: 0;
2023
+ }
2024
+
2025
+ .automations-list-widget .automations-row-history {
2026
+ padding: 4px 16px 12px 40px;
2027
+ display: flex;
2028
+ flex-direction: column;
2029
+ gap: 4px;
2030
+ }
2031
+
2032
+ .automations-list-widget .automations-history-heading {
2033
+ font-size: 11px;
2034
+ font-weight: 600;
2035
+ margin: 4px 0;
2036
+ text-transform: uppercase;
2037
+ letter-spacing: 0.5px;
2038
+ color: var(--vscode-descriptionForeground);
2039
+ }
2040
+
2041
+ .automations-list-widget .automations-history-empty {
2042
+ font-size: 12px;
2043
+ color: var(--vscode-descriptionForeground);
2044
+ font-style: italic;
2045
+ }
2046
+
2047
+ .automations-list-widget .automations-history-list {
2048
+ list-style: none;
2049
+ margin: 0;
2050
+ padding: 0;
2051
+ display: flex;
2052
+ flex-direction: column;
2053
+ gap: 4px;
2054
+ }
2055
+
2056
+ .automations-list-widget .automations-history-row {
2057
+ display: flex;
2058
+ flex-direction: row;
2059
+ align-items: flex-start;
2060
+ gap: 8px;
2061
+ font-size: 12px;
2062
+ padding: 6px 10px;
2063
+ border-radius: 4px;
2064
+ background-color: var(--vscode-editorWidget-background, transparent);
2065
+ }
2066
+
2067
+ .automations-list-widget .automations-history-status {
2068
+ flex: 0 0 auto;
2069
+ width: 16px;
2070
+ height: 16px;
2071
+ display: inline-flex;
2072
+ align-items: center;
2073
+ justify-content: center;
2074
+ }
2075
+
2076
+ .automations-list-widget .automations-history-row[data-run-status="completed"] .automations-history-status {
2077
+ color: var(--vscode-testing-iconPassed, var(--vscode-icon-foreground));
2078
+ }
2079
+
2080
+ .automations-list-widget .automations-history-row[data-run-status="failed"] .automations-history-status {
2081
+ color: var(--vscode-testing-iconFailed, var(--vscode-errorForeground));
2082
+ }
2083
+
2084
+ .automations-list-widget .automations-history-row[data-run-status="running"] .automations-history-status {
2085
+ color: var(--vscode-charts-blue, var(--vscode-icon-foreground));
2086
+ }
2087
+
2088
+ .automations-list-widget .automations-history-row-text {
2089
+ display: flex;
2090
+ flex-direction: column;
2091
+ gap: 2px;
2092
+ flex: 1;
2093
+ min-width: 0;
2094
+ }
2095
+
2096
+ .automations-list-widget .automations-history-row-first {
2097
+ display: flex;
2098
+ flex-direction: row;
2099
+ flex-wrap: wrap;
2100
+ gap: 6px;
2101
+ color: var(--vscode-foreground);
2102
+ }
2103
+
2104
+ .automations-list-widget .automations-history-row-status {
2105
+ font-weight: 600;
2106
+ }
2107
+
2108
+ .automations-list-widget .automations-history-row-sep {
2109
+ color: var(--vscode-descriptionForeground);
2110
+ opacity: 0.6;
2111
+ }
2112
+
2113
+ .automations-list-widget .automations-history-row-trigger,
2114
+ .automations-list-widget .automations-history-row-started,
2115
+ .automations-list-widget .automations-history-row-duration {
2116
+ color: var(--vscode-descriptionForeground);
2117
+ }
2118
+
2119
+ .automations-list-widget .automations-history-row-error {
2120
+ color: var(--vscode-errorForeground);
2121
+ font-size: 11px;
2122
+ white-space: pre-wrap;
2123
+ word-break: break-word;
2124
+ }
2125
+
2126
+ .automations-list-widget .automations-history-row-open {
2127
+ flex: 0 0 auto;
2128
+ width: 24px;
2129
+ height: 24px;
2130
+ display: inline-flex;
2131
+ align-items: center;
2132
+ justify-content: center;
2133
+ cursor: pointer;
2134
+ border-radius: 4px;
2135
+ background: transparent;
2136
+ opacity: 0;
2137
+ color: var(--vscode-icon-foreground);
2138
+ font-size: 16px;
2139
+ }
2140
+
2141
+ .automations-list-widget .automations-history-row:hover .automations-history-row-open,
2142
+ .automations-list-widget .automations-history-row-open:focus-visible {
2143
+ opacity: 1;
2144
+ }
2145
+
2146
+ .automations-list-widget .automations-history-row-open:focus-visible {
2147
+ outline: 1px solid var(--vscode-focusBorder);
2148
+ outline-offset: -1px;
2149
+ }
2150
+
2151
+ .automations-list-widget .automations-history-row-open:hover {
2152
+ background-color: var(--vscode-toolbar-hoverBackground);
2153
+ }
2154
+
2155
+ .automations-list-widget .automations-history-more {
2156
+ font-size: 11px;
2157
+ color: var(--vscode-descriptionForeground);
2158
+ font-style: italic;
2159
+ }
2160
+
2161
+ /* Dialog */
2162
+ .monaco-dialog-box.automation-dialog .dialog-message-container > .dialog-message-detail {
2163
+ display: none;
2164
+ }
2165
+
2166
+ /*
2167
+ * The dialog's built-in title (rendered into `.dialog-message-text`)
2168
+ * stays in the DOM so `aria-labelledby="monaco-dialog-message-text"`
2169
+ * still binds for screen readers, but is visually hidden. Our own
2170
+ * `.automation-titlebar` provides the visible chrome. Visually-hidden
2171
+ * pattern (not `display: none`) because some AT/screen-reader combos
2172
+ * skip aria-labelledby targets when `display: none` is in effect.
2173
+ * Same treatment for the unused dialog icon slot.
2174
+ */
2175
+ .monaco-dialog-box.automation-dialog .dialog-message-container > .dialog-message {
2176
+ margin: 0;
2177
+ padding: 0;
2178
+ }
2179
+
2180
+ .monaco-dialog-box.automation-dialog .dialog-message-container > .dialog-message .dialog-message-text {
2181
+ position: absolute;
2182
+ width: 1px;
2183
+ height: 1px;
2184
+ padding: 0;
2185
+ margin: -1px;
2186
+ overflow: hidden;
2187
+ clip: rect(0, 0, 0, 0);
2188
+ white-space: nowrap;
2189
+ border: 0;
2190
+ }
2191
+
2192
+ .monaco-dialog-box.automation-dialog .dialog-message-row > .dialog-icon.codicon {
2193
+ display: none;
2194
+ }
2195
+
2196
+ /*
2197
+ * Lock the dialog box to a stable width. Without this rule the dialog
2198
+ * inherits `width: min-content` from `dialog.css` and re-flows as the
2199
+ * embedded chat input's chips change size (e.g. when the model picker
2200
+ * resolves a shorter label). Use min(640px, 92vw) so the dialog still
2201
+ * shrinks gracefully on narrow viewports.
2202
+ *
2203
+ * Padding is stripped (vs. the base 8px) so our `.automation-titlebar`
2204
+ * stripe can paint edge-to-edge inside the dialog body. The form pane
2205
+ * re-adds its own padding.
2206
+ *
2207
+ * Note: `extraClasses` on Dialog adds the class to `.monaco-dialog-box`
2208
+ * itself (not an ancestor), so we attach the rule directly here.
2209
+ */
2210
+ .monaco-dialog-box.automation-dialog {
2211
+ width: min(640px, 92vw);
2212
+ min-width: min(520px, 92vw);
2213
+ max-width: 92vw;
2214
+ padding: 0;
2215
+ background-color: var(--vscode-quickInput-background);
2216
+ color: var(--vscode-quickInput-foreground);
2217
+ /* Anchor for the absolutely-positioned close-X (see below). */
2218
+ position: relative;
2219
+ }
2220
+
2221
+ /*
2222
+ * Float the close-X over the titlebar so the title text sits flush
2223
+ * with the top edge of the modal (QuickInput-style). Without this,
2224
+ * `.dialog-toolbar-row` reserves ~24px of dead space above the title.
2225
+ * `z-index` keeps the X above the sticky titlebar.
2226
+ */
2227
+ .monaco-dialog-box.automation-dialog .dialog-toolbar-row {
2228
+ position: absolute;
2229
+ top: 0;
2230
+ right: 0;
2231
+ height: auto;
2232
+ padding: 4px 6px 0 0;
2233
+ z-index: 2;
2234
+ }
2235
+
2236
+ .automation-dialog-body {
2237
+ display: flex;
2238
+ flex-direction: column;
2239
+ min-height: 0;
2240
+ }
2241
+
2242
+ /*
2243
+ * Strip the base dialog padding on the message row and container so
2244
+ * our titlebar can full-bleed. The form pane below re-adds horizontal
2245
+ * padding so the form fields don't crash into the dialog edge.
2246
+ *
2247
+ * Container still owns the scrolling (per base/.../dialog.css), so
2248
+ * the titlebar uses `position: sticky; top: 0` to stay visible as the
2249
+ * form scrolls underneath it.
2250
+ */
2251
+ .monaco-dialog-box.automation-dialog .dialog-message-row {
2252
+ padding: 0;
2253
+ }
2254
+
2255
+ .monaco-dialog-box.automation-dialog .dialog-message-row .dialog-message-container {
2256
+ padding: 0;
2257
+ /*
2258
+ * The base dialog leaves the message container at content size
2259
+ * (`align-self: stretch` only stretches height in a horizontal flex
2260
+ * row). Our form fields are `width: 100%` of this container, so they
2261
+ * track the container's intrinsic min-content width. It shrinks
2262
+ * over the first second as the embedded chat input's chip labels
2263
+ * (model name, mode name, etc.) resolve and the toolbar's
2264
+ * min-content drops. Forcing the container to fill the row width
2265
+ * keeps every field at the dialog's locked width from first paint
2266
+ * onwards. `min-width: 0` lets the container shrink inside the row
2267
+ * (which has `overflow: hidden`) instead of being pushed by long
2268
+ * chip labels.
2269
+ */
2270
+ flex: 1 1 auto;
2271
+ min-width: 0;
2272
+ }
2273
+
2274
+ /*
2275
+ * QuickInput-style titlebar. The visual "line" beneath it is purely
2276
+ * the background contrast between `quickInputTitle.background` (a
2277
+ * translucent stripe) and `quickInput.background` (the form area).
2278
+ * No `border-bottom`. Sticky so the title stays in view as the form
2279
+ * scrolls (the dialog's message-container is the scroll host).
2280
+ */
2281
+ .automation-titlebar {
2282
+ position: sticky;
2283
+ top: 0;
2284
+ z-index: 1;
2285
+ /* Right padding reserves room for the floating close-X chip. */
2286
+ padding: 8px 36px 8px 14px;
2287
+ text-align: left;
2288
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
2289
+ font-size: var(--vscode-agents-fontSize-heading2);
2290
+ color: var(--vscode-quickInput-foreground);
2291
+ background-color: var(--vscode-quickInputTitle-background);
2292
+ }
2293
+
2294
+ .automation-description {
2295
+ padding: 8px 14px;
2296
+ font-size: var(--vscode-agents-fontSize-body2, 12px);
2297
+ color: var(--vscode-descriptionForeground);
2298
+ line-height: 1.4;
2299
+ }
2300
+
2301
+ .automation-form-pane {
2302
+ flex: 1 1 auto;
2303
+ min-width: 0;
2304
+ min-height: 0;
2305
+ padding: 4px 14px 6px;
2306
+ }
2307
+
2308
+ /*
2309
+ * Theme the native overflow scrollbar on the dialog body so it matches
2310
+ * the rest of VS Code. .dialog-message-container is the scroll host
2311
+ * (see base/browser/ui/dialog/dialog.css). Without this the dialog
2312
+ * shows the platform's default scrollbar which clashes visually with
2313
+ * the chat input embedded above.
2314
+ */
2315
+ .monaco-dialog-box.automation-dialog .dialog-message-row .dialog-message-container::-webkit-scrollbar {
2316
+ width: 10px;
2317
+ }
2318
+
2319
+ .monaco-dialog-box.automation-dialog .dialog-message-row .dialog-message-container::-webkit-scrollbar-track {
2320
+ background-color: transparent;
2321
+ }
2322
+
2323
+ .monaco-dialog-box.automation-dialog .dialog-message-row .dialog-message-container::-webkit-scrollbar-thumb {
2324
+ min-height: 20px;
2325
+ background-color: var(--vscode-scrollbarSlider-background);
2326
+ }
2327
+
2328
+ .monaco-dialog-box.automation-dialog .dialog-message-row .dialog-message-container::-webkit-scrollbar-thumb:hover {
2329
+ background-color: var(--vscode-scrollbarSlider-hoverBackground);
2330
+ }
2331
+
2332
+ .monaco-dialog-box.automation-dialog .dialog-message-row .dialog-message-container::-webkit-scrollbar-thumb:active {
2333
+ background-color: var(--vscode-scrollbarSlider-activeBackground);
2334
+ }
2335
+
2336
+ .monaco-dialog-box.automation-dialog .dialog-message-row .dialog-message-container::-webkit-scrollbar-corner {
2337
+ display: none;
2338
+ }
2339
+
2340
+ /*
2341
+ * Z-index bridge for popups while the automation dialog is open.
2342
+ * The dialog modal block is z-index 2575 (see base/.../dialog.css)
2343
+ * and shares that value with .context-view (set inline in
2344
+ * contextview.ts as `2575 + layer`). DOM order means the dialog
2345
+ * shows on top, hiding any popup the chat input chips, the quick
2346
+ * input, or a context menu try to open. We can't change the inline
2347
+ * z-index from outside, so use `!important` on rules scoped to
2348
+ * `body:has(.automation-dialog)`. They only apply while the
2349
+ * automations dialog is on screen, so other dialogs' popup stacking
2350
+ * is untouched.
2351
+ */
2352
+ body:has(.automation-dialog) .context-view.monaco-component {
2353
+ z-index: 2600 !important;
2354
+ }
2355
+
2356
+ body:has(.automation-dialog) .quick-input-widget {
2357
+ z-index: 2600 !important;
2358
+ }
2359
+
2360
+ body:has(.automation-dialog) .monaco-menu-container {
2361
+ z-index: 2600 !important;
2362
+ }
2363
+
2364
+ .automation-form {
2365
+ display: flex;
2366
+ flex-direction: column;
2367
+ gap: 10px;
2368
+ padding: 2px 2px 4px;
2369
+ }
2370
+
2371
+ /*
2372
+ * Host for the embedded ChatInputPart. The composer brings its own
2373
+ * background, border, and rounded corners (see chat.css
2374
+ * `.interactive-input-part`), so we just give it room to breathe and let
2375
+ * it fill the dialog's column width. `min-height` is sized for ~5 lines
2376
+ * of body text + the toolbar row so the editor doesn't feel cramped on
2377
+ * first open; the editor itself grows as the user types.
2378
+ */
2379
+ .automation-form-prompt-host {
2380
+ display: flex;
2381
+ flex-direction: column;
2382
+ min-height: 140px;
2383
+ /*
2384
+ * The host carries the `.interactive-session` class so the shared
2385
+ * chat input CSS (chip colors, focus borders, etc.) matches what
2386
+ * users see in a real chat session. That class also sets
2387
+ * `max-width: 950px; margin: auto; height: 100%` (chat.css), which
2388
+ * is meant for the full chat panel. In our flex column it makes
2389
+ * the host take its content's min-content width and center,
2390
+ * collapsing the chat input to ~chip-bar width. Re-assert
2391
+ * full-width sizing so the host fills the dialog's form column.
2392
+ */
2393
+ width: auto;
2394
+ max-width: 100%;
2395
+ margin: 0;
2396
+ height: auto;
2397
+ align-self: stretch;
2398
+ }
2399
+
2400
+ .automation-form-prompt-host .interactive-input-part {
2401
+ /*
2402
+ * `.interactive-input-part` in chat.css has `margin: 0 12px`, which
2403
+ * (combined with the default `width: auto`) is designed to inset the
2404
+ * composer inside a wider chat panel. In our dialog the prompt host
2405
+ * is already the form column, so the margin pushes the composer 12px
2406
+ * past the host on each side. Its right border ends up sitting
2407
+ * outside the dialog. Zero out the margin so the composer aligns
2408
+ * with the other form fields.
2409
+ */
2410
+ margin: 0;
2411
+ /* Don't let long custom-mode names or model identifiers push the
2412
+ * modal wider than its declared max-width. */
2413
+ max-width: 100%;
2414
+ min-width: 0;
2415
+ }
2416
+
2417
+ .automation-form-prompt-host .interactive-input-editor,
2418
+ .automation-form-prompt-host .monaco-editor,
2419
+ .automation-form-prompt-host .monaco-editor-background,
2420
+ .automation-form-prompt-host .monaco-editor .margin {
2421
+ background-color: var(--vscode-settings-textInputBackground, var(--vscode-input-background));
2422
+ }
2423
+
2424
+ .automation-form-prompt-host .interactive-input-and-side-toolbar {
2425
+ /* Allow the input column to shrink below its content's preferred
2426
+ * width so flex children (chips, custom-mode names) don't push the
2427
+ * modal wider than its declared max-width. */
2428
+ min-width: 0;
2429
+ }
2430
+
2431
+ /*
2432
+ * Hide chips from the embedded chat input that don't fit the automation
2433
+ * dialog's reduced surface:
2434
+ * - "Configure Tools" (`workbench.action.chat.configureTools`,
2435
+ * `.codicon-settings`). Tool selection is not relevant for a
2436
+ * scheduled prompt.
2437
+ * - "Attach context" (`workbench.action.chat.attachContext`,
2438
+ * `.codicon-add`, the `+`). The dialog doesn't support attachments.
2439
+ * the prompt is the only payload sent at run time.
2440
+ * - "List MCP Servers" (`workbench.mcp.listServer`, `.codicon-server`)
2441
+ * MCP server management belongs in the live chat surface, not in
2442
+ * a one-off prompt definition. The action view item is custom
2443
+ * (`MenuEntryActionViewItem`) but still renders the standard
2444
+ * `.action-label.codicon-server` icon, so the same selector pattern
2445
+ * matches.
2446
+ * Other chips in this toolbar use either custom action view items
2447
+ * (Model / Mode / Session pickers) or different codicons, so codicon
2448
+ * selectors are unique to the chips we want to remove. The descendant
2449
+ * selector (not `>`) matches even when the action-view-item wraps the
2450
+ * `.action-label` in an extra container (e.g. dropdown variants), which
2451
+ * keeps the rule resilient to view-item refactors. Hiding the
2452
+ * `.action-item` (not just the `.action-label`) removes the slot from
2453
+ * keyboard tab order too.
2454
+ */
2455
+ .automation-form-prompt-host .chat-input-toolbar .action-item:has(.action-label.codicon-settings),
2456
+ .automation-form-prompt-host .chat-input-toolbar .action-item:has(.action-label.codicon-add),
2457
+ .automation-form-prompt-host .chat-input-toolbar .action-item:has(.action-label.codicon-server) {
2458
+ display: none;
2459
+ }
2460
+
2461
+ /*
2462
+ * Suppress every inter-chip divider drawn by chat.css
2463
+ * (`.chat-input-toolbar ... .action-item + .action-item::before`) inside
2464
+ * the dialog. CSS `+` matches by DOM order regardless of `display:none`,
2465
+ * so the divider would otherwise appear as an orphan vertical line on
2466
+ * whichever visible chip follows our hidden `+`/settings items. The
2467
+ * remaining visible chips (Agent, model, mode) already have enough
2468
+ * intrinsic padding to read as separate without the divider. Dropping
2469
+ * dividers entirely is simpler and more resilient than per-pair
2470
+ * suppression rules that depend on DOM order.
2471
+ */
2472
+ .automation-form-prompt-host .chat-input-toolbar .monaco-action-bar .actions-container > .action-item + .action-item::before {
2473
+ display: none;
2474
+ }
2475
+
2476
+ /*
2477
+ * Cancel the dialog's `<ul>` indent for the chat input toolbars.
2478
+ *
2479
+ * `dialog.css:120` applies `padding-inline-start: 20px` to every `<ul>`
2480
+ * inside `.dialog-message-container` (meant to reduce the excessive
2481
+ * default indent on bulleted lists in dialog body text). The
2482
+ * `monaco-action-bar`'s `.actions-container` is rendered as a `<ul>`, so
2483
+ * the chat input's primary and secondary toolbars inherit that 20px
2484
+ * left indent. This pushes the Agent / Copilot CLI chips ~20px right of
2485
+ * the chat input's bottom-left corner.
2486
+ *
2487
+ * `actionbar.css` sets `.actions-container { padding: 0 }`, but the
2488
+ * dialog rule uses a logical property (`padding-inline-start`), which
2489
+ * cascades-after the physical shorthand and wins regardless of selector
2490
+ * specificity. Override the logical property explicitly here.
2491
+ *
2492
+ * Scoped to `.automation-form-prompt-host` so the regular chat panel
2493
+ * (which isn't inside a dialog) is unaffected. Any `<ul>`
2494
+ * elements in the dialog's actual message body text retain the
2495
+ * intended 20px indent.
2496
+ */
2497
+ .automation-form-prompt-host .chat-input-toolbar .monaco-action-bar .actions-container,
2498
+ .automation-form-prompt-host .chat-secondary-toolbar .monaco-action-bar .actions-container {
2499
+ padding-inline-start: 0;
2500
+ margin-left: 0;
2501
+ }
2502
+
2503
+ /*
2504
+ * Sessions-layer workspace picker visual override.
2505
+ *
2506
+ * Two cascading sources need to be defeated to match Mode/Model:
2507
+ *
2508
+ * 1. `.sessions-chat-picker-slot.sessions-chat-workspace-picker
2509
+ * .action-label` (sessions-layer `chatWidget.css:244-269`) sets a
2510
+ * welcome-flow visual: label 18px, inner span 18px, icons 16px,
2511
+ * chevron, generous padding, `color: var(--vscode-foreground)`.
2512
+ *
2513
+ * 2. `.monaco-action-bar .action-label` (actionbar.css:48) sets the
2514
+ * base toolbar font-size to **11px**. This is what Mode/Model
2515
+ * inherit. They don't set font-size themselves. The action bar
2516
+ * base rule wins for their `.action-label`. The workspace picker's
2517
+ * own sessions-layer rule (source 1) overrides that base, so we
2518
+ * need to put the 11px back explicitly. `font-size: inherit`
2519
+ * does NOT work because none of `.sessions-chat-picker-slot`'s
2520
+ * ancestors carry an 11px font-size. The 11px lives on sibling
2521
+ * `.action-label` elements via `.monaco-action-bar .action-label`,
2522
+ * not on an ancestor we can inherit from.
2523
+ *
2524
+ * Result: match the 11px base, neutralize the welcome-flow oversizing,
2525
+ * keep the Mode/Model color (`var(--vscode-icon-foreground)`), match
2526
+ * the chip metrics from `.chat-input-toolbar .chat-input-picker-item
2527
+ * .action-label` (chat.css:1822), and hide the chevron (Mode/Model
2528
+ * don't render one).
2529
+ *
2530
+ * Scoped to `.automation-form-prompt-host` so the welcome view's
2531
+ * standalone workspace picker keeps its larger sizing.
2532
+ */
2533
+ .automation-form-prompt-host .chat-input-toolbar .sessions-chat-picker-slot.sessions-chat-workspace-picker .action-label {
2534
+ height: 16px;
2535
+ padding: 3px 6px;
2536
+ font-size: 11px;
2537
+ line-height: normal;
2538
+ color: var(--vscode-icon-foreground);
2539
+ }
2540
+
2541
+ .automation-form-prompt-host .chat-input-toolbar .sessions-chat-picker-slot.sessions-chat-workspace-picker .action-label .sessions-chat-dropdown-label {
2542
+ font-size: inherit;
2543
+ line-height: inherit;
2544
+ }
2545
+
2546
+ .automation-form-prompt-host .chat-input-toolbar .sessions-chat-picker-slot.sessions-chat-workspace-picker .action-label > .codicon:not(.sessions-chat-dropdown-chevron) {
2547
+ font-size: 12px;
2548
+ }
2549
+
2550
+ /*
2551
+ * Mode and Model pickers in this toolbar don't render a dropdown
2552
+ * chevron. They are recognized as chips by their padding + hover. Hide
2553
+ * the chevron that `_renderTriggerLabel` always appends so the
2554
+ * workspace chip reads the same way.
2555
+ */
2556
+ .automation-form-prompt-host .chat-input-toolbar .sessions-chat-picker-slot.sessions-chat-workspace-picker .action-label .sessions-chat-dropdown-chevron {
2557
+ display: none;
2558
+ }
2559
+
2560
+ .automation-form-row {
2561
+ display: flex;
2562
+ flex-direction: column;
2563
+ gap: 4px;
2564
+ }
2565
+
2566
+ .automation-form-row.automation-form-checkbox-row {
2567
+ flex-direction: row;
2568
+ align-items: center;
2569
+ gap: 8px;
2570
+ margin-top: 2px;
2571
+ padding-top: 10px;
2572
+ border-top: 1px solid var(--vscode-widget-border, transparent);
2573
+ }
2574
+
2575
+ /*
2576
+ * Lay the Schedule / Time / Day controls along a single horizontal axis.
2577
+ * Each control lives in its own `.automation-form-schedule-group`
2578
+ * (label-above-control flex column). Time and Day join the row only
2579
+ * when the interval is daily or weekly; flex-wrap keeps the layout
2580
+ * stable if a translation pushes the row past the dialog width.
2581
+ */
2582
+ .automation-form-row.automation-form-schedule-row {
2583
+ flex-direction: row;
2584
+ align-items: flex-end;
2585
+ flex-wrap: wrap;
2586
+ gap: 12px;
2587
+ }
2588
+
2589
+ .automation-form-schedule-group {
2590
+ display: flex;
2591
+ flex-direction: column;
2592
+ gap: 4px;
2593
+ /*
2594
+ * Each visible group splits the schedule row equally. Hidden
2595
+ * groups (`display: none` from `applyIntervalVisibility`) drop out
2596
+ * of flex distribution, so:
2597
+ * - manual / hourly → Schedule fills 100% of the row
2598
+ * - daily → Schedule + Time split 50/50
2599
+ * - weekly → Schedule + Time + Day split 33/33/33
2600
+ * `min-width: 0` lets the contained SelectBox shrink past its
2601
+ * intrinsic content width when the row is narrow, before the
2602
+ * row's `flex-wrap: wrap` kicks in as a final safety net.
2603
+ */
2604
+ flex: 1 1 0;
2605
+ min-width: 0;
2606
+ }
2607
+
2608
+ /* SelectBox container sizing. Give Schedule / Time / Day the full
2609
+ * width of their parent group (which itself flex-shares the row).
2610
+ *
2611
+ * `.monaco-select-box` ships with no intrinsic padding or height (the
2612
+ * only baked-in metrics live in the `.monaco-action-bar .action-item`
2613
+ * selector, which we're not inside of). Mirror the standalone-form
2614
+ * pattern used by the settings editor (`settingsEditor2.css:689-694`).
2615
+ * It uses `height: 26px` and `padding: 2px 6px`. This makes the dropdowns match the
2616
+ * Name InputBox above them instead of reading as toolbar widgets
2617
+ * crammed into a form. */
2618
+ .automation-form-schedule-select-container {
2619
+ display: flex;
2620
+ min-width: 0;
2621
+ width: 100%;
2622
+ }
2623
+
2624
+ .automation-form-schedule-select-container .monaco-select-box {
2625
+ height: 26px;
2626
+ padding: 2px 8px;
2627
+ }
2628
+
2629
+ /*
2630
+ * Form-row labels read as section titles ("Name", "Schedule", "Time",
2631
+ * "Day of week", "Prompt"). Mirror the established agents
2632
+ * design-system section-label pattern (see `.overview-section
2633
+ * .section-label` at line ~734: label1 / fontWeight-medium /
2634
+ * foreground) so the labels carry visual weight as section headings
2635
+ * and clearly out-rank their controls.
2636
+ *
2637
+ * `margin-bottom` adds breathing room between the title text and
2638
+ * its control so each form row reads as a discrete section.
2639
+ */
2640
+ .automation-form-label {
2641
+ font-size: var(--vscode-agents-fontSize-label1);
2642
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
2643
+ color: var(--vscode-foreground);
2644
+ line-height: 1.4;
2645
+ margin-bottom: 2px;
2646
+ cursor: default;
2647
+ }
2648
+
2649
+ .automation-form-hint {
2650
+ font-size: var(--vscode-agents-fontSize-body2, 11px);
2651
+ color: var(--vscode-descriptionForeground);
2652
+ line-height: 1.4;
2653
+ min-height: 1em;
2654
+ }
2655
+
2656
+ .automation-form-checkbox-label {
2657
+ font-size: var(--vscode-agents-fontSize-body1, 13px);
2658
+ color: var(--vscode-foreground);
2659
+ cursor: pointer;
2660
+ }
2661
+
2662
+ /*
2663
+ * Host for the native `InputBox` widget. The widget owns its own
2664
+ * `<input>` and styling (border, padding, focus ring); the host just
2665
+ * lets it grow to the row width.
2666
+ */
2667
+ .automation-form-input-host {
2668
+ display: flex;
2669
+ width: 100%;
2670
+ }
2671
+
2672
+ .automation-form-input-host > .monaco-inputbox {
2673
+ flex: 1 1 auto;
2674
+ min-width: 0;
2675
+ }
2676
+
2677
+ .automation-form-input,
2678
+ .automation-form-select,
2679
+ .automation-form-textarea {
2680
+ font-family: inherit;
2681
+ font-size: var(--vscode-agents-fontSize-body1, 13px);
2682
+ color: var(--vscode-settings-textInputForeground, var(--vscode-input-foreground));
2683
+ background-color: var(--vscode-settings-textInputBackground, var(--vscode-input-background));
2684
+ border: 1px solid var(--vscode-settings-textInputBorder, var(--vscode-input-border, var(--vscode-contrastBorder, transparent)));
2685
+ border-radius: 2px;
2686
+ padding: 4px 6px;
2687
+ box-sizing: border-box;
2688
+ width: 100%;
2689
+ min-height: 26px;
2690
+ }
2691
+
2692
+ .automation-form-select {
2693
+ color: var(--vscode-settings-dropdownForeground, var(--vscode-dropdown-foreground));
2694
+ background-color: var(--vscode-settings-dropdownBackground, var(--vscode-dropdown-background));
2695
+ border-color: var(--vscode-settings-dropdownBorder, var(--vscode-dropdown-border, var(--vscode-contrastBorder, transparent)));
2696
+ }
2697
+
2698
+ .automation-form-textarea {
2699
+ resize: vertical;
2700
+ min-height: 60px;
2701
+ line-height: 1.4;
2702
+ }
2703
+
2704
+ .automation-form-input:focus,
2705
+ .automation-form-select:focus,
2706
+ .automation-form-textarea:focus {
2707
+ outline: 1px solid var(--vscode-focusBorder);
2708
+ outline-offset: -1px;
2709
+ border-color: var(--vscode-focusBorder);
2710
+ }
2711
+
2712
+ .automation-form-empty {
2713
+ font-size: 12px;
2714
+ color: var(--vscode-errorForeground);
2715
+ padding: 6px 0;
2716
+ }
2717
+
2718
+ /*
2719
+ * Folder picker. This uses the shared `WorkspacePicker` from the sessions
2720
+ * layer (see `sessionWorkspacePicker.ts`). The picker renders an
2721
+ * `<a.action-label>` chip trigger inside
2722
+ * `.sessions-chat-picker-slot.sessions-chat-workspace-picker`. We restyle
2723
+ * it to fit the dialog's compact, 13px form scale. The upstream styling
2724
+ * lives in `sessions/contrib/chat/browser/media/chatWidget.css` and is
2725
+ * sized for the new-session "hero" UI (18px font, larger chip) which is
2726
+ * too large for our modal.
2727
+ *
2728
+ * The dropdown content itself renders through `IActionWidgetService`,
2729
+ * which has its own global CSS. No overrides needed here.
2730
+ */
2731
+ /*
2732
+ * Isolation + branch group: parented into the chat input's
2733
+ * `.chat-secondary-toolbar` so it sits at the bottom-right of the chat
2734
+ * input, sharing a row with `Copilot CLI | Default Approvals`.
2735
+ * `margin-left: auto` pushes the group to the right edge within that
2736
+ * flex row.
2737
+ *
2738
+ * Visual styling mirrors the new-session view's
2739
+ * `.new-chat-bottom-container` chip vocabulary (see
2740
+ * `sessions/contrib/chat/browser/media/chatWidget.css` lines 178-209):
2741
+ * 16px tall, 11px font, 12px codicons, icon-foreground color, no
2742
+ * border. The `|` divider between the Folder chip and the branch slot
2743
+ * uses the same `box-shadow: -5px 0 0 -4px var(--vscode-editorWidget-border)`
2744
+ * trick the new-session row uses to draw a 1px vertical separator
2745
+ * without adding a DOM element.
2746
+ *
2747
+ * Communicates *where* the automation will run. It is presentational only (no
2748
+ * click handler, no keyboard target).
2749
+ */
2750
+ .automation-form-prompt-host .chat-secondary-toolbar .automation-form-isolation-group {
2751
+ display: inline-flex;
2752
+ align-items: center;
2753
+ margin-left: auto;
2754
+ min-width: 0;
2755
+ gap: 5px;
2756
+ }
2757
+
2758
+ .automation-form-prompt-host .automation-form-isolation-chip,
2759
+ .automation-form-prompt-host .automation-form-branch-slot {
2760
+ display: inline-flex;
2761
+ align-items: center;
2762
+ gap: 4px;
2763
+ height: 16px;
2764
+ padding: 3px 6px;
2765
+ font-size: 11px;
2766
+ color: var(--vscode-icon-foreground);
2767
+ background: transparent;
2768
+ border: none;
2769
+ min-width: 0;
2770
+ }
2771
+
2772
+ .automation-form-prompt-host .automation-form-isolation-chip > .codicon,
2773
+ .automation-form-prompt-host .automation-form-branch-slot > .codicon {
2774
+ font-size: 12px;
2775
+ color: var(--vscode-icon-foreground);
2776
+ flex-shrink: 0;
2777
+ }
2778
+
2779
+ .automation-form-prompt-host .automation-form-isolation-chip {
2780
+ cursor: pointer;
2781
+ border-radius: var(--vscode-cornerRadius-small);
2782
+ }
2783
+
2784
+ .automation-form-prompt-host .automation-form-isolation-chip:not(.automation-form-isolation-chip-disabled):hover {
2785
+ background-color: var(--vscode-toolbar-hoverBackground);
2786
+ color: var(--vscode-foreground);
2787
+ }
2788
+
2789
+ .automation-form-prompt-host .automation-form-isolation-chip-disabled {
2790
+ cursor: default;
2791
+ }
2792
+
2793
+ .automation-form-prompt-host .automation-form-isolation-label,
2794
+ .automation-form-prompt-host .automation-form-branch-name {
2795
+ font-size: 11px;
2796
+ }
2797
+
2798
+ .automation-form-prompt-host .automation-form-branch-name {
2799
+ min-width: 0;
2800
+ overflow: hidden;
2801
+ text-overflow: ellipsis;
2802
+ white-space: nowrap;
2803
+ }
2804
+
2805
+ /* Mirror the new-session `|` divider between repo-config chips:
2806
+ * `box-shadow: -5px 0 0 -4px var(--vscode-editorWidget-border)` paints
2807
+ * a 1px-wide bar in the gap to the chip's left. */
2808
+ .automation-form-prompt-host .automation-form-isolation-group > .automation-form-branch-slot {
2809
+ box-shadow: -5px 0 0 -4px var(--vscode-editorWidget-border);
2810
+ }
2811
+
2812
+ .automation-form-prompt-host .chat-secondary-toolbar .automation-form-harness-chip {
2813
+ display: inline-flex;
2814
+ align-items: center;
2815
+ gap: 4px;
2816
+ height: 16px;
2817
+ padding: 3px 6px;
2818
+ font-size: 11px;
2819
+ color: var(--vscode-icon-foreground);
2820
+ background: transparent;
2821
+ border: none;
2822
+ opacity: 0.6;
2823
+ cursor: default;
2824
+ }
2825
+
2826
+ .automation-form-prompt-host .automation-form-harness-chip > .codicon {
2827
+ font-size: 12px;
2828
+ flex-shrink: 0;
2829
+ }
2830
+
2831
+ .automation-form-prompt-host .automation-form-harness-label {
2832
+ font-size: 11px;
2833
+ }
2834
+
2835
+ /* Missing-branch state (no folder / no git repo / detached / empty): use
2836
+ * description-foreground + italic so it visually reads as "informational
2837
+ * placeholder, not a real ref name". */
2838
+ .automation-form-prompt-host .automation-form-branch-slot.automation-form-branch-missing,
2839
+ .automation-form-prompt-host .automation-form-branch-slot.automation-form-branch-missing > .codicon {
2840
+ color: var(--vscode-descriptionForeground);
2841
+ }
2842
+
2843
+ .automation-form-prompt-host .automation-form-branch-slot.automation-form-branch-missing .automation-form-branch-name {
2844
+ font-style: italic;
2845
+ }
2846
+
2847
+ .automations-list-widget .automations-row-folder {
2848
+ color: var(--vscode-descriptionForeground);
2849
+ white-space: nowrap;
2850
+ overflow: hidden;
2851
+ text-overflow: ellipsis;
2852
+ max-width: 240px;
2853
+ }