@codingame/monaco-vscode-chat-service-override 33.0.9 → 34.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 (403) hide show
  1. package/index.js +19 -5
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/browser/agentHostIpcChannelTransport.d.ts +32 -0
  4. package/vscode/src/vs/platform/agentHost/browser/agentHostIpcChannelTransport.js +77 -0
  5. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +84 -17
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +235 -190
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +3 -2
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +23 -4
  9. package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.d.ts +1 -0
  10. package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.js +22 -0
  11. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +107 -8
  12. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +272 -49
  13. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +2 -2
  14. package/vscode/src/vs/platform/agentHost/common/{agentHostPermissionService.d.ts → agentHostResourceService.d.ts} +26 -0
  15. package/vscode/src/vs/platform/agentHost/common/{agentHostPermissionService.js → agentHostResourceService.js} +11 -1
  16. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +13 -0
  17. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +26 -18
  18. package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.d.ts +1 -0
  19. package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +119 -0
  20. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +135 -19
  21. package/vscode/src/vs/platform/agentHost/common/agentService.js +8 -2
  22. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.d.ts +5 -1
  23. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.js +85 -22
  24. package/vscode/src/vs/platform/agentHost/common/customAgents.d.ts +36 -0
  25. package/vscode/src/vs/platform/agentHost/common/customAgents.js +12 -0
  26. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.d.ts +81 -0
  27. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +103 -0
  28. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +86 -10
  29. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +129 -37
  30. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.d.ts +12 -0
  31. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.js +72 -0
  32. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/reducer.d.ts +6 -0
  33. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/reducer.js +30 -0
  34. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/reducer.d.ts +6 -0
  35. package/vscode/src/vs/platform/agentHost/common/state/protocol/{reducers.js → channels-session/reducer.js} +99 -168
  36. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/reducer.d.ts +6 -0
  37. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/reducer.js +110 -0
  38. package/vscode/src/vs/platform/agentHost/common/state/protocol/{errors.d.ts → common/errors.d.ts} +13 -2
  39. package/vscode/src/vs/platform/agentHost/common/state/protocol/{errors.js → common/errors.js} +1 -2
  40. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.d.ts +17 -0
  41. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.js +9 -0
  42. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +33 -8
  43. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +2 -3
  44. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +36 -5
  45. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +6 -3
  46. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +50 -0
  47. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +138 -0
  48. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +3 -3
  49. package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +12 -0
  50. package/vscode/src/vs/platform/networkFilter/common/settings.js +14 -0
  51. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.d.ts +4 -1
  52. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +9 -0
  53. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +21 -0
  54. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +28 -0
  55. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.d.ts +31 -0
  56. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.js +49 -0
  57. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.d.ts +182 -0
  58. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.js +784 -0
  59. package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.d.ts +18 -0
  60. package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.js +305 -0
  61. package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +7 -0
  62. package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.js +120 -0
  63. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +100 -0
  64. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +10 -0
  65. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  67. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  68. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +60 -60
  69. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  71. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  72. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
  73. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +106 -8
  74. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  75. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +22 -36
  76. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  77. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  78. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +21 -13
  80. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
  81. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +38 -18
  82. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
  84. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  85. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  86. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
  87. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +3 -2
  88. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +9 -9
  89. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +5 -5
  90. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +10 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +40 -11
  92. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +15 -9
  93. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  94. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +0 -1
  95. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +23 -17
  96. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  97. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationSyncProvider.d.ts +24 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationSyncProvider.js +55 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.d.ts +30 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.js +119 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.d.ts +13 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.js +32 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.d.ts +55 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.js +104 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.d.ts +1 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.js +177 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.d.ts +3 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +11 -11
  109. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolUtils.d.ts +6 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolUtils.js +14 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +3 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +44 -5
  113. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.d.ts +60 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.js +103 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +4 -3
  116. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -62
  117. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +9 -7
  118. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  119. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  121. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +6 -5
  123. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +38 -28
  124. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  125. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  126. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +4 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +22 -31
  128. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +2 -2
  129. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -16
  130. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +3 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +8 -2
  132. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +112 -113
  133. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +62 -68
  134. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +3 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +149 -145
  136. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +3 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
  139. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +2 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +5 -3
  142. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.d.ts +8 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +13 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.d.ts +8 -1
  145. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +15 -13
  146. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +1 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +78 -55
  148. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +140 -67
  149. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +11 -21
  150. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +3 -1
  151. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +59 -57
  152. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +2 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +440 -357
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +1 -1
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  178. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  179. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  180. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  181. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  182. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/chat/browser/chatGoalSummaryService.d.ts +21 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/chatGoalSummaryService.js +115 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +5 -2
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  188. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +6 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +28 -1
  190. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +3 -1
  191. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +187 -106
  192. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +41 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  194. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  195. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.d.ts +66 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +346 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +3 -2
  198. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -2
  199. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +72 -29
  200. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  201. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  202. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
  203. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
  204. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +5 -1
  205. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +144 -67
  206. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  207. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +126 -80
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +1 -0
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +32 -31
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +4 -0
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +11 -0
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +40 -33
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +5 -1
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +25 -24
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  216. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  217. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +5 -5
  218. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +5 -5
  219. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  220. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  221. package/vscode/src/vs/workbench/contrib/chat/browser/githubRepoFetcher.js +1 -19
  222. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.d.ts +12 -22
  223. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.js +14 -6
  224. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +6 -3
  225. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +56 -18
  226. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  227. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  228. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +3 -3
  229. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +5 -6
  230. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +33 -36
  232. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +3 -0
  233. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +31 -16
  234. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +4 -4
  235. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +16 -13
  236. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  237. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  238. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +1 -1
  239. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  240. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  241. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  242. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  243. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  244. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  245. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  246. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  247. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  248. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +24 -23
  249. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
  250. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +18 -0
  251. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +23 -1
  252. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
  253. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +5 -2
  254. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  255. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  256. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +22 -13
  257. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +2 -2
  258. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  259. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  260. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  261. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +14 -3
  262. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +55 -24
  263. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  264. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.d.ts +38 -0
  265. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.js +47 -0
  266. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +54 -12
  267. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +1 -0
  268. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
  269. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +39 -0
  270. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +40 -4
  271. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +30 -8
  272. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +205 -46
  273. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +4 -3
  274. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +8 -3
  275. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +57 -0
  276. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +153 -38
  277. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +12 -7
  278. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +70 -37
  279. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +6 -28
  280. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
  281. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  282. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  283. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  284. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +150 -150
  285. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +10 -10
  287. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
  288. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  289. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  290. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  291. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  292. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  293. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  294. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  295. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  296. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +17 -17
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +21 -21
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +4 -0
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +21 -1
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.d.ts +55 -0
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.js +122 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +2 -0
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +41 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +52 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +232 -0
  313. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +65 -0
  314. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +225 -0
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +27 -0
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +143 -0
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +37 -0
  318. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +205 -0
  319. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +40 -0
  320. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +174 -0
  321. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +7 -0
  322. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +43 -0
  323. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +52 -0
  324. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +260 -0
  325. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +44 -0
  326. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +98 -0
  327. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  328. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -3
  329. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +14 -7
  330. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +42 -0
  331. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +226 -0
  332. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +31 -0
  333. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +392 -0
  334. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +45 -0
  335. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +243 -0
  336. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +54 -0
  337. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +10 -0
  338. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +20 -0
  339. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +310 -0
  340. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +27 -0
  341. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +177 -0
  342. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +11 -0
  343. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +33 -0
  344. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  345. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  346. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  347. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  348. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  349. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  350. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  351. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +13 -0
  352. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +22 -0
  353. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +42 -0
  354. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +102 -0
  355. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
  356. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +27 -0
  357. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +14 -0
  358. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +29 -0
  359. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
  360. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
  361. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +28 -0
  362. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +15 -0
  363. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +55 -0
  364. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  365. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +3 -0
  366. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +31 -9
  367. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  368. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +4 -4
  369. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +177 -0
  370. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +518 -0
  371. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +42 -0
  372. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
  373. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +9 -0
  374. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -1
  375. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +3 -3
  376. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +297 -0
  377. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +2961 -0
  378. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +29 -0
  379. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +63 -0
  380. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +14 -14
  381. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  382. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  383. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  384. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
  385. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +2 -2
  386. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +17 -0
  387. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +118 -0
  388. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.d.ts +22 -0
  389. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.js +44 -0
  390. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +58 -0
  391. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +223 -0
  392. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.d.ts +20 -0
  393. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.js +81 -0
  394. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +63 -0
  395. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +349 -0
  396. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.d.ts +75 -0
  397. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.js +192 -0
  398. package/vscode/src/vs/workbench/services/agentHost/common/agentHostResourceService.d.ts +89 -0
  399. package/vscode/src/vs/workbench/services/agentHost/common/{agentHostPermissionService.js → agentHostResourceService.js} +226 -9
  400. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +0 -30
  401. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +0 -119
  402. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +0 -552
  403. package/vscode/src/vs/workbench/services/agentHost/common/agentHostPermissionService.d.ts +0 -83
