@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.
- package/index.js +19 -5
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/browser/agentHostIpcChannelTransport.d.ts +32 -0
- package/vscode/src/vs/platform/agentHost/browser/agentHostIpcChannelTransport.js +77 -0
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +84 -17
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +235 -190
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +3 -2
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +23 -4
- package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.js +22 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +107 -8
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +272 -49
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +2 -2
- package/vscode/src/vs/platform/agentHost/common/{agentHostPermissionService.d.ts → agentHostResourceService.d.ts} +26 -0
- package/vscode/src/vs/platform/agentHost/common/{agentHostPermissionService.js → agentHostResourceService.js} +11 -1
- package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +13 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +26 -18
- package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +119 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +135 -19
- package/vscode/src/vs/platform/agentHost/common/agentService.js +8 -2
- package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.d.ts +5 -1
- package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.js +85 -22
- package/vscode/src/vs/platform/agentHost/common/customAgents.d.ts +36 -0
- package/vscode/src/vs/platform/agentHost/common/customAgents.js +12 -0
- package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.d.ts +81 -0
- package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +103 -0
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +86 -10
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +129 -37
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.d.ts +12 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.js +72 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/reducer.d.ts +6 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/reducer.js +30 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/reducer.d.ts +6 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/{reducers.js → channels-session/reducer.js} +99 -168
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/reducer.d.ts +6 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/reducer.js +110 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/{errors.d.ts → common/errors.d.ts} +13 -2
- package/vscode/src/vs/platform/agentHost/common/state/protocol/{errors.js → common/errors.js} +1 -2
- package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.d.ts +17 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.js +9 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +33 -8
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +2 -3
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +36 -5
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +6 -3
- package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +50 -0
- package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +138 -0
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +3 -3
- package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +12 -0
- package/vscode/src/vs/platform/networkFilter/common/settings.js +14 -0
- package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.d.ts +4 -1
- package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +9 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +21 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +28 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.d.ts +31 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.js +49 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.d.ts +182 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.js +784 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.d.ts +18 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.js +305 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +7 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.js +120 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +100 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +60 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +106 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +22 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +21 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +38 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +40 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +15 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +23 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationSyncProvider.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationSyncProvider.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.js +119 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.js +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.js +104 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.js +177 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolUtils.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolUtils.js +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +44 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.d.ts +60 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.js +103 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +9 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +38 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +22 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +8 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +112 -113
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +62 -68
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +149 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +13 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +15 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +78 -55
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +140 -67
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +11 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +59 -57
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +440 -357
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatGoalSummaryService.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatGoalSummaryService.js +115 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +28 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +187 -106
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +41 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +346 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +72 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +144 -67
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +126 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +32 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +40 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +25 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/githubRepoFetcher.js +1 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.d.ts +12 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.js +14 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +56 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +5 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +33 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +31 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +16 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +24 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +23 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +22 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +14 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +55 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.js +47 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +54 -12
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +39 -0
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +40 -4
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +30 -8
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +205 -46
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +8 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +57 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +153 -38
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +12 -7
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +70 -37
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +6 -28
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +150 -150
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +10 -10
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +17 -17
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +21 -21
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +21 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.js +122 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +41 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +52 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +232 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +65 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +225 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +143 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +37 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +205 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +40 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +174 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +43 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +52 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +260 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +44 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +98 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +14 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +226 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +392 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +243 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +54 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +10 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +310 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +177 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +33 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +22 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +102 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +27 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +29 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +55 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +31 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +177 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +518 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +297 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +2961 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +63 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +118 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.js +44 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +58 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +223 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.js +81 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +63 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +349 -0
- package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.d.ts +75 -0
- package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.js +192 -0
- package/vscode/src/vs/workbench/services/agentHost/common/agentHostResourceService.d.ts +89 -0
- package/vscode/src/vs/workbench/services/agentHost/common/{agentHostPermissionService.js → agentHostResourceService.js} +226 -9
- package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +0 -30
- package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +0 -119
- package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +0 -552
- 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
|
|
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
|
|
77
|
-
protected abstract
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
9
|
-
import {
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
112
|
-
return isSessionAction(action) &&
|
|
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
|
-
|
|
188
|
-
return action.type.startsWith("terminal/") &&
|
|
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.
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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
|
-
|
|
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: () =>
|
|
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(
|
|
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 ((
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|