@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
@@ -0,0 +1,772 @@
1
+
2
+ import { registerCss } from '@codingame/monaco-vscode-api/css';
3
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
+ import * as aiCustomizationManagement from './media/aiCustomizationManagement.css';
5
+ import { $ as $$1, append, addDisposableListener, isAncestor, clearNode, addStandardDisposableListener, scheduleAtNextAnimationFrame, getWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
+ import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
7
+ import { getDefaultHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
8
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
9
+ import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
10
+ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
11
+ import { DisposableStore, Disposable, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
12
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
13
+ import { fromNow, getDurationString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/date';
14
+ import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
15
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
16
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
17
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
18
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
19
+ import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
20
+ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
21
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
22
+ import { WorkbenchList } from '@codingame/monaco-vscode-api/vscode/vs/platform/list/browser/listService';
23
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
24
+ import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
25
+ import { defaultButtonStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
26
+ import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
27
+ import { status } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
28
+ import { IAutomationRunner } from '../../common/automations/automationRunner.service.js';
29
+ import { IAutomationService } from '../../common/automations/automationService.service.js';
30
+ import { IAutomationDialogService } from '../../common/automations/automationDialogService.service.js';
31
+ import { CHAT_AUTOMATIONS_ENABLED_SETTING } from '../../common/automations/automationsEnabled.js';
32
+ import { DAYS_OF_WEEK } from '../../common/automations/schedule.js';
33
+ import { IAgentSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.service';
34
+ import { openSession } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener';
35
+ import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
36
+ import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
37
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
38
+
39
+ registerCss(aiCustomizationManagement);
40
+ const $ = $$1;
41
+ const AUTOMATION_ROW_HEIGHT = 72;
42
+ const HISTORY_ROW_HEIGHT = 28;
43
+ const HISTORY_HEADER_HEIGHT = 32;
44
+ const HISTORY_EMPTY_HEIGHT = 28;
45
+ const HISTORY_MORE_HEIGHT = 22;
46
+ const MAX_VISIBLE_RUNS = 20;
47
+ class AutomationItemDelegate {
48
+ getHeight(element) {
49
+ if (!element.expanded) {
50
+ return AUTOMATION_ROW_HEIGHT;
51
+ }
52
+ const runs = element.runs;
53
+ const visibleRuns = Math.min(runs.length, MAX_VISIBLE_RUNS);
54
+ if (visibleRuns === 0) {
55
+ return AUTOMATION_ROW_HEIGHT + HISTORY_EMPTY_HEIGHT;
56
+ }
57
+ let historyHeight = HISTORY_HEADER_HEIGHT + visibleRuns * HISTORY_ROW_HEIGHT;
58
+ if (runs.length > MAX_VISIBLE_RUNS) {
59
+ historyHeight += HISTORY_MORE_HEIGHT;
60
+ }
61
+ return AUTOMATION_ROW_HEIGHT + historyHeight;
62
+ }
63
+ hasDynamicHeight(_element) {
64
+ return true;
65
+ }
66
+ getTemplateId(_element) {
67
+ return "automationItem";
68
+ }
69
+ }
70
+ class AutomationItemRenderer {
71
+ constructor(
72
+ widget,
73
+ hoverService,
74
+ notificationService,
75
+ editorService,
76
+ editorGroupsService,
77
+ logService,
78
+ agentSessionsService,
79
+ instantiationService
80
+ ) {
81
+ this.widget = widget;
82
+ this.hoverService = hoverService;
83
+ this.notificationService = notificationService;
84
+ this.editorService = editorService;
85
+ this.editorGroupsService = editorGroupsService;
86
+ this.logService = logService;
87
+ this.agentSessionsService = agentSessionsService;
88
+ this.instantiationService = instantiationService;
89
+ this.templateId = "automationItem";
90
+ }
91
+ renderTemplate(container) {
92
+ const disposables = ( new DisposableStore());
93
+ container.classList.add("automations-row-wrapper");
94
+ const row = append(container, $(".automations-row"));
95
+ const main = append(row, $(".automations-row-main"));
96
+ const nameEl = append(main, $(".automations-row-name"));
97
+ const nameTextEl = append(nameEl, $("span.automations-row-name-text"));
98
+ const disabledBadge = append(nameEl, $("span.automations-row-disabled-badge"));
99
+ const metaEl = append(main, $(".automations-row-meta"));
100
+ const scheduleEl = append(metaEl, $("span.automations-row-schedule"));
101
+ const sep1 = append(metaEl, $("span.automations-row-meta-sep"));
102
+ const nextEl = append(metaEl, $("span.automations-row-next"));
103
+ const sepFolder = append(metaEl, $("span.automations-row-meta-sep"));
104
+ const folderEl = append(metaEl, $("span.automations-row-folder"));
105
+ const sep2 = append(metaEl, $("span.automations-row-meta-sep"));
106
+ const lastEl = append(metaEl, $("span.automations-row-last"));
107
+ const promptEl = append(main, $(".automations-row-prompt"));
108
+ const actions = append(row, $(".automations-row-actions"));
109
+ const historyPanel = append(container, $(".automations-row-history"));
110
+ return {
111
+ container,
112
+ row,
113
+ nameEl,
114
+ nameTextEl,
115
+ disabledBadge,
116
+ scheduleEl,
117
+ sep1,
118
+ nextEl,
119
+ sepFolder,
120
+ folderEl,
121
+ sep2,
122
+ lastEl,
123
+ promptEl,
124
+ actions,
125
+ historyPanel,
126
+ disposables
127
+ };
128
+ }
129
+ renderElement(element, _index, templateData) {
130
+ templateData.disposables.clear();
131
+ const {
132
+ automation,
133
+ runs,
134
+ expanded,
135
+ inFlight
136
+ } = element;
137
+ templateData.nameTextEl.textContent = automation.name;
138
+ templateData.row.classList.toggle("automations-row-disabled", !automation.enabled);
139
+ templateData.disabledBadge.textContent = !automation.enabled ? ( localize(5950, "Disabled")) : "";
140
+ templateData.disabledBadge.style.display = !automation.enabled ? "" : "none";
141
+ templateData.scheduleEl.textContent = formatSchedule(automation);
142
+ templateData.sep1.textContent = "·";
143
+ templateData.nextEl.textContent = formatNextRun(automation);
144
+ templateData.sepFolder.textContent = "·";
145
+ const folderLabel = this.widget.formatFolderLabel(automation.folderUri);
146
+ templateData.folderEl.textContent = ( localize(5951, "in {0}", folderLabel));
147
+ templateData.folderEl.title = ( automation.folderUri.toString());
148
+ if (automation.lastRunAt) {
149
+ templateData.sep2.textContent = "·";
150
+ templateData.sep2.style.display = "";
151
+ templateData.lastEl.textContent = ( localize(5952, "Last run {0}", formatRelativeTimeOrIso(automation.lastRunAt)));
152
+ templateData.lastEl.style.display = "";
153
+ } else {
154
+ templateData.sep2.style.display = "none";
155
+ templateData.lastEl.style.display = "none";
156
+ }
157
+ templateData.promptEl.textContent = truncate(automation.prompt, 160);
158
+ templateData.promptEl.title = automation.prompt;
159
+ templateData.disposables.add(addDisposableListener(templateData.row, "click", e => {
160
+ if (isAncestor(e.target, templateData.actions)) {
161
+ return;
162
+ }
163
+ this.widget.toggleExpanded(automation.id);
164
+ }));
165
+ clearNode(templateData.actions);
166
+ templateData.disposables.add(addDisposableListener(templateData.actions, "click", e => {
167
+ e.stopPropagation();
168
+ }));
169
+ this.renderActions(templateData, automation, expanded, inFlight);
170
+ clearNode(templateData.historyPanel);
171
+ templateData.historyPanel.id = `automation-history-${automation.id}`;
172
+ if (expanded) {
173
+ this.renderHistoryPanel(templateData, automation, runs);
174
+ }
175
+ templateData.historyPanel.style.display = expanded ? "" : "none";
176
+ }
177
+ renderActions(templateData, automation, expanded, inFlight) {
178
+ const {
179
+ actions,
180
+ disposables
181
+ } = templateData;
182
+ const runBtn = this.createIconButton(actions, Codicon.play, ( localize(5953, "Run now")), inFlight, disposables);
183
+ disposables.add(addStandardDisposableListener(runBtn, "click", () => {
184
+ void this.widget.runNow(automation);
185
+ }));
186
+ const toggleIcon = automation.enabled ? Codicon.eye : Codicon.eyeClosed;
187
+ const toggleTooltip = automation.enabled ? ( localize(5954, "Disable")) : ( localize(5955, "Enable"));
188
+ const toggleBtn = this.createIconButton(actions, toggleIcon, toggleTooltip, false, disposables);
189
+ disposables.add(addStandardDisposableListener(toggleBtn, "click", () => {
190
+ void this.widget.toggleEnabled(automation);
191
+ }));
192
+ const editBtn = this.createIconButton(actions, Codicon.edit, ( localize(5956, "Edit")), false, disposables);
193
+ disposables.add(addStandardDisposableListener(editBtn, "click", () => {
194
+ void this.widget.openEditDialog(automation);
195
+ }));
196
+ const deleteBtn = this.createIconButton(actions, Codicon.trash, ( localize(5957, "Delete")), false, disposables);
197
+ disposables.add(addStandardDisposableListener(deleteBtn, "click", () => {
198
+ void this.widget.deleteAutomation(automation);
199
+ }));
200
+ const histIcon = expanded ? Codicon.chevronDown : Codicon.chevronRight;
201
+ const histTooltip = expanded ? ( localize(5958, "Hide history")) : ( localize(5959, "Show history"));
202
+ const histBtn = this.createIconButton(actions, histIcon, histTooltip, false, disposables);
203
+ histBtn.setAttribute("aria-expanded", expanded ? "true" : "false");
204
+ histBtn.setAttribute("aria-controls", `automation-history-${automation.id}`);
205
+ disposables.add(addStandardDisposableListener(histBtn, "click", () => {
206
+ this.widget.toggleExpanded(automation.id);
207
+ }));
208
+ }
209
+ renderHistoryPanel(templateData, automation, runs) {
210
+ const panel = templateData.historyPanel;
211
+ panel.setAttribute("role", "region");
212
+ panel.setAttribute("aria-label", ( localize(5960, "Run history for {0}", automation.name)));
213
+ if (runs.length === 0) {
214
+ const empty = append(panel, $(".automations-history-empty"));
215
+ empty.textContent = ( localize(5961, "No runs yet."));
216
+ return;
217
+ }
218
+ const heading = append(panel, $("h4.automations-history-heading"));
219
+ heading.textContent = ( localize(5962, "Run history"));
220
+ const runsList = append(panel, $("ul.automations-history-list"));
221
+ const visibleRuns = runs.slice(0, MAX_VISIBLE_RUNS);
222
+ for (const run of visibleRuns) {
223
+ this.renderRunRow(runsList, run, templateData.disposables);
224
+ }
225
+ if (runs.length > MAX_VISIBLE_RUNS) {
226
+ const more = append(panel, $(".automations-history-more"));
227
+ more.textContent = ( localize(5963, "{0} more run(s) not shown.", runs.length - visibleRuns.length));
228
+ }
229
+ }
230
+ renderRunRow(container, run, disposables) {
231
+ const li = append(container, $("li.automations-history-row", {
232
+ "data-run-id": run.id,
233
+ "data-run-status": run.status
234
+ }));
235
+ const statusIcon = append(li, $("span.automations-history-status.codicon"));
236
+ const {
237
+ iconId,
238
+ spin
239
+ } = runStatusIcon(run.status);
240
+ statusIcon.classList.add(`codicon-${iconId}`);
241
+ if (spin) {
242
+ statusIcon.classList.add("codicon-modifier-spin");
243
+ }
244
+ statusIcon.setAttribute("aria-hidden", "true");
245
+ const text = append(li, $(".automations-history-row-text"));
246
+ const first = append(text, $(".automations-history-row-first"));
247
+ const statusLabel = append(first, $("span.automations-history-row-status"));
248
+ statusLabel.textContent = runStatusLabel(run.status);
249
+ const sep = append(first, $("span.automations-history-row-sep"));
250
+ sep.textContent = "·";
251
+ const trig = append(first, $("span.automations-history-row-trigger"));
252
+ trig.textContent = runTriggerLabel(run.trigger);
253
+ const sep2 = append(first, $("span.automations-history-row-sep"));
254
+ sep2.textContent = "·";
255
+ const started = append(first, $("span.automations-history-row-started"));
256
+ started.textContent = ( localize(5964, "Started {0}", formatRelativeTimeOrIso(run.startedAt)));
257
+ const dur = formatRunDuration(run);
258
+ if (dur) {
259
+ const sep3 = append(first, $("span.automations-history-row-sep"));
260
+ sep3.textContent = "·";
261
+ const durEl = append(first, $("span.automations-history-row-duration"));
262
+ durEl.textContent = dur;
263
+ }
264
+ if (run.errorMessage) {
265
+ const err = append(text, $(".automations-history-row-error"));
266
+ err.textContent = run.errorMessage;
267
+ err.setAttribute("role", "status");
268
+ err.setAttribute("aria-live", "polite");
269
+ }
270
+ if (run.sessionResource) {
271
+ const openButton = append(li, $("span.automations-history-row-open.codicon.codicon-link-external"));
272
+ openButton.setAttribute("role", "button");
273
+ openButton.setAttribute("tabindex", "0");
274
+ openButton.setAttribute("aria-label", ( localize(5965, "Open session")));
275
+ disposables.add(
276
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), openButton, ( localize(5965, "Open session")))
277
+ );
278
+ const openSession$1 = e => {
279
+ e.stopPropagation();
280
+ const sessionResource = ( URI.parse(run.sessionResource));
281
+ this.logService.debug(`[AutomationsListWidget] Opening session: ${( sessionResource.toString())}`);
282
+ const activeEditor = this.editorService.activeEditor;
283
+ const activeGroupId = this.editorGroupsService.activeGroup.id;
284
+ const agentSession = this.agentSessionsService.getSession(sessionResource);
285
+ if (!agentSession) {
286
+ this.logService.warn(`[AutomationsListWidget] Session not found for ${( sessionResource.toString())}`);
287
+ this.notificationService.error(( localize(5966, "Failed to open automation session")));
288
+ return;
289
+ }
290
+ this.instantiationService.invokeFunction(openSession, agentSession).then(() => {
291
+ if (activeEditor) {
292
+ this.editorService.closeEditor({
293
+ editor: activeEditor,
294
+ groupId: activeGroupId
295
+ });
296
+ }
297
+ }).catch(err => {
298
+ this.logService.error(`[AutomationsListWidget] openSession failed for ${( sessionResource.toString())}`, err);
299
+ this.notificationService.error(( localize(5966, "Failed to open automation session")));
300
+ });
301
+ };
302
+ disposables.add(addDisposableListener(openButton, "click", openSession$1));
303
+ disposables.add(addDisposableListener(openButton, "keydown", e => {
304
+ if (e.key === "Enter" || e.key === " ") {
305
+ e.preventDefault();
306
+ openSession$1(e);
307
+ }
308
+ }));
309
+ }
310
+ }
311
+ createIconButton(container, icon, tooltip, disabled, disposables) {
312
+ const button = append(container, $("button.automations-row-action-button", {
313
+ type: "button",
314
+ "aria-label": tooltip,
315
+ tabindex: "0"
316
+ }));
317
+ button.classList.add(...ThemeIcon.asClassNameArray(icon));
318
+ button.disabled = disabled;
319
+ disposables.add(
320
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), button, tooltip)
321
+ );
322
+ return button;
323
+ }
324
+ disposeTemplate(templateData) {
325
+ templateData.disposables.dispose();
326
+ }
327
+ }
328
+ let AutomationsListWidget = class AutomationsListWidget extends Disposable {
329
+ constructor(
330
+ automationService,
331
+ automationRunner,
332
+ dialogService,
333
+ automationDialogService,
334
+ hoverService,
335
+ workspaceContextService,
336
+ logService,
337
+ configurationService,
338
+ instantiationService,
339
+ notificationService,
340
+ editorService,
341
+ editorGroupsService,
342
+ agentSessionsService
343
+ ) {
344
+ super();
345
+ this.automationService = automationService;
346
+ this.automationRunner = automationRunner;
347
+ this.dialogService = dialogService;
348
+ this.automationDialogService = automationDialogService;
349
+ this.hoverService = hoverService;
350
+ this.workspaceContextService = workspaceContextService;
351
+ this.logService = logService;
352
+ this.configurationService = configurationService;
353
+ this.instantiationService = instantiationService;
354
+ this.notificationService = notificationService;
355
+ this.editorService = editorService;
356
+ this.editorGroupsService = editorGroupsService;
357
+ this.agentSessionsService = agentSessionsService;
358
+ this._onDidChangeItemCount = this._register(( new Emitter()));
359
+ this.onDidChangeItemCount = this._onDidChangeItemCount.event;
360
+ this.newButtonHover = this._register(( new MutableDisposable()));
361
+ this.newEmptyStateButtonHover = this._register(( new MutableDisposable()));
362
+ this._emptyStateStore = this._register(( new DisposableStore()));
363
+ this.runInFlight = ( new Set());
364
+ this.expandedRows = ( new Set());
365
+ this.displayEntries = [];
366
+ this.lastHeight = 0;
367
+ this.lastWidth = 0;
368
+ this._layoutDeferred = false;
369
+ this._layoutRAF = this._register(( new MutableDisposable()));
370
+ this.element = $(".automations-list-widget");
371
+ this.headerEl = append(this.element, $(".automations-header"));
372
+ this.emptyContainer = append(this.element, $(".automations-empty-state"));
373
+ this.emptyContainer.style.display = "none";
374
+ this.listContainer = append(this.element, $(".automations-list"));
375
+ this.renderHeader();
376
+ this.createList();
377
+ this._register(autorun(reader => {
378
+ const items = this.automationService.automations.read(reader);
379
+ this.automationService.runs.read(reader);
380
+ this.updateList(items);
381
+ this._onDidChangeItemCount.fire(items.length);
382
+ }));
383
+ }
384
+ renderHeader() {
385
+ const titleRow = append(this.headerEl, $(".automations-header-row"));
386
+ const titleEl = append(titleRow, $("h2.automations-header-title"));
387
+ titleEl.textContent = ( localize(5967, "Automations"));
388
+ const subtitleEl = append(this.headerEl, $("p.automations-header-subtitle"));
389
+ subtitleEl.textContent = ( localize(5968, "Schedule agent sessions to run on a cadence you choose."));
390
+ const newButton = this._register(( new Button(titleRow, {
391
+ ...defaultButtonStyles,
392
+ title: ( localize(5969, "New automation"))
393
+ })));
394
+ newButton.label = ( localize(5969, "New automation"));
395
+ newButton.element.classList.add("automations-new-button");
396
+ this._register(newButton.onDidClick(() => this.openCreateDialog()));
397
+ this.newButtonHover.value = this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), newButton.element, ( localize(5970, "Create a new automation")));
398
+ }
399
+ createList() {
400
+ const delegate = ( new AutomationItemDelegate());
401
+ const renderer = ( new AutomationItemRenderer(
402
+ this,
403
+ this.hoverService,
404
+ this.notificationService,
405
+ this.editorService,
406
+ this.editorGroupsService,
407
+ this.logService,
408
+ this.agentSessionsService,
409
+ this.instantiationService
410
+ ));
411
+ this.list = this._register(this.instantiationService.createInstance(
412
+ WorkbenchList,
413
+ "AutomationsManagementList",
414
+ this.listContainer,
415
+ delegate,
416
+ [renderer],
417
+ {
418
+ multipleSelectionSupport: false,
419
+ setRowLineHeight: false,
420
+ supportDynamicHeights: true,
421
+ horizontalScrolling: false,
422
+ accessibilityProvider: {
423
+ getAriaLabel: element => {
424
+ const a = element.automation;
425
+ return a.enabled ? ( localize(5971, "{0}, {1}", a.name, formatSchedule(a))) : ( localize(5972, "{0}, disabled", a.name));
426
+ },
427
+ getWidgetAriaLabel() {
428
+ return localize(5973, "Automations");
429
+ }
430
+ },
431
+ identityProvider: {
432
+ getId(element) {
433
+ return element.automation.id;
434
+ }
435
+ }
436
+ }
437
+ ));
438
+ this._register(this.list.onDidChangeSelection(() => {
439
+ if (this.list.getSelection().length > 0) {
440
+ this.list.setSelection([]);
441
+ }
442
+ }));
443
+ }
444
+ updateList(items) {
445
+ if (items.length === 0) {
446
+ this.element.classList.add("automations-empty");
447
+ this.emptyContainer.style.display = "";
448
+ this.listContainer.style.display = "none";
449
+ this.renderEmptyState();
450
+ this.displayEntries = [];
451
+ this.list.splice(0, this.list.length, []);
452
+ return;
453
+ }
454
+ this.element.classList.remove("automations-empty");
455
+ this.emptyContainer.style.display = "none";
456
+ this.listContainer.style.display = "";
457
+ this.newEmptyStateButtonHover.clear();
458
+ this.displayEntries = ( items.map(automation => ({
459
+ type: "automation-item",
460
+ automation,
461
+ runs: this.automationService.runsFor(automation.id).get(),
462
+ expanded: ( this.expandedRows.has(automation.id)),
463
+ inFlight: ( this.runInFlight.has(automation.id))
464
+ })));
465
+ this.list.splice(0, this.list.length, this.displayEntries);
466
+ }
467
+ renderEmptyState() {
468
+ this._emptyStateStore.clear();
469
+ clearNode(this.emptyContainer);
470
+ this.emptyContainer.setAttribute("role", "status");
471
+ const title = append(this.emptyContainer, $("h3.automations-empty-title"));
472
+ title.textContent = ( localize(5974, "No automations yet"));
473
+ const message = append(this.emptyContainer, $("p.automations-empty-message"));
474
+ message.textContent = ( localize(
475
+ 5975,
476
+ "Create an automation to schedule an agent session to run on a cadence you choose."
477
+ ));
478
+ const ctaButton = this._emptyStateStore.add(( new Button(this.emptyContainer, {
479
+ ...defaultButtonStyles
480
+ })));
481
+ ctaButton.label = ( localize(5976, "Create automation"));
482
+ ctaButton.element.classList.add("automations-empty-cta");
483
+ this._emptyStateStore.add(ctaButton.onDidClick(() => this.openCreateDialog()));
484
+ this.newEmptyStateButtonHover.value = this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), ctaButton.element, ( localize(5970, "Create a new automation")));
485
+ }
486
+ toggleExpanded(automationId) {
487
+ if (( this.expandedRows.has(automationId))) {
488
+ this.expandedRows.delete(automationId);
489
+ } else {
490
+ this.expandedRows.add(automationId);
491
+ }
492
+ this.updateList(this.automationService.automations.get());
493
+ }
494
+ async runNow(automation) {
495
+ if (!this._isEnabled()) {
496
+ await this._notifyDisabled();
497
+ return;
498
+ }
499
+ if (( this.runInFlight.has(automation.id))) {
500
+ return;
501
+ }
502
+ this.runInFlight.add(automation.id);
503
+ this.updateList(this.automationService.automations.get());
504
+ const previousRunId = this.automationService.runsFor(automation.id).get()[0]?.id;
505
+ try {
506
+ await this.automationRunner.runOnce(automation, "manual", 0, CancellationToken.None);
507
+ const latestRun = this.automationService.runsFor(automation.id).get()[0];
508
+ if (latestRun && latestRun.id !== previousRunId && latestRun.status !== "failed") {
509
+ status(( localize(5977, "Started automation {0}", automation.name)));
510
+ }
511
+ } catch (err) {
512
+ this.logService.error("[Automations] runNow failed unexpectedly", err);
513
+ } finally {
514
+ this.runInFlight.delete(automation.id);
515
+ this.updateList(this.automationService.automations.get());
516
+ }
517
+ }
518
+ async toggleEnabled(automation) {
519
+ if (!this._isEnabled()) {
520
+ await this._notifyDisabled();
521
+ return;
522
+ }
523
+ try {
524
+ await this.automationService.updateAutomation(automation.id, {
525
+ enabled: !automation.enabled
526
+ });
527
+ status(automation.enabled ? ( localize(5978, "Disabled automation {0}", automation.name)) : ( localize(5979, "Enabled automation {0}", automation.name)));
528
+ } catch (err) {
529
+ this.logService.error("[Automations] Failed to toggle automation", err);
530
+ }
531
+ }
532
+ async deleteAutomation(automation) {
533
+ if (!this._isEnabled()) {
534
+ await this._notifyDisabled();
535
+ return;
536
+ }
537
+ const result = await this.dialogService.confirm({
538
+ type: "warning",
539
+ message: ( localize(5980, "Delete automation “{0}”?", automation.name)),
540
+ detail: ( localize(5981, "Runs already in flight will continue. This cannot be undone.")),
541
+ primaryButton: ( localize(5982, "Delete"))
542
+ });
543
+ if (!result.confirmed) {
544
+ return;
545
+ }
546
+ if (!this._isEnabled()) {
547
+ await this._notifyDisabled();
548
+ return;
549
+ }
550
+ try {
551
+ await this.automationService.deleteAutomation(automation.id);
552
+ status(( localize(5983, "Deleted automation {0}", automation.name)));
553
+ } catch (err) {
554
+ this.logService.error("[Automations] Failed to delete automation", err);
555
+ }
556
+ }
557
+ async openEditDialog(automation) {
558
+ if (!this._isEnabled()) {
559
+ await this._notifyDisabled();
560
+ return;
561
+ }
562
+ const result = await this.automationDialogService.showAutomationDialog({
563
+ existing: automation
564
+ });
565
+ if (!result || result.kind !== "update") {
566
+ return;
567
+ }
568
+ if (!this._isEnabled()) {
569
+ await this._notifyDisabled();
570
+ return;
571
+ }
572
+ try {
573
+ await this.automationService.updateAutomation(result.id, result.value);
574
+ status(( localize(5984, "Updated automation {0}", automation.name)));
575
+ } catch (err) {
576
+ this.logService.error("[Automations] Failed to update automation", err);
577
+ await this.dialogService.error(( localize(5985, "Failed to update automation.")), err instanceof Error ? err.message : String(err));
578
+ }
579
+ }
580
+ formatFolderLabel(folderUri) {
581
+ const folders = this.workspaceContextService.getWorkspace().folders;
582
+ const match = folders.find(f => isEqual(f.uri, folderUri));
583
+ if (match) {
584
+ return match.name || ( match.uri.toString());
585
+ }
586
+ const segments = folderUri.path.split("/").filter(s => s.length > 0);
587
+ return segments[segments.length - 1] ?? ( folderUri.toString());
588
+ }
589
+ _isEnabled() {
590
+ return this.configurationService.getValue(CHAT_AUTOMATIONS_ENABLED_SETTING) === true;
591
+ }
592
+ async _notifyDisabled() {
593
+ await this.dialogService.info(( localize(5986, "Automations are disabled.")), ( localize(5987, "Enable “{0}” to make changes.", CHAT_AUTOMATIONS_ENABLED_SETTING)));
594
+ }
595
+ async openCreateDialog() {
596
+ if (!this._isEnabled()) {
597
+ await this._notifyDisabled();
598
+ return;
599
+ }
600
+ const result = await this.automationDialogService.showAutomationDialog({});
601
+ if (!result || result.kind !== "create") {
602
+ return;
603
+ }
604
+ if (!this._isEnabled()) {
605
+ await this._notifyDisabled();
606
+ return;
607
+ }
608
+ try {
609
+ const created = await this.automationService.createAutomation(result.value);
610
+ status(( localize(5988, "Created automation {0}", created.name)));
611
+ } catch (err) {
612
+ this.logService.error("[Automations] Failed to create automation", err);
613
+ await this.dialogService.error(( localize(5989, "Failed to create automation.")), err instanceof Error ? err.message : String(err));
614
+ }
615
+ }
616
+ layout(height, width) {
617
+ this.lastHeight = height;
618
+ this.lastWidth = width;
619
+ this.element.style.height = `${height}px`;
620
+ const headerHeight = this.headerEl.offsetHeight;
621
+ if (headerHeight === 0 && !this._layoutDeferred) {
622
+ this._layoutDeferred = true;
623
+ this._layoutRAF.value = scheduleAtNextAnimationFrame(getWindow(this.element), () => {
624
+ this._layoutDeferred = false;
625
+ this.layout(this.lastHeight, this.lastWidth);
626
+ });
627
+ return;
628
+ }
629
+ const listHeight = Math.max(0, height - headerHeight);
630
+ this.listContainer.style.height = `${listHeight}px`;
631
+ this.list.layout(listHeight, width);
632
+ }
633
+ fireItemCount() {
634
+ this._onDidChangeItemCount.fire(this.automationService.automations.get().length);
635
+ }
636
+ get itemCount() {
637
+ return this.list.length;
638
+ }
639
+ getDisplayEntriesForTest() {
640
+ return this.displayEntries;
641
+ }
642
+ focus() {
643
+ if (this.list.length > 0) {
644
+ this.list.domFocus();
645
+ }
646
+ }
647
+ };
648
+ AutomationsListWidget = ( __decorate([( __param(0, IAutomationService)), ( __param(1, IAutomationRunner)), ( __param(2, IDialogService)), ( __param(3, IAutomationDialogService)), ( __param(4, IHoverService)), ( __param(5, IWorkspaceContextService)), ( __param(6, ILogService)), ( __param(7, IConfigurationService)), ( __param(8, IInstantiationService)), ( __param(9, INotificationService)), ( __param(10, IEditorService)), ( __param(11, IEditorGroupsService)), ( __param(12, IAgentSessionsService))], AutomationsListWidget));
649
+ function formatSchedule(a) {
650
+ switch (a.schedule.interval) {
651
+ case "manual":
652
+ return localize(5990, "Manual");
653
+ case "hourly":
654
+ return localize(5991, "Hourly");
655
+ case "daily":
656
+ return localize(
657
+ 5992,
658
+ "Daily at {0}",
659
+ formatHourMinute(a.schedule.scheduleHour, a.schedule.scheduleMinute)
660
+ );
661
+ case "weekly":
662
+ {
663
+ const day = dayName(a.schedule.scheduleDay);
664
+ return localize(
665
+ 5993,
666
+ "Weekly on {0} at {1}",
667
+ day,
668
+ formatHourMinute(a.schedule.scheduleHour, a.schedule.scheduleMinute)
669
+ );
670
+ }
671
+ }
672
+ }
673
+ function formatHourMinute(hour, minute) {
674
+ const date = ( new Date());
675
+ date.setHours(
676
+ Math.max(0, Math.min(23, hour | 0)),
677
+ Math.max(0, Math.min(59, minute | 0)),
678
+ 0,
679
+ 0
680
+ );
681
+ return date.toLocaleTimeString(undefined, {
682
+ hour: "numeric",
683
+ minute: "2-digit"
684
+ });
685
+ }
686
+ function dayName(day) {
687
+ const idx = ((day % 7) + 7) % 7;
688
+ return DAYS_OF_WEEK[idx];
689
+ }
690
+ function formatNextRun(a) {
691
+ if (a.schedule.interval === "manual" || !a.nextRunAt) {
692
+ return localize(5994, "No scheduled run");
693
+ }
694
+ return localize(5995, "Next run {0}", formatRelativeTimeOrIso(a.nextRunAt));
695
+ }
696
+ function formatRelativeTimeOrIso(iso) {
697
+ const t = Date.parse(iso);
698
+ if (Number.isNaN(t)) {
699
+ return iso;
700
+ }
701
+ const date = ( new Date(t));
702
+ const rel = fromNow(date, true);
703
+ const absolute = date.toLocaleString();
704
+ return `${rel} (${absolute})`;
705
+ }
706
+ function truncate(s, max) {
707
+ const single = s.replace(/\s+/g, " ").trim();
708
+ if (single.length <= max) {
709
+ return single;
710
+ }
711
+ return single.slice(0, Math.max(0, max - 1)) + "…";
712
+ }
713
+ function runStatusIcon(status) {
714
+ switch (status) {
715
+ case "pending":
716
+ return {
717
+ iconId: "circle-outline",
718
+ spin: false
719
+ };
720
+ case "running":
721
+ return {
722
+ iconId: "sync",
723
+ spin: true
724
+ };
725
+ case "completed":
726
+ return {
727
+ iconId: "check",
728
+ spin: false
729
+ };
730
+ case "failed":
731
+ return {
732
+ iconId: "error",
733
+ spin: false
734
+ };
735
+ }
736
+ }
737
+ function runStatusLabel(status) {
738
+ switch (status) {
739
+ case "pending":
740
+ return localize(5996, "Pending");
741
+ case "running":
742
+ return localize(5997, "Running");
743
+ case "completed":
744
+ return localize(5998, "Completed");
745
+ case "failed":
746
+ return localize(5999, "Failed");
747
+ }
748
+ }
749
+ function runTriggerLabel(trigger) {
750
+ switch (trigger) {
751
+ case "schedule":
752
+ return localize(6000, "Scheduled");
753
+ case "manual":
754
+ return localize(6001, "Manual");
755
+ case "catch_up":
756
+ return localize(6002, "Catch-up");
757
+ }
758
+ }
759
+ function formatRunDuration(run) {
760
+ if (!run.completedAt) {
761
+ return undefined;
762
+ }
763
+ const startMs = Date.parse(run.startedAt);
764
+ const endMs = Date.parse(run.completedAt);
765
+ if (Number.isNaN(startMs) || Number.isNaN(endMs)) {
766
+ return undefined;
767
+ }
768
+ const durationMs = Math.max(0, endMs - startMs);
769
+ return getDurationString(durationMs);
770
+ }
771
+
772
+ export { AutomationsListWidget };