@@ -0,0 +1,12 @@
1
+
2
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-root/state';
3
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-session/state';
4
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-terminal/state';
5
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-changeset/state';
6
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-resource-watch/state';
7
+
8
+ function agentHostAgentPickerStorageKey(resourceScheme) {
9
+ return `workbench.agentsession.agentHostAgentPicker.${resourceScheme}.selectedAgentUri`;
10
+ }
11
+
12
+ export { agentHostAgentPickerStorageKey };
@@ -0,0 +1,81 @@
1
+ import { AgentSandboxEnabledValue } from "@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/settings";
2
+ /**
3
+ * Top-level keys the agent host's root config bag exposes for sandboxing.
4
+ * All sandbox-related values live nested under {@link AgentHostSandboxConfigKey.Sandbox}
5
+ * — the persisted JSON has a single `"sandbox": { ... }` object rather than a
6
+ * dozen flat keys.
7
+ */
8
+ export declare enum AgentHostSandboxConfigKey {
9
+ Sandbox = "sandbox"
10
+ }
11
+ /**
12
+ * Well-known sub-keys inside the agent host's `sandbox` object. These are
13
+ * intentionally a flat, prefix-free namespace owned by the agent host —
14
+ * distinct from the workbench's `chat.agent.sandbox.*` setting IDs. Hosts
15
+ * (today: the workbench client) translate from their setting IDs to these
16
+ * keys when forwarding values via a `RootConfigChanged` action.
17
+ */
18
+ export declare enum AgentHostSandboxKey {
19
+ Enabled = "enabled",
20
+ WindowsEnabled = "enabled.windows",
21
+ AllowUnsandboxedCommands = "allowUnsandboxedCommands",
22
+ AutoApproveUnsandboxedCommands = "autoApproveUnsandboxedCommands",
23
+ LinuxFileSystem = "fileSystem.linux",
24
+ MacFileSystem = "fileSystem.mac",
25
+ WindowsFileSystem = "fileSystem.windows",
26
+ AdvancedRuntime = "advanced.runtime",
27
+ AllowedNetworkDomains = "allowedNetworkDomains",
28
+ DeniedNetworkDomains = "deniedNetworkDomains"
29
+ }
30
+ /** Shape of the persisted/forwarded `sandbox` object. */
31
+ export type ISandboxConfigValue = Partial<{
32
+ [AgentHostSandboxKey.Enabled]: AgentSandboxEnabledValue;
33
+ [AgentHostSandboxKey.WindowsEnabled]: AgentSandboxEnabledValue;
34
+ [AgentHostSandboxKey.AllowUnsandboxedCommands]: boolean;
35
+ [AgentHostSandboxKey.AutoApproveUnsandboxedCommands]: boolean;
36
+ [AgentHostSandboxKey.LinuxFileSystem]: Record<string, unknown>;
37
+ [AgentHostSandboxKey.MacFileSystem]: Record<string, unknown>;
38
+ [AgentHostSandboxKey.WindowsFileSystem]: Record<string, unknown>;
39
+ [AgentHostSandboxKey.AdvancedRuntime]: Record<string, unknown>;
40
+ [AgentHostSandboxKey.AllowedNetworkDomains]: string[];
41
+ [AgentHostSandboxKey.DeniedNetworkDomains]: string[];
42
+ }>;
43
+ /**
44
+ * Schema for the subset of workbench sandbox settings that hosts (today: the
45
+ * workbench client) may forward into the agent host's root config bag.
46
+ *
47
+ * The agent host's terminal sandbox engine reads these values through
48
+ * {@link IAgentConfigurationService.getRootValue}. Only the modern,
49
+ * normalized form of each setting is declared here — the workbench is
50
+ * expected to:
51
+ *
52
+ * - map the legacy boolean form of `chat.agent.sandbox.enabled` to the
53
+ * `'on' | 'off' | 'allowNetwork'` enum, and
54
+ * - migrate values from any deprecated setting IDs to their modern key
55
+ *
56
+ * before pushing a `RootConfigChanged` action. That keeps the agent-host
57
+ * schema (and validation) free of backward-compat baggage.
58
+ */
59
+ export declare const sandboxConfigSchema: import("./agentHostSchema.js").ISchema<{
60
+ sandbox: import("./agentHostSchema.js").ISchemaProperty<Partial<{
61
+ enabled: AgentSandboxEnabledValue;
62
+ "enabled.windows": AgentSandboxEnabledValue;
63
+ allowUnsandboxedCommands: boolean;
64
+ autoApproveUnsandboxedCommands: boolean;
65
+ "fileSystem.linux": Record<string, unknown>;
66
+ "fileSystem.mac": Record<string, unknown>;
67
+ "fileSystem.windows": Record<string, unknown>;
68
+ "advanced.runtime": Record<string, unknown>;
69
+ allowedNetworkDomains: string[];
70
+ deniedNetworkDomains: string[];
71
+ }>>;
72
+ }>;
73
+ /**
74
+ * Maps modern workbench sandbox setting IDs (the ones the engine asks about)
75
+ * to the sub-keys inside the agent host's `sandbox` config object.
76
+ *
77
+ * Deprecated setting IDs are intentionally absent: hosts forwarding values
78
+ * into the agent host are expected to migrate deprecated → modern IDs
79
+ * before dispatching `RootConfigChanged`.
80
+ */
81
+ export declare const sandboxSettingIdToAgentHostKey: Readonly<Record<string, AgentHostSandboxKey>>;
@@ -0,0 +1,103 @@
1
+
2
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
3
+ import { AgentNetworkDomainSettingId } from '../../networkFilter/common/settings.js';
4
+ import { AgentSandboxEnabledValue, AgentSandboxSettingId } from '@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/settings';
5
+ import { createSchema, schemaProperty } from './agentHostSchema.js';
6
+
7
+ var AgentHostSandboxConfigKey;
8
+ (function(AgentHostSandboxConfigKey) {
9
+ AgentHostSandboxConfigKey["Sandbox"] = "sandbox";
10
+ })(AgentHostSandboxConfigKey || (AgentHostSandboxConfigKey = {}));
11
+ var AgentHostSandboxKey;
12
+ (function(AgentHostSandboxKey) {
13
+ AgentHostSandboxKey["Enabled"] = "enabled";
14
+ AgentHostSandboxKey["WindowsEnabled"] = "enabled.windows";
15
+ AgentHostSandboxKey["AllowUnsandboxedCommands"] = "allowUnsandboxedCommands";
16
+ AgentHostSandboxKey["AutoApproveUnsandboxedCommands"] = "autoApproveUnsandboxedCommands";
17
+ AgentHostSandboxKey["LinuxFileSystem"] = "fileSystem.linux";
18
+ AgentHostSandboxKey["MacFileSystem"] = "fileSystem.mac";
19
+ AgentHostSandboxKey["WindowsFileSystem"] = "fileSystem.windows";
20
+ AgentHostSandboxKey["AdvancedRuntime"] = "advanced.runtime";
21
+ AgentHostSandboxKey["AllowedNetworkDomains"] = "allowedNetworkDomains";
22
+ AgentHostSandboxKey["DeniedNetworkDomains"] = "deniedNetworkDomains";
23
+ })(AgentHostSandboxKey || (AgentHostSandboxKey = {}));
24
+ createSchema({
25
+ [AgentHostSandboxConfigKey.Sandbox]: schemaProperty({
26
+ type: "object",
27
+ title: ( localize(1858, "Agent Sandbox")),
28
+ properties: {
29
+ [AgentHostSandboxKey.Enabled]: {
30
+ type: "string",
31
+ title: ( localize(1859, "Sandbox Enabled")),
32
+ enum: [
33
+ AgentSandboxEnabledValue.Off,
34
+ AgentSandboxEnabledValue.On,
35
+ AgentSandboxEnabledValue.AllowNetwork
36
+ ]
37
+ },
38
+ [AgentHostSandboxKey.WindowsEnabled]: {
39
+ type: "string",
40
+ title: ( localize(1860, "Sandbox Enabled (Windows)")),
41
+ enum: [
42
+ AgentSandboxEnabledValue.Off,
43
+ AgentSandboxEnabledValue.On,
44
+ AgentSandboxEnabledValue.AllowNetwork
45
+ ]
46
+ },
47
+ [AgentHostSandboxKey.AllowUnsandboxedCommands]: {
48
+ type: "boolean",
49
+ title: ( localize(1861, "Allow Unsandboxed Commands"))
50
+ },
51
+ [AgentHostSandboxKey.AutoApproveUnsandboxedCommands]: {
52
+ type: "boolean",
53
+ title: ( localize(1862, "Auto-Approve Unsandboxed Commands"))
54
+ },
55
+ [AgentHostSandboxKey.LinuxFileSystem]: {
56
+ type: "object",
57
+ title: ( localize(1863, "Linux Sandbox Filesystem"))
58
+ },
59
+ [AgentHostSandboxKey.MacFileSystem]: {
60
+ type: "object",
61
+ title: ( localize(1864, "macOS Sandbox Filesystem"))
62
+ },
63
+ [AgentHostSandboxKey.WindowsFileSystem]: {
64
+ type: "object",
65
+ title: ( localize(1865, "Windows Sandbox Filesystem"))
66
+ },
67
+ [AgentHostSandboxKey.AdvancedRuntime]: {
68
+ type: "object",
69
+ title: ( localize(1866, "Advanced Sandbox Runtime"))
70
+ },
71
+ [AgentHostSandboxKey.AllowedNetworkDomains]: {
72
+ type: "array",
73
+ title: ( localize(1867, "Allowed Network Domains")),
74
+ items: {
75
+ type: "string",
76
+ title: ( localize(1868, "Domain"))
77
+ }
78
+ },
79
+ [AgentHostSandboxKey.DeniedNetworkDomains]: {
80
+ type: "array",
81
+ title: ( localize(1869, "Denied Network Domains")),
82
+ items: {
83
+ type: "string",
84
+ title: ( localize(1870, "Domain"))
85
+ }
86
+ }
87
+ }
88
+ })
89
+ });
90
+ const sandboxSettingIdToAgentHostKey = {
91
+ [AgentSandboxSettingId.AgentSandboxEnabled]: AgentHostSandboxKey.Enabled,
92
+ [AgentSandboxSettingId.AgentSandboxWindowsEnabled]: AgentHostSandboxKey.WindowsEnabled,
93
+ [AgentSandboxSettingId.AgentSandboxAllowUnsandboxedCommands]: AgentHostSandboxKey.AllowUnsandboxedCommands,
94
+ [AgentSandboxSettingId.AgentSandboxAutoApproveUnsandboxedCommands]: AgentHostSandboxKey.AutoApproveUnsandboxedCommands,
95
+ [AgentSandboxSettingId.AgentSandboxLinuxFileSystem]: AgentHostSandboxKey.LinuxFileSystem,
96
+ [AgentSandboxSettingId.AgentSandboxMacFileSystem]: AgentHostSandboxKey.MacFileSystem,
97
+ [AgentSandboxSettingId.AgentSandboxWindowsFileSystem]: AgentHostSandboxKey.WindowsFileSystem,
98
+ [AgentSandboxSettingId.AgentSandboxAdvancedRuntime]: AgentHostSandboxKey.AdvancedRuntime,
99
+ [AgentNetworkDomainSettingId.AllowedNetworkDomains]: AgentHostSandboxKey.AllowedNetworkDomains,
100
+ [AgentNetworkDomainSettingId.DeniedNetworkDomains]: AgentHostSandboxKey.DeniedNetworkDomains
101
+ };
102
+
103
+ export { AgentHostSandboxConfigKey, AgentHostSandboxKey, sandboxSettingIdToAgentHostKey };
@@ -4,7 +4,7 @@ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/
4
4
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
5
5
  import { ActionEnvelope, IRootConfigChangedAction, SessionAction, StateAction } from "./sessionActions.js";
