@codingame/monaco-vscode-chat-service-override 30.0.0 → 31.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 +21 -3
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +125 -0
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +393 -0
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +65 -0
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +453 -0
- package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.d.ts +28 -0
- package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.js +81 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +75 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +180 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +202 -51
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +182 -0
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +282 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +303 -32
- package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.js +14 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.js +9 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +30 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +662 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +12 -5
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +9 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.d.ts +17 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.js +5 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +5 -5
- package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.js +14 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.d.ts +42 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.js +7 -0
- package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +118 -0
- package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +551 -0
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +22 -0
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +83 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +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.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +17 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +113 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +81 -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 +47 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +15 -10
- 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 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +15 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +58 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +24 -22
- 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 +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +29 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.js +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +65 -55
- 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 +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +80 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +20 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +30 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +131 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +363 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +31 -76
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +374 -764
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +222 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +269 -123
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.d.ts +40 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.js +40 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +249 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +5 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +14 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +113 -58
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +202 -68
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +246 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +15 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +162 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +306 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +581 -257
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +15 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +245 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +25 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +3 -5
- 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 +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +103 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +80 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +20 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +128 -65
- 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/chatDebug/media/chatDebug.css +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +10 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +4 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +4 -310
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +3 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +61 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +0 -110
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +31 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +46 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +17 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +96 -82
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +21 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +15 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +315 -263
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +196 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +56 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +8 -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/pluginGitCommandService.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +26 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +48 -57
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
- 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.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +11 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +226 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/telemetry/chatModelCountTelemetry.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/telemetry/chatModelCountTelemetry.js +82 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +108 -56
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +24 -24
- 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.d.ts +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +9 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +21 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +26 -59
- 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 +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +46 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugEvents.d.ts +40 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugEvents.js +60 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +32 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +152 -26
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +5 -9
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +265 -261
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +28 -2
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +75 -7
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +9 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +32 -4
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +10 -25
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +7 -52
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +58 -466
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +36 -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 +0 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +168 -182
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +49 -29
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +491 -462
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +16 -6
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +18 -12
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +24 -4
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +145 -68
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +25 -25
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +2 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +19 -17
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +3 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +5 -17
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +77 -157
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +17 -17
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +21 -21
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +29 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +12 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +49 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +9 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +13 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.d.ts +53 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +319 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +15 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +8 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +15 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +2 -2
- package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.d.ts +21 -0
- package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.js +35 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +0 -94
- package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +0 -16
- package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +0 -578
- package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +0 -206
- package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +0 -114
- package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +0 -860
- package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +0 -27
- package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +0 -58
- package/vscode/src/vs/platform/browserElements/common/browserElements.js +0 -16
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +0 -18
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +0 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -85
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.d.ts +0 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +0 -443
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.d.ts +0 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +0 -132
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatUsageWidget.css +0 -69
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +0 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +0 -66
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +0 -158
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +0 -41
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +0 -24
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +0 -26
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +0 -142
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +0 -45
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +0 -164
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -50
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +0 -163
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +0 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +0 -142
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +0 -29
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +0 -137
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +0 -40
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +0 -174
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +0 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +0 -39
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +0 -32
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +0 -249
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +0 -41
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +0 -92
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +0 -40
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +0 -209
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +0 -106
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +0 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +0 -392
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +0 -45
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +0 -243
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +0 -52
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +0 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +0 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +0 -310
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +0 -168
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +0 -25
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +0 -41
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +0 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +0 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +0 -44
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +0 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +0 -21
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +0 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +0 -29
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +0 -33
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +0 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +0 -28
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +0 -118
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +0 -1019
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +0 -49
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +0 -23
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +0 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +0 -150
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +0 -1619
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +0 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +0 -41
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +0 -17
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +0 -118
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +0 -17
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +0 -25
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +0 -130
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +0 -122
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +0 -482
|
@@ -6,11 +6,10 @@ import { parse } from '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
|
|
|
6
6
|
import { untildify } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
|
|
7
7
|
import { Disposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
8
8
|
import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
9
|
-
import {
|
|
9
|
+
import { equals } from '@codingame/monaco-vscode-api/vscode/vs/base/common/objects';
|
|
10
10
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
11
11
|
import { win32, posix } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
|
|
12
|
-
import { joinPath,
|
|
13
|
-
import { escapeRegExpCharacters } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
12
|
+
import { joinPath, basename, isEqualOrParent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
14
13
|
import { hasKey } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
15
14
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
16
15
|
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
@@ -21,7 +20,6 @@ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/pl
|
|
|
21
20
|
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
22
21
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
23
22
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
24
|
-
import { McpServerType } from '@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/mcpPlatformTypes';
|
|
25
23
|
import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
|
|
26
24
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
27
25
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
@@ -29,13 +27,14 @@ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
|
29
27
|
import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
30
28
|
import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
|
|
31
29
|
import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
|
|
30
|
+
import { detectPluginFormat, parseComponentPathConfig, resolveComponentDirs, readMarkdownComponents, readSkills, parseMcpServerDefinitionMap } from '../../../../../platform/agentPlugins/common/pluginParsers.js';
|
|
31
|
+
export { convertBareEnvVarsToVsCodeSyntax, resolveMcpServersMap, shellQuotePluginRootInCommand } from '../../../../../platform/agentPlugins/common/pluginParsers.js';
|
|
32
32
|
import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionFeatures';
|
|
33
33
|
import { ExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
|
|
34
34
|
import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
|
|
35
35
|
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
36
36
|
import { EnablementModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
|
|
37
|
-
import {
|
|
38
|
-
import { parseCopilotHooks } from '../promptSyntax/hookCompatibility.js';
|
|
37
|
+
import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes';
|
|
39
38
|
import { IAgentPluginRepositoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService.service';
|
|
40
39
|
import { agentPluginDiscoveryRegistry } from './agentPluginService.js';
|
|
41
40
|
import { IPluginMarketplaceService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service';
|
|
@@ -45,265 +44,20 @@ import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/bas
|
|
|
45
44
|
import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/promise';
|
|
46
45
|
import { observableSignal } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignal';
|
|
47
46
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
AgentPluginFormat[AgentPluginFormat["OpenPlugin"] = 2] = "OpenPlugin";
|
|
55
|
-
})(AgentPluginFormat || (AgentPluginFormat = {}));
|
|
56
|
-
function mapParsedHooks(uri, parsed) {
|
|
57
|
-
return ( [...parsed.entries()].map((
|
|
58
|
-
[type, {
|
|
59
|
-
hooks,
|
|
60
|
-
originalId
|
|
61
|
-
}]
|
|
62
|
-
) => ({
|
|
63
|
-
type,
|
|
64
|
-
uri,
|
|
65
|
-
hooks,
|
|
66
|
-
originalId
|
|
47
|
+
function toAgentPluginHooks(groups) {
|
|
48
|
+
return ( groups.filter(g => ( Object.values(HookType)).includes(g.type)).map(g => ({
|
|
49
|
+
type: g.type,
|
|
50
|
+
hooks: g.commands,
|
|
51
|
+
uri: g.uri,
|
|
52
|
+
originalId: g.originalId
|
|
67
53
|
})));
|
|
68
54
|
}
|
|
55
|
+
const RULE_FILE_SUFFIXES = [".instructions.md", ".mdc", ".md"];
|
|
69
56
|
function resolveWorkspaceRoot(pluginUri, workspaceContextService) {
|
|
70
57
|
const defaultFolder = workspaceContextService.getWorkspace().folders[0];
|
|
71
58
|
const folder = workspaceContextService.getWorkspaceFolder(pluginUri) ?? defaultFolder;
|
|
72
59
|
return folder?.uri;
|
|
73
60
|
}
|
|
74
|
-
let CopilotPluginFormatAdapter = class CopilotPluginFormatAdapter {
|
|
75
|
-
constructor(_workspaceContextService) {
|
|
76
|
-
this._workspaceContextService = _workspaceContextService;
|
|
77
|
-
this.format = AgentPluginFormat.Copilot;
|
|
78
|
-
this.manifestPath = "plugin.json";
|
|
79
|
-
this.hookConfigPath = "hooks.json";
|
|
80
|
-
this.pluginRootToken = undefined;
|
|
81
|
-
this.pluginRootEnvVar = undefined;
|
|
82
|
-
}
|
|
83
|
-
parseHooks(hookURI, json, pluginUri, userHome) {
|
|
84
|
-
const workspaceRoot = resolveWorkspaceRoot(pluginUri, this._workspaceContextService);
|
|
85
|
-
return mapParsedHooks(hookURI, parseCopilotHooks(json, workspaceRoot, userHome));
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
CopilotPluginFormatAdapter = ( __decorate([( __param(0, IWorkspaceContextService))], CopilotPluginFormatAdapter));
|
|
89
|
-
const shellUnsafeChars = /[\s&|<>()^;!`"']/;
|
|
90
|
-
function shellQuotePluginRootInCommand(command, fsPath, token) {
|
|
91
|
-
if (!command.includes(token)) {
|
|
92
|
-
return command;
|
|
93
|
-
}
|
|
94
|
-
if (!shellUnsafeChars.test(fsPath)) {
|
|
95
|
-
return command.replaceAll(token, fsPath);
|
|
96
|
-
}
|
|
97
|
-
const escapedToken = escapeRegExpCharacters(token);
|
|
98
|
-
const pattern = ( new RegExp(
|
|
99
|
-
`(["']?)` + escapedToken + `([\\w./\\\\~:-]*)`, "g"));
|
|
100
|
-
return command.replace(pattern, (_match, leadingQuote, suffix) => {
|
|
101
|
-
const fullPath = fsPath + suffix;
|
|
102
|
-
if (leadingQuote) {
|
|
103
|
-
return leadingQuote + fullPath;
|
|
104
|
-
}
|
|
105
|
-
return "\"" + fullPath.replace(/"/g, "\\\"") + "\"";
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
function resolveMcpServersMap(raw) {
|
|
109
|
-
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
110
|
-
return undefined;
|
|
111
|
-
}
|
|
112
|
-
const obj = raw;
|
|
113
|
-
return Object.hasOwn(obj, "mcpServers") ? obj.mcpServers : obj;
|
|
114
|
-
}
|
|
115
|
-
function interpolateMcpPluginRoot(def, fsPath, token, envVar) {
|
|
116
|
-
const replace = s => s.replaceAll(token, fsPath);
|
|
117
|
-
const config = def.configuration;
|
|
118
|
-
let interpolated;
|
|
119
|
-
if (config.type === McpServerType.LOCAL) {
|
|
120
|
-
const local = {
|
|
121
|
-
...config
|
|
122
|
-
};
|
|
123
|
-
local.command = replace(local.command);
|
|
124
|
-
if (local.args) {
|
|
125
|
-
local.args = ( local.args.map(replace));
|
|
126
|
-
}
|
|
127
|
-
if (local.cwd) {
|
|
128
|
-
local.cwd = replace(local.cwd);
|
|
129
|
-
}
|
|
130
|
-
local.env = {
|
|
131
|
-
...local.env
|
|
132
|
-
};
|
|
133
|
-
for (const [k, v] of Object.entries(local.env)) {
|
|
134
|
-
if (typeof v === "string") {
|
|
135
|
-
local.env[k] = replace(v);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
local.env[envVar] = fsPath;
|
|
139
|
-
if (local.envFile) {
|
|
140
|
-
local.envFile = replace(local.envFile);
|
|
141
|
-
}
|
|
142
|
-
interpolated = local;
|
|
143
|
-
} else {
|
|
144
|
-
const remote = {
|
|
145
|
-
...config
|
|
146
|
-
};
|
|
147
|
-
remote.url = replace(remote.url);
|
|
148
|
-
if (remote.headers) {
|
|
149
|
-
remote.headers = Object.fromEntries(( Object.entries(remote.headers).map(([k, v]) => [k, replace(v)])));
|
|
150
|
-
}
|
|
151
|
-
interpolated = remote;
|
|
152
|
-
}
|
|
153
|
-
return {
|
|
154
|
-
name: def.name,
|
|
155
|
-
configuration: interpolated,
|
|
156
|
-
uri: def.uri
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
const BARE_ENV_VAR_RE = /\$\{(?![A-Za-z]+:)([A-Z_][A-Z0-9_]*)\}/g;
|
|
160
|
-
function convertBareEnvVarsToVsCodeSyntax(def) {
|
|
161
|
-
return cloneAndChange(def, value => {
|
|
162
|
-
if (URI.isUri(value)) {
|
|
163
|
-
return value;
|
|
164
|
-
}
|
|
165
|
-
if (typeof value === "string") {
|
|
166
|
-
const replaced = value.replace(BARE_ENV_VAR_RE, "${env:$1}");
|
|
167
|
-
return replaced !== value ? replaced : undefined;
|
|
168
|
-
}
|
|
169
|
-
return undefined;
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
function parsePluginRootHooks(hookURI, json, pluginUri, userHome, workspaceContextService, token, envVar) {
|
|
173
|
-
const fsPath = pluginUri.fsPath;
|
|
174
|
-
const typedJson = json;
|
|
175
|
-
const mutateHookCommand = hook => {
|
|
176
|
-
for (const field of ["command", "windows", "linux", "osx"]) {
|
|
177
|
-
if (typeof hook[field] === "string") {
|
|
178
|
-
hook[field] = shellQuotePluginRootInCommand(hook[field], fsPath, token);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
hook.env ??= {};
|
|
182
|
-
hook.env[envVar] = fsPath;
|
|
183
|
-
};
|
|
184
|
-
for (const lifecycle of ( Object.values(typedJson.hooks ?? {}))) {
|
|
185
|
-
if (!Array.isArray(lifecycle)) {
|
|
186
|
-
continue;
|
|
187
|
-
}
|
|
188
|
-
for (const lifecycleEntry of lifecycle) {
|
|
189
|
-
if (!lifecycleEntry || typeof lifecycleEntry !== "object") {
|
|
190
|
-
continue;
|
|
191
|
-
}
|
|
192
|
-
const entry = lifecycleEntry;
|
|
193
|
-
if (Array.isArray(entry.hooks)) {
|
|
194
|
-
for (const hook of entry.hooks) {
|
|
195
|
-
mutateHookCommand(hook);
|
|
196
|
-
}
|
|
197
|
-
} else {
|
|
198
|
-
mutateHookCommand(entry);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
const replacer = v => {
|
|
203
|
-
return typeof v === "string" ? v.replaceAll(token, pluginUri.fsPath) : undefined;
|
|
204
|
-
};
|
|
205
|
-
const workspaceRoot = resolveWorkspaceRoot(pluginUri, workspaceContextService);
|
|
206
|
-
const {
|
|
207
|
-
hooks,
|
|
208
|
-
disabledAllHooks
|
|
209
|
-
} = parseClaudeHooks(cloneAndChange(json, replacer), workspaceRoot, userHome);
|
|
210
|
-
if (disabledAllHooks) {
|
|
211
|
-
return [];
|
|
212
|
-
}
|
|
213
|
-
return mapParsedHooks(hookURI, hooks);
|
|
214
|
-
}
|
|
215
|
-
let ClaudePluginFormatAdapter = class ClaudePluginFormatAdapter {
|
|
216
|
-
constructor(_workspaceContextService) {
|
|
217
|
-
this._workspaceContextService = _workspaceContextService;
|
|
218
|
-
this.format = AgentPluginFormat.Claude;
|
|
219
|
-
this.manifestPath = ".claude-plugin/plugin.json";
|
|
220
|
-
this.hookConfigPath = "hooks/hooks.json";
|
|
221
|
-
this.pluginRootToken = "${CLAUDE_PLUGIN_ROOT}";
|
|
222
|
-
this.pluginRootEnvVar = "CLAUDE_PLUGIN_ROOT";
|
|
223
|
-
}
|
|
224
|
-
parseHooks(hookURI, json, pluginUri, userHome) {
|
|
225
|
-
return parsePluginRootHooks(
|
|
226
|
-
hookURI,
|
|
227
|
-
json,
|
|
228
|
-
pluginUri,
|
|
229
|
-
userHome,
|
|
230
|
-
this._workspaceContextService,
|
|
231
|
-
"${CLAUDE_PLUGIN_ROOT}",
|
|
232
|
-
"CLAUDE_PLUGIN_ROOT"
|
|
233
|
-
);
|
|
234
|
-
}
|
|
235
|
-
};
|
|
236
|
-
ClaudePluginFormatAdapter = ( __decorate([( __param(0, IWorkspaceContextService))], ClaudePluginFormatAdapter));
|
|
237
|
-
let OpenPluginFormatAdapter = class OpenPluginFormatAdapter {
|
|
238
|
-
constructor(_workspaceContextService) {
|
|
239
|
-
this._workspaceContextService = _workspaceContextService;
|
|
240
|
-
this.format = AgentPluginFormat.OpenPlugin;
|
|
241
|
-
this.manifestPath = ".plugin/plugin.json";
|
|
242
|
-
this.hookConfigPath = "hooks/hooks.json";
|
|
243
|
-
this.pluginRootToken = "${PLUGIN_ROOT}";
|
|
244
|
-
this.pluginRootEnvVar = "PLUGIN_ROOT";
|
|
245
|
-
}
|
|
246
|
-
parseHooks(hookURI, json, pluginUri, userHome) {
|
|
247
|
-
return parsePluginRootHooks(
|
|
248
|
-
hookURI,
|
|
249
|
-
json,
|
|
250
|
-
pluginUri,
|
|
251
|
-
userHome,
|
|
252
|
-
this._workspaceContextService,
|
|
253
|
-
"${PLUGIN_ROOT}",
|
|
254
|
-
"PLUGIN_ROOT"
|
|
255
|
-
);
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
OpenPluginFormatAdapter = ( __decorate([( __param(0, IWorkspaceContextService))], OpenPluginFormatAdapter));
|
|
259
|
-
const emptyComponentPathConfig = {
|
|
260
|
-
paths: [],
|
|
261
|
-
exclusive: false
|
|
262
|
-
};
|
|
263
|
-
function parseComponentPathConfig(raw) {
|
|
264
|
-
if (raw === undefined || raw === null) {
|
|
265
|
-
return emptyComponentPathConfig;
|
|
266
|
-
}
|
|
267
|
-
if (typeof raw === "string") {
|
|
268
|
-
const trimmed = raw.trim();
|
|
269
|
-
return trimmed ? {
|
|
270
|
-
paths: [trimmed],
|
|
271
|
-
exclusive: false
|
|
272
|
-
} : emptyComponentPathConfig;
|
|
273
|
-
}
|
|
274
|
-
if (Array.isArray(raw)) {
|
|
275
|
-
const paths = ( raw.filter(v => typeof v === "string").map(v => v.trim())).filter(v => v.length > 0);
|
|
276
|
-
return {
|
|
277
|
-
paths,
|
|
278
|
-
exclusive: false
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
if (typeof raw === "object") {
|
|
282
|
-
const obj = raw;
|
|
283
|
-
if (Array.isArray(obj["paths"])) {
|
|
284
|
-
const paths = ( obj["paths"].filter(v => typeof v === "string").map(v => v.trim())).filter(v => v.length > 0);
|
|
285
|
-
const exclusive = obj["exclusive"] === true;
|
|
286
|
-
return {
|
|
287
|
-
paths,
|
|
288
|
-
exclusive
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
return emptyComponentPathConfig;
|
|
293
|
-
}
|
|
294
|
-
function resolveComponentDirs(pluginUri, defaultDir, config) {
|
|
295
|
-
const dirs = [];
|
|
296
|
-
if (!config.exclusive) {
|
|
297
|
-
dirs.push(joinPath(pluginUri, defaultDir));
|
|
298
|
-
}
|
|
299
|
-
for (const p of config.paths) {
|
|
300
|
-
const resolved = normalizePath(joinPath(pluginUri, p));
|
|
301
|
-
if (isEqualOrParent(resolved, pluginUri)) {
|
|
302
|
-
dirs.push(resolved);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
return dirs;
|
|
306
|
-
}
|
|
307
61
|
let AgentPluginService = class AgentPluginService extends Disposable {
|
|
308
62
|
constructor(instantiationService, configurationService, storageService) {
|
|
309
63
|
super();
|
|
@@ -339,12 +93,12 @@ let AgentPluginService = class AgentPluginService extends Disposable {
|
|
|
339
93
|
};
|
|
340
94
|
AgentPluginService = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IConfigurationService)), ( __param(2, IStorageService))], AgentPluginService));
|
|
341
95
|
class AbstractAgentPluginDiscovery extends Disposable {
|
|
342
|
-
constructor(_fileService, _pathService, _logService,
|
|
96
|
+
constructor(_fileService, _pathService, _logService, _workspaceContextService) {
|
|
343
97
|
super();
|
|
344
98
|
this._fileService = _fileService;
|
|
345
99
|
this._pathService = _pathService;
|
|
346
100
|
this._logService = _logService;
|
|
347
|
-
this.
|
|
101
|
+
this._workspaceContextService = _workspaceContextService;
|
|
348
102
|
this._pluginEntries = ( new Map());
|
|
349
103
|
this._plugins = observableValue("discoveredAgentPlugins", []);
|
|
350
104
|
this.plugins = this._plugins;
|
|
@@ -366,9 +120,9 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
366
120
|
const key = ( source.uri.toString());
|
|
367
121
|
if (!( seenPluginUris.has(key))) {
|
|
368
122
|
seenPluginUris.add(key);
|
|
369
|
-
const
|
|
123
|
+
const format = await detectPluginFormat(source.uri, this._fileService);
|
|
370
124
|
plugins.push(
|
|
371
|
-
this._toPlugin(source.uri,
|
|
125
|
+
this._toPlugin(source.uri, format, source.fromMarketplace, () => source.remove())
|
|
372
126
|
);
|
|
373
127
|
}
|
|
374
128
|
}
|
|
@@ -376,16 +130,6 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
376
130
|
plugins.sort((a, b) => ( a.uri.toString()).localeCompare(( b.uri.toString())));
|
|
377
131
|
return plugins;
|
|
378
132
|
}
|
|
379
|
-
async _detectPluginFormatAdapter(pluginUri) {
|
|
380
|
-
if (await this._pathExists(joinPath(pluginUri, ".plugin", "plugin.json"))) {
|
|
381
|
-
return this._instantiationService.createInstance(OpenPluginFormatAdapter);
|
|
382
|
-
}
|
|
383
|
-
const isInClaudeDirectory = pluginUri.path.split("/").includes(".claude");
|
|
384
|
-
if (isInClaudeDirectory || (await this._pathExists(joinPath(pluginUri, ".claude-plugin", "plugin.json")))) {
|
|
385
|
-
return this._instantiationService.createInstance(ClaudePluginFormatAdapter);
|
|
386
|
-
}
|
|
387
|
-
return this._instantiationService.createInstance(CopilotPluginFormatAdapter);
|
|
388
|
-
}
|
|
389
133
|
async _pathExists(resource) {
|
|
390
134
|
try {
|
|
391
135
|
await this._fileService.resolve(resource);
|
|
@@ -394,11 +138,11 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
394
138
|
return false;
|
|
395
139
|
}
|
|
396
140
|
}
|
|
397
|
-
_toPlugin(uri,
|
|
141
|
+
_toPlugin(uri, format, fromMarketplace, removeCallback) {
|
|
398
142
|
const key = ( uri.toString());
|
|
399
143
|
const existing = this._pluginEntries.get(key);
|
|
400
144
|
if (existing) {
|
|
401
|
-
if (existing.
|
|
145
|
+
if (existing.format.format !== format.format) {
|
|
402
146
|
existing.store.dispose();
|
|
403
147
|
this._pluginEntries.delete(key);
|
|
404
148
|
} else {
|
|
@@ -453,30 +197,31 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
453
197
|
const result = ( promised.map((w, r) => w.read(r)?.data ?? Iterable.empty()));
|
|
454
198
|
return result.recomputeInitiallyAndOnChange(store);
|
|
455
199
|
};
|
|
456
|
-
const manifestUri = joinPath(uri,
|
|
457
|
-
const commands = observeComponent("commands", d => this.
|
|
458
|
-
const skills = observeComponent("skills", d =>
|
|
459
|
-
const agents = observeComponent("agents", d => this.
|
|
200
|
+
const manifestUri = joinPath(uri, format.manifestPath);
|
|
201
|
+
const commands = observeComponent("commands", d => readMarkdownComponents(d, this._fileService));
|
|
202
|
+
const skills = observeComponent("skills", d => readSkills(uri, d, this._fileService));
|
|
203
|
+
const agents = observeComponent("agents", d => readMarkdownComponents(d, this._fileService));
|
|
460
204
|
const instructions = observeComponent("rules", d => this._readRules(d));
|
|
461
205
|
const hooks = observeComponent(
|
|
462
206
|
"hooks",
|
|
463
|
-
paths => this._readHooksFromPaths(uri, paths,
|
|
207
|
+
paths => this._readHooksFromPaths(uri, paths, format),
|
|
464
208
|
async section => {
|
|
465
209
|
const userHome = (await this._pathService.userHome()).fsPath;
|
|
466
|
-
|
|
210
|
+
const workspaceRoot = resolveWorkspaceRoot(uri, this._workspaceContextService);
|
|
211
|
+
return toAgentPluginHooks(format.parseHooks(manifestUri, section, uri, workspaceRoot, userHome));
|
|
467
212
|
},
|
|
468
|
-
|
|
213
|
+
format.hookConfigPath
|
|
469
214
|
);
|
|
470
215
|
const mcpServerDefinitions = observeComponent(
|
|
471
216
|
"mcpServers",
|
|
472
|
-
paths => this._readMcpDefinitionsFromPaths(paths, uri.fsPath,
|
|
473
|
-
async section =>
|
|
217
|
+
paths => this._readMcpDefinitionsFromPaths(paths, uri.fsPath, format),
|
|
218
|
+
async section => parseMcpServerDefinitionMap(manifestUri, {
|
|
474
219
|
mcpServers: section
|
|
475
|
-
}, uri.fsPath,
|
|
220
|
+
}, uri.fsPath, format),
|
|
476
221
|
".mcp.json"
|
|
477
222
|
);
|
|
478
223
|
const readManifest = async () => {
|
|
479
|
-
manifest.set(await this._readManifest(uri,
|
|
224
|
+
manifest.set(await this._readManifest(uri, format), undefined);
|
|
480
225
|
};
|
|
481
226
|
const manifestWatcher = this._fileService.createWatcher(manifestUri, {
|
|
482
227
|
recursive: false,
|
|
@@ -501,24 +246,25 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
501
246
|
this._pluginEntries.set(key, {
|
|
502
247
|
store,
|
|
503
248
|
plugin,
|
|
504
|
-
|
|
249
|
+
format
|
|
505
250
|
});
|
|
506
251
|
return plugin;
|
|
507
252
|
}
|
|
508
|
-
async _readManifest(pluginUri,
|
|
509
|
-
const json = await this._readJsonFile(joinPath(pluginUri,
|
|
253
|
+
async _readManifest(pluginUri, format) {
|
|
254
|
+
const json = await this._readJsonFile(joinPath(pluginUri, format.manifestPath));
|
|
510
255
|
if (json && typeof json === "object") {
|
|
511
256
|
return json;
|
|
512
257
|
}
|
|
513
258
|
return undefined;
|
|
514
259
|
}
|
|
515
|
-
async _readHooksFromPaths(pluginUri, paths,
|
|
260
|
+
async _readHooksFromPaths(pluginUri, paths, format) {
|
|
516
261
|
const userHome = (await this._pathService.userHome()).fsPath;
|
|
262
|
+
const workspaceRoot = resolveWorkspaceRoot(pluginUri, this._workspaceContextService);
|
|
517
263
|
for (const hookPath of paths) {
|
|
518
264
|
const json = await this._readJsonFile(hookPath);
|
|
519
265
|
if (json) {
|
|
520
266
|
try {
|
|
521
|
-
return
|
|
267
|
+
return toAgentPluginHooks(format.parseHooks(hookPath, json, pluginUri, workspaceRoot, userHome));
|
|
522
268
|
} catch (e) {
|
|
523
269
|
this._logService.info(`[AgentPluginDiscovery] Failed to parse hooks from ${( hookPath.toString())}:`, e);
|
|
524
270
|
}
|
|
@@ -526,11 +272,11 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
526
272
|
}
|
|
527
273
|
return [];
|
|
528
274
|
}
|
|
529
|
-
async _readMcpDefinitionsFromPaths(paths, pluginFsPath,
|
|
275
|
+
async _readMcpDefinitionsFromPaths(paths, pluginFsPath, format) {
|
|
530
276
|
const merged = ( new Map());
|
|
531
277
|
for (const mcpPath of paths) {
|
|
532
278
|
const json = await this._readJsonFile(mcpPath);
|
|
533
|
-
for (const def of
|
|
279
|
+
for (const def of parseMcpServerDefinitionMap(mcpPath, json, pluginFsPath, format)) {
|
|
534
280
|
if (!( merged.has(def.name))) {
|
|
535
281
|
merged.set(def.name, def);
|
|
536
282
|
}
|
|
@@ -538,76 +284,6 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
538
284
|
}
|
|
539
285
|
return [...( merged.values())].sort((a, b) => a.name.localeCompare(b.name));
|
|
540
286
|
}
|
|
541
|
-
_parseMcpServerDefinitionMap(definitionURI, raw, pluginFsPath, adapter) {
|
|
542
|
-
const mcpServers = resolveMcpServersMap(raw);
|
|
543
|
-
if (!mcpServers) {
|
|
544
|
-
return [];
|
|
545
|
-
}
|
|
546
|
-
const definitions = [];
|
|
547
|
-
for (const [name, configValue] of Object.entries(mcpServers)) {
|
|
548
|
-
const configuration = this._normalizeMcpServerConfiguration(configValue);
|
|
549
|
-
if (!configuration) {
|
|
550
|
-
continue;
|
|
551
|
-
}
|
|
552
|
-
let def = {
|
|
553
|
-
name,
|
|
554
|
-
configuration,
|
|
555
|
-
uri: definitionURI
|
|
556
|
-
};
|
|
557
|
-
if (adapter.pluginRootToken && adapter.pluginRootEnvVar) {
|
|
558
|
-
def = interpolateMcpPluginRoot(def, pluginFsPath, adapter.pluginRootToken, adapter.pluginRootEnvVar);
|
|
559
|
-
}
|
|
560
|
-
def = convertBareEnvVarsToVsCodeSyntax(def);
|
|
561
|
-
definitions.push(def);
|
|
562
|
-
}
|
|
563
|
-
return definitions;
|
|
564
|
-
}
|
|
565
|
-
_normalizeMcpServerConfiguration(rawConfig) {
|
|
566
|
-
if (!rawConfig || typeof rawConfig !== "object") {
|
|
567
|
-
return undefined;
|
|
568
|
-
}
|
|
569
|
-
const candidate = rawConfig;
|
|
570
|
-
const type = typeof candidate["type"] === "string" ? candidate["type"] : undefined;
|
|
571
|
-
const command = typeof candidate["command"] === "string" ? candidate["command"] : undefined;
|
|
572
|
-
const url = typeof candidate["url"] === "string" ? candidate["url"] : undefined;
|
|
573
|
-
const args = Array.isArray(candidate["args"]) ? candidate["args"].filter(value => typeof value === "string") : undefined;
|
|
574
|
-
const env = candidate["env"] && typeof candidate["env"] === "object" ? Object.fromEntries(( Object.entries(candidate["env"]).filter(
|
|
575
|
-
([, value]) => typeof value === "string" || typeof value === "number" || value === null
|
|
576
|
-
).map(([key, value]) => [key, value]))) : undefined;
|
|
577
|
-
const envFile = typeof candidate["envFile"] === "string" ? candidate["envFile"] : undefined;
|
|
578
|
-
const cwd = typeof candidate["cwd"] === "string" ? candidate["cwd"] : undefined;
|
|
579
|
-
const headers = candidate["headers"] && typeof candidate["headers"] === "object" ? Object.fromEntries(( Object.entries(candidate["headers"]).filter(([, value]) => typeof value === "string").map(([key, value]) => [key, value]))) : undefined;
|
|
580
|
-
const dev = candidate["dev"] && typeof candidate["dev"] === "object" ? candidate["dev"] : undefined;
|
|
581
|
-
if (type === "ws") {
|
|
582
|
-
return undefined;
|
|
583
|
-
}
|
|
584
|
-
if (type === McpServerType.LOCAL || (!type && command)) {
|
|
585
|
-
if (!command) {
|
|
586
|
-
return undefined;
|
|
587
|
-
}
|
|
588
|
-
return {
|
|
589
|
-
type: McpServerType.LOCAL,
|
|
590
|
-
command,
|
|
591
|
-
args,
|
|
592
|
-
env,
|
|
593
|
-
envFile,
|
|
594
|
-
cwd,
|
|
595
|
-
dev
|
|
596
|
-
};
|
|
597
|
-
}
|
|
598
|
-
if (type === McpServerType.REMOTE || type === "sse" || (!type && url)) {
|
|
599
|
-
if (!url) {
|
|
600
|
-
return undefined;
|
|
601
|
-
}
|
|
602
|
-
return {
|
|
603
|
-
type: McpServerType.REMOTE,
|
|
604
|
-
url,
|
|
605
|
-
headers,
|
|
606
|
-
dev
|
|
607
|
-
};
|
|
608
|
-
}
|
|
609
|
-
return undefined;
|
|
610
|
-
}
|
|
611
287
|
async _readJsonFile(uri) {
|
|
612
288
|
try {
|
|
613
289
|
const fileContents = await this._fileService.readFile(uri);
|
|
@@ -616,49 +292,6 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
616
292
|
return undefined;
|
|
617
293
|
}
|
|
618
294
|
}
|
|
619
|
-
async _readSkills(pluginRoot, dirs) {
|
|
620
|
-
const seen = ( new Set());
|
|
621
|
-
const skills = [];
|
|
622
|
-
const addSkill = (name, skillMd) => {
|
|
623
|
-
if (!( seen.has(name))) {
|
|
624
|
-
seen.add(name);
|
|
625
|
-
skills.push({
|
|
626
|
-
uri: skillMd,
|
|
627
|
-
name
|
|
628
|
-
});
|
|
629
|
-
}
|
|
630
|
-
};
|
|
631
|
-
for (const dir of dirs) {
|
|
632
|
-
const skillMd = URI.joinPath(dir, "SKILL.md");
|
|
633
|
-
if (await this._pathExists(skillMd)) {
|
|
634
|
-
addSkill(basename(dir), skillMd);
|
|
635
|
-
continue;
|
|
636
|
-
}
|
|
637
|
-
let stat;
|
|
638
|
-
try {
|
|
639
|
-
stat = await this._fileService.resolve(dir);
|
|
640
|
-
} catch {
|
|
641
|
-
continue;
|
|
642
|
-
}
|
|
643
|
-
if (!stat.isDirectory || !stat.children) {
|
|
644
|
-
continue;
|
|
645
|
-
}
|
|
646
|
-
for (const child of stat.children) {
|
|
647
|
-
const childSkillMd = URI.joinPath(child.resource, "SKILL.md");
|
|
648
|
-
if (await this._pathExists(childSkillMd)) {
|
|
649
|
-
addSkill(basename(child.resource), childSkillMd);
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
|
-
if (skills.length === 0) {
|
|
654
|
-
const rootSkillMd = URI.joinPath(pluginRoot, "SKILL.md");
|
|
655
|
-
if (await this._pathExists(rootSkillMd)) {
|
|
656
|
-
addSkill(basename(pluginRoot), rootSkillMd);
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
skills.sort((a, b) => a.name.localeCompare(b.name));
|
|
660
|
-
return skills;
|
|
661
|
-
}
|
|
662
295
|
async _readRules(dirs) {
|
|
663
296
|
const seen = ( new Set());
|
|
664
297
|
const items = [];
|
|
@@ -705,45 +338,6 @@ class AbstractAgentPluginDiscovery extends Disposable {
|
|
|
705
338
|
items.sort((a, b) => a.name.localeCompare(b.name));
|
|
706
339
|
return items;
|
|
707
340
|
}
|
|
708
|
-
async _readMarkdownComponents(dirs) {
|
|
709
|
-
const seen = ( new Set());
|
|
710
|
-
const items = [];
|
|
711
|
-
const addItem = (name, uri) => {
|
|
712
|
-
if (!( seen.has(name))) {
|
|
713
|
-
seen.add(name);
|
|
714
|
-
items.push({
|
|
715
|
-
uri,
|
|
716
|
-
name
|
|
717
|
-
});
|
|
718
|
-
}
|
|
719
|
-
};
|
|
720
|
-
for (const dir of dirs) {
|
|
721
|
-
let stat;
|
|
722
|
-
try {
|
|
723
|
-
stat = await this._fileService.resolve(dir);
|
|
724
|
-
} catch {
|
|
725
|
-
continue;
|
|
726
|
-
}
|
|
727
|
-
if (stat.isFile && extname(dir).toLowerCase() === COMMAND_FILE_SUFFIX) {
|
|
728
|
-
addItem(basename(dir).slice(0, -COMMAND_FILE_SUFFIX.length), dir);
|
|
729
|
-
continue;
|
|
730
|
-
}
|
|
731
|
-
if (!stat.isDirectory || !stat.children) {
|
|
732
|
-
continue;
|
|
733
|
-
}
|
|
734
|
-
for (const child of stat.children) {
|
|
735
|
-
if (!child.isFile || extname(child.resource).toLowerCase() !== COMMAND_FILE_SUFFIX) {
|
|
736
|
-
continue;
|
|
737
|
-
}
|
|
738
|
-
addItem(
|
|
739
|
-
basename(child.resource).slice(0, -COMMAND_FILE_SUFFIX.length),
|
|
740
|
-
child.resource
|
|
741
|
-
);
|
|
742
|
-
}
|
|
743
|
-
}
|
|
744
|
-
items.sort((a, b) => a.name.localeCompare(b.name));
|
|
745
|
-
return items;
|
|
746
|
-
}
|
|
747
341
|
_disposePluginEntriesExcept(keep) {
|
|
748
342
|
for (const [key, entry] of this._pluginEntries) {
|
|
749
343
|
if (!( keep.has(key))) {
|
|
@@ -762,15 +356,13 @@ let ConfiguredAgentPluginDiscovery = class ConfiguredAgentPluginDiscovery extend
|
|
|
762
356
|
_configurationService,
|
|
763
357
|
fileService,
|
|
764
358
|
_pluginMarketplaceService,
|
|
765
|
-
|
|
359
|
+
workspaceContextService,
|
|
766
360
|
pathService,
|
|
767
|
-
logService
|
|
768
|
-
instantiationService
|
|
361
|
+
logService
|
|
769
362
|
) {
|
|
770
|
-
super(fileService, pathService, logService,
|
|
363
|
+
super(fileService, pathService, logService, workspaceContextService);
|
|
771
364
|
this._configurationService = _configurationService;
|
|
772
365
|
this._pluginMarketplaceService = _pluginMarketplaceService;
|
|
773
|
-
this._workspaceContextService = _workspaceContextService;
|
|
774
366
|
this._pluginLocationsConfig = observableConfigValue(ChatConfiguration.PluginLocations, {}, _configurationService);
|
|
775
367
|
}
|
|
776
368
|
start(enablementModel) {
|
|
@@ -854,7 +446,7 @@ let ConfiguredAgentPluginDiscovery = class ConfiguredAgentPluginDiscovery extend
|
|
|
854
446
|
}
|
|
855
447
|
}
|
|
856
448
|
};
|
|
857
|
-
ConfiguredAgentPluginDiscovery = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, IFileService)), ( __param(2, IPluginMarketplaceService)), ( __param(3, IWorkspaceContextService)), ( __param(4, IPathService)), ( __param(5, ILogService))
|
|
449
|
+
ConfiguredAgentPluginDiscovery = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, IFileService)), ( __param(2, IPluginMarketplaceService)), ( __param(3, IWorkspaceContextService)), ( __param(4, IPathService)), ( __param(5, ILogService))], ConfiguredAgentPluginDiscovery));
|
|
858
450
|
let MarketplaceAgentPluginDiscovery = class MarketplaceAgentPluginDiscovery extends AbstractAgentPluginDiscovery {
|
|
859
451
|
constructor(
|
|
860
452
|
_pluginMarketplaceService,
|
|
@@ -862,9 +454,9 @@ let MarketplaceAgentPluginDiscovery = class MarketplaceAgentPluginDiscovery exte
|
|
|
862
454
|
fileService,
|
|
863
455
|
pathService,
|
|
864
456
|
logService,
|
|
865
|
-
|
|
457
|
+
workspaceContextService
|
|
866
458
|
) {
|
|
867
|
-
super(fileService, pathService, logService,
|
|
459
|
+
super(fileService, pathService, logService, workspaceContextService);
|
|
868
460
|
this._pluginMarketplaceService = _pluginMarketplaceService;
|
|
869
461
|
this._pluginRepositoryService = _pluginRepositoryService;
|
|
870
462
|
}
|
|
@@ -915,11 +507,11 @@ let MarketplaceAgentPluginDiscovery = class MarketplaceAgentPluginDiscovery exte
|
|
|
915
507
|
return sources;
|
|
916
508
|
}
|
|
917
509
|
};
|
|
918
|
-
MarketplaceAgentPluginDiscovery = ( __decorate([( __param(0, IPluginMarketplaceService)), ( __param(1, IAgentPluginRepositoryService)), ( __param(2, IFileService)), ( __param(3, IPathService)), ( __param(4, ILogService)), ( __param(5,
|
|
510
|
+
MarketplaceAgentPluginDiscovery = ( __decorate([( __param(0, IPluginMarketplaceService)), ( __param(1, IAgentPluginRepositoryService)), ( __param(2, IFileService)), ( __param(3, IPathService)), ( __param(4, ILogService)), ( __param(5, IWorkspaceContextService))], MarketplaceAgentPluginDiscovery));
|
|
919
511
|
const epPlugins = ExtensionsRegistry.registerExtensionPoint({
|
|
920
512
|
extensionPoint: "chatPlugins",
|
|
921
513
|
jsonSchema: {
|
|
922
|
-
description: ( localize(
|
|
514
|
+
description: ( localize(7423, "Contributes agent plugins for chat.")),
|
|
923
515
|
type: "array",
|
|
924
516
|
items: {
|
|
925
517
|
additionalProperties: false,
|
|
@@ -933,13 +525,13 @@ const epPlugins = ExtensionsRegistry.registerExtensionPoint({
|
|
|
933
525
|
properties: {
|
|
934
526
|
path: {
|
|
935
527
|
description: ( localize(
|
|
936
|
-
|
|
528
|
+
7424,
|
|
937
529
|
"Path to the agent plugin root directory relative to the extension root."
|
|
938
530
|
)),
|
|
939
531
|
type: "string"
|
|
940
532
|
},
|
|
941
533
|
when: {
|
|
942
|
-
description: ( localize(
|
|
534
|
+
description: ( localize(7425, "(Optional) A condition which must be true to enable this plugin.")),
|
|
943
535
|
type: "string"
|
|
944
536
|
}
|
|
945
537
|
}
|
|
@@ -954,9 +546,9 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
954
546
|
fileService,
|
|
955
547
|
pathService,
|
|
956
548
|
logService,
|
|
957
|
-
|
|
549
|
+
workspaceContextService
|
|
958
550
|
) {
|
|
959
|
-
super(fileService, pathService, logService,
|
|
551
|
+
super(fileService, pathService, logService, workspaceContextService);
|
|
960
552
|
this._commandService = _commandService;
|
|
961
553
|
this._contextKeyService = _contextKeyService;
|
|
962
554
|
this._dialogService = _dialogService;
|
|
@@ -976,7 +568,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
976
568
|
for (const raw of ext.value) {
|
|
977
569
|
if (!raw.path) {
|
|
978
570
|
ext.collector.error(( localize(
|
|
979
|
-
|
|
571
|
+
7426,
|
|
980
572
|
"Extension '{0}' cannot register a chatPlugins entry without a path.",
|
|
981
573
|
ext.description.identifier.value
|
|
982
574
|
)));
|
|
@@ -985,7 +577,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
985
577
|
const pluginUri = joinPath(ext.description.extensionLocation, raw.path);
|
|
986
578
|
if (!isEqualOrParent(pluginUri, ext.description.extensionLocation)) {
|
|
987
579
|
ext.collector.error(( localize(
|
|
988
|
-
|
|
580
|
+
7427,
|
|
989
581
|
"Extension '{0}' chatPlugins entry '{1}' resolves outside the extension.",
|
|
990
582
|
ext.description.identifier.value,
|
|
991
583
|
raw.path
|
|
@@ -997,7 +589,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
997
589
|
whenExpr = ContextKeyExpr.deserialize(raw.when);
|
|
998
590
|
if (!whenExpr) {
|
|
999
591
|
ext.collector.error(( localize(
|
|
1000
|
-
|
|
592
|
+
7428,
|
|
1001
593
|
"Extension '{0}' chatPlugins entry '{1}' has an invalid when clause: '{2}'.",
|
|
1002
594
|
ext.description.identifier.value,
|
|
1003
595
|
raw.path,
|
|
@@ -1068,7 +660,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
1068
660
|
confirmed
|
|
1069
661
|
} = await this._dialogService.confirm({
|
|
1070
662
|
message: ( localize(
|
|
1071
|
-
|
|
663
|
+
7429,
|
|
1072
664
|
"This plugin is provided by the extension '{0}'. Do you want to uninstall the extension?",
|
|
1073
665
|
extensionId
|
|
1074
666
|
))
|
|
@@ -1078,7 +670,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
|
|
|
1078
670
|
}
|
|
1079
671
|
}
|
|
1080
672
|
};
|
|
1081
|
-
ExtensionAgentPluginDiscovery = ( __decorate([( __param(0, ICommandService)), ( __param(1, IContextKeyService)), ( __param(2, IDialogService)), ( __param(3, IFileService)), ( __param(4, IPathService)), ( __param(5, ILogService)), ( __param(6,
|
|
673
|
+
ExtensionAgentPluginDiscovery = ( __decorate([( __param(0, ICommandService)), ( __param(1, IContextKeyService)), ( __param(2, IDialogService)), ( __param(3, IFileService)), ( __param(4, IPathService)), ( __param(5, ILogService)), ( __param(6, IWorkspaceContextService))], ExtensionAgentPluginDiscovery));
|
|
1082
674
|
function extensionPluginKey(extensionId, path) {
|
|
1083
675
|
return `${extensionId.value}/${path}`;
|
|
1084
676
|
}
|
|
@@ -1101,7 +693,7 @@ class ChatPluginsDataRenderer extends Disposable {
|
|
|
1101
693
|
dispose: () => {}
|
|
1102
694
|
};
|
|
1103
695
|
}
|
|
1104
|
-
const headers = [( localize(
|
|
696
|
+
const headers = [( localize(7430, "Path")), ( localize(7431, "When"))];
|
|
1105
697
|
const rows = ( contributions.map(d => [d.path, d.when ?? "-"]));
|
|
1106
698
|
return {
|
|
1107
699
|
data: {
|
|
@@ -1114,11 +706,11 @@ class ChatPluginsDataRenderer extends Disposable {
|
|
|
1114
706
|
}
|
|
1115
707
|
( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
1116
708
|
id: "chatPlugins",
|
|
1117
|
-
label: ( localize(
|
|
709
|
+
label: ( localize(7432, "Chat Plugins")),
|
|
1118
710
|
access: {
|
|
1119
711
|
canToggle: false
|
|
1120
712
|
},
|
|
1121
713
|
renderer: ( new SyncDescriptor(ChatPluginsDataRenderer))
|
|
1122
714
|
});
|
|
1123
715
|
|
|
1124
|
-
export { AbstractAgentPluginDiscovery, AgentPluginService, ConfiguredAgentPluginDiscovery, ExtensionAgentPluginDiscovery, MarketplaceAgentPluginDiscovery
|
|
716
|
+
export { AbstractAgentPluginDiscovery, AgentPluginService, ConfiguredAgentPluginDiscovery, ExtensionAgentPluginDiscovery, MarketplaceAgentPluginDiscovery };
|