@codingame/monaco-vscode-chat-service-override 29.1.0 → 30.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 +5 -2
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +37 -39
- package/vscode/src/vs/platform/agentHost/common/agentService.js +3 -1
- package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +11 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +4 -4
- package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +132 -42
- package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +54 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +15 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +5 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +188 -51
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +7 -6
- package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +7 -2
- package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.d.ts +6 -0
- package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +14 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +18 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +37 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +10 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +37 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +6 -6
- 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 +20 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +18 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +10 -10
- 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.d.ts +36 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +482 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
- 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 +10 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +43 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
- 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 +74 -76
- 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 +27 -35
- 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/localAgentSessionsController.d.ts +5 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +86 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +38 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +38 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +427 -167
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +108 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +28 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +3 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +65 -68
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +2 -0
- 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 +64 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +288 -195
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
- 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 +19 -19
- 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 +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +21 -21
- 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 +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +19 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +54 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +50 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +86 -17
- 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 +29 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +65 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +24 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -6
- 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/defaultModelContribution.js +4 -4
- 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/pluginInstallService.d.ts +3 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +54 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +24 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +72 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
- 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/promptFileContributions.js +181 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +3 -3
- 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 +8 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +28 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.js +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +1 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +148 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +16 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +158 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +8 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +155 -76
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +31 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +228 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +190 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +25 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +130 -107
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +19 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +2 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +169 -266
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +12 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +149 -206
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +27 -22
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +20 -8
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +183 -43
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +2 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +21 -21
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -11
- 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 +11 -11
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +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 +20 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +3 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +26 -23
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
- 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 +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +4 -9
- 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 +16 -6
- 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 +9 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -50
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +2 -2
- 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/terminalSandboxService.d.ts +66 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +239 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +0 -208
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +0 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +0 -637
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +0 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +0 -384
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +0 -33
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +0 -47
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +0 -30
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +0 -55
- /package/vscode/src/vs/workbench/contrib/chat/{common → browser}/promptSyntax/promptFileContributions.d.ts +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { timeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
3
4
|
import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
4
5
|
import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
5
|
-
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
6
|
+
import { Disposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
6
7
|
import { FileAccess } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
7
8
|
import { win32, posix, dirname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
|
|
8
9
|
import { OS, OperatingSystem } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
@@ -15,13 +16,27 @@ import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/fi
|
|
|
15
16
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
16
17
|
import { IRemoteAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
|
|
17
18
|
import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
|
|
18
|
-
import { ITrustedDomainService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/url/common/trustedDomainService.service';
|
|
19
19
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
20
20
|
import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
|
|
21
21
|
import { WillShutdownJoinerOrder } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
22
22
|
import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
|
|
23
|
+
import { ISandboxHelperService } from '@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/sandboxHelperService.service';
|
|
24
|
+
import { TerminalCapability } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/capabilities/capabilities';
|
|
25
|
+
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
26
|
+
import { ChatElicitationRequestPart } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatElicitationRequestPart';
|
|
27
|
+
import { ChatModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
28
|
+
import { ElicitationState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
29
|
+
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
30
|
+
import { SANDBOX_HELPER_CHANNEL_NAME, SandboxHelperChannelClient } from '../../../../../platform/sandbox/common/sandboxHelperIpc.js';
|
|
23
31
|
|
|
24
32
|
var TerminalSandboxService_1;
|
|
33
|
+
var TerminalSandboxPrerequisiteCheck;
|
|
34
|
+
(function(TerminalSandboxPrerequisiteCheck) {
|
|
35
|
+
TerminalSandboxPrerequisiteCheck["Config"] = "config";
|
|
36
|
+
TerminalSandboxPrerequisiteCheck["Dependencies"] = "dependencies";
|
|
37
|
+
})(
|
|
38
|
+
TerminalSandboxPrerequisiteCheck || (TerminalSandboxPrerequisiteCheck = {})
|
|
39
|
+
);
|
|
25
40
|
let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
26
41
|
static {
|
|
27
42
|
TerminalSandboxService_1 = this;
|
|
@@ -35,10 +50,11 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
35
50
|
_environmentService,
|
|
36
51
|
_logService,
|
|
37
52
|
_remoteAgentService,
|
|
38
|
-
_trustedDomainService,
|
|
39
53
|
_workspaceContextService,
|
|
40
54
|
_productService,
|
|
41
|
-
_lifecycleService
|
|
55
|
+
_lifecycleService,
|
|
56
|
+
_sandboxHelperService,
|
|
57
|
+
_chatService
|
|
42
58
|
) {
|
|
43
59
|
super();
|
|
44
60
|
this._configurationService = _configurationService;
|
|
@@ -46,10 +62,11 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
46
62
|
this._environmentService = _environmentService;
|
|
47
63
|
this._logService = _logService;
|
|
48
64
|
this._remoteAgentService = _remoteAgentService;
|
|
49
|
-
this._trustedDomainService = _trustedDomainService;
|
|
50
65
|
this._workspaceContextService = _workspaceContextService;
|
|
51
66
|
this._productService = _productService;
|
|
52
67
|
this._lifecycleService = _lifecycleService;
|
|
68
|
+
this._sandboxHelperService = _sandboxHelperService;
|
|
69
|
+
this._chatService = _chatService;
|
|
53
70
|
this._srtPathResolved = false;
|
|
54
71
|
this._needsForceUpdateConfigFile = true;
|
|
55
72
|
this._remoteEnvDetails = null;
|
|
@@ -66,14 +83,15 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
66
83
|
this._remoteEnvDetailsPromise = this._remoteAgentService.getEnvironment();
|
|
67
84
|
this._register(
|
|
68
85
|
Event.runAndSubscribe(this._configurationService.onDidChangeConfiguration, e => {
|
|
69
|
-
if (e?.affectsConfiguration(TerminalChatAgentToolsSettingId.
|
|
86
|
+
if (e?.affectsConfiguration(TerminalChatAgentToolsSettingId.AgentSandboxEnabled) || e?.affectsConfiguration(TerminalChatAgentToolsSettingId.AgentSandboxNetworkAllowedDomains) || e?.affectsConfiguration(TerminalChatAgentToolsSettingId.AgentSandboxNetworkDeniedDomains) || e?.affectsConfiguration(TerminalChatAgentToolsSettingId.AgentSandboxLinuxFileSystem) || e?.affectsConfiguration(TerminalChatAgentToolsSettingId.AgentSandboxMacFileSystem) || e?.affectsConfiguration(TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxEnabled) || e?.affectsConfiguration(
|
|
87
|
+
TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxNetworkAllowedDomains
|
|
88
|
+
) || e?.affectsConfiguration(
|
|
89
|
+
TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxNetworkDeniedDomains
|
|
90
|
+
) || e?.affectsConfiguration(TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxLinuxFileSystem) || e?.affectsConfiguration(TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxMacFileSystem)) {
|
|
70
91
|
this.setNeedsForceUpdateConfigFile();
|
|
71
92
|
}
|
|
72
93
|
})
|
|
73
94
|
);
|
|
74
|
-
this._register(this._trustedDomainService.onDidChangeTrustedDomains(() => {
|
|
75
|
-
this.setNeedsForceUpdateConfigFile();
|
|
76
|
-
}));
|
|
77
95
|
this._register(this._workspaceContextService.onDidChangeWorkspaceFolders(() => {
|
|
78
96
|
this.setNeedsForceUpdateConfigFile();
|
|
79
97
|
}));
|
|
@@ -83,27 +101,26 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
83
101
|
}
|
|
84
102
|
e.join(this._cleanupSandboxTempDir(), {
|
|
85
103
|
id: "join.deleteFilesInSandboxTempDir",
|
|
86
|
-
label: ( localize(
|
|
104
|
+
label: ( localize(14040, "Delete Files in Sandbox Temp Dir")),
|
|
87
105
|
order: WillShutdownJoinerOrder.Default
|
|
88
106
|
});
|
|
89
107
|
}));
|
|
90
108
|
}
|
|
91
109
|
async isEnabled() {
|
|
92
|
-
|
|
93
|
-
if (os === OperatingSystem.Windows) {
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
return this._configurationService.getValue(TerminalChatAgentToolsSettingId.TerminalSandboxEnabled);
|
|
110
|
+
return await this._isSandboxConfiguredEnabled();
|
|
97
111
|
}
|
|
98
112
|
async getOS() {
|
|
99
113
|
this._remoteEnvDetails = await this._remoteEnvDetailsPromise;
|
|
100
114
|
this._os = this._remoteEnvDetails ? this._remoteEnvDetails.os : OS;
|
|
101
115
|
return this._os;
|
|
102
116
|
}
|
|
103
|
-
wrapCommand(command) {
|
|
117
|
+
wrapCommand(command, requestUnsandboxedExecution) {
|
|
104
118
|
if (!this._sandboxConfigPath || !this._tempDir) {
|
|
105
119
|
throw ( new Error("Sandbox config path or temp dir not initialized"));
|
|
106
120
|
}
|
|
121
|
+
if (requestUnsandboxedExecution) {
|
|
122
|
+
return this._tempDir?.path ? `(TMPDIR="${this._tempDir.path}"; export TMPDIR; ${command})` : command;
|
|
123
|
+
}
|
|
107
124
|
if (!this._execPath) {
|
|
108
125
|
throw ( new Error("Executable path not set to run sandbox commands"));
|
|
109
126
|
}
|
|
@@ -125,7 +142,40 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
125
142
|
setNeedsForceUpdateConfigFile() {
|
|
126
143
|
this._needsForceUpdateConfigFile = true;
|
|
127
144
|
}
|
|
145
|
+
async checkForSandboxingPrereqs(forceRefresh = false) {
|
|
146
|
+
if (!(await this._isSandboxConfiguredEnabled())) {
|
|
147
|
+
return {
|
|
148
|
+
enabled: false,
|
|
149
|
+
sandboxConfigPath: undefined,
|
|
150
|
+
failedCheck: undefined
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
const sandboxConfigPath = await this.getSandboxConfigPath(forceRefresh);
|
|
154
|
+
if (!sandboxConfigPath) {
|
|
155
|
+
return {
|
|
156
|
+
enabled: true,
|
|
157
|
+
sandboxConfigPath,
|
|
158
|
+
failedCheck: TerminalSandboxPrerequisiteCheck.Config
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
if (!(await this._checkSandboxDependencies(forceRefresh))) {
|
|
162
|
+
return {
|
|
163
|
+
enabled: true,
|
|
164
|
+
sandboxConfigPath,
|
|
165
|
+
failedCheck: TerminalSandboxPrerequisiteCheck.Dependencies,
|
|
166
|
+
missingDependencies: await this.getMissingSandboxDependencies()
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
enabled: true,
|
|
171
|
+
sandboxConfigPath,
|
|
172
|
+
failedCheck: undefined
|
|
173
|
+
};
|
|
174
|
+
}
|
|
128
175
|
async getSandboxConfigPath(forceRefresh = false) {
|
|
176
|
+
if (!(await this._isSandboxConfiguredEnabled())) {
|
|
177
|
+
return undefined;
|
|
178
|
+
}
|
|
129
179
|
await this._resolveSrtPath();
|
|
130
180
|
if (!this._sandboxConfigPath || forceRefresh || this._needsForceUpdateConfigFile) {
|
|
131
181
|
this._sandboxConfigPath = await this._createSandboxConfig();
|
|
@@ -133,9 +183,131 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
133
183
|
}
|
|
134
184
|
return this._sandboxConfigPath;
|
|
135
185
|
}
|
|
186
|
+
async _checkSandboxDependencies(forceRefresh = false) {
|
|
187
|
+
const os = await this.getOS();
|
|
188
|
+
if (os === OperatingSystem.Windows) {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
const sandboxDependencyStatus = await this._resolveSandboxDependencyStatus(forceRefresh);
|
|
192
|
+
this._sandboxDependencyStatus = sandboxDependencyStatus;
|
|
193
|
+
if (sandboxDependencyStatus && !sandboxDependencyStatus.bubblewrapInstalled) {
|
|
194
|
+
this._logService.warn("TerminalSandboxService: bubblewrap (bwrap) is not installed");
|
|
195
|
+
}
|
|
196
|
+
if (sandboxDependencyStatus && !sandboxDependencyStatus.socatInstalled) {
|
|
197
|
+
this._logService.warn("TerminalSandboxService: socat is not installed");
|
|
198
|
+
}
|
|
199
|
+
return sandboxDependencyStatus ? sandboxDependencyStatus.bubblewrapInstalled && sandboxDependencyStatus.socatInstalled : true;
|
|
200
|
+
}
|
|
201
|
+
async getMissingSandboxDependencies() {
|
|
202
|
+
const os = await this.getOS();
|
|
203
|
+
if (os === OperatingSystem.Windows) {
|
|
204
|
+
return [];
|
|
205
|
+
}
|
|
206
|
+
if (!this._sandboxDependencyStatus || !this._sandboxDependencyStatus.bubblewrapInstalled || !this._sandboxDependencyStatus.socatInstalled) {
|
|
207
|
+
this._sandboxDependencyStatus = await this._resolveSandboxDependencyStatus(true);
|
|
208
|
+
}
|
|
209
|
+
const missing = [];
|
|
210
|
+
if (this._sandboxDependencyStatus && !this._sandboxDependencyStatus.bubblewrapInstalled) {
|
|
211
|
+
missing.push("bubblewrap");
|
|
212
|
+
}
|
|
213
|
+
if (this._sandboxDependencyStatus && !this._sandboxDependencyStatus.socatInstalled) {
|
|
214
|
+
missing.push("socat");
|
|
215
|
+
}
|
|
216
|
+
return missing;
|
|
217
|
+
}
|
|
218
|
+
async installMissingSandboxDependencies(missingDependencies, sessionResource, token, options) {
|
|
219
|
+
const depsList = missingDependencies.join(" ");
|
|
220
|
+
const installCommand = `sudo apt install -y ${depsList}`;
|
|
221
|
+
const instance = await options.createTerminal();
|
|
222
|
+
let installCommandSent = false;
|
|
223
|
+
const completionPromise = ( new Promise(resolve => {
|
|
224
|
+
const store = ( new DisposableStore());
|
|
225
|
+
let resolved = false;
|
|
226
|
+
const resolveOnce = code => {
|
|
227
|
+
if (resolved) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
resolved = true;
|
|
231
|
+
store.dispose();
|
|
232
|
+
resolve(code);
|
|
233
|
+
};
|
|
234
|
+
const attachListener = () => {
|
|
235
|
+
const detection = instance.capabilities.get(TerminalCapability.CommandDetection);
|
|
236
|
+
if (detection) {
|
|
237
|
+
store.add(detection.onCommandFinished(cmd => resolveOnce(cmd.exitCode)));
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
attachListener();
|
|
241
|
+
store.add(instance.capabilities.onDidAddCapability(e => {
|
|
242
|
+
if (e.id === TerminalCapability.CommandDetection) {
|
|
243
|
+
attachListener();
|
|
244
|
+
}
|
|
245
|
+
}));
|
|
246
|
+
store.add(instance.onDisposed(() => resolveOnce(undefined)));
|
|
247
|
+
store.add(token.onCancellationRequested(() => resolveOnce(undefined)));
|
|
248
|
+
const safetyTimeout = timeout(5 * 60 * 1000);
|
|
249
|
+
store.add({
|
|
250
|
+
dispose: () => safetyTimeout.cancel()
|
|
251
|
+
});
|
|
252
|
+
safetyTimeout.then(() => resolveOnce(undefined));
|
|
253
|
+
const passwordPrompt = this._createMissingDependencyPasswordPrompt(sessionResource, {
|
|
254
|
+
focusTerminal: () => options.focusTerminal(instance),
|
|
255
|
+
onDidInputData: instance.onDidInputData,
|
|
256
|
+
onDisposed: instance.onDisposed,
|
|
257
|
+
didSendInstallCommand: () => installCommandSent
|
|
258
|
+
}, token);
|
|
259
|
+
store.add(passwordPrompt);
|
|
260
|
+
}));
|
|
261
|
+
await instance.sendText(installCommand, true);
|
|
262
|
+
installCommandSent = true;
|
|
263
|
+
return {
|
|
264
|
+
exitCode: await completionPromise
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
_createMissingDependencyPasswordPrompt(sessionResource, promptContext, token) {
|
|
268
|
+
const chatModel = sessionResource && this._chatService.getSession(sessionResource);
|
|
269
|
+
if (!(chatModel instanceof ChatModel)) {
|
|
270
|
+
return ( new DisposableStore());
|
|
271
|
+
}
|
|
272
|
+
const request = chatModel.getRequests().at(-1);
|
|
273
|
+
if (!request) {
|
|
274
|
+
return ( new DisposableStore());
|
|
275
|
+
}
|
|
276
|
+
const part = ( new ChatElicitationRequestPart(( localize(14041, "The terminal is awaiting input.")), ( new MarkdownString(( localize(
|
|
277
|
+
14042,
|
|
278
|
+
"Installing missing sandbox dependencies may prompt for your sudo password. Select Focus Terminal to type it in the terminal."
|
|
279
|
+
)))), "", ( localize(14043, "Focus Terminal")), undefined, async () => {
|
|
280
|
+
await promptContext.focusTerminal();
|
|
281
|
+
return ElicitationState.Pending;
|
|
282
|
+
}));
|
|
283
|
+
chatModel.acceptResponseProgress(request, part);
|
|
284
|
+
const store = ( new DisposableStore());
|
|
285
|
+
const disposePrompt = () => store.dispose();
|
|
286
|
+
store.add({
|
|
287
|
+
dispose: () => part.hide()
|
|
288
|
+
});
|
|
289
|
+
store.add(token.onCancellationRequested(disposePrompt));
|
|
290
|
+
store.add(promptContext.onDisposed(disposePrompt));
|
|
291
|
+
store.add(promptContext.onDidInputData(data => {
|
|
292
|
+
if (promptContext.didSendInstallCommand() && data.length > 0) {
|
|
293
|
+
disposePrompt();
|
|
294
|
+
}
|
|
295
|
+
}));
|
|
296
|
+
return store;
|
|
297
|
+
}
|
|
136
298
|
_quoteShellArgument(value) {
|
|
137
299
|
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
138
300
|
}
|
|
301
|
+
async _isSandboxConfiguredEnabled() {
|
|
302
|
+
const os = await this.getOS();
|
|
303
|
+
if (os === OperatingSystem.Windows) {
|
|
304
|
+
return false;
|
|
305
|
+
}
|
|
306
|
+
return this._getSettingValue(
|
|
307
|
+
TerminalChatAgentToolsSettingId.AgentSandboxEnabled,
|
|
308
|
+
TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxEnabled
|
|
309
|
+
) ?? false;
|
|
310
|
+
}
|
|
139
311
|
async _resolveSrtPath() {
|
|
140
312
|
if (this._srtPathResolved) {
|
|
141
313
|
return;
|
|
@@ -161,21 +333,28 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
161
333
|
await this._initTempDir();
|
|
162
334
|
}
|
|
163
335
|
if (this._tempDir) {
|
|
164
|
-
const allowedDomainsSetting = this.
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const
|
|
336
|
+
const allowedDomainsSetting = this._getSettingValue(
|
|
337
|
+
TerminalChatAgentToolsSettingId.AgentSandboxNetworkAllowedDomains,
|
|
338
|
+
TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxNetworkAllowedDomains
|
|
339
|
+
) ?? [];
|
|
340
|
+
const deniedDomainsSetting = this._getSettingValue(
|
|
341
|
+
TerminalChatAgentToolsSettingId.AgentSandboxNetworkDeniedDomains,
|
|
342
|
+
TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxNetworkDeniedDomains
|
|
343
|
+
) ?? [];
|
|
344
|
+
const linuxFileSystemSetting = this._os === OperatingSystem.Linux ? this._getSettingValue(
|
|
345
|
+
TerminalChatAgentToolsSettingId.AgentSandboxLinuxFileSystem,
|
|
346
|
+
TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxLinuxFileSystem
|
|
347
|
+
) ?? {} : {};
|
|
348
|
+
const macFileSystemSetting = this._os === OperatingSystem.Macintosh ? this._getSettingValue(
|
|
349
|
+
TerminalChatAgentToolsSettingId.AgentSandboxMacFileSystem,
|
|
350
|
+
TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxMacFileSystem
|
|
351
|
+
) ?? {} : {};
|
|
169
352
|
const configFileUri = URI.joinPath(this._tempDir, `vscode-sandbox-settings-${this._sandboxSettingsId}.json`);
|
|
170
353
|
const linuxAllowWrite = this._updateAllowWritePathsWithWorkspaceFolders(linuxFileSystemSetting.allowWrite);
|
|
171
354
|
const macAllowWrite = this._updateAllowWritePathsWithWorkspaceFolders(macFileSystemSetting.allowWrite);
|
|
172
|
-
let allowedDomains = allowedDomainsSetting;
|
|
173
|
-
if (allowTrustedDomains) {
|
|
174
|
-
allowedDomains = this._addTrustedDomainsToAllowedDomains(allowedDomains);
|
|
175
|
-
}
|
|
176
355
|
const sandboxSettings = {
|
|
177
356
|
network: {
|
|
178
|
-
allowedDomains,
|
|
357
|
+
allowedDomains: allowedDomainsSetting,
|
|
179
358
|
deniedDomains: deniedDomainsSetting
|
|
180
359
|
},
|
|
181
360
|
filesystem: {
|
|
@@ -252,31 +431,19 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
252
431
|
return typeof windowId === "number" ? `tmp_vscode_${windowId}` : undefined;
|
|
253
432
|
}
|
|
254
433
|
getResolvedNetworkDomains() {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
434
|
+
const allowedDomains = this._getSettingValue(
|
|
435
|
+
TerminalChatAgentToolsSettingId.AgentSandboxNetworkAllowedDomains,
|
|
436
|
+
TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxNetworkAllowedDomains
|
|
437
|
+
) ?? [];
|
|
438
|
+
const deniedDomains = this._getSettingValue(
|
|
439
|
+
TerminalChatAgentToolsSettingId.AgentSandboxNetworkDeniedDomains,
|
|
440
|
+
TerminalChatAgentToolsSettingId.DeprecatedTerminalSandboxNetworkDeniedDomains
|
|
441
|
+
) ?? [];
|
|
261
442
|
return {
|
|
262
443
|
allowedDomains,
|
|
263
444
|
deniedDomains
|
|
264
445
|
};
|
|
265
446
|
}
|
|
266
|
-
_addTrustedDomainsToAllowedDomains(allowedDomains) {
|
|
267
|
-
const allowedDomainsSet = ( new Set(allowedDomains));
|
|
268
|
-
for (const domain of this._trustedDomainService.trustedDomains) {
|
|
269
|
-
try {
|
|
270
|
-
const uri = ( new URL(domain));
|
|
271
|
-
allowedDomainsSet.add(uri.hostname);
|
|
272
|
-
} catch {
|
|
273
|
-
if (domain !== "*") {
|
|
274
|
-
allowedDomainsSet.add(domain);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
return Array.from(allowedDomainsSet);
|
|
279
|
-
}
|
|
280
447
|
_updateAllowWritePathsWithWorkspaceFolders(configuredAllowWrite) {
|
|
281
448
|
const workspaceFolderPaths = ( this._workspaceContextService.getWorkspace().folders.map(folder => folder.uri.path));
|
|
282
449
|
return [...( new Set([
|
|
@@ -285,7 +452,31 @@ let TerminalSandboxService = class TerminalSandboxService extends Disposable {
|
|
|
285
452
|
...(configuredAllowWrite ?? [])
|
|
286
453
|
]))];
|
|
287
454
|
}
|
|
455
|
+
async _resolveSandboxDependencyStatus(forceRefresh = false) {
|
|
456
|
+
if (!forceRefresh && this._sandboxDependencyStatus) {
|
|
457
|
+
return this._sandboxDependencyStatus;
|
|
458
|
+
}
|
|
459
|
+
const connection = this._remoteAgentService.getConnection();
|
|
460
|
+
if (connection) {
|
|
461
|
+
return connection.withChannel(SANDBOX_HELPER_CHANNEL_NAME, channel => {
|
|
462
|
+
const sandboxHelper = ( new SandboxHelperChannelClient(channel));
|
|
463
|
+
return sandboxHelper.checkSandboxDependencies();
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
return this._sandboxHelperService.checkSandboxDependencies();
|
|
467
|
+
}
|
|
468
|
+
_getSettingValue(settingId, deprecatedSettingId) {
|
|
469
|
+
const setting = this._configurationService.inspect(settingId);
|
|
470
|
+
const deprecatedSetting = deprecatedSettingId ? this._configurationService.inspect(deprecatedSettingId) : undefined;
|
|
471
|
+
if (setting.userValue === undefined && deprecatedSetting?.userValue !== undefined) {
|
|
472
|
+
this._logService.warn(
|
|
473
|
+
`TerminalSandboxService: Using deprecated setting ${deprecatedSettingId} because ${settingId} is not set. Please update your settings to use ${settingId} instead.`
|
|
474
|
+
);
|
|
475
|
+
return deprecatedSetting.value;
|
|
476
|
+
}
|
|
477
|
+
return setting.value;
|
|
478
|
+
}
|
|
288
479
|
};
|
|
289
|
-
TerminalSandboxService = TerminalSandboxService_1 = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, IFileService)), ( __param(2, IEnvironmentService)), ( __param(3, ILogService)), ( __param(4, IRemoteAgentService)), ( __param(5,
|
|
480
|
+
TerminalSandboxService = TerminalSandboxService_1 = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, IFileService)), ( __param(2, IEnvironmentService)), ( __param(3, ILogService)), ( __param(4, IRemoteAgentService)), ( __param(5, IWorkspaceContextService)), ( __param(6, IProductService)), ( __param(7, ILifecycleService)), ( __param(8, ISandboxHelperService)), ( __param(9, IChatService))], TerminalSandboxService));
|
|
290
481
|
|
|
291
|
-
export { TerminalSandboxService };
|
|
482
|
+
export { TerminalSandboxPrerequisiteCheck, TerminalSandboxService };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
2
|
-
import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions";
|
|
3
|
-
import { Action2 } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
|
|
4
|
-
export interface IToolConfirmationActionContext {
|
|
5
|
-
readonly sessionResource?: URI;
|
|
6
|
-
}
|
|
7
|
-
export declare class ConfigureToolsAction extends Action2 {
|
|
8
|
-
static ID: string;
|
|
9
|
-
constructor();
|
|
10
|
-
run(accessor: ServicesAccessor, ...args: unknown[]): Promise<void>;
|
|
11
|
-
private extractWidget;
|
|
12
|
-
private extractSource;
|
|
13
|
-
}
|
|
14
|
-
export declare function registerChatToolActions(): void;
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
3
|
-
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
4
|
-
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
5
|
-
import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
6
|
-
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
7
|
-
import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
8
|
-
import { Action2, MenuId, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
9
|
-
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
10
|
-
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
11
|
-
import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
|
|
12
|
-
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
13
|
-
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
14
|
-
import { IChatToolInvocation, ToolConfirmKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
15
|
-
import { isResponseVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
|
|
16
|
-
import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
17
|
-
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
18
|
-
import { ToolsScope } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools';
|
|
19
|
-
import { CHAT_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
20
|
-
import { AcceptToolConfirmationActionId, SkipToolConfirmationActionId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatConstants';
|
|
21
|
-
import { showToolsPicker } from './chatToolPicker.js';
|
|
22
|
-
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
23
|
-
|
|
24
|
-
class ToolConfirmationAction extends Action2 {
|
|
25
|
-
run(accessor, context) {
|
|
26
|
-
const chatWidgetService = accessor.get(IChatWidgetService);
|
|
27
|
-
const widget = context?.sessionResource ? chatWidgetService.getWidgetBySessionResource(context.sessionResource) : chatWidgetService.lastFocusedWidget;
|
|
28
|
-
const lastItem = widget?.viewModel?.getItems().at(-1);
|
|
29
|
-
if (!isResponseVM(lastItem)) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
for (const item of lastItem.model.response.value) {
|
|
33
|
-
const state = item.kind === "toolInvocation" ? item.state.get() : undefined;
|
|
34
|
-
if (state?.type === IChatToolInvocation.StateKind.WaitingForConfirmation || state?.type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
|
|
35
|
-
state.confirm(this.getReason());
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
widget?.focusInput();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
class AcceptToolConfirmation extends ToolConfirmationAction {
|
|
43
|
-
constructor() {
|
|
44
|
-
super({
|
|
45
|
-
id: AcceptToolConfirmationActionId,
|
|
46
|
-
title: ( localize2(5012, "Accept")),
|
|
47
|
-
f1: false,
|
|
48
|
-
category: CHAT_CATEGORY,
|
|
49
|
-
keybinding: {
|
|
50
|
-
when: ( ContextKeyExpr.and(ChatContextKeys.inChatSession, ChatContextKeys.Editing.hasToolConfirmation)),
|
|
51
|
-
primary: KeyMod.CtrlCmd | KeyCode.Enter,
|
|
52
|
-
weight: KeybindingWeight.WorkbenchContrib + 1
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
getReason() {
|
|
57
|
-
return {
|
|
58
|
-
type: ToolConfirmKind.UserAction
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
class SkipToolConfirmation extends ToolConfirmationAction {
|
|
63
|
-
constructor() {
|
|
64
|
-
super({
|
|
65
|
-
id: SkipToolConfirmationActionId,
|
|
66
|
-
title: ( localize2(5013, "Skip")),
|
|
67
|
-
f1: false,
|
|
68
|
-
category: CHAT_CATEGORY,
|
|
69
|
-
keybinding: {
|
|
70
|
-
when: ( ContextKeyExpr.and(ChatContextKeys.inChatSession, ChatContextKeys.Editing.hasToolConfirmation)),
|
|
71
|
-
primary: KeyMod.CtrlCmd | KeyCode.Enter | KeyMod.Alt,
|
|
72
|
-
weight: KeybindingWeight.WorkbenchContrib + 1
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
getReason() {
|
|
77
|
-
return {
|
|
78
|
-
type: ToolConfirmKind.Skipped
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
class ConfigureToolsAction extends Action2 {
|
|
83
|
-
static {
|
|
84
|
-
this.ID = "workbench.action.chat.configureTools";
|
|
85
|
-
}
|
|
86
|
-
constructor() {
|
|
87
|
-
super({
|
|
88
|
-
id: ConfigureToolsAction.ID,
|
|
89
|
-
title: ( localize(5014, "Configure Tools...")),
|
|
90
|
-
icon: Codicon.settings,
|
|
91
|
-
f1: false,
|
|
92
|
-
category: CHAT_CATEGORY,
|
|
93
|
-
precondition: ( ChatContextKeys.chatModeKind.isEqualTo(ChatModeKind.Agent)),
|
|
94
|
-
menu: [{
|
|
95
|
-
when: ( ContextKeyExpr.and(( ChatContextKeys.chatModeKind.isEqualTo(ChatModeKind.Agent)), ( ChatContextKeys.lockedToCodingAgent.negate()))),
|
|
96
|
-
id: MenuId.ChatInput,
|
|
97
|
-
group: "navigation",
|
|
98
|
-
order: 100
|
|
99
|
-
}]
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
async run(accessor, ...args) {
|
|
103
|
-
const instaService = accessor.get(IInstantiationService);
|
|
104
|
-
const chatWidgetService = accessor.get(IChatWidgetService);
|
|
105
|
-
const telemetryService = accessor.get(ITelemetryService);
|
|
106
|
-
let widget = chatWidgetService.lastFocusedWidget;
|
|
107
|
-
if (!widget) {
|
|
108
|
-
widget = this.extractWidget(args);
|
|
109
|
-
}
|
|
110
|
-
if (!widget) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
const source = this.extractSource(args) ?? "chatInput";
|
|
114
|
-
let placeholder;
|
|
115
|
-
let description;
|
|
116
|
-
const {
|
|
117
|
-
entriesScope,
|
|
118
|
-
entriesMap
|
|
119
|
-
} = widget.input.selectedToolsModel;
|
|
120
|
-
switch (entriesScope) {
|
|
121
|
-
case ToolsScope.Session:
|
|
122
|
-
placeholder = ( localize(5015, "Select tools for this chat session"));
|
|
123
|
-
description = ( localize(5016, "The selected tools were configured only for this chat session."));
|
|
124
|
-
break;
|
|
125
|
-
case ToolsScope.Agent:
|
|
126
|
-
placeholder = ( localize(5017, "Select tools for this custom agent"));
|
|
127
|
-
description = ( localize(
|
|
128
|
-
5018,
|
|
129
|
-
"The selected tools are configured by the '{0}' custom agent. Changes to the tools will be applied to the custom agent file as well.",
|
|
130
|
-
widget.input.currentModeObs.get().label.get()
|
|
131
|
-
));
|
|
132
|
-
break;
|
|
133
|
-
case ToolsScope.Agent_ReadOnly:
|
|
134
|
-
placeholder = ( localize(5019, "Select tools for this custom agent"));
|
|
135
|
-
description = ( localize(
|
|
136
|
-
5020,
|
|
137
|
-
"The selected tools are configured by the '{0}' custom agent. Changes to the tools will only be used for this session and will not change the '{0}' custom agent.",
|
|
138
|
-
widget.input.currentModeObs.get().label.get()
|
|
139
|
-
));
|
|
140
|
-
break;
|
|
141
|
-
case ToolsScope.Global:
|
|
142
|
-
placeholder = ( localize(5021, "Select tools that are available to chat."));
|
|
143
|
-
description = ( localize(
|
|
144
|
-
5022,
|
|
145
|
-
"The selected tools will be applied globally for all chat sessions that use the default agent."
|
|
146
|
-
));
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
const cts = ( new CancellationTokenSource());
|
|
150
|
-
const initialMode = widget.input.currentModeObs.get();
|
|
151
|
-
const modeListener = autorun(reader => {
|
|
152
|
-
if (initialMode.id !== widget.input.currentModeObs.read(reader).id) {
|
|
153
|
-
cts.cancel();
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
try {
|
|
157
|
-
const result = await instaService.invokeFunction(
|
|
158
|
-
showToolsPicker,
|
|
159
|
-
placeholder,
|
|
160
|
-
source,
|
|
161
|
-
description,
|
|
162
|
-
() => entriesMap.get(),
|
|
163
|
-
widget.input.selectedLanguageModel.get()?.metadata,
|
|
164
|
-
cts.token
|
|
165
|
-
);
|
|
166
|
-
if (result) {
|
|
167
|
-
widget.input.selectedToolsModel.set(result, false);
|
|
168
|
-
}
|
|
169
|
-
} finally {
|
|
170
|
-
modeListener.dispose();
|
|
171
|
-
cts.dispose();
|
|
172
|
-
}
|
|
173
|
-
const tools = widget.input.selectedToolsModel.entriesMap.get();
|
|
174
|
-
telemetryService.publicLog2("chat/selectedTools", {
|
|
175
|
-
total: tools.size,
|
|
176
|
-
enabled: Iterable.reduce(tools, (prev, [_, enabled]) => enabled ? prev + 1 : prev, 0)
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
extractWidget(args) {
|
|
180
|
-
function isChatActionContext(obj) {
|
|
181
|
-
return !!obj && typeof obj === "object" && !!obj.widget;
|
|
182
|
-
}
|
|
183
|
-
for (const arg of args) {
|
|
184
|
-
if (isChatActionContext(arg)) {
|
|
185
|
-
return arg.widget;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
return undefined;
|
|
189
|
-
}
|
|
190
|
-
extractSource(args) {
|
|
191
|
-
function isChatActionSource(obj) {
|
|
192
|
-
return !!obj && typeof obj === "object" && !!obj.source;
|
|
193
|
-
}
|
|
194
|
-
for (const arg of args) {
|
|
195
|
-
if (isChatActionSource(arg)) {
|
|
196
|
-
return arg.source;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return undefined;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
function registerChatToolActions() {
|
|
203
|
-
registerAction2(AcceptToolConfirmation);
|
|
204
|
-
registerAction2(SkipToolConfirmation);
|
|
205
|
-
registerAction2(ConfigureToolsAction);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export { ConfigureToolsAction, registerChatToolActions };
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
|
|
2
|
-
import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
3
|
-
import { ILanguageModelChatMetadata } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels";
|
|
4
|
-
import { IToolData, IToolSet } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
|
|
5
|
-
/**
|
|
6
|
-
* New QuickTree implementation of the tools picker.
|
|
7
|
-
* Uses IQuickTree to provide a true hierarchical tree structure with:
|
|
8
|
-
* - Collapsible nodes for buckets and toolsets
|
|
9
|
-
* - Checkbox state management with parent-child relationships
|
|
10
|
-
* - Special handling for MCP servers (server as bucket, tools as direct children)
|
|
11
|
-
* - Built-in filtering and search capabilities
|
|
12
|
-
*
|
|
13
|
-
* @param accessor - Service accessor for dependency injection
|
|
14
|
-
* @param placeHolder - Placeholder text shown in the picker
|
|
15
|
-
* @param description - Optional description text shown in the picker
|
|
16
|
-
* @param toolsEntries - Optional initial selection state for tools and toolsets
|
|
17
|
-
* @param modelId - Optional model ID to filter tools by supported models
|
|
18
|
-
* @param onUpdate - Optional callback fired when the selection changes
|
|
19
|
-
* @param token - Optional cancellation token to close the picker when cancelled
|
|
20
|
-
* @returns Promise resolving to the final selection map, or undefined if cancelled
|
|
21
|
-
*/
|
|
22
|
-
export declare function showToolsPicker(accessor: ServicesAccessor, placeHolder: string, source: string, description?: string, getToolsEntries?: () => ReadonlyMap<IToolSet | IToolData, boolean>, model?: ILanguageModelChatMetadata | undefined, token?: CancellationToken): Promise<ReadonlyMap<IToolSet | IToolData, boolean> | undefined>;
|