6
6
  import type { TerminalAction } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/action-origin.generated";
7
- import type { RootState, SessionState, TerminalState } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/state";
7
+ import type { ChangesetState, RootState, SessionState, TerminalState } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/state";
8
8
  import type { IStateSnapshot } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionProtocol";
9
9
  import { StateComponents } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState";
10
10
  /**
@@ -36,6 +36,36 @@ export interface IAgentSubscription<T> {
36
36
  /** Fires after a server-originated action is applied to this subscription's state. */
37
37
  readonly onDidApplyAction: Event<ActionEnvelope>;
38
38
  }
39
+ /**
40
+ * Read-only snapshot describing a single active resource subscription. Used by
41
+ * inspection/debug surfaces that enumerate everything a connection is currently
42
+ * subscribed to. Does not include the always-live root state.
43
+ */
44
+ export interface IActiveSubscriptionInfo {
45
+ /** The protocol resource URI subscribed to. */
46
+ readonly resource: URI;
47
+ /** Which state component this subscription tracks. */
48
+ readonly kind: StateComponents;
49
+ /** Number of outstanding {@link IReference} holders. */
50
+ readonly refCount: number;
51
+ /**
52
+ * The named owners currently holding a reference to this subscription,
53
+ * with how many references each holds. Names come from the `owner`
54
+ * argument passed to {@link AgentSubscriptionManager.getSubscription}.
55
+ */
56
+ readonly holders: readonly IActiveSubscriptionHolder[];
57
+ /**
58
+ * Lifecycle status derived from the subscription's value:
59
+ * `pending` before the first snapshot, `error` if it failed, otherwise
60
+ * `snapshot`.
61
+ */
62
+ readonly status: "pending" | "snapshot" | "error";
63
+ }
64
+ /** A named owner holding one or more references to a subscription. */
65
+ export interface IActiveSubscriptionHolder {
66
+ readonly owner: string;
67
+ readonly count: number;
68
+ }
39
69
  /**
40
70
  * Base class for agent subscriptions. Handles envelope reception, confirmed
41
71
  * state management, and action event emission.
@@ -68,13 +98,13 @@ declare abstract class BaseAgentSubscription<T> extends Disposable implements IA
68
98
  setError(error: Error): void;
69
99
  /**
70
100
  * Process an incoming action envelope. The subscription determines
71
- * whether the action is relevant via {@link _isRelevantAction}.
101
+ * whether the action is relevant via {@link _isRelevantEnvelope}.
72
102
  */
