@codingame/monaco-vscode-chat-service-override 34.1.2 → 35.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +38 -0
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/browser/agentHost.config.contribution.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/browser/agentHost.config.contribution.js +40 -0
- package/vscode/src/vs/platform/agentHost/browser/agentHostConnectionsService.d.ts +27 -0
- package/vscode/src/vs/platform/agentHost/browser/agentHostConnectionsService.js +91 -0
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +20 -4
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +148 -15
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +9 -1
- package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.js +57 -3
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +10 -14
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +29 -8
- package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +109 -2
- package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +207 -21
- package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +362 -37
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +698 -91
- package/vscode/src/vs/platform/agentHost/common/agentService.js +46 -3
- package/vscode/src/vs/platform/agentHost/common/customAgents.js +1 -0
- package/vscode/src/vs/platform/agentHost/common/resourceReadLogging.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/common/resourceReadLogging.js +26 -0
- package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.d.ts +5 -5
- package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +17 -17
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +96 -12
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +226 -19
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/reducer.d.ts +18 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/reducer.js +89 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.js +10 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/reducer.d.ts +6 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/reducer.js +400 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/reducer.js +129 -446
- package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.d.ts +2 -2
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +35 -25
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +7 -1
- package/vscode/src/vs/{workbench/contrib → platform}/browserView/common/browserChatToolReferenceNames.d.ts +4 -0
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +1 -1
- package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +1 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.d.ts +0 -6
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.js +5 -18
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.d.ts +52 -3
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.js +212 -34
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.js +3 -4
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.js +11 -10
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +13 -6
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +6 -1
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.js +399 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.js +85 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.d.ts +177 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.js +898 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.js +204 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWindowService.d.ts +61 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWindowService.js +338 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.js +57 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.js +98 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.js +149 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.js +116 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.d.ts +32 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.js +226 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.js +138 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/tokens.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/tokens.js +25 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/transcriptComponent.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/transcriptComponent.js +108 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.js +63 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.js +178 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.js +322 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.js +15 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.js +26 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.d.ts +132 -0
- package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.js +237 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +32 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +71 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClear.js +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +15 -15
- 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 +19 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +14 -5
- 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 +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +66 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +128 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +58 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.d.ts +15 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.js +64 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.d.ts +45 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.js +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.d.ts +25 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.js +143 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.js +7 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.js +52 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolSetEnablementService.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolSetEnablementService.js +163 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +26 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +106 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.d.ts +16 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.js +44 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
- 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 +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +22 -22
- 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/agentSessions/localAgentDisabledInputTipContribution.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentDisabledInputTipContribution.js +152 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +11 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +9 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +17 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +143 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +107 -126
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +46 -46
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +19 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +244 -190
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.js +7 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +47 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +2 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +4 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/automationsListWidget.d.ts +87 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/automationsListWidget.js +772 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +24 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +1 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.js +130 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.d.ts +46 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.js +94 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +421 -201
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +1426 -97
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +107 -127
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +331 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.d.ts +120 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.js +898 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +581 -336
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.d.ts +123 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.js +567 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.js +168 -84
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.d.ts +183 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +897 -251
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.d.ts +213 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.js +720 -0
- 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/chatDebug/media/chatDebug.css +354 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +9 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.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 +11 -4
- 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 +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.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/chatImageCarouselService.d.ts +9 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +55 -8
- 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/chatModelsWidget.d.ts +18 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +192 -87
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +37 -3
- 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 +40 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +230 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.js +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -25
- 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 +35 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +26 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +56 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +109 -68
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +38 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +175 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
- 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/languageModelsConfigurationService.js +1 -1
- 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 +4 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +32 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +183 -84
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +20 -9
- 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.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/promptToolSetsCodeLensProvider.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolSetsCodeLensProvider.js +109 -0
- 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/clientToolSetsContribution.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/clientToolSetsContribution.js +117 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +40 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +169 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.d.ts +125 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.js +399 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/ttsPlaybackService.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/ttsPlaybackService.js +198 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceClientService.d.ts +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceClientService.js +504 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.d.ts +321 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.js +2117 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.d.ts +57 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.js +367 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +16 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +68 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +11 -10
- 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.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +13 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +23 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +320 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +80 -4
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automation.d.ts +78 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.service.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.service.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.service.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.service.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.d.ts +46 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.service.d.ts +36 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.service.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +7 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +226 -88
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +8 -3
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +13 -2
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +12 -8
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.js +177 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +2 -18
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +78 -136
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +1 -16
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +1 -17
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +16 -5
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.js +122 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +24 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +113 -10
- 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.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +227 -152
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/voicePlaybackService.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/common/voicePlaybackService.js +98 -0
- package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.js +7 -6
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +11 -12
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +7 -0
- 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 +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +32 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.d.ts +23 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.js +37 -30
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +7 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +7 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/largeOutputFileWriter.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/largeOutputFileWriter.js +71 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +29 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +7 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +10 -8
- 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.js +4 -4
- 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 +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +26 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +416 -252
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +3 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +10 -10
- 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.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.d.ts +2 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.js +5 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +25 -8
- package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.d.ts +8 -3
- package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.js +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +0 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +0 -77
- package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +0 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +0 -82
- package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.d.ts +0 -38
- package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.js +0 -47
- /package/vscode/src/vs/{workbench/contrib → platform}/browserView/common/browserChatToolReferenceNames.js +0 -0
|
@@ -38,7 +38,7 @@ function value(comparator) {
|
|
|
38
38
|
extract: from => {
|
|
39
39
|
let value = from;
|
|
40
40
|
if (!!value && typeof value === "object") {
|
|
41
|
-
value =
|
|
41
|
+
value = deepCloneWithFallback(value);
|
|
42
42
|
}
|
|
43
43
|
return value;
|
|
44
44
|
},
|
|
@@ -118,6 +118,9 @@ function stringifyEntryWithFallback(entry) {
|
|
|
118
118
|
);
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
+
function deepCloneWithFallback(value) {
|
|
122
|
+
return JSON.parse(stringifyEntryWithFallback(value));
|
|
123
|
+
}
|
|
121
124
|
function makeTruncatingReplacer(maxStringChars, maxTotalChars) {
|
|
122
125
|
let total = 0;
|
|
123
126
|
return (_key, val) => {
|
|
@@ -443,4 +446,4 @@ class ObjectMutationLog {
|
|
|
443
446
|
}
|
|
444
447
|
}
|
|
445
448
|
|
|
446
|
-
export { ObjectMutationLog, PERSIST_ENTRY_MAX_STRING_CHARS, PERSIST_ENTRY_MAX_TOTAL_CHARS, array, key, makeTruncatingReplacer, object, stringifyEntryWithFallback, t, v, value };
|
|
449
|
+
export { ObjectMutationLog, PERSIST_ENTRY_MAX_STRING_CHARS, PERSIST_ENTRY_MAX_TOTAL_CHARS, array, deepCloneWithFallback, key, makeTruncatingReplacer, object, stringifyEntryWithFallback, t, v, value };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
2
|
+
import { AgentPluginDiscoveryPriority, IAgentPlugin } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService";
|
|
3
|
+
import { CollisionEnablementModel, IEnablementModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement";
|
|
4
|
+
export interface IDiscoveredAgentPlugins {
|
|
5
|
+
readonly plugins: readonly IAgentPlugin[];
|
|
6
|
+
readonly priority: AgentPluginDiscoveryPriority;
|
|
7
|
+
readonly order: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class AgentPluginCollisionEnablementModel extends CollisionEnablementModel {
|
|
10
|
+
constructor(base: IEnablementModel, collisionGroups: IObservable<ReadonlyMap<string, readonly string[]>>);
|
|
11
|
+
}
|
|
12
|
+
export declare function getSortedAgentPlugins(discoveries: readonly IDiscoveredAgentPlugins[]): readonly IAgentPlugin[];
|
|
13
|
+
export declare function getCanonicalAgentPluginCollisionGroups(discoveries: readonly IDiscoveredAgentPlugins[], isBlocked?: (plugin: IAgentPlugin) => boolean): ReadonlyMap<string, readonly string[]>;
|
|
14
|
+
export declare function isAgentPluginBlockedByPolicy(plugin: IAgentPlugin, enabledPluginsPolicy: Record<string, boolean> | undefined): boolean;
|
|
15
|
+
export declare function getAgentPluginPolicyId(plugin: IAgentPlugin): string | undefined;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
|
|
2
|
+
import { PluginSourceKind } from './pluginMarketplaceService.js';
|
|
3
|
+
import { CollisionEnablementModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
|
|
4
|
+
|
|
5
|
+
const COPILOT_CLI_INSTALL_PATH_FRAGMENT = "/.copilot/installed-plugins/";
|
|
6
|
+
class AgentPluginCollisionEnablementModel extends CollisionEnablementModel {
|
|
7
|
+
constructor(base, collisionGroups) {
|
|
8
|
+
super(base, collisionGroups);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function getSortedAgentPlugins(discoveries) {
|
|
12
|
+
return ( getUniqueAgentPluginCandidates(discoveries).map(candidate => candidate.plugin)).sort((a, b) => ( a.uri.toString()).localeCompare(( b.uri.toString())));
|
|
13
|
+
}
|
|
14
|
+
function getCanonicalAgentPluginCollisionGroups(discoveries, isBlocked) {
|
|
15
|
+
const candidates = getUniqueAgentPluginCandidates(discoveries);
|
|
16
|
+
const byCanonicalKey = ( new Map());
|
|
17
|
+
for (const candidate of candidates) {
|
|
18
|
+
if (isBlocked?.(candidate.plugin)) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
let group = byCanonicalKey.get(candidate.canonicalKey);
|
|
22
|
+
if (!group) {
|
|
23
|
+
group = [];
|
|
24
|
+
byCanonicalKey.set(candidate.canonicalKey, group);
|
|
25
|
+
}
|
|
26
|
+
group.push(( candidate.plugin.uri.toString()));
|
|
27
|
+
}
|
|
28
|
+
const groups = ( new Map());
|
|
29
|
+
for (const group of ( byCanonicalKey.values())) {
|
|
30
|
+
if (group.length < 2) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
for (const key of group) {
|
|
34
|
+
groups.set(key, group);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return groups;
|
|
38
|
+
}
|
|
39
|
+
function isAgentPluginBlockedByPolicy(plugin, enabledPluginsPolicy) {
|
|
40
|
+
const pluginId = getAgentPluginPolicyId(plugin);
|
|
41
|
+
if (enabledPluginsPolicy && ( Object.keys(enabledPluginsPolicy)).length > 0) {
|
|
42
|
+
return pluginId !== undefined && enabledPluginsPolicy[pluginId] !== true;
|
|
43
|
+
}
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
function getAgentPluginPolicyId(plugin) {
|
|
47
|
+
const identity = getPolicyIdentity(plugin);
|
|
48
|
+
return identity ? `${identity.name}@${identity.marketplace}` : undefined;
|
|
49
|
+
}
|
|
50
|
+
function getAgentPluginCandidates(discoveries) {
|
|
51
|
+
const candidates = [];
|
|
52
|
+
for (const discovery of discoveries) {
|
|
53
|
+
for (let pluginOrder = 0; pluginOrder < discovery.plugins.length; pluginOrder++) {
|
|
54
|
+
const plugin = discovery.plugins[pluginOrder];
|
|
55
|
+
candidates.push({
|
|
56
|
+
plugin,
|
|
57
|
+
priority: discovery.priority,
|
|
58
|
+
order: discovery.order,
|
|
59
|
+
pluginOrder,
|
|
60
|
+
canonicalKey: getCanonicalPluginIdentity(plugin)
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return candidates.sort(
|
|
65
|
+
(a, b) => a.priority - b.priority || a.order - b.order || a.pluginOrder - b.pluginOrder || ( a.plugin.uri.toString()).localeCompare(( b.plugin.uri.toString()))
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
function getUniqueAgentPluginCandidates(discoveries) {
|
|
69
|
+
const unique = [];
|
|
70
|
+
const seen = ( new Set());
|
|
71
|
+
for (const candidate of getAgentPluginCandidates(discoveries)) {
|
|
72
|
+
const key = ( candidate.plugin.uri.toString());
|
|
73
|
+
if (( seen.has(key))) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
seen.add(key);
|
|
77
|
+
unique.push(candidate);
|
|
78
|
+
}
|
|
79
|
+
return unique;
|
|
80
|
+
}
|
|
81
|
+
function getCanonicalPluginIdentity(plugin) {
|
|
82
|
+
return getMarketplaceCanonicalIdentity(plugin.fromMarketplace) ?? getCopilotCliInstallCanonicalIdentity(plugin) ?? `uri:${( plugin.uri.toString())}`;
|
|
83
|
+
}
|
|
84
|
+
function getMarketplaceCanonicalIdentity(plugin) {
|
|
85
|
+
if (!plugin) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
const normalizedName = normalizePluginIdentitySegment(plugin.name);
|
|
89
|
+
const source = plugin.sourceDescriptor;
|
|
90
|
+
switch (source.kind) {
|
|
91
|
+
case PluginSourceKind.RelativePath:
|
|
92
|
+
{
|
|
93
|
+
if (plugin.marketplaceReference.githubRepo) {
|
|
94
|
+
return `github:${plugin.marketplaceReference.githubRepo.toLowerCase()}|${normalizedName}`;
|
|
95
|
+
}
|
|
96
|
+
return `marketplace:${plugin.marketplaceReference.canonicalId}|${normalizedName}`;
|
|
97
|
+
}
|
|
98
|
+
case PluginSourceKind.GitHub:
|
|
99
|
+
{
|
|
100
|
+
const github = source;
|
|
101
|
+
return `github:${github.repo.toLowerCase()}|${normalizedName}`;
|
|
102
|
+
}
|
|
103
|
+
case PluginSourceKind.GitUrl:
|
|
104
|
+
{
|
|
105
|
+
const git = source;
|
|
106
|
+
return `git:${git.url.toLowerCase()}|${normalizedName}`;
|
|
107
|
+
}
|
|
108
|
+
case PluginSourceKind.Npm:
|
|
109
|
+
{
|
|
110
|
+
const npm = source;
|
|
111
|
+
return `npm:${npm.package.toLowerCase()}|${normalizedName}`;
|
|
112
|
+
}
|
|
113
|
+
case PluginSourceKind.Pip:
|
|
114
|
+
{
|
|
115
|
+
const pip = source;
|
|
116
|
+
return `pip:${pip.package.toLowerCase()}|${normalizedName}`;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function getCopilotCliInstallCanonicalIdentity(plugin) {
|
|
121
|
+
if (plugin.uri.scheme !== "file") {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
const idx = plugin.uri.path.indexOf(COPILOT_CLI_INSTALL_PATH_FRAGMENT);
|
|
125
|
+
if (idx === -1) {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
const segments = plugin.uri.path.slice(idx + COPILOT_CLI_INSTALL_PATH_FRAGMENT.length).split("/").filter(s => s.length > 0);
|
|
129
|
+
if (segments.length !== 2) {
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
const [bucket, installName] = segments;
|
|
133
|
+
const normalizedName = normalizePluginIdentitySegment(plugin.label || installName);
|
|
134
|
+
if (bucket !== "_direct") {
|
|
135
|
+
return `copilot-cli-marketplace:${normalizePluginIdentitySegment(bucket)}|${normalizedName}`;
|
|
136
|
+
}
|
|
137
|
+
const match = /^(?<owner>.+)--(?<repo>.+)--(?<plugin>.+)$/.exec(installName);
|
|
138
|
+
const groups = match?.groups;
|
|
139
|
+
if (!groups) {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
return `github:${groups.owner.toLowerCase()}/${groups.repo.toLowerCase()}|${normalizePluginIdentitySegment(groups.plugin)}`;
|
|
143
|
+
}
|
|
144
|
+
function normalizePluginIdentitySegment(value) {
|
|
145
|
+
return value.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9_.:-]/g, "-").replace(/-+/g, "-").replace(/^[-:.]+|[-:.]+$/g, "");
|
|
146
|
+
}
|
|
147
|
+
function getPolicyIdentity(plugin) {
|
|
148
|
+
const m = plugin.fromMarketplace;
|
|
149
|
+
if (m) {
|
|
150
|
+
return {
|
|
151
|
+
name: m.name,
|
|
152
|
+
marketplace: m.marketplace,
|
|
153
|
+
marketplaceReference: m.marketplaceReference
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
if (plugin.uri.scheme !== "file") {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
const idx = plugin.uri.path.indexOf(COPILOT_CLI_INSTALL_PATH_FRAGMENT);
|
|
160
|
+
if (idx === -1) {
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
const segments = plugin.uri.path.slice(idx + COPILOT_CLI_INSTALL_PATH_FRAGMENT.length).split("/").filter(s => s.length > 0);
|
|
164
|
+
if (segments.length !== 2) {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
const [marketplace, name] = segments;
|
|
168
|
+
if (marketplace === "_direct") {
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
name,
|
|
173
|
+
marketplace
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export { AgentPluginCollisionEnablementModel, getAgentPluginPolicyId, getCanonicalAgentPluginCollisionGroups, getSortedAgentPlugins, isAgentPluginBlockedByPolicy };
|
|
@@ -22,23 +22,7 @@ export declare class AgentPluginService extends Disposable implements IAgentPlug
|
|
|
22
22
|
readonly _serviceBrand: undefined;
|
|
23
23
|
readonly plugins: IObservable<readonly IAgentPlugin[]>;
|
|
24
24
|
readonly enablementModel: IEnablementModel;
|
|
25
|
-
constructor(instantiationService: IInstantiationService, configurationService: IConfigurationService, storageService: IStorageService,
|
|
26
|
-
/**
|
|
27
|
-
* Determines whether a plugin is blocked by enterprise policy:
|
|
28
|
-
* - If `chat.plugins.enabledPlugins` (policy-managed via `ChatEnabledPlugins`)
|
|
29
|
-
* is set, only plugins whose ID appears with value `true` are allowed.
|
|
30
|
-
* - If `chat.plugins.strictMarketplaces` is on, only plugins from a
|
|
31
|
-
* marketplace listed in `chat.plugins.extraMarketplaces` are allowed.
|
|
32
|
-
*
|
|
33
|
-
* Plugins without a marketplace provenance (e.g. user-configured filesystem
|
|
34
|
-
* paths from `chat.pluginLocations`) are never blocked — they are user-side
|
|
35
|
-
* concerns outside the enterprise enforcement boundary. Copilot-CLI-installed
|
|
36
|
-
* plugins under `~/.copilot/installed-plugins/<marketplace>/<plugin>/` are
|
|
37
|
-
* gated using their install-path identity even when they lack rich
|
|
38
|
-
* marketplace metadata.
|
|
39
|
-
*/
|
|
40
|
-
private _isBlockedByPolicy;
|
|
41
|
-
private _dedupeAndSort;
|
|
25
|
+
constructor(instantiationService: IInstantiationService, configurationService: IConfigurationService, storageService: IStorageService, logService: ILogService);
|
|
42
26
|
}
|
|
43
27
|
/**
|
|
44
28
|
* Describes a single discovered plugin source, before the shared
|
|
@@ -67,7 +51,7 @@ export declare abstract class AbstractAgentPluginDiscovery extends Disposable im
|
|
|
67
51
|
protected readonly _workspaceContextService: IWorkspaceContextService;
|
|
68
52
|
private readonly _pluginEntries;
|
|
69
53
|
private readonly _plugins;
|
|
70
|
-
readonly plugins: IObservable<readonly IAgentPlugin[]>;
|
|
54
|
+
readonly plugins: IObservable<readonly IAgentPlugin[] | undefined>;
|
|
71
55
|
private _discoverVersion;
|
|
72
56
|
protected _enablementModel: IEnablementModel;
|
|
73
57
|
constructor(_fileService: IFileService, _pathService: IPathService, _logService: ILogService, _workspaceContextService: IWorkspaceContextService);
|
|
@@ -6,7 +6,6 @@ import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/ite
|
|
|
6
6
|
import { parse } from '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
|
|
7
7
|
import { untildify } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
|
|
8
8
|
import { Disposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
9
|
-
import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
10
9
|
import { equals } from '@codingame/monaco-vscode-api/vscode/vs/base/common/objects';
|
|
11
10
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
12
11
|
import { win32, posix } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
|
|
@@ -36,17 +35,16 @@ import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/s
|
|
|
36
35
|
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
37
36
|
import { EnablementModel, ContributionEnablementState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
|
|
38
37
|
import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes';
|
|
38
|
+
import { getCanonicalAgentPluginCollisionGroups, isAgentPluginBlockedByPolicy, AgentPluginCollisionEnablementModel, getSortedAgentPlugins, getAgentPluginPolicyId } from './agentPluginEnablement.js';
|
|
39
39
|
import { IAgentPluginRepositoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService.service';
|
|
40
40
|
import { agentPluginDiscoveryRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService';
|
|
41
41
|
import { IPluginMarketplaceService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service';
|
|
42
|
-
import { parseMarketplaceReferences, readConfiguredMarketplaces } from './marketplaceReference.js';
|
|
43
42
|
import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
|
|
44
43
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
45
44
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
46
45
|
import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
47
46
|
import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/promise';
|
|
48
47
|
import { observableSignal } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignal';
|
|
49
|
-
import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
|
|
50
48
|
import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
|
|
51
49
|
|
|
52
50
|
function toAgentPluginHooks(groups) {
|
|
@@ -64,154 +62,97 @@ function resolveWorkspaceRoot(pluginUri, workspaceContextService) {
|
|
|
64
62
|
return folder?.uri;
|
|
65
63
|
}
|
|
66
64
|
let AgentPluginService = class AgentPluginService extends Disposable {
|
|
67
|
-
constructor(
|
|
68
|
-
instantiationService,
|
|
69
|
-
configurationService,
|
|
70
|
-
storageService,
|
|
71
|
-
pluginMarketplaceService,
|
|
72
|
-
logService
|
|
73
|
-
) {
|
|
65
|
+
constructor(instantiationService, configurationService, storageService, logService) {
|
|
74
66
|
super();
|
|
75
|
-
|
|
67
|
+
const baseEnablementModel = this._register(( new EnablementModel("agentPlugins.enablement", storageService)));
|
|
76
68
|
const pluginsEnabled = observableConfigValue(ChatConfiguration.PluginsEnabled, true, configurationService);
|
|
77
69
|
const discoveries = [];
|
|
78
|
-
for (const
|
|
79
|
-
const discovery = instantiationService.createInstance(descriptor);
|
|
70
|
+
for (const registration of agentPluginDiscoveryRegistry.getAll()) {
|
|
71
|
+
const discovery = instantiationService.createInstance(registration.descriptor);
|
|
80
72
|
this._register(discovery);
|
|
81
|
-
discoveries.push(
|
|
82
|
-
|
|
73
|
+
discoveries.push({
|
|
74
|
+
discovery,
|
|
75
|
+
priority: registration.priority,
|
|
76
|
+
order: registration.order
|
|
77
|
+
});
|
|
83
78
|
}
|
|
84
79
|
const enabledPluginsPolicy = observableFromEvent(this, Event.filter(
|
|
85
80
|
configurationService.onDidChangeConfiguration,
|
|
86
81
|
e => e.affectsConfiguration(ChatConfiguration.EnabledPlugins)
|
|
87
82
|
), () => configurationService.inspect(ChatConfiguration.EnabledPlugins).policyValue);
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
const collisionGroups = derived(reader => {
|
|
84
|
+
if (!pluginsEnabled.read(reader)) {
|
|
85
|
+
return ( new Map());
|
|
86
|
+
}
|
|
87
|
+
const discoveredPlugins = readDiscoveredAgentPlugins(discoveries, reader);
|
|
88
|
+
if (!discoveredPlugins) {
|
|
89
|
+
return ( new Map());
|
|
90
|
+
}
|
|
91
|
+
const policy = enabledPluginsPolicy.read(reader);
|
|
92
|
+
return getCanonicalAgentPluginCollisionGroups(discoveredPlugins, plugin => isAgentPluginBlockedByPolicy(plugin, policy));
|
|
93
|
+
});
|
|
94
|
+
this.enablementModel = ( new AgentPluginCollisionEnablementModel(baseEnablementModel, collisionGroups));
|
|
95
|
+
for (const {
|
|
96
|
+
discovery
|
|
97
|
+
} of discoveries) {
|
|
98
|
+
discovery.start(this.enablementModel);
|
|
99
|
+
}
|
|
93
100
|
this.plugins = derived(read => {
|
|
94
101
|
if (!pluginsEnabled.read(read)) {
|
|
95
102
|
return [];
|
|
96
103
|
}
|
|
97
|
-
|
|
104
|
+
const discoveredPlugins = readDiscoveredAgentPlugins(discoveries, read);
|
|
105
|
+
if (!discoveredPlugins) {
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
return getSortedAgentPlugins(discoveredPlugins);
|
|
98
109
|
});
|
|
99
110
|
this._register(autorun(reader => {
|
|
100
111
|
const plugins = this.plugins.read(reader);
|
|
101
112
|
const policy = enabledPluginsPolicy.read(reader);
|
|
102
|
-
const strict = strictMarketplaces.read(reader);
|
|
103
|
-
extraMarketplacesChanged.read(reader);
|
|
104
|
-
const trustedExtras = strict ? parseMarketplaceReferences(readConfiguredMarketplaces(configurationService).extraValues) : [];
|
|
105
113
|
transaction(tx => {
|
|
106
114
|
for (const plugin of plugins) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
logService
|
|
114
|
-
), tx);
|
|
115
|
+
const blocked = isAgentPluginBlockedByPolicy(plugin, policy);
|
|
116
|
+
if (setPolicyBlocked(plugin, blocked, tx) && blocked) {
|
|
117
|
+
logService.debug(
|
|
118
|
+
`[AgentPluginService] Plugin '${getAgentPluginPolicyId(plugin) ?? ( plugin.uri.toString())}' blocked — not enabled by ChatEnabledPlugins policy`
|
|
119
|
+
);
|
|
120
|
+
}
|
|
115
121
|
}
|
|
116
122
|
});
|
|
117
123
|
}));
|
|
118
124
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
const pluginId = `${identity.name}@${identity.marketplace}`;
|
|
132
|
-
if (enabledPluginsPolicy && ( Object.keys(enabledPluginsPolicy)).length > 0) {
|
|
133
|
-
if (enabledPluginsPolicy[pluginId] !== true) {
|
|
134
|
-
logService.debug(
|
|
135
|
-
`[AgentPluginService] Plugin '${pluginId}' blocked — not enabled by ChatEnabledPlugins policy`
|
|
136
|
-
);
|
|
137
|
-
return true;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
if (strictMarketplaces) {
|
|
141
|
-
const trusted = identity.marketplaceReference ? pluginMarketplaceService.isMarketplaceTrusted(identity.marketplaceReference) : isCliBucketTrusted(identity.marketplace, trustedExtras);
|
|
142
|
-
if (!trusted) {
|
|
143
|
-
logService.debug(
|
|
144
|
-
`[AgentPluginService] Plugin '${pluginId}' blocked — marketplace not trusted under strict mode`
|
|
145
|
-
);
|
|
146
|
-
return true;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return false;
|
|
150
|
-
}
|
|
151
|
-
_dedupeAndSort(plugins) {
|
|
152
|
-
const unique = [];
|
|
153
|
-
const seen = ( new ResourceSet());
|
|
154
|
-
for (const plugin of plugins) {
|
|
155
|
-
if (( seen.has(plugin.uri))) {
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
seen.add(plugin.uri);
|
|
159
|
-
unique.push(plugin);
|
|
125
|
+
};
|
|
126
|
+
AgentPluginService = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IConfigurationService)), ( __param(2, IStorageService)), ( __param(3, ILogService))], AgentPluginService));
|
|
127
|
+
function readDiscoveredAgentPlugins(discoveries, reader) {
|
|
128
|
+
const result = [];
|
|
129
|
+
for (const {
|
|
130
|
+
discovery,
|
|
131
|
+
priority,
|
|
132
|
+
order
|
|
133
|
+
} of discoveries) {
|
|
134
|
+
const plugins = discovery.plugins.read(reader);
|
|
135
|
+
if (!plugins) {
|
|
136
|
+
return undefined;
|
|
160
137
|
}
|
|
161
|
-
|
|
162
|
-
|
|
138
|
+
result.push({
|
|
139
|
+
plugins,
|
|
140
|
+
priority,
|
|
141
|
+
order
|
|
142
|
+
});
|
|
163
143
|
}
|
|
164
|
-
|
|
165
|
-
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
166
146
|
function setPolicyBlocked(plugin, blocked, tx) {
|
|
167
147
|
const obs = plugin.policyBlocked;
|
|
168
148
|
if (obs && typeof obs.set === "function") {
|
|
149
|
+
if (obs.get() === blocked) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
169
152
|
obs.set(blocked, tx);
|
|
153
|
+
return true;
|
|
170
154
|
}
|
|
171
|
-
|
|
172
|
-
const COPILOT_CLI_INSTALL_PATH_FRAGMENT = "/.copilot/installed-plugins/";
|
|
173
|
-
function getPolicyIdentity(plugin) {
|
|
174
|
-
const m = plugin.fromMarketplace;
|
|
175
|
-
if (m) {
|
|
176
|
-
return {
|
|
177
|
-
name: m.name,
|
|
178
|
-
marketplace: m.marketplace,
|
|
179
|
-
marketplaceReference: m.marketplaceReference
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
if (plugin.uri.scheme !== "file") {
|
|
183
|
-
return undefined;
|
|
184
|
-
}
|
|
185
|
-
const idx = plugin.uri.path.indexOf(COPILOT_CLI_INSTALL_PATH_FRAGMENT);
|
|
186
|
-
if (idx === -1) {
|
|
187
|
-
return undefined;
|
|
188
|
-
}
|
|
189
|
-
const segments = plugin.uri.path.slice(idx + COPILOT_CLI_INSTALL_PATH_FRAGMENT.length).split("/").filter(s => s.length > 0);
|
|
190
|
-
if (segments.length !== 2) {
|
|
191
|
-
return undefined;
|
|
192
|
-
}
|
|
193
|
-
const [marketplace, name] = segments;
|
|
194
|
-
if (marketplace === "_direct") {
|
|
195
|
-
return undefined;
|
|
196
|
-
}
|
|
197
|
-
return {
|
|
198
|
-
name,
|
|
199
|
-
marketplace
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
function isCliBucketTrusted(bucket, trustedExtras) {
|
|
203
|
-
return ( trustedExtras.some(ref => {
|
|
204
|
-
if (ref.githubRepo && ref.githubRepo.split("/").pop() === bucket) {
|
|
205
|
-
return true;
|
|
206
|
-
}
|
|
207
|
-
if (ref.displayLabel === bucket || ref.displayLabel.endsWith(`/${bucket}`)) {
|
|
208
|
-
return true;
|
|
209
|
-
}
|
|
210
|
-
if (ref.canonicalId.endsWith(`/${bucket}`) || ref.canonicalId.endsWith(`/${bucket}.git`)) {
|
|
211
|
-
return true;
|
|
212
|
-
}
|
|
213
|
-
return false;
|
|
214
|
-
}));
|
|
155
|
+
return false;
|
|
215
156
|
}
|
|
216
157
|
class AbstractAgentPluginDiscovery extends Disposable {
|
|
217
158
|
constructor(_fileService, _pathService, _logService, _workspaceContextService) {
|
|
@@ -221,7 +162,7 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
221
162
|
this._logService = _logService;
|
|
222
163
|
this._workspaceContextService = _workspaceContextService;
|
|
223
164
|
this._pluginEntries = ( new Map());
|
|
224
|
-
this._plugins = observableValue("discoveredAgentPlugins",
|
|
165
|
+
this._plugins = observableValue("discoveredAgentPlugins", undefined);
|
|
225
166
|
this.plugins = this._plugins;
|
|
226
167
|
this._discoverVersion = 0;
|
|
227
168
|
}
|
|
@@ -335,7 +276,7 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
335
276
|
"hooks",
|
|
336
277
|
paths => this._readHooksFromPaths(uri, paths, format),
|
|
337
278
|
async section => {
|
|
338
|
-
const userHome =
|
|
279
|
+
const userHome = await this._pathService.userHome();
|
|
339
280
|
const workspaceRoot = resolveWorkspaceRoot(uri, this._workspaceContextService);
|
|
340
281
|
return toAgentPluginHooks(format.parseHooks(manifestUri, section, uri, workspaceRoot, userHome));
|
|
341
282
|
},
|
|
@@ -388,7 +329,7 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
388
329
|
return undefined;
|
|
389
330
|
}
|
|
390
331
|
async _readHooksFromPaths(pluginUri, paths, format) {
|
|
391
|
-
const userHome =
|
|
332
|
+
const userHome = await this._pathService.userHome();
|
|
392
333
|
const workspaceRoot = resolveWorkspaceRoot(pluginUri, this._workspaceContextService);
|
|
393
334
|
for (const hookPath of paths) {
|
|
394
335
|
const json = await this._readJsonFile(hookPath);
|
|
@@ -794,13 +735,13 @@ let CopilotCliAgentPluginDiscovery = class CopilotCliAgentPluginDiscovery extend
|
|
|
794
735
|
const {
|
|
795
736
|
confirmed
|
|
796
737
|
} = await this._dialogService.confirm({
|
|
797
|
-
message: ( localize(
|
|
738
|
+
message: ( localize(8587, "This plugin was installed by the Copilot CLI. Remove it from disk?")),
|
|
798
739
|
detail: ( localize(
|
|
799
|
-
|
|
740
|
+
8588,
|
|
800
741
|
"The plugin directory '{0}' will be moved to the trash. You can reinstall it later via the Copilot CLI.",
|
|
801
742
|
resource.fsPath
|
|
802
743
|
)),
|
|
803
|
-
primaryButton: ( localize(
|
|
744
|
+
primaryButton: ( localize(8589, "Remove"))
|
|
804
745
|
});
|
|
805
746
|
if (!confirmed) {
|
|
806
747
|
return;
|
|
@@ -820,7 +761,7 @@ CopilotCliAgentPluginDiscovery = ( __decorate([( __param(0, IFileService)), ( __
|
|
|
820
761
|
const epPlugins = ExtensionsRegistry.registerExtensionPoint({
|
|
821
762
|
extensionPoint: "chatPlugins",
|
|
822
763
|
jsonSchema: {
|
|
823
|
-
description: ( localize(
|
|
764
|
+
description: ( localize(8590, "Contributes agent plugins for chat.")),
|
|
824
765
|
type: "array",
|
|
825
766
|
items: {
|
|
826
767
|
additionalProperties: false,
|
|
@@ -834,13 +775,13 @@ const epPlugins = ExtensionsRegistry.registerExtensionPoint({
|
|
|
834
775
|
properties: {
|
|
835
776
|
path: {
|
|
836
777
|
description: ( localize(
|
|
837
|
-
|
|
778
|
+
8591,
|
|
838
779
|
"Path to the agent plugin root directory relative to the extension root."
|
|
839
780
|
)),
|
|
840
781
|
type: "string"
|
|
841
782
|
},
|
|
842
783
|
when: {
|
|
843
|
-
description: ( localize(
|
|
784
|
+
description: ( localize(8592, "(Optional) A condition which must be true to enable this plugin.")),
|
|
844
785
|
type: "string"
|
|
845
786
|
}
|
|
846
787
|
}
|
|
@@ -877,7 +818,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
877
818
|
for (const raw of ext.value) {
|
|
878
819
|
if (!raw.path) {
|
|
879
820
|
ext.collector.error(( localize(
|
|
880
|
-
|
|
821
|
+
8593,
|
|
881
822
|
"Extension '{0}' cannot register a chatPlugins entry without a path.",
|
|
882
823
|
ext.description.identifier.value
|
|
883
824
|
)));
|
|
@@ -886,7 +827,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
886
827
|
const pluginUri = joinPath(ext.description.extensionLocation, raw.path);
|
|
887
828
|
if (!isEqualOrParent(pluginUri, ext.description.extensionLocation)) {
|
|
888
829
|
ext.collector.error(( localize(
|
|
889
|
-
|
|
830
|
+
8594,
|
|
890
831
|
"Extension '{0}' chatPlugins entry '{1}' resolves outside the extension.",
|
|
891
832
|
ext.description.identifier.value,
|
|
892
833
|
raw.path
|
|
@@ -898,7 +839,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
898
839
|
whenExpr = ContextKeyExpr.deserialize(raw.when);
|
|
899
840
|
if (!whenExpr) {
|
|
900
841
|
ext.collector.error(( localize(
|
|
901
|
-
|
|
842
|
+
8595,
|
|
902
843
|
"Extension '{0}' chatPlugins entry '{1}' has an invalid when clause: '{2}'.",
|
|
903
844
|
ext.description.identifier.value,
|
|
904
845
|
raw.path,
|
|
@@ -922,6 +863,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
922
863
|
this._rebuildWhenKeys();
|
|
923
864
|
scheduler.schedule();
|
|
924
865
|
});
|
|
866
|
+
scheduler.schedule();
|
|
925
867
|
}
|
|
926
868
|
_rebuildWhenKeys() {
|
|
927
869
|
this._whenKeys.clear();
|
|
@@ -969,7 +911,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
969
911
|
confirmed
|
|
970
912
|
} = await this._dialogService.confirm({
|
|
971
913
|
message: ( localize(
|
|
972
|
-
|
|
914
|
+
8596,
|
|
973
915
|
"This plugin is provided by the extension '{0}'. Do you want to uninstall the extension?",
|
|
974
916
|
extensionId
|
|
975
917
|
))
|
|
@@ -1002,7 +944,7 @@ class ChatPluginsDataRenderer extends Disposable {
|
|
|
1002
944
|
dispose: () => {}
|
|
1003
945
|
};
|
|
1004
946
|
}
|
|
1005
|
-
const headers = [( localize(
|
|
947
|
+
const headers = [( localize(8597, "Path")), ( localize(8598, "When"))];
|
|
1006
948
|
const rows = ( contributions.map(d => [d.path, d.when ?? "-"]));
|
|
1007
949
|
return {
|
|
1008
950
|
data: {
|
|
@@ -1015,7 +957,7 @@ class ChatPluginsDataRenderer extends Disposable {
|
|
|
1015
957
|
}
|
|
1016
958
|
( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
1017
959
|
id: "chatPlugins",
|
|
1018
|
-
label: ( localize(
|
|
960
|
+
label: ( localize(8599, "Chat Plugins")),
|
|
1019
961
|
access: {
|
|
1020
962
|
canToggle: false
|
|
1021
963
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
2
|
-
import { IExtraKnownMarketplaceEntry } from "@codingame/monaco-vscode-api/vscode/vs/base/common/managedSettings";
|
|
3
2
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
3
|
+
export { extraKnownMarketplacesToConfigDict } from "@codingame/monaco-vscode-api/vscode/vs/base/common/managedSettings";
|
|
4
4
|
export declare enum MarketplaceReferenceKind {
|
|
5
5
|
GitHubShorthand = "githubShorthand",
|
|
6
6
|
GitUri = "gitUri",
|
|
@@ -33,21 +33,6 @@ export interface IConfiguredMarketplaces {
|
|
|
33
33
|
readonly extraValues: readonly unknown[];
|
|
34
34
|
readonly effectiveValues: readonly unknown[];
|
|
35
35
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Converts the {@link IExtraKnownMarketplaceEntry} array delivered by the
|
|
38
|
-
* `ChatExtraMarketplaces` policy into the `{ [name]: url-or-shorthand }` dict
|
|
39
|
-
* stored on the `chat.plugins.extraMarketplaces` setting.
|
|
40
|
-
*
|
|
41
|
-
* The dict shape is what the Settings Editor's ComplexObject renderer can
|
|
42
|
-
* display inline as key/value rows. {@link readConfiguredMarketplaces} reverses
|
|
43
|
-
* this conversion so {@link parseMarketplaceReferences} keeps producing
|
|
44
|
-
* `displayLabel = name` (required for `enabledPlugins["plugin@<name>"]` keys).
|
|
45
|
-
*
|
|
46
|
-
* Plain-string entries (allowed by the policy schema but unnamed) are stored
|
|
47
|
-
* with the value used as both key and value so they survive the round-trip
|
|
48
|
-
* intact.
|
|
49
|
-
*/
|
|
50
|
-
export declare function extraKnownMarketplacesToConfigDict(entries: readonly (string | IExtraKnownMarketplaceEntry)[] | undefined): Record<string, string> | undefined;
|
|
51
36
|
export declare function readConfiguredMarketplaces(configurationService: IConfigurationService): IConfiguredMarketplaces;
|
|
52
37
|
export declare function parseMarketplaceReferences(values: readonly unknown[]): IMarketplaceReference[];
|
|
53
38
|
/**
|