@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
|
@@ -2,21 +2,23 @@
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
3
|
import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
4
4
|
import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
5
|
+
import { match } from '@codingame/monaco-vscode-api/vscode/vs/base/common/glob';
|
|
5
6
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
6
7
|
import { win32, posix } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
|
|
7
8
|
import { OS, OperatingSystem } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
8
9
|
import { arch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/process';
|
|
10
|
+
import { ExtUri } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
9
11
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
10
12
|
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
11
13
|
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
12
14
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
13
15
|
import { matchesDomainPattern, normalizeDomain } from '../../networkFilter/common/domainMatcher.js';
|
|
14
16
|
import { AgentNetworkDomainSettingId } from '../../networkFilter/common/settings.js';
|
|
15
|
-
import { AgentSandboxSettingId, AgentSandboxEnabledValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/settings';
|
|
17
|
+
import { isAgentSandboxEnabledValue, AgentSandboxSettingId, AgentSandboxEnabledValue, normalizeAgentSandboxEnabledValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/settings';
|
|
16
18
|
import { IWindowsMxcTerminalSandboxRuntime } from '@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/terminalSandboxMxcRuntime.service';
|
|
17
19
|
import { getTerminalSandboxReadAllowListForCommands } from './terminalSandboxReadAllowList.js';
|
|
18
20
|
import { getTerminalSandboxRuntimeConfigurationForCommands } from './terminalSandboxRuntimeConfigurationPerOperation.js';
|
|
19
|
-
import { TerminalSandboxPrerequisiteCheck } from './terminalSandboxService.js';
|
|
21
|
+
import { TerminalSandboxPrerequisiteCheck, TerminalSandboxPreCheckRemediation } from './terminalSandboxService.js';
|
|
20
22
|
|
|
21
23
|
var TerminalSandboxEngine_1;
|
|
22
24
|
let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
@@ -47,6 +49,7 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
47
49
|
this._commandAllowNetwork = false;
|
|
48
50
|
this._os = OS;
|
|
49
51
|
this._defaultWritePaths = [];
|
|
52
|
+
this._fileSystemPathExtUri = ( new ExtUri(() => this._os === OperatingSystem.Windows));
|
|
50
53
|
this._buildSandboxPayload = (commandLine, policy, workingDirectory, containerName, containment) => {
|
|
51
54
|
return this._host.buildWindowsMxcSandboxPayload(commandLine, policy, workingDirectory, containerName, containment);
|
|
52
55
|
};
|
|
@@ -74,9 +77,6 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
74
77
|
areRetryWithAllowNetworkRequestsAllowed() {
|
|
75
78
|
return this._areRetryWithAllowNetworkRequestsAllowed();
|
|
76
79
|
}
|
|
77
|
-
isAutoApproveUnsandboxedCommands() {
|
|
78
|
-
return this._areUnsandboxedCommandsAllowed() && this._getSettingValue(AgentSandboxSettingId.AgentSandboxAutoApproveUnsandboxedCommands) === true;
|
|
79
|
-
}
|
|
80
80
|
async getOS() {
|
|
81
81
|
this._os = await this._host.getOS();
|
|
82
82
|
return this._os;
|
|
@@ -209,11 +209,21 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
209
209
|
};
|
|
210
210
|
}
|
|
211
211
|
if (!(await this._checkSandboxDependencies(forceRefresh))) {
|
|
212
|
+
const missingDependencies = await this.getMissingSandboxDependencies();
|
|
213
|
+
if (missingDependencies.length === 0 && this._sandboxDependencyStatus?.bubblewrapInstalled && !this._sandboxDependencyStatus.bubblewrapUsable) {
|
|
214
|
+
return {
|
|
215
|
+
enabled: true,
|
|
216
|
+
sandboxConfigPath,
|
|
217
|
+
failedCheck: TerminalSandboxPrerequisiteCheck.Bubblewrap,
|
|
218
|
+
remediations: this._getBubblewrapRemediations(),
|
|
219
|
+
detail: this._sandboxDependencyStatus.bubblewrapError
|
|
220
|
+
};
|
|
221
|
+
}
|
|
212
222
|
return {
|
|
213
223
|
enabled: true,
|
|
214
224
|
sandboxConfigPath,
|
|
215
225
|
failedCheck: TerminalSandboxPrerequisiteCheck.Dependencies,
|
|
216
|
-
missingDependencies
|
|
226
|
+
missingDependencies
|
|
217
227
|
};
|
|
218
228
|
}
|
|
219
229
|
return {
|
|
@@ -222,6 +232,32 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
222
232
|
failedCheck: undefined
|
|
223
233
|
};
|
|
224
234
|
}
|
|
235
|
+
async checkFileAccess(permission, paths, precheckInputs) {
|
|
236
|
+
if (!(await this._isSandboxConfiguredEnabled(precheckInputs))) {
|
|
237
|
+
return {
|
|
238
|
+
allowed: true,
|
|
239
|
+
denied: []
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
await this._resolveRuntimeInfo();
|
|
243
|
+
if (!this._tempDir) {
|
|
244
|
+
await this._initTempDir();
|
|
245
|
+
}
|
|
246
|
+
const configFilePath = this._tempDir ? this._getUriPath(
|
|
247
|
+
URI.joinPath(this._tempDir, `vscode-sandbox-settings-${this._sandboxSettingsId}.json`)
|
|
248
|
+
) : undefined;
|
|
249
|
+
const accessPaths = await this._getFileSystemAccessPaths(configFilePath);
|
|
250
|
+
const denied = [];
|
|
251
|
+
for (const path of paths) {
|
|
252
|
+
if (!path || !(await this._hasFileSystemAccess(permission, path, accessPaths))) {
|
|
253
|
+
denied.push(path);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
allowed: denied.length === 0,
|
|
258
|
+
denied
|
|
259
|
+
};
|
|
260
|
+
}
|
|
225
261
|
async getSandboxConfigPath(forceRefresh = false, precheckInputs) {
|
|
226
262
|
if (!(await this._isSandboxConfiguredEnabled(precheckInputs))) {
|
|
227
263
|
return undefined;
|
|
@@ -238,7 +274,7 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
238
274
|
if (os === OperatingSystem.Windows) {
|
|
239
275
|
return [];
|
|
240
276
|
}
|
|
241
|
-
if (!this._sandboxDependencyStatus
|
|
277
|
+
if (!this._sandboxDependencyStatus) {
|
|
242
278
|
this._sandboxDependencyStatus = await this._host.checkSandboxDependencies();
|
|
243
279
|
}
|
|
244
280
|
const missing = [];
|
|
@@ -269,17 +305,27 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
269
305
|
return true;
|
|
270
306
|
}
|
|
271
307
|
if (!forceRefresh && this._sandboxDependencyStatus) {
|
|
272
|
-
return this._sandboxDependencyStatus.bubblewrapInstalled && this._sandboxDependencyStatus.socatInstalled;
|
|
308
|
+
return this._sandboxDependencyStatus.bubblewrapInstalled && this._sandboxDependencyStatus.bubblewrapUsable && this._sandboxDependencyStatus.socatInstalled;
|
|
273
309
|
}
|
|
274
310
|
const status = await this._host.checkSandboxDependencies();
|
|
275
311
|
this._sandboxDependencyStatus = status;
|
|
276
312
|
if (status && !status.bubblewrapInstalled) {
|
|
277
313
|
this._logService.warn("TerminalSandboxEngine: bubblewrap (bwrap) is not installed");
|
|
314
|
+
} else if (status && !status.bubblewrapUsable) {
|
|
315
|
+
this._logService.warn(
|
|
316
|
+
"TerminalSandboxEngine: bubblewrap (bwrap) is installed but failed its capability check",
|
|
317
|
+
status.bubblewrapError
|
|
318
|
+
);
|
|
278
319
|
}
|
|
279
320
|
if (status && !status.socatInstalled) {
|
|
280
321
|
this._logService.warn("TerminalSandboxEngine: socat is not installed");
|
|
281
322
|
}
|
|
282
|
-
return status ? status.bubblewrapInstalled && status.socatInstalled : true;
|
|
323
|
+
return status ? status.bubblewrapInstalled && status.bubblewrapUsable && status.socatInstalled : true;
|
|
324
|
+
}
|
|
325
|
+
_getBubblewrapRemediations() {
|
|
326
|
+
return [
|
|
327
|
+
TerminalSandboxPreCheckRemediation.DisableUnprivilagedusernamespaceRestriction
|
|
328
|
+
];
|
|
283
329
|
}
|
|
284
330
|
_quoteShellArgument(value) {
|
|
285
331
|
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
@@ -411,10 +457,11 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
411
457
|
}
|
|
412
458
|
await this.getOS();
|
|
413
459
|
if (this._os === OperatingSystem.Windows) {
|
|
414
|
-
|
|
460
|
+
const value = this._getSandboxConfiguredWindowsEnabledValue();
|
|
461
|
+
return isAgentSandboxEnabledValue(value);
|
|
415
462
|
}
|
|
416
463
|
const value = this._getSandboxConfiguredEnabledValue();
|
|
417
|
-
return value
|
|
464
|
+
return isAgentSandboxEnabledValue(value);
|
|
418
465
|
}
|
|
419
466
|
async _resolveRuntimeInfo() {
|
|
420
467
|
if (this._runtimeResolved) {
|
|
@@ -464,6 +511,7 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
464
511
|
const commandRuntimeAllowReadPaths = this._getCommandRuntimeFileSystemPaths(commandRuntimeSetting, "allowRead");
|
|
465
512
|
const commandRuntimeAllowWritePaths = this._getCommandRuntimeFileSystemPaths(commandRuntimeSetting, "allowWrite");
|
|
466
513
|
const configFileUri = URI.joinPath(this._tempDir, `vscode-sandbox-settings-${this._sandboxSettingsId}.json`);
|
|
514
|
+
const configFilePath = this._getUriPath(configFileUri);
|
|
467
515
|
let allowWritePaths = [];
|
|
468
516
|
let allowReadPaths = [];
|
|
469
517
|
let denyReadPaths = [];
|
|
@@ -482,26 +530,30 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
482
530
|
denyReadPaths = await this._resolveFileSystemPaths(windowsFileSystemSetting.denyRead ?? []);
|
|
483
531
|
this._windowsMxcEnvironment = env;
|
|
484
532
|
} else if (this._os === OperatingSystem.Macintosh) {
|
|
485
|
-
allowWritePaths = await this._resolveFileSystemPaths(
|
|
533
|
+
allowWritePaths = (await this._resolveFileSystemPaths(
|
|
486
534
|
await this._updateAllowWritePathsWithWorkspaceFolders(macFileSystemSetting.allowWrite, commandRuntimeAllowWritePaths)
|
|
487
|
-
);
|
|
535
|
+
)).filter(path => path !== configFilePath);
|
|
488
536
|
allowReadPaths = await this._resolveFileSystemPaths(await this._updateAllowReadPathsWithAllowWrite(
|
|
489
537
|
macFileSystemSetting.allowRead,
|
|
490
538
|
allowWritePaths,
|
|
491
539
|
commandRuntimeAllowReadPaths
|
|
492
540
|
));
|
|
493
|
-
denyReadPaths = await this._resolveFileSystemPaths(
|
|
541
|
+
denyReadPaths = await this._resolveFileSystemPaths(
|
|
542
|
+
this._updateDenyReadPathsWithHome([...(macFileSystemSetting.denyRead ?? []), configFilePath])
|
|
543
|
+
);
|
|
494
544
|
denyWritePaths = macFileSystemSetting.denyWrite ? await this._resolveFileSystemPaths(macFileSystemSetting.denyWrite) : undefined;
|
|
495
545
|
} else if (this._os === OperatingSystem.Linux) {
|
|
496
|
-
allowWritePaths = await this._resolveFileSystemPaths(
|
|
546
|
+
allowWritePaths = (await this._resolveFileSystemPaths(
|
|
497
547
|
await this._updateAllowWritePathsWithWorkspaceFolders(linuxFileSystemSetting.allowWrite, commandRuntimeAllowWritePaths)
|
|
498
|
-
);
|
|
548
|
+
)).filter(path => path !== configFilePath);
|
|
499
549
|
allowReadPaths = await this._resolveFileSystemPaths(await this._updateAllowReadPathsWithAllowWrite(
|
|
500
550
|
linuxFileSystemSetting.allowRead,
|
|
501
551
|
allowWritePaths,
|
|
502
552
|
commandRuntimeAllowReadPaths
|
|
503
553
|
));
|
|
504
|
-
denyReadPaths = await this._resolveFileSystemPaths(
|
|
554
|
+
denyReadPaths = await this._resolveFileSystemPaths(
|
|
555
|
+
this._updateDenyReadPathsWithHome([...(linuxFileSystemSetting.denyRead ?? []), configFilePath])
|
|
556
|
+
);
|
|
505
557
|
denyWritePaths = await this._resolveFileSystemPaths(linuxFileSystemSetting.denyWrite);
|
|
506
558
|
}
|
|
507
559
|
const sandboxSettings = this._os === OperatingSystem.Windows ? await this._windowsMxcRuntime.createConfig({
|
|
@@ -511,7 +563,6 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
511
563
|
tempDir: this._tempDir,
|
|
512
564
|
schemaVersion: windowsSchemaVersion,
|
|
513
565
|
allowNetwork,
|
|
514
|
-
networkDomains: this.getResolvedNetworkDomains(),
|
|
515
566
|
allowReadPaths,
|
|
516
567
|
allowWritePaths,
|
|
517
568
|
denyReadPaths,
|
|
@@ -530,13 +581,14 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
530
581
|
}
|
|
531
582
|
};
|
|
532
583
|
if (this._os !== OperatingSystem.Windows) {
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
)
|
|
537
|
-
|
|
584
|
+
const sandboxRuntimeSettings = sandboxSettings;
|
|
585
|
+
this._mergeAdditionalSandboxConfigProperties(sandboxRuntimeSettings, runtimeSetting);
|
|
586
|
+
this._mergeAdditionalSandboxConfigProperties(sandboxRuntimeSettings, commandRuntimeSetting);
|
|
587
|
+
if (this._os === OperatingSystem.Macintosh) {
|
|
588
|
+
sandboxRuntimeSettings.allowPty ??= true;
|
|
589
|
+
}
|
|
538
590
|
}
|
|
539
|
-
this._sandboxConfigPath =
|
|
591
|
+
this._sandboxConfigPath = configFilePath;
|
|
540
592
|
await this._fileService.createFile(
|
|
541
593
|
configFileUri,
|
|
542
594
|
VSBuffer.fromString(JSON.stringify(sandboxSettings, null, "\t")),
|
|
@@ -546,6 +598,122 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
546
598
|
);
|
|
547
599
|
return this._sandboxConfigPath;
|
|
548
600
|
}
|
|
601
|
+
async _getFileSystemAccessPaths(configFilePath) {
|
|
602
|
+
const linuxFileSystemSetting = this._os === OperatingSystem.Linux ? this._getSettingValue(AgentSandboxSettingId.AgentSandboxLinuxFileSystem) ?? {} : {};
|
|
603
|
+
const macFileSystemSetting = this._os === OperatingSystem.Macintosh ? this._getSettingValue(AgentSandboxSettingId.AgentSandboxMacFileSystem) ?? {} : {};
|
|
604
|
+
const windowsFileSystemSetting = this._os === OperatingSystem.Windows ? this._getSettingValue(AgentSandboxSettingId.AgentSandboxWindowsFileSystem) ?? {} : {};
|
|
605
|
+
const commandRuntimeSetting = getTerminalSandboxRuntimeConfigurationForCommands(this._os, this._commandAllowListCommandDetails);
|
|
606
|
+
const commandRuntimeAllowReadPaths = this._getCommandRuntimeFileSystemPaths(commandRuntimeSetting, "allowRead");
|
|
607
|
+
const commandRuntimeAllowWritePaths = this._getCommandRuntimeFileSystemPaths(commandRuntimeSetting, "allowWrite");
|
|
608
|
+
let allowWritePaths = [];
|
|
609
|
+
let allowReadPaths = [];
|
|
610
|
+
let denyReadPaths = [];
|
|
611
|
+
let denyWritePaths;
|
|
612
|
+
if (this._os === OperatingSystem.Windows) {
|
|
613
|
+
const filesystemPolicy = await this._getWindowsMxcFilesystemPolicy();
|
|
614
|
+
allowWritePaths = await this._resolveFileSystemPaths([
|
|
615
|
+
...(await this._updateAllowWritePathsWithWorkspaceFolders(windowsFileSystemSetting.allowWrite)),
|
|
616
|
+
...filesystemPolicy.readwritePaths
|
|
617
|
+
]);
|
|
618
|
+
allowReadPaths = await this._resolveFileSystemPaths([
|
|
619
|
+
...(windowsFileSystemSetting.allowRead ?? []),
|
|
620
|
+
...filesystemPolicy.readonlyPaths
|
|
621
|
+
]);
|
|
622
|
+
denyReadPaths = await this._resolveFileSystemPaths(windowsFileSystemSetting.denyRead ?? []);
|
|
623
|
+
} else if (this._os === OperatingSystem.Macintosh) {
|
|
624
|
+
allowWritePaths = (await this._resolveFileSystemPaths(
|
|
625
|
+
await this._updateAllowWritePathsWithWorkspaceFolders(macFileSystemSetting.allowWrite, commandRuntimeAllowWritePaths)
|
|
626
|
+
)).filter(path => path !== configFilePath);
|
|
627
|
+
allowReadPaths = await this._resolveFileSystemPaths(await this._updateAllowReadPathsWithAllowWrite(
|
|
628
|
+
macFileSystemSetting.allowRead,
|
|
629
|
+
allowWritePaths,
|
|
630
|
+
commandRuntimeAllowReadPaths
|
|
631
|
+
));
|
|
632
|
+
denyReadPaths = await this._resolveFileSystemPaths(this._updateDenyReadPathsWithHome([
|
|
633
|
+
...(macFileSystemSetting.denyRead ?? []),
|
|
634
|
+
...(configFilePath ? [configFilePath] : [])
|
|
635
|
+
]));
|
|
636
|
+
denyWritePaths = macFileSystemSetting.denyWrite ? await this._resolveFileSystemPaths(macFileSystemSetting.denyWrite) : undefined;
|
|
637
|
+
} else if (this._os === OperatingSystem.Linux) {
|
|
638
|
+
allowWritePaths = (await this._resolveFileSystemPaths(
|
|
639
|
+
await this._updateAllowWritePathsWithWorkspaceFolders(linuxFileSystemSetting.allowWrite, commandRuntimeAllowWritePaths)
|
|
640
|
+
)).filter(path => path !== configFilePath);
|
|
641
|
+
allowReadPaths = await this._resolveFileSystemPaths(await this._updateAllowReadPathsWithAllowWrite(
|
|
642
|
+
linuxFileSystemSetting.allowRead,
|
|
643
|
+
allowWritePaths,
|
|
644
|
+
commandRuntimeAllowReadPaths
|
|
645
|
+
));
|
|
646
|
+
denyReadPaths = await this._resolveFileSystemPaths(this._updateDenyReadPathsWithHome([
|
|
647
|
+
...(linuxFileSystemSetting.denyRead ?? []),
|
|
648
|
+
...(configFilePath ? [configFilePath] : [])
|
|
649
|
+
]));
|
|
650
|
+
denyWritePaths = await this._resolveFileSystemPaths(linuxFileSystemSetting.denyWrite);
|
|
651
|
+
}
|
|
652
|
+
return {
|
|
653
|
+
allowReadPaths,
|
|
654
|
+
allowWritePaths,
|
|
655
|
+
denyReadPaths,
|
|
656
|
+
denyWritePaths
|
|
657
|
+
};
|
|
658
|
+
}
|
|
659
|
+
async _hasFileSystemAccess(permission, path, accessPaths) {
|
|
660
|
+
const resolvedPaths = await this._resolveFileSystemPath(path);
|
|
661
|
+
if (permission === "write") {
|
|
662
|
+
if (this._os === OperatingSystem.Windows && this._matchesAnyFileSystemPath(resolvedPaths, accessPaths.denyReadPaths)) {
|
|
663
|
+
return false;
|
|
664
|
+
}
|
|
665
|
+
if (this._matchesAnyFileSystemPath(resolvedPaths, accessPaths.denyWritePaths ?? [])) {
|
|
666
|
+
return false;
|
|
667
|
+
}
|
|
668
|
+
return this._matchesAnyFileSystemPath(resolvedPaths, accessPaths.allowWritePaths);
|
|
669
|
+
}
|
|
670
|
+
if (this._matchesAnyFileSystemPath(
|
|
671
|
+
resolvedPaths,
|
|
672
|
+
[...accessPaths.allowReadPaths, ...accessPaths.allowWritePaths]
|
|
673
|
+
)) {
|
|
674
|
+
return true;
|
|
675
|
+
}
|
|
676
|
+
return !this._matchesAnyFileSystemPath(resolvedPaths, accessPaths.denyReadPaths);
|
|
677
|
+
}
|
|
678
|
+
_matchesAnyFileSystemPath(paths, matchers) {
|
|
679
|
+
return ( paths.some(path => ( matchers.some(matcher => this._matchesFileSystemPath(path, matcher)))));
|
|
680
|
+
}
|
|
681
|
+
_matchesFileSystemPath(path, matcher) {
|
|
682
|
+
const normalizedPath = this._normalizeFileSystemAccessPath(path);
|
|
683
|
+
const normalizedMatcher = this._normalizeFileSystemAccessPath(matcher, true);
|
|
684
|
+
const ignoreCase = this._os === OperatingSystem.Windows;
|
|
685
|
+
if (this._containsGlobPattern(normalizedMatcher)) {
|
|
686
|
+
return match(normalizedMatcher, normalizedPath, {
|
|
687
|
+
ignoreCase
|
|
688
|
+
});
|
|
689
|
+
}
|
|
690
|
+
return this._fileSystemPathExtUri.isEqualOrParent(
|
|
691
|
+
this._toFileSystemAccessUri(normalizedPath),
|
|
692
|
+
this._toFileSystemAccessUri(normalizedMatcher)
|
|
693
|
+
);
|
|
694
|
+
}
|
|
695
|
+
_toFileSystemAccessUri(path) {
|
|
696
|
+
return ( URI.from({
|
|
697
|
+
scheme: "terminal-sandbox-path",
|
|
698
|
+
path: path.startsWith("/") ? path : `/${path}`
|
|
699
|
+
}));
|
|
700
|
+
}
|
|
701
|
+
_normalizeFileSystemAccessPath(path, preserveGlob = false) {
|
|
702
|
+
let normalizedPath = this._os === OperatingSystem.Windows ? path.replace(/\\/g, "/") : path;
|
|
703
|
+
if (this._os === OperatingSystem.Windows && /^\/[a-zA-Z]:($|\/)/.test(normalizedPath)) {
|
|
704
|
+
normalizedPath = normalizedPath.slice(1);
|
|
705
|
+
}
|
|
706
|
+
if (!preserveGlob || !this._containsGlobPattern(normalizedPath)) {
|
|
707
|
+
normalizedPath = posix.normalize(normalizedPath);
|
|
708
|
+
}
|
|
709
|
+
if (normalizedPath.length > 1 && normalizedPath.endsWith("/") && !/^[a-zA-Z]:\/$/.test(normalizedPath)) {
|
|
710
|
+
normalizedPath = normalizedPath.replace(/\/+$/, "");
|
|
711
|
+
}
|
|
712
|
+
return normalizedPath;
|
|
713
|
+
}
|
|
714
|
+
_containsGlobPattern(path) {
|
|
715
|
+
return /[*?{\[]/.test(path);
|
|
716
|
+
}
|
|
549
717
|
_getCommandRuntimeFileSystemPaths(runtimeSetting, key) {
|
|
550
718
|
const filesystem = runtimeSetting.filesystem;
|
|
551
719
|
if (!this._isObjectForSandboxConfigMerge(filesystem)) {
|
|
@@ -557,13 +725,6 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
557
725
|
}
|
|
558
726
|
return paths.filter(path => typeof path === "string");
|
|
559
727
|
}
|
|
560
|
-
_withoutNetworkRuntimeSetting(runtimeSetting) {
|
|
561
|
-
const sanitizedRuntimeSetting = {
|
|
562
|
-
...runtimeSetting
|
|
563
|
-
};
|
|
564
|
-
delete sanitizedRuntimeSetting.network;
|
|
565
|
-
return sanitizedRuntimeSetting;
|
|
566
|
-
}
|
|
567
728
|
_mergeAdditionalSandboxConfigProperties(target, additional) {
|
|
568
729
|
for (const [key, value] of Object.entries(additional)) {
|
|
569
730
|
if (!Object.prototype.hasOwnProperty.call(target, key)) {
|
|
@@ -648,7 +809,18 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
648
809
|
}
|
|
649
810
|
async _resolveFileSystemPaths(paths) {
|
|
650
811
|
const resolvedPaths = await Promise.all(( (paths ?? []).map(path => this._resolveFileSystemPath(path))));
|
|
651
|
-
|
|
812
|
+
const seenPaths = ( new Set());
|
|
813
|
+
return resolvedPaths.flat().filter(path => {
|
|
814
|
+
const comparisonKey = this._getFileSystemPathComparisonKey(path);
|
|
815
|
+
if (( seenPaths.has(comparisonKey))) {
|
|
816
|
+
return false;
|
|
817
|
+
}
|
|
818
|
+
seenPaths.add(comparisonKey);
|
|
819
|
+
return true;
|
|
820
|
+
});
|
|
821
|
+
}
|
|
822
|
+
_getFileSystemPathComparisonKey(path) {
|
|
823
|
+
return this._os === OperatingSystem.Windows ? path.replace(/\//g, "\\").toLowerCase() : path;
|
|
652
824
|
}
|
|
653
825
|
async _resolveFileSystemPath(path) {
|
|
654
826
|
const expandedPath = this._os === OperatingSystem.Linux ? this._expandHomePath(path) : path;
|
|
@@ -758,12 +930,18 @@ let TerminalSandboxEngine = class TerminalSandboxEngine extends Disposable {
|
|
|
758
930
|
return this._host.getWriteRoots()[0];
|
|
759
931
|
}
|
|
760
932
|
_getSandboxConfiguredEnabledValue() {
|
|
761
|
-
return this._getSettingValue(AgentSandboxSettingId.AgentSandboxEnabled)
|
|
933
|
+
return this._normalizeSandboxEnabledValue(this._getSettingValue(AgentSandboxSettingId.AgentSandboxEnabled));
|
|
762
934
|
}
|
|
763
935
|
_getSandboxConfiguredWindowsEnabledValue() {
|
|
764
|
-
return this._getSettingValue(AgentSandboxSettingId.AgentSandboxWindowsEnabled)
|
|
936
|
+
return this._normalizeSandboxEnabledValue(this._getSettingValue(AgentSandboxSettingId.AgentSandboxWindowsEnabled));
|
|
937
|
+
}
|
|
938
|
+
_normalizeSandboxEnabledValue(value) {
|
|
939
|
+
return value === undefined ? AgentSandboxEnabledValue.Off : normalizeAgentSandboxEnabledValue(value);
|
|
765
940
|
}
|
|
766
941
|
_isSandboxAllowNetworkConfigured() {
|
|
942
|
+
if (this._getSettingValue(AgentSandboxSettingId.AgentSandboxAllowNetwork) === true) {
|
|
943
|
+
return true;
|
|
944
|
+
}
|
|
767
945
|
if (this._os === OperatingSystem.Windows) {
|
|
768
946
|
return this._getSandboxConfiguredWindowsEnabledValue() === AgentSandboxEnabledValue.AllowNetwork;
|
|
769
947
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { OperatingSystem } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
3
|
-
import {
|
|
3
|
+
import { matchesTerminalSandboxCommandRule } from './terminalSandboxCommandRules.js';
|
|
4
4
|
|
|
5
5
|
var TerminalSandboxReadAllowListOperation;
|
|
6
6
|
(function(TerminalSandboxReadAllowListOperation) {
|
|
@@ -84,6 +84,7 @@ function getTerminalSandboxReadAllowListForOperation(operation, os) {
|
|
|
84
84
|
default:
|
|
85
85
|
return [
|
|
86
86
|
"~/.gitconfig",
|
|
87
|
+
"~/.config/gh/config.yml",
|
|
87
88
|
"~/.config/git/config",
|
|
88
89
|
"~/.gitignore",
|
|
89
90
|
"~/.gitignore_global",
|
|
@@ -280,9 +281,7 @@ const terminalSandboxReadAllowListCommandDetailRules = [{
|
|
|
280
281
|
value: TerminalSandboxReadAllowListOperation.GnuPG
|
|
281
282
|
}, {
|
|
282
283
|
keywords: ["git"],
|
|
283
|
-
value: TerminalSandboxReadAllowListOperation.GnuPG
|
|
284
|
-
subcommands: ["commit"],
|
|
285
|
-
optionsWithValue: gitGlobalOptionsWithValue
|
|
284
|
+
value: TerminalSandboxReadAllowListOperation.GnuPG
|
|
286
285
|
}];
|
|
287
286
|
function getTerminalSandboxReadAllowListForCommands(os, commandKeywords, commandDetails = []) {
|
|
288
287
|
if (commandKeywords.length === 0) {
|
package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { OperatingSystem } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
3
|
-
import {
|
|
3
|
+
import { matchesTerminalSandboxCommandRule } from './terminalSandboxCommandRules.js';
|
|
4
4
|
|
|
5
5
|
var TerminalSandboxRuntimeConfigurationOperation;
|
|
6
6
|
(function(TerminalSandboxRuntimeConfigurationOperation) {
|
|
@@ -29,15 +29,13 @@ const terminalSandboxRuntimeConfigurationCommandRules = [{
|
|
|
29
29
|
}, {
|
|
30
30
|
keywords: ["git"],
|
|
31
31
|
value: TerminalSandboxRuntimeConfigurationOperation.GnuPG,
|
|
32
|
-
subcommands: ["commit"],
|
|
33
|
-
optionsWithValue: gitGlobalOptionsWithValue,
|
|
34
32
|
condition: (
|
|
35
33
|
{
|
|
36
34
|
os
|
|
37
35
|
}
|
|
38
|
-
) => os !== OperatingSystem.Windows
|
|
39
|
-
when: isGpgSignedGitCommit
|
|
36
|
+
) => os !== OperatingSystem.Windows
|
|
40
37
|
}];
|
|
38
|
+
const terminalSandboxGnuPGCompatibleCommandKeywords = ( new Set(["git", "gh", "gpg", "gpg2"]));
|
|
41
39
|
function getTerminalSandboxRuntimeConfigurationForOperation(operation, os) {
|
|
42
40
|
switch (operation) {
|
|
43
41
|
case TerminalSandboxRuntimeConfigurationOperation.GnuPG:
|
|
@@ -78,7 +76,7 @@ function getTerminalSandboxRuntimeConfigurationForCommands(os, commandDetails) {
|
|
|
78
76
|
for (const rule of terminalSandboxRuntimeConfigurationCommandRules) {
|
|
79
77
|
if (matchesTerminalSandboxCommandRule(command, rule, {
|
|
80
78
|
os
|
|
81
|
-
})) {
|
|
79
|
+
}) && shouldApplyRuntimeConfigurationOperation(rule.value, commandDetails)) {
|
|
82
80
|
operations.add(rule.value);
|
|
83
81
|
}
|
|
84
82
|
}
|
|
@@ -92,10 +90,13 @@ function getTerminalSandboxRuntimeConfigurationForCommands(os, commandDetails) {
|
|
|
92
90
|
}
|
|
93
91
|
return configuration;
|
|
94
92
|
}
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
function shouldApplyRuntimeConfigurationOperation(operation, commandDetails) {
|
|
94
|
+
switch (operation) {
|
|
95
|
+
case TerminalSandboxRuntimeConfigurationOperation.GnuPG:
|
|
96
|
+
return commandDetails.every(command => ( terminalSandboxGnuPGCompatibleCommandKeywords.has(command.keyword.toLowerCase())));
|
|
97
|
+
case TerminalSandboxRuntimeConfigurationOperation.Node:
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
99
100
|
}
|
|
100
101
|
function mergeAdditionalSandboxConfigProperties(target, additional) {
|
|
101
102
|
for (const [key, value] of Object.entries(additional)) {
|
|
@@ -9,13 +9,19 @@ export interface ITerminalSandboxResolvedNetworkDomains {
|
|
|
9
9
|
}
|
|
10
10
|
export declare enum TerminalSandboxPrerequisiteCheck {
|
|
11
11
|
Config = "config",
|
|
12
|
-
Dependencies = "dependencies"
|
|
12
|
+
Dependencies = "dependencies",
|
|
13
|
+
Bubblewrap = "bubblewrap"
|
|
14
|
+
}
|
|
15
|
+
export declare enum TerminalSandboxPreCheckRemediation {
|
|
16
|
+
DisableUnprivilagedusernamespaceRestriction = "disableUserNamespaceRestriction"
|
|
13
17
|
}
|
|
14
18
|
export interface ITerminalSandboxPrerequisiteCheckResult {
|
|
15
19
|
enabled: boolean;
|
|
16
20
|
sandboxConfigPath: string | undefined;
|
|
17
21
|
failedCheck: TerminalSandboxPrerequisiteCheck | undefined;
|
|
18
22
|
missingDependencies?: string[];
|
|
23
|
+
remediations?: readonly TerminalSandboxPreCheckRemediation[];
|
|
24
|
+
detail?: string;
|
|
19
25
|
}
|
|
20
26
|
export interface ITerminalSandboxWrapResult {
|
|
21
27
|
command: string;
|
|
@@ -25,11 +31,10 @@ export interface ITerminalSandboxWrapResult {
|
|
|
25
31
|
requiresUnsandboxConfirmation?: boolean;
|
|
26
32
|
requiresAllowNetworkConfirmation?: boolean;
|
|
27
33
|
}
|
|
28
|
-
export
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
readonly isDefaultApprovalPermissionEnabled?: boolean;
|
|
34
|
+
export type TerminalSandboxFileAccessPermission = "read" | "write";
|
|
35
|
+
export interface ITerminalSandboxFileAccessCheckResult {
|
|
36
|
+
allowed: boolean;
|
|
37
|
+
denied: string[];
|
|
33
38
|
}
|
|
34
39
|
export interface ITerminalSandboxPrecheckInputs {
|
|
35
40
|
/**
|
|
@@ -91,10 +96,12 @@ export declare class NullTerminalSandboxService implements ITerminalSandboxServi
|
|
|
91
96
|
getOS(): Promise<OperatingSystem>;
|
|
92
97
|
checkForSandboxingPrereqs(): Promise<ITerminalSandboxPrerequisiteCheckResult>;
|
|
93
98
|
wrapCommand(command: string): Promise<ITerminalSandboxWrapResult>;
|
|
99
|
+
checkFileAccess(): Promise<ITerminalSandboxFileAccessCheckResult>;
|
|
94
100
|
getSandboxConfigPath(): Promise<string | undefined>;
|
|
95
101
|
getTempDir(): URI | undefined;
|
|
96
102
|
setNeedsForceUpdateConfigFile(): void;
|
|
97
103
|
getResolvedNetworkDomains(): ITerminalSandboxResolvedNetworkDomains;
|
|
98
104
|
getMissingSandboxDependencies(): Promise<string[]>;
|
|
99
105
|
installMissingSandboxDependencies(): Promise<ISandboxDependencyInstallResult>;
|
|
106
|
+
runSandboxRemediation(): Promise<ISandboxDependencyInstallResult>;
|
|
100
107
|
}
|
|
@@ -5,6 +5,11 @@ var TerminalSandboxPrerequisiteCheck;
|
|
|
5
5
|
(function (TerminalSandboxPrerequisiteCheck) {
|
|
6
6
|
TerminalSandboxPrerequisiteCheck["Config"] = "config";
|
|
7
7
|
TerminalSandboxPrerequisiteCheck["Dependencies"] = "dependencies";
|
|
8
|
+
TerminalSandboxPrerequisiteCheck["Bubblewrap"] = "bubblewrap";
|
|
8
9
|
})(TerminalSandboxPrerequisiteCheck || (TerminalSandboxPrerequisiteCheck = {}));
|
|
10
|
+
var TerminalSandboxPreCheckRemediation;
|
|
11
|
+
(function (TerminalSandboxPreCheckRemediation) {
|
|
12
|
+
TerminalSandboxPreCheckRemediation["DisableUnprivilagedusernamespaceRestriction"] = "disableUserNamespaceRestriction";
|
|
13
|
+
})(TerminalSandboxPreCheckRemediation || (TerminalSandboxPreCheckRemediation = {}));
|
|
9
14
|
|
|
10
|
-
export { TerminalSandboxPrerequisiteCheck };
|
|
15
|
+
export { TerminalSandboxPreCheckRemediation, TerminalSandboxPrerequisiteCheck };
|