73
103
  receiveEnvelope(envelope: ActionEnvelope): void;
74
104
  /** Apply the reducer to confirmed state. Subclasses must implement. */
75
105
  protected abstract _applyReducer(state: T, action: StateAction): T;
76
- /** Whether the given action targets this subscription. */
77
- protected abstract _isRelevantAction(action: StateAction): boolean;
106
+ /** Whether the given envelope targets this subscription. */
107
+ protected abstract _isRelevantEnvelope(envelope: ActionEnvelope): boolean;
78
108
  /** Return optimistic state if write-ahead is active, otherwise `undefined`. */
79
109
  protected _getOptimisticState(): T | undefined;
80
110
  /** Hook called after a snapshot is applied. Replays buffered actions. */
@@ -91,7 +121,7 @@ declare abstract class BaseAgentSubscription<T> extends Disposable implements IA
91
121
  */
92
122
  export declare class RootStateSubscription extends BaseAgentSubscription<RootState> {
93
123
  protected _applyReducer(state: RootState, action: StateAction): RootState;
94
- protected _isRelevantAction(action: StateAction): boolean;
124
+ protected _isRelevantEnvelope(envelope: ActionEnvelope): boolean;
95
125
  }
96
126
  interface IPendingAction {
97
127
  readonly clientSeq: number;
@@ -118,9 +148,10 @@ export declare class SessionStateSubscription extends BaseAgentSubscription<Sess
118
148
  applyOptimistic(action: SessionAction): number;
119
149
  protected _getOptimisticState(): SessionState | undefined;
120
150
  protected _applyReducer(state: SessionState, action: StateAction): SessionState;
121
- protected _isRelevantAction(action: StateAction): boolean;
151
+ protected _isRelevantEnvelope(envelope: ActionEnvelope): boolean;
122
152
  protected _onSnapshotApplied(fromSeq: number): void;
123
153
  protected _reconcile(envelope: ActionEnvelope, isOwnAction: boolean): void;
154
+ private _promotePendingTurnStartIfTerminal;
124
155
  private _confirmedApply;
125
156
  private _recomputeOptimistic;
126
157
  /**
@@ -150,7 +181,26 @@ export declare class TerminalStateSubscription extends BaseAgentSubscription<Ter
150
181
  private readonly _terminalUri;
151
182
  constructor(terminalUri: string, clientId: string, log: (msg: string) => void);
152
183
  protected _applyReducer(state: TerminalState, action: StateAction): TerminalState;
153
- protected _isRelevantAction(action: StateAction): boolean;
184
+ protected _isRelevantEnvelope(envelope: ActionEnvelope): boolean;
185
+ }
186
+ /**
187
+ * Subscription to a changeset at an expanded changeset URI (e.g.
188
+ * `<sessionUri>/changeset/session`).
189
+ *
190
+ * Server-only mutations — no write-ahead. The subscription itself does NOT
191
+ * self-tear-down on lifecycle events; cleanup is driven externally:
192
+ * - Workbench-side: `BaseAgentHostSessionsProvider._handleSessionRemoved`
193
+ * disposes the per-session subscription map, which releases this
194
+ * subscription's `IReference` and triggers `_releaseSubscription` on
195
+ * the manager.
196
+ * - Wire layer: {@link IAgentConnection} refcounts the underlying server
197
+ * subscription so multiple consumers can share one wire-level subscribe.
198
+ */
199
+ export declare class ChangesetStateSubscription extends BaseAgentSubscription<ChangesetState> {
200
+ private readonly _changesetUri;
201
+ constructor(changesetUri: string, clientId: string, log: (msg: string) => void);
202
+ protected _applyReducer(state: ChangesetState, action: StateAction): ChangesetState;
203
+ protected _isRelevantEnvelope(envelope: ActionEnvelope): boolean;
154
204
  }
155
205
  /**
156
206
  * Manages the lifecycle of resource subscriptions for an agent connection.
@@ -164,6 +214,7 @@ export declare class TerminalStateSubscription extends BaseAgentSubscription<Ter
164
214
  */
165
215
  export declare class AgentSubscriptionManager extends Disposable {
166
216
  private readonly _subscriptions;
217
+ private _referenceOwnerIds;
167
218
  private readonly _rootState;
168
219
  private readonly _clientId;
169
220
  private readonly _seqAllocator;
@@ -187,8 +238,22 @@ export declare class AgentSubscriptionManager extends Disposable {
187
238
  * Get or create a refcounted subscription to any resource. Disposing
188
239
  * the returned reference decrements the refcount; when it reaches zero
189
240
  * the subscription is torn down and the server is notified.
241
+ *
242
+ * `owner` names the caller holding the reference so inspection surfaces
243
+ * (see {@link getActiveSubscriptions}) can attribute who is retaining a
244
+ * subscription. Use a stable, human-readable identifier such as the
245
+ * acquiring class name.
190
246
  */
191
- getSubscription<T>(kind: StateComponents, resource: URI): IReference<IAgentSubscription<T>>;
247
+ getSubscription<T>(kind: StateComponents, resource: URI, owner: string): IReference<IAgentSubscription<T>>;
248
+ /**
249
+ * Register `owner` as a holder of `entry` and return a reference whose
250
+ * disposal removes that holder and releases the subscription. The
251
+ * caller is responsible for the matching refcount increment (a fresh
252
+ * entry starts at 1; an existing entry is bumped before calling this).
253
+ */
254
+ private _acquireReference;
255
+ private _disposeSubscriptionEntry;
256
+ private _tryUnsubscribe;
192
257
  /**
193
258
  * Route an incoming action envelope to all active subscriptions.
194
259
  */
@@ -196,8 +261,11 @@ export declare class AgentSubscriptionManager extends Disposable {
196
261
  /**
197
262
  * Dispatch a client action. Applies optimistically to the relevant
198
263
  * subscription if applicable, then returns the clientSeq.
264
+ *
265
+ * `channel` is the protocol URI string identifying the channel the
266
+ * action targets (a session URI for session actions, etc.).
199
267
  */
200
- dispatchOptimistic(action: SessionAction | TerminalAction | IRootConfigChangedAction): number;
268
+ dispatchOptimistic(channel: string, action: SessionAction | TerminalAction | IRootConfigChangedAction): number;
201
269
  /**
202
270
  * URIs currently subscribed to via {@link getSubscription}. Used to
203
271
  * build the `subscriptions` payload for a `reconnect` RPC so the
@@ -207,6 +275,14 @@ export declare class AgentSubscriptionManager extends Disposable {
207
275
  * client manages separately.
208
276
  */
209
277
  currentSubscriptionUris(): URI[];
278
+ /**
279
+ * Read-only descriptors of every active resource subscription, for
280
+ * inspection/debug surfaces. Does NOT include the always-live root
281
+ * state, which the connection exposes separately via {@link rootState}.
282
+ */
283
+ getActiveSubscriptions(): readonly IActiveSubscriptionInfo[];
284
+ /** Group an entry's holders by owner name, sorted by descending count. */
285
+ private _summarizeHolders;
210
286
  /**
211
287
  * Snapshot of every pending optimistic action across all session
212
288
  * subscriptions. Callers use this to replay actions after a transport
@@ -228,7 +304,7 @@ export declare class AgentSubscriptionManager extends Disposable {
228
304
  * subscription when {@link ROOT_STATE_URI} matches, otherwise reseats the
229
305
  * matching entry in {@link _subscriptions}. Unknown resources are ignored.
230
306
  */
231
- applyReconnectSnapshot(resource: URI, state: unknown, fromSeq: number): void;
307
+ applyReconnectSnapshot(resource: string, state: unknown, fromSeq: number): void;
232
308
  /**
233
309
  * Mark a set of subscriptions as no longer resumable on the server
234
310
  * (reported via `ReconnectReplayResult.missing`). The subscriptions
@@ -1,12 +1,17 @@
1
1
 
2
+ import { assertNever } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
2
3
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
3
4
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
5
  import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
5
6
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
6
7
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
7
- import { isSessionAction } from './sessionActions.js';
8
- import { rootReducer, sessionReducer, terminalReducer } from './protocol/reducers.js';
9
- import { ROOT_STATE_URI, StateComponents } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState';
8
+ import { isSessionAction, isChangesetAction } from './sessionActions.js';
9
+ import { rootReducer } from './protocol/channels-root/reducer.js';
10
+ import { sessionReducer } from './protocol/channels-session/reducer.js';
11
+ import { terminalReducer } from './protocol/channels-terminal/reducer.js';
12
+ import { changesetReducer } from './protocol/channels-changeset/reducer.js';
13
+ import { ActionType } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/common/actions';
14
+ import { isAhpRootChannel, StateComponents } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState';
10
15
 
11
16
  class BaseAgentSubscription extends Disposable {
12
17
  constructor(clientId, log) {
@@ -39,7 +44,7 @@ class BaseAgentSubscription extends Disposable {
39
44
  this._error = error;
40
45
  }
41
46
  receiveEnvelope(envelope) {
42
- if (!this._isRelevantAction(envelope.action)) {
47
+ if (!this._isRelevantEnvelope(envelope)) {
43
48
  return;
44
49
  }
45
50
  if (this._confirmedState === undefined) {
@@ -78,8 +83,8 @@ class RootStateSubscription extends BaseAgentSubscription {
78
83
  _applyReducer(state, action) {
79
84
  return rootReducer(state, action, this._log);
80
85
  }
81
- _isRelevantAction(action) {
82
- return action.type.startsWith("root/");
86
+ _isRelevantEnvelope(envelope) {
87
+ return isAhpRootChannel(envelope.channel) && envelope.action.type.startsWith("root/");
83
88
  }
84
89
  }
85
90
  class SessionStateSubscription extends BaseAgentSubscription {
@@ -108,8 +113,8 @@ class SessionStateSubscription extends BaseAgentSubscription {
108
113
  _applyReducer(state, action) {
109
114
  return sessionReducer(state, action, this._log);
110
115
  }
111
- _isRelevantAction(action) {
112
- return isSessionAction(action) && action.session === this._sessionUri;
116
+ _isRelevantEnvelope(envelope) {
117
+ return isSessionAction(envelope.action) && envelope.channel === this._sessionUri;
113
118
  }
114
119
  _onSnapshotApplied(fromSeq) {
115
120
  super._onSnapshotApplied(fromSeq);
@@ -129,10 +134,31 @@ class SessionStateSubscription extends BaseAgentSubscription {
129
134
  this._confirmedApply(envelope.action);
130
135
  }
131
136
  } else {
137
+ this._promotePendingTurnStartIfTerminal(envelope.action);
132
138
  this._confirmedApply(envelope.action);
133
139
  }
134
140
  this._recomputeOptimistic();
135
141
  }
142
+ _promotePendingTurnStartIfTerminal(action) {
143
+ if (!isSessionAction(action)) {
144
+ return;
145
+ }
146
+ if (action.type !== ActionType.SessionTurnComplete && action.type !== ActionType.SessionTurnCancelled && action.type !== ActionType.SessionError) {
147
+ return;
148
+ }
149
+ const index = this._pendingActions.findIndex(
150
+ p => p.action.type === ActionType.SessionTurnStarted && p.action.turnId === action.turnId
151
+ );
152
+ if (index === -1) {
153
+ return;
154
+ }
155
+ const [{
156
+ action: pendingAction
157
+ }] = this._pendingActions.splice(index, 1);
158
+ if (this._confirmedState && (!this._confirmedState.activeTurn || this._confirmedState.activeTurn.id !== action.turnId)) {
159
+ this._confirmedState = this._applyReducer(this._confirmedState, pendingAction);
160
+ }
161
+ }
136
162
  _confirmedApply(action) {
137
163
  if (this._confirmedState) {
138
164
  this._confirmedState = this._applyReducer(this._confirmedState, action);
@@ -184,14 +210,27 @@ class TerminalStateSubscription extends BaseAgentSubscription {
184
210
  _applyReducer(state, action) {
185
211
  return terminalReducer(state, action, this._log);
186
212
  }
187
- _isRelevantAction(action) {
188
- return action.type.startsWith("terminal/") && action.terminal === this._terminalUri;
213
+ _isRelevantEnvelope(envelope) {
214
+ return envelope.action.type.startsWith("terminal/") && envelope.channel === this._terminalUri;
215
+ }
216
+ }
217
+ class ChangesetStateSubscription extends BaseAgentSubscription {
218
+ constructor(changesetUri, clientId, log) {
219
+ super(clientId, log);
220
+ this._changesetUri = changesetUri;
221
+ }
222
+ _applyReducer(state, action) {
223
+ return changesetReducer(state, action, this._log);
224
+ }
225
+ _isRelevantEnvelope(envelope) {
226
+ return isChangesetAction(envelope.action) && envelope.channel === this._changesetUri;
189
227
  }
190
228
  }
191
229
  class AgentSubscriptionManager extends Disposable {
192
230
  constructor(clientId, seqAllocator, log, subscribe, unsubscribe) {
193
231
  super();
194
232
  this._subscriptions = ( new ResourceMap());
233
+ this._referenceOwnerIds = 0;
195
234
  this._clientId = clientId;
196
235
  this._seqAllocator = seqAllocator;
197
236
  this._log = log;
@@ -209,20 +248,24 @@ class AgentSubscriptionManager extends Disposable {
209
248
  const entry = this._subscriptions.get(resource);
210
249
  return entry?.sub;
211
250
  }
212
- getSubscription(kind, resource) {
251
+ getSubscription(kind, resource, owner) {
213
252
  const existing = this._subscriptions.get(resource);
214
253
  if (existing) {
215
- existing.refCount++;
216
- return {
217
- object: existing.sub,
218
- dispose: () => this._releaseSubscription(resource)
219
- };
254
+ if (existing.sub.value instanceof Error) {
255
+ this._subscriptions.delete(resource);
256
+ this._disposeSubscriptionEntry(resource, existing);
257
+ } else {
258
+ existing.refCount++;
259
+ return this._acquireReference(resource, existing, owner);
260
+ }
220
261
  }
221
262
  const key = ( resource.toString());
222
263
  const sub = this._createSubscription(kind, key);
223
264
  const entry = {
224
265
  sub,
225
- refCount: 1
266
+ kind,
267
+ refCount: 1,
268
+ holders: ( new Map())
226
269
  };
227
270
  this._subscriptions.set(resource, entry);
228
271
  this._subscribe(resource).then(snapshot => {
@@ -234,11 +277,39 @@ class AgentSubscriptionManager extends Disposable {
234
277
  sub.setError(err instanceof Error ? err : ( new Error(String(err))));
235
278
  }
236
279
  });
280
+ return this._acquireReference(resource, entry, owner);
281
+ }
282
+ _acquireReference(resource, entry, owner) {
283
+ const ownerId = ++this._referenceOwnerIds;
284
+ entry.holders.set(ownerId, owner);
285
+ let isDisposed = false;
237
286
  return {
238
- object: sub,
239
- dispose: () => this._releaseSubscription(resource)
287
+ object: entry.sub,
288
+ dispose: () => {
289
+ if (isDisposed) {
290
+ return;
291
+ }
292
+ isDisposed = true;
293
+ entry.holders.delete(ownerId);
294
+ this._releaseSubscription(resource, entry);
295
+ }
240
296
  };
241
297
  }
298
+ _disposeSubscriptionEntry(resource, entry) {
299
+ this._tryUnsubscribe(resource);
300
+ if (entry.sub instanceof SessionStateSubscription) {
301
+ entry.sub.clearPending();
302
+ }
303
+ entry.sub.dispose();
304
+ }
305
+ _tryUnsubscribe(resource) {
306
+ try {
307
+ this._unsubscribe(resource);
308
+ } catch (error) {
309
+ const message = error instanceof Error ? error.message : String(error);
310
+ this._log(`Failed to unsubscribe ${( resource.toString())}: ${message}`);
311
+ }
312
+ }
242
313
  receiveEnvelope(envelope) {
243
314
  this._rootState.receiveEnvelope(envelope);
244
315
  for (const {
@@ -247,9 +318,9 @@ class AgentSubscriptionManager extends Disposable {
247
318
  sub.receiveEnvelope(envelope);
248
319
  }
249
320
  }
250
- dispatchOptimistic(action) {
321
+ dispatchOptimistic(channel, action) {
251
322
  if (isSessionAction(action)) {
252
- const entry = this._subscriptions.get(( URI.parse(action.session)));
323
+ const entry = this._subscriptions.get(( URI.parse(channel)));
253
324
  if (entry?.sub instanceof SessionStateSubscription) {
254
325
  return entry.sub.applyOptimistic(action);
255
326
  }
@@ -259,6 +330,31 @@ class AgentSubscriptionManager extends Disposable {
259
330
  currentSubscriptionUris() {
260
331
  return [...( this._subscriptions.keys())];
261
332
  }
333
+ getActiveSubscriptions() {
334
+ const out = [];
335
+ for (const [resource, entry] of this._subscriptions) {
336
+ const value = entry.sub.value;
337
+ const status = value === undefined ? "pending" : value instanceof Error ? "error" : "snapshot";
338
+ out.push({
339
+ resource,
340
+ kind: entry.kind,
341
+ refCount: entry.refCount,
342
+ holders: this._summarizeHolders(entry),
343
+ status
344
+ });
345
+ }
346
+ return out;
347
+ }
348
+ _summarizeHolders(entry) {
349
+ const counts = ( new Map());
350
+ for (const owner of ( entry.holders.values())) {
351
+ counts.set(owner, (counts.get(owner) ?? 0) + 1);
352
+ }
353
+ return ( [...counts.entries()].map(([owner, count]) => ({
354
+ owner,
355
+ count
356
+ }))).sort((a, b) => b.count - a.count);
357
+ }
262
358
  getPendingSessionActions() {
263
359
  const out = [];
264
360
  for (const {
@@ -277,11 +373,11 @@ class AgentSubscriptionManager extends Disposable {
277
373
  }
278
374
  }
279
375
  applyReconnectSnapshot(resource, state, fromSeq) {
280
- if (( resource.toString()) === ROOT_STATE_URI) {
376
+ if (isAhpRootChannel(resource)) {
281
377
  this._rootState.handleSnapshot(state, fromSeq);
282
378
  return;
283
379
  }
284
- const entry = this._subscriptions.get(resource);
380
+ const entry = this._subscriptions.get(( URI.parse(resource)));
285
381
  if (!entry) {
286
382
  return;
287
383
  }
@@ -307,32 +403,28 @@ class AgentSubscriptionManager extends Disposable {
307
403
  return ( new SessionStateSubscription(key, this._clientId, this._seqAllocator, this._log));
308
404
  case StateComponents.Terminal:
309
405
  return ( new TerminalStateSubscription(key, this._clientId, this._log));
406
+ case StateComponents.Changeset:
407
+ return ( new ChangesetStateSubscription(key, this._clientId, this._log));
408
+ case StateComponents.Root:
409
+ throw ( new Error("_createSubscription: root subscription is managed separately"));
310
410
  default:
311
- return ( new TerminalStateSubscription(key, this._clientId, this._log));
411
+ assertNever(kind, `_createSubscription: unsupported StateComponents kind: ${kind}`);
312
412
  }
313
413
  }
314
- _releaseSubscription(resource) {
414
+ _releaseSubscription(resource, expected) {
315
415
  const entry = this._subscriptions.get(resource);
316
- if (!entry) {
416
+ if (!entry || (expected && entry !== expected)) {
317
417
  return;
318
418
  }
319
419
  entry.refCount--;
320
420
  if (entry.refCount <= 0) {
321
421
  this._subscriptions.delete(resource);
322
- try {
323
- this._unsubscribe(resource);
324
- } catch {}
325
- if (entry.sub instanceof SessionStateSubscription) {
326
- entry.sub.clearPending();
327
- }
328
- entry.sub.dispose();
422
+ this._disposeSubscriptionEntry(resource, entry);
329
423
  }
330
424
  }
331
425
  dispose() {
332
426
  for (const [resource, entry] of this._subscriptions) {
333
- try {
334
- this._unsubscribe(resource);
335
- } catch {}
427
+ this._tryUnsubscribe(resource);
336
428
  entry.sub.dispose();
337
429
  }
338
430
  this._subscriptions.clear();
@@ -340,4 +432,4 @@ class AgentSubscriptionManager extends Disposable {
340
432
  }
341
433
  }
342
434
 
343
- export { AgentSubscriptionManager, RootStateSubscription, SessionStateSubscription, TerminalStateSubscription };
435
+ export { AgentSubscriptionManager, ChangesetStateSubscription, RootStateSubscription, SessionStateSubscription, TerminalStateSubscription };