@codingame/monaco-vscode-chat-service-override 34.1.3 → 35.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +1424 -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,1073 @@ 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` while the dialog service
2348
+ * marks the active container as automation-dialog-open.
2349
+ */
2350
+ .automation-dialog-open .context-view.monaco-component {
2351
+ z-index: 2600 !important;
2352
+ }
2353
+
2354
+ .automation-dialog-open .quick-input-widget {
2355
+ z-index: 2600 !important;
2356
+ }
2357
+
2358
+ .automation-dialog-open .monaco-menu-container {
2359
+ z-index: 2600 !important;
2360
+ }
2361
+
2362
+ .automation-form {
2363
+ display: flex;
2364
+ flex-direction: column;
2365
+ gap: 10px;
2366
+ padding: 2px 2px 4px;
2367
+ }
2368
+
2369
+ /*
2370
+ * Host for the embedded ChatInputPart. The composer brings its own
2371
+ * background, border, and rounded corners (see chat.css
2372
+ * `.interactive-input-part`), so we just give it room to breathe and let
2373
+ * it fill the dialog's column width. `min-height` is sized for ~5 lines
2374
+ * of body text + the toolbar row so the editor doesn't feel cramped on
2375
+ * first open; the editor itself grows as the user types.
2376
+ */
2377
+ .automation-form-prompt-host {
2378
+ display: flex;
2379
+ flex-direction: column;
2380
+ min-height: 140px;
2381
+ /*
2382
+ * The host carries the `.interactive-session` class so the shared
2383
+ * chat input CSS (chip colors, focus borders, etc.) matches what
2384
+ * users see in a real chat session. That class also sets
2385
+ * `max-width: 950px; margin: auto; height: 100%` (chat.css), which
2386
+ * is meant for the full chat panel. In our flex column it makes
2387
+ * the host take its content's min-content width and center,
2388
+ * collapsing the chat input to ~chip-bar width. Re-assert
2389
+ * full-width sizing so the host fills the dialog's form column.
2390
+ */
2391
+ width: auto;
2392
+ max-width: 100%;
2393
+ margin: 0;
2394
+ height: auto;
2395
+ align-self: stretch;
2396
+ }
2397
+
2398
+ .automation-form-prompt-host .interactive-input-part {
2399
+ /*
2400
+ * `.interactive-input-part` in chat.css has `margin: 0 12px`, which
2401
+ * (combined with the default `width: auto`) is designed to inset the
2402
+ * composer inside a wider chat panel. In our dialog the prompt host
2403
+ * is already the form column, so the margin pushes the composer 12px
2404
+ * past the host on each side. Its right border ends up sitting
2405
+ * outside the dialog. Zero out the margin so the composer aligns
2406
+ * with the other form fields.
2407
+ */
2408
+ margin: 0;
2409
+ /* Don't let long custom-mode names or model identifiers push the
2410
+ * modal wider than its declared max-width. */
2411
+ max-width: 100%;
2412
+ min-width: 0;
2413
+ }
2414
+
2415
+ .automation-form-prompt-host .interactive-input-editor,
2416
+ .automation-form-prompt-host .monaco-editor,
2417
+ .automation-form-prompt-host .monaco-editor-background,
2418
+ .automation-form-prompt-host .monaco-editor .margin {
2419
+ background-color: var(--vscode-settings-textInputBackground, var(--vscode-input-background));
2420
+ }
2421
+
2422
+ .automation-form-prompt-host .interactive-input-and-side-toolbar {
2423
+ /* Allow the input column to shrink below its content's preferred
2424
+ * width so flex children (chips, custom-mode names) don't push the
2425
+ * modal wider than its declared max-width. */
2426
+ min-width: 0;
2427
+ }
2428
+
2429
+ /*
2430
+ * Hide chips from the embedded chat input that don't fit the automation
2431
+ * dialog's reduced surface:
2432
+ * - "Configure Tools" (`workbench.action.chat.configureTools`,
2433
+ * `.codicon-settings`). Tool selection is not relevant for a
2434
+ * scheduled prompt.
2435
+ * - "Attach context" (`workbench.action.chat.attachContext`,
2436
+ * `.codicon-add`, the `+`). The dialog doesn't support attachments.
2437
+ * the prompt is the only payload sent at run time.
2438
+ * - "List MCP Servers" (`workbench.mcp.listServer`, `.codicon-server`)
2439
+ * MCP server management belongs in the live chat surface, not in
2440
+ * a one-off prompt definition. The action view item is custom
2441
+ * (`MenuEntryActionViewItem`) but still renders the standard
2442
+ * `.action-label.codicon-server` icon, so the same selector pattern
2443
+ * matches.
2444
+ * Other chips in this toolbar use either custom action view items
2445
+ * (Model / Mode / Session pickers) or different codicons, so codicon
2446
+ * selectors are unique to the chips we want to remove. The descendant
2447
+ * selector (not `>`) matches even when the action-view-item wraps the
2448
+ * `.action-label` in an extra container (e.g. dropdown variants), which
2449
+ * keeps the rule resilient to view-item refactors. Hiding the
2450
+ * `.action-item` (not just the `.action-label`) removes the slot from
2451
+ * keyboard tab order too.
2452
+ */
2453
+ .automation-form-prompt-host .chat-input-toolbar .action-item:has(.action-label.codicon-settings),
2454
+ .automation-form-prompt-host .chat-input-toolbar .action-item:has(.action-label.codicon-add),
2455
+ .automation-form-prompt-host .chat-input-toolbar .action-item:has(.action-label.codicon-server) {
2456
+ display: none;
2457
+ }
2458
+
2459
+ /*
2460
+ * Suppress every inter-chip divider drawn by chat.css
2461
+ * (`.chat-input-toolbar ... .action-item + .action-item::before`) inside
2462
+ * the dialog. CSS `+` matches by DOM order regardless of `display:none`,
2463
+ * so the divider would otherwise appear as an orphan vertical line on
2464
+ * whichever visible chip follows our hidden `+`/settings items. The
2465
+ * remaining visible chips (Agent, model, mode) already have enough
2466
+ * intrinsic padding to read as separate without the divider. Dropping
2467
+ * dividers entirely is simpler and more resilient than per-pair
2468
+ * suppression rules that depend on DOM order.
2469
+ */
2470
+ .automation-form-prompt-host .chat-input-toolbar .monaco-action-bar .actions-container > .action-item + .action-item::before {
2471
+ display: none;
2472
+ }
2473
+
2474
+ /*
2475
+ * Cancel the dialog's `<ul>` indent for the chat input toolbars.
2476
+ *
2477
+ * `dialog.css:120` applies `padding-inline-start: 20px` to every `<ul>`
2478
+ * inside `.dialog-message-container` (meant to reduce the excessive
2479
+ * default indent on bulleted lists in dialog body text). The
2480
+ * `monaco-action-bar`'s `.actions-container` is rendered as a `<ul>`, so
2481
+ * the chat input's primary and secondary toolbars inherit that 20px
2482
+ * left indent. This pushes the Agent / Copilot CLI chips ~20px right of
2483
+ * the chat input's bottom-left corner.
2484
+ *
2485
+ * `actionbar.css` sets `.actions-container { padding: 0 }`, but the
2486
+ * dialog rule uses a logical property (`padding-inline-start`), which
2487
+ * cascades-after the physical shorthand and wins regardless of selector
2488
+ * specificity. Override the logical property explicitly here.
2489
+ *
2490
+ * Scoped to `.automation-form-prompt-host` so the regular chat panel
2491
+ * (which isn't inside a dialog) is unaffected. Any `<ul>`
2492
+ * elements in the dialog's actual message body text retain the
2493
+ * intended 20px indent.
2494
+ */
2495
+ .automation-form-prompt-host .chat-input-toolbar .monaco-action-bar .actions-container,
2496
+ .automation-form-prompt-host .chat-secondary-toolbar .monaco-action-bar .actions-container {
2497
+ padding-inline-start: 0;
2498
+ margin-left: 0;
2499
+ }
2500
+
2501
+ /*
2502
+ * Sessions-layer workspace picker visual override.
2503
+ *
2504
+ * Two cascading sources need to be defeated to match Mode/Model:
2505
+ *
2506
+ * 1. `.sessions-chat-picker-slot.sessions-chat-workspace-picker
2507
+ * .action-label` (sessions-layer `chatWidget.css:244-269`) sets a
2508
+ * welcome-flow visual: label 18px, inner span 18px, icons 16px,
2509
+ * chevron, generous padding, `color: var(--vscode-foreground)`.
2510
+ *
2511
+ * 2. `.monaco-action-bar .action-label` (actionbar.css:48) sets the
2512
+ * base toolbar font-size to **11px**. This is what Mode/Model
2513
+ * inherit. They don't set font-size themselves. The action bar
2514
+ * base rule wins for their `.action-label`. The workspace picker's
2515
+ * own sessions-layer rule (source 1) overrides that base, so we
2516
+ * need to put the 11px back explicitly. `font-size: inherit`
2517
+ * does NOT work because none of `.sessions-chat-picker-slot`'s
2518
+ * ancestors carry an 11px font-size. The 11px lives on sibling
2519
+ * `.action-label` elements via `.monaco-action-bar .action-label`,
2520
+ * not on an ancestor we can inherit from.
2521
+ *
2522
+ * Result: match the 11px base, neutralize the welcome-flow oversizing,
2523
+ * keep the Mode/Model color (`var(--vscode-icon-foreground)`), match
2524
+ * the chip metrics from `.chat-input-toolbar .chat-input-picker-item
2525
+ * .action-label` (chat.css:1822), and hide the chevron (Mode/Model
2526
+ * don't render one).
2527
+ *
2528
+ * Scoped to `.automation-form-prompt-host` so the welcome view's
2529
+ * standalone workspace picker keeps its larger sizing.
2530
+ */
2531
+ .automation-form-prompt-host .chat-input-toolbar .sessions-chat-picker-slot.sessions-chat-workspace-picker .action-label {
2532
+ height: 16px;
2533
+ padding: 3px 6px;
2534
+ font-size: 11px;
2535
+ line-height: normal;
2536
+ color: var(--vscode-icon-foreground);
2537
+ }
2538
+
2539
+ .automation-form-prompt-host .chat-input-toolbar .sessions-chat-picker-slot.sessions-chat-workspace-picker .action-label .sessions-chat-dropdown-label {
2540
+ font-size: inherit;
2541
+ line-height: inherit;
2542
+ }
2543
+
2544
+ .automation-form-prompt-host .chat-input-toolbar .sessions-chat-picker-slot.sessions-chat-workspace-picker .action-label > .codicon:not(.sessions-chat-dropdown-chevron) {
2545
+ font-size: 12px;
2546
+ }
2547
+
2548
+ /*
2549
+ * Mode and Model pickers in this toolbar don't render a dropdown
2550
+ * chevron. They are recognized as chips by their padding + hover. Hide
2551
+ * the chevron that `_renderTriggerLabel` always appends so the
2552
+ * workspace chip reads the same way.
2553
+ */
2554
+ .automation-form-prompt-host .chat-input-toolbar .sessions-chat-picker-slot.sessions-chat-workspace-picker .action-label .sessions-chat-dropdown-chevron {
2555
+ display: none;
2556
+ }
2557
+
2558
+ .automation-form-row {
2559
+ display: flex;
2560
+ flex-direction: column;
2561
+ gap: 4px;
2562
+ }
2563
+
2564
+ .automation-form-row.automation-form-checkbox-row {
2565
+ flex-direction: row;
2566
+ align-items: center;
2567
+ gap: 8px;
2568
+ margin-top: 2px;
2569
+ padding-top: 10px;
2570
+ border-top: 1px solid var(--vscode-widget-border, transparent);
2571
+ }
2572
+
2573
+ /*
2574
+ * Lay the Schedule / Time / Day controls along a single horizontal axis.
2575
+ * Each control lives in its own `.automation-form-schedule-group`
2576
+ * (label-above-control flex column). Time and Day join the row only
2577
+ * when the interval is daily or weekly; flex-wrap keeps the layout
2578
+ * stable if a translation pushes the row past the dialog width.
2579
+ */
2580
+ .automation-form-row.automation-form-schedule-row {
2581
+ flex-direction: row;
2582
+ align-items: flex-end;
2583
+ flex-wrap: wrap;
2584
+ gap: 12px;
2585
+ }
2586
+
2587
+ .automation-form-schedule-group {
2588
+ display: flex;
2589
+ flex-direction: column;
2590
+ gap: 4px;
2591
+ /*
2592
+ * Each visible group splits the schedule row equally. Hidden
2593
+ * groups (`display: none` from `applyIntervalVisibility`) drop out
2594
+ * of flex distribution, so:
2595
+ * - manual / hourly → Schedule fills 100% of the row
2596
+ * - daily → Schedule + Time split 50/50
2597
+ * - weekly → Schedule + Time + Day split 33/33/33
2598
+ * `min-width: 0` lets the contained SelectBox shrink past its
2599
+ * intrinsic content width when the row is narrow, before the
2600
+ * row's `flex-wrap: wrap` kicks in as a final safety net.
2601
+ */
2602
+ flex: 1 1 0;
2603
+ min-width: 0;
2604
+ }
2605
+
2606
+ /* SelectBox container sizing. Give Schedule / Time / Day the full
2607
+ * width of their parent group (which itself flex-shares the row).
2608
+ *
2609
+ * `.monaco-select-box` ships with no intrinsic padding or height (the
2610
+ * only baked-in metrics live in the `.monaco-action-bar .action-item`
2611
+ * selector, which we're not inside of). Mirror the standalone-form
2612
+ * pattern used by the settings editor (`settingsEditor2.css:689-694`).
2613
+ * It uses `height: 26px` and `padding: 2px 6px`. This makes the dropdowns match the
2614
+ * Name InputBox above them instead of reading as toolbar widgets
2615
+ * crammed into a form. */
2616
+ .automation-form-schedule-select-container {
2617
+ display: flex;
2618
+ min-width: 0;
2619
+ width: 100%;
2620
+ }
2621
+
2622
+ .automation-form-schedule-select-container .monaco-select-box {
2623
+ height: 26px;
2624
+ padding: 2px 8px;
2625
+ }
2626
+
2627
+ /*
2628
+ * Form-row labels read as section titles ("Name", "Schedule", "Time",
2629
+ * "Day of week", "Prompt"). Mirror the established agents
2630
+ * design-system section-label pattern (see `.overview-section
2631
+ * .section-label` at line ~734: label1 / fontWeight-medium /
2632
+ * foreground) so the labels carry visual weight as section headings
2633
+ * and clearly out-rank their controls.
2634
+ *
2635
+ * `margin-bottom` adds breathing room between the title text and
2636
+ * its control so each form row reads as a discrete section.
2637
+ */
2638
+ .automation-form-label {
2639
+ font-size: var(--vscode-agents-fontSize-label1);
2640
+ font-weight: var(--vscode-agents-fontWeight-semiBold);
2641
+ color: var(--vscode-foreground);
2642
+ line-height: 1.4;
2643
+ margin-bottom: 2px;
2644
+ cursor: default;
2645
+ }
2646
+
2647
+ .automation-form-hint {
2648
+ font-size: var(--vscode-agents-fontSize-body2, 11px);
2649
+ color: var(--vscode-descriptionForeground);
2650
+ line-height: 1.4;
2651
+ min-height: 1em;
2652
+ }
2653
+
2654
+ .automation-form-checkbox-label {
2655
+ font-size: var(--vscode-agents-fontSize-body1, 13px);
2656
+ color: var(--vscode-foreground);
2657
+ cursor: pointer;
2658
+ }
2659
+
2660
+ /*
2661
+ * Host for the native `InputBox` widget. The widget owns its own
2662
+ * `<input>` and styling (border, padding, focus ring); the host just
2663
+ * lets it grow to the row width.
2664
+ */
2665
+ .automation-form-input-host {
2666
+ display: flex;
2667
+ width: 100%;
2668
+ }
2669
+
2670
+ .automation-form-input-host > .monaco-inputbox {
2671
+ flex: 1 1 auto;
2672
+ min-width: 0;
2673
+ }
2674
+
2675
+ .automation-form-input,
2676
+ .automation-form-select,
2677
+ .automation-form-textarea {
2678
+ font-family: inherit;
2679
+ font-size: var(--vscode-agents-fontSize-body1, 13px);
2680
+ color: var(--vscode-settings-textInputForeground, var(--vscode-input-foreground));
2681
+ background-color: var(--vscode-settings-textInputBackground, var(--vscode-input-background));
2682
+ border: 1px solid var(--vscode-settings-textInputBorder, var(--vscode-input-border, var(--vscode-contrastBorder, transparent)));
2683
+ border-radius: 2px;
2684
+ padding: 4px 6px;
2685
+ box-sizing: border-box;
2686
+ width: 100%;
2687
+ min-height: 26px;
2688
+ }
2689
+
2690
+ .automation-form-select {
2691
+ color: var(--vscode-settings-dropdownForeground, var(--vscode-dropdown-foreground));
2692
+ background-color: var(--vscode-settings-dropdownBackground, var(--vscode-dropdown-background));
2693
+ border-color: var(--vscode-settings-dropdownBorder, var(--vscode-dropdown-border, var(--vscode-contrastBorder, transparent)));
2694
+ }
2695
+
2696
+ .automation-form-textarea {
2697
+ resize: vertical;
2698
+ min-height: 60px;
2699
+ line-height: 1.4;
2700
+ }
2701
+
2702
+ .automation-form-input:focus,
2703
+ .automation-form-select:focus,
2704
+ .automation-form-textarea:focus {
2705
+ outline: 1px solid var(--vscode-focusBorder);
2706
+ outline-offset: -1px;
2707
+ border-color: var(--vscode-focusBorder);
2708
+ }
2709
+
2710
+ .automation-form-empty {
2711
+ font-size: 12px;
2712
+ color: var(--vscode-errorForeground);
2713
+ padding: 6px 0;
2714
+ }
2715
+
2716
+ /*
2717
+ * Folder picker. This uses the shared `WorkspacePicker` from the sessions
2718
+ * layer (see `sessionWorkspacePicker.ts`). The picker renders an
2719
+ * `<a.action-label>` chip trigger inside
2720
+ * `.sessions-chat-picker-slot.sessions-chat-workspace-picker`. We restyle
2721
+ * it to fit the dialog's compact, 13px form scale. The upstream styling
2722
+ * lives in `sessions/contrib/chat/browser/media/chatWidget.css` and is
2723
+ * sized for the new-session "hero" UI (18px font, larger chip) which is
2724
+ * too large for our modal.
2725
+ *
2726
+ * The dropdown content itself renders through `IActionWidgetService`,
2727
+ * which has its own global CSS. No overrides needed here.
2728
+ */
2729
+ /*
2730
+ * Isolation + branch group: parented into the chat input's
2731
+ * `.chat-secondary-toolbar` so it sits at the bottom-right of the chat
2732
+ * input, sharing a row with `Copilot CLI | Default Approvals`.
2733
+ * `margin-left: auto` pushes the group to the right edge within that
2734
+ * flex row.
2735
+ *
2736
+ * Visual styling mirrors the new-session view's
2737
+ * `.new-chat-bottom-container` chip vocabulary (see
2738
+ * `sessions/contrib/chat/browser/media/chatWidget.css` lines 178-209):
2739
+ * 16px tall, 11px font, 12px codicons, icon-foreground color, no
2740
+ * border. The `|` divider between the Folder chip and the branch slot
2741
+ * uses the same `box-shadow: -5px 0 0 -4px var(--vscode-editorWidget-border)`
2742
+ * trick the new-session row uses to draw a 1px vertical separator
2743
+ * without adding a DOM element.
2744
+ *
2745
+ * Communicates *where* the automation will run. It is presentational only (no
2746
+ * click handler, no keyboard target).
2747
+ */
2748
+ .automation-form-prompt-host .chat-secondary-toolbar .automation-form-isolation-group {
2749
+ display: inline-flex;
2750
+ align-items: center;
2751
+ margin-left: auto;
2752
+ min-width: 0;
2753
+ gap: 5px;
2754
+ }
2755
+
2756
+ .automation-form-prompt-host .automation-form-isolation-chip,
2757
+ .automation-form-prompt-host .automation-form-branch-slot {
2758
+ display: inline-flex;
2759
+ align-items: center;
2760
+ gap: 4px;
2761
+ height: 16px;
2762
+ padding: 3px 6px;
2763
+ font-size: 11px;
2764
+ color: var(--vscode-icon-foreground);
2765
+ background: transparent;
2766
+ border: none;
2767
+ min-width: 0;
2768
+ }
2769
+
2770
+ .automation-form-prompt-host .automation-form-isolation-chip > .codicon,
2771
+ .automation-form-prompt-host .automation-form-branch-slot > .codicon {
2772
+ font-size: 12px;
2773
+ color: var(--vscode-icon-foreground);
2774
+ flex-shrink: 0;
2775
+ }
2776
+
2777
+ .automation-form-prompt-host .automation-form-isolation-chip {
2778
+ cursor: pointer;
2779
+ border-radius: var(--vscode-cornerRadius-small);
2780
+ }
2781
+
2782
+ .automation-form-prompt-host .automation-form-isolation-chip:not(.automation-form-isolation-chip-disabled):hover {
2783
+ background-color: var(--vscode-toolbar-hoverBackground);
2784
+ color: var(--vscode-foreground);
2785
+ }
2786
+
2787
+ .automation-form-prompt-host .automation-form-isolation-chip-disabled {
2788
+ cursor: default;
2789
+ }
2790
+
2791
+ .automation-form-prompt-host .automation-form-isolation-label,
2792
+ .automation-form-prompt-host .automation-form-branch-name {
2793
+ font-size: 11px;
2794
+ }
2795
+
2796
+ .automation-form-prompt-host .automation-form-branch-name {
2797
+ min-width: 0;
2798
+ overflow: hidden;
2799
+ text-overflow: ellipsis;
2800
+ white-space: nowrap;
2801
+ }
2802
+
2803
+ /* Mirror the new-session `|` divider between repo-config chips:
2804
+ * `box-shadow: -5px 0 0 -4px var(--vscode-editorWidget-border)` paints
2805
+ * a 1px-wide bar in the gap to the chip's left. */
2806
+ .automation-form-prompt-host .automation-form-isolation-group > .automation-form-branch-slot {
2807
+ box-shadow: -5px 0 0 -4px var(--vscode-editorWidget-border);
2808
+ }
2809
+
2810
+ .automation-form-prompt-host .chat-secondary-toolbar .automation-form-harness-chip {
2811
+ display: inline-flex;
2812
+ align-items: center;
2813
+ gap: 4px;
2814
+ height: 16px;
2815
+ padding: 3px 6px;
2816
+ font-size: 11px;
2817
+ color: var(--vscode-icon-foreground);
2818
+ background: transparent;
2819
+ border: none;
2820
+ opacity: 0.6;
2821
+ cursor: default;
2822
+ }
2823
+
2824
+ .automation-form-prompt-host .automation-form-harness-chip > .codicon {
2825
+ font-size: 12px;
2826
+ flex-shrink: 0;
2827
+ }
2828
+
2829
+ .automation-form-prompt-host .automation-form-harness-label {
2830
+ font-size: 11px;
2831
+ }
2832
+
2833
+ /* Missing-branch state (no folder / no git repo / detached / empty): use
2834
+ * description-foreground + italic so it visually reads as "informational
2835
+ * placeholder, not a real ref name". */
2836
+ .automation-form-prompt-host .automation-form-branch-slot.automation-form-branch-missing,
2837
+ .automation-form-prompt-host .automation-form-branch-slot.automation-form-branch-missing > .codicon {
2838
+ color: var(--vscode-descriptionForeground);
2839
+ }
2840
+
2841
+ .automation-form-prompt-host .automation-form-branch-slot.automation-form-branch-missing .automation-form-branch-name {
2842
+ font-style: italic;
2843
+ }
2844
+
2845
+ .automations-list-widget .automations-row-folder {
2846
+ color: var(--vscode-descriptionForeground);
2847
+ white-space: nowrap;
2848
+ overflow: hidden;
2849
+ text-overflow: ellipsis;
2850
+ max-width: 240px;
2851
+ }