@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
|
@@ -0,0 +1,551 @@
|
|
|
1
|
+
|
|
2
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
|
|
3
|
+
import { cloneAndChange } from '@codingame/monaco-vscode-api/vscode/vs/base/common/objects';
|
|
4
|
+
import { isAbsolute } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
|
|
5
|
+
import { untildify } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
|
|
6
|
+
import { joinPath, normalizePath, isEqualOrParent, basename, extname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
7
|
+
import { escapeRegExpCharacters } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
8
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
9
|
+
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
10
|
+
import { McpServerType } from '@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/mcpPlatformTypes';
|
|
11
|
+
|
|
12
|
+
var PluginFormat;
|
|
13
|
+
(function(PluginFormat) {
|
|
14
|
+
PluginFormat[PluginFormat["Copilot"] = 0] = "Copilot";
|
|
15
|
+
PluginFormat[PluginFormat["Claude"] = 1] = "Claude";
|
|
16
|
+
PluginFormat[PluginFormat["OpenPlugin"] = 2] = "OpenPlugin";
|
|
17
|
+
})(PluginFormat || (PluginFormat = {}));
|
|
18
|
+
const COPILOT_FORMAT = {
|
|
19
|
+
format: PluginFormat.Copilot,
|
|
20
|
+
manifestPath: "plugin.json",
|
|
21
|
+
hookConfigPath: "hooks.json",
|
|
22
|
+
pluginRootToken: undefined,
|
|
23
|
+
pluginRootEnvVar: undefined,
|
|
24
|
+
parseHooks(hookUri, json, _pluginUri, workspaceRoot, userHome) {
|
|
25
|
+
return parseHooksJson(hookUri, json, workspaceRoot, userHome);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const CLAUDE_FORMAT = {
|
|
29
|
+
format: PluginFormat.Claude,
|
|
30
|
+
manifestPath: ".claude-plugin/plugin.json",
|
|
31
|
+
hookConfigPath: "hooks/hooks.json",
|
|
32
|
+
pluginRootToken: "${CLAUDE_PLUGIN_ROOT}",
|
|
33
|
+
pluginRootEnvVar: "CLAUDE_PLUGIN_ROOT",
|
|
34
|
+
parseHooks(hookUri, json, pluginUri, workspaceRoot, userHome) {
|
|
35
|
+
return interpolateHookPluginRoot(
|
|
36
|
+
hookUri,
|
|
37
|
+
json,
|
|
38
|
+
pluginUri,
|
|
39
|
+
workspaceRoot,
|
|
40
|
+
userHome,
|
|
41
|
+
"${CLAUDE_PLUGIN_ROOT}",
|
|
42
|
+
"CLAUDE_PLUGIN_ROOT"
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const OPEN_PLUGIN_FORMAT = {
|
|
47
|
+
format: PluginFormat.OpenPlugin,
|
|
48
|
+
manifestPath: ".plugin/plugin.json",
|
|
49
|
+
hookConfigPath: "hooks/hooks.json",
|
|
50
|
+
pluginRootToken: "${PLUGIN_ROOT}",
|
|
51
|
+
pluginRootEnvVar: "PLUGIN_ROOT",
|
|
52
|
+
parseHooks(hookUri, json, pluginUri, workspaceRoot, userHome) {
|
|
53
|
+
return interpolateHookPluginRoot(
|
|
54
|
+
hookUri,
|
|
55
|
+
json,
|
|
56
|
+
pluginUri,
|
|
57
|
+
workspaceRoot,
|
|
58
|
+
userHome,
|
|
59
|
+
"${PLUGIN_ROOT}",
|
|
60
|
+
"PLUGIN_ROOT"
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
async function detectPluginFormat(pluginUri, fileService) {
|
|
65
|
+
if (await pathExists(joinPath(pluginUri, ".plugin", "plugin.json"), fileService)) {
|
|
66
|
+
return OPEN_PLUGIN_FORMAT;
|
|
67
|
+
}
|
|
68
|
+
const isInClaudeDirectory = pluginUri.path.split("/").includes(".claude");
|
|
69
|
+
if (isInClaudeDirectory || (await pathExists(joinPath(pluginUri, ".claude-plugin", "plugin.json"), fileService))) {
|
|
70
|
+
return CLAUDE_FORMAT;
|
|
71
|
+
}
|
|
72
|
+
return COPILOT_FORMAT;
|
|
73
|
+
}
|
|
74
|
+
const emptyComponentPathConfig = {
|
|
75
|
+
paths: [],
|
|
76
|
+
exclusive: false
|
|
77
|
+
};
|
|
78
|
+
function parseComponentPathConfig(raw) {
|
|
79
|
+
if (raw === undefined || raw === null) {
|
|
80
|
+
return emptyComponentPathConfig;
|
|
81
|
+
}
|
|
82
|
+
if (typeof raw === "string") {
|
|
83
|
+
const trimmed = raw.trim();
|
|
84
|
+
return trimmed ? {
|
|
85
|
+
paths: [trimmed],
|
|
86
|
+
exclusive: false
|
|
87
|
+
} : emptyComponentPathConfig;
|
|
88
|
+
}
|
|
89
|
+
if (Array.isArray(raw)) {
|
|
90
|
+
const paths = ( raw.filter(v => typeof v === "string").map(v => v.trim())).filter(v => v.length > 0);
|
|
91
|
+
return {
|
|
92
|
+
paths,
|
|
93
|
+
exclusive: false
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (typeof raw === "object") {
|
|
97
|
+
const obj = raw;
|
|
98
|
+
if (Array.isArray(obj["paths"])) {
|
|
99
|
+
const paths = ( obj["paths"].filter(v => typeof v === "string").map(v => v.trim())).filter(v => v.length > 0);
|
|
100
|
+
const exclusive = obj["exclusive"] === true;
|
|
101
|
+
return {
|
|
102
|
+
paths,
|
|
103
|
+
exclusive
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return emptyComponentPathConfig;
|
|
108
|
+
}
|
|
109
|
+
function resolveComponentDirs(pluginUri, defaultDir, config) {
|
|
110
|
+
const dirs = [];
|
|
111
|
+
if (!config.exclusive) {
|
|
112
|
+
dirs.push(joinPath(pluginUri, defaultDir));
|
|
113
|
+
}
|
|
114
|
+
for (const p of config.paths) {
|
|
115
|
+
const resolved = normalizePath(joinPath(pluginUri, p));
|
|
116
|
+
if (isEqualOrParent(resolved, pluginUri)) {
|
|
117
|
+
dirs.push(resolved);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return dirs;
|
|
121
|
+
}
|
|
122
|
+
function resolveMcpServersMap(raw) {
|
|
123
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
const obj = raw;
|
|
127
|
+
return Object.hasOwn(obj, "mcpServers") ? obj.mcpServers : obj;
|
|
128
|
+
}
|
|
129
|
+
function normalizeMcpServerConfiguration(rawConfig) {
|
|
130
|
+
if (!rawConfig || typeof rawConfig !== "object") {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
const candidate = rawConfig;
|
|
134
|
+
const type = typeof candidate["type"] === "string" ? candidate["type"] : undefined;
|
|
135
|
+
const command = typeof candidate["command"] === "string" ? candidate["command"] : undefined;
|
|
136
|
+
const url = typeof candidate["url"] === "string" ? candidate["url"] : undefined;
|
|
137
|
+
const args = Array.isArray(candidate["args"]) ? candidate["args"].filter(value => typeof value === "string") : undefined;
|
|
138
|
+
const env = candidate["env"] && typeof candidate["env"] === "object" ? Object.fromEntries(( Object.entries(candidate["env"]).filter(
|
|
139
|
+
([, value]) => typeof value === "string" || typeof value === "number" || value === null
|
|
140
|
+
).map(([key, value]) => [key, value]))) : undefined;
|
|
141
|
+
const envFile = typeof candidate["envFile"] === "string" ? candidate["envFile"] : undefined;
|
|
142
|
+
const cwd = typeof candidate["cwd"] === "string" ? candidate["cwd"] : undefined;
|
|
143
|
+
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;
|
|
144
|
+
const dev = candidate["dev"] && typeof candidate["dev"] === "object" ? candidate["dev"] : undefined;
|
|
145
|
+
if (type === "ws") {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
if (type === McpServerType.LOCAL || (!type && command)) {
|
|
149
|
+
if (!command) {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
type: McpServerType.LOCAL,
|
|
154
|
+
command,
|
|
155
|
+
args,
|
|
156
|
+
env,
|
|
157
|
+
envFile,
|
|
158
|
+
cwd,
|
|
159
|
+
dev
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
if (type === McpServerType.REMOTE || type === "sse" || (!type && url)) {
|
|
163
|
+
if (!url) {
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
type: McpServerType.REMOTE,
|
|
168
|
+
url,
|
|
169
|
+
headers,
|
|
170
|
+
dev
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
const shellUnsafeChars = /[\s&|<>()^;!`"']/;
|
|
176
|
+
function shellQuotePluginRootInCommand(command, fsPath, token) {
|
|
177
|
+
if (!command.includes(token)) {
|
|
178
|
+
return command;
|
|
179
|
+
}
|
|
180
|
+
if (!shellUnsafeChars.test(fsPath)) {
|
|
181
|
+
return command.replaceAll(token, fsPath);
|
|
182
|
+
}
|
|
183
|
+
const escapedToken = escapeRegExpCharacters(token);
|
|
184
|
+
const pattern = ( new RegExp(`(["']?)` + escapedToken + `([\\w./\\\\~:-]*)`, "g"));
|
|
185
|
+
return command.replace(pattern, (_match, leadingQuote, suffix) => {
|
|
186
|
+
const fullPath = fsPath + suffix;
|
|
187
|
+
if (leadingQuote) {
|
|
188
|
+
return leadingQuote + fullPath;
|
|
189
|
+
}
|
|
190
|
+
return "\"" + fullPath.replace(/"/g, "\\\"") + "\"";
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
function interpolateMcpPluginRoot(def, fsPath, token, envVar) {
|
|
194
|
+
const replace = s => s.replaceAll(token, fsPath);
|
|
195
|
+
const config = def.configuration;
|
|
196
|
+
let interpolated;
|
|
197
|
+
if (config.type === McpServerType.LOCAL) {
|
|
198
|
+
const local = {
|
|
199
|
+
...config
|
|
200
|
+
};
|
|
201
|
+
local.command = replace(local.command);
|
|
202
|
+
if (local.args) {
|
|
203
|
+
local.args = ( local.args.map(replace));
|
|
204
|
+
}
|
|
205
|
+
if (local.cwd) {
|
|
206
|
+
local.cwd = replace(local.cwd);
|
|
207
|
+
}
|
|
208
|
+
local.env = {
|
|
209
|
+
...local.env
|
|
210
|
+
};
|
|
211
|
+
for (const [k, v] of Object.entries(local.env)) {
|
|
212
|
+
if (typeof v === "string") {
|
|
213
|
+
local.env[k] = replace(v);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
local.env[envVar] = fsPath;
|
|
217
|
+
if (local.envFile) {
|
|
218
|
+
local.envFile = replace(local.envFile);
|
|
219
|
+
}
|
|
220
|
+
interpolated = local;
|
|
221
|
+
} else {
|
|
222
|
+
const remote = {
|
|
223
|
+
...config
|
|
224
|
+
};
|
|
225
|
+
remote.url = replace(remote.url);
|
|
226
|
+
if (remote.headers) {
|
|
227
|
+
remote.headers = Object.fromEntries(( Object.entries(remote.headers).map(([k, v]) => [k, replace(v)])));
|
|
228
|
+
}
|
|
229
|
+
interpolated = remote;
|
|
230
|
+
}
|
|
231
|
+
return {
|
|
232
|
+
name: def.name,
|
|
233
|
+
configuration: interpolated,
|
|
234
|
+
uri: def.uri
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
const BARE_ENV_VAR_RE = /\$\{(?![A-Za-z]+:)([A-Z_][A-Z0-9_]*)\}/g;
|
|
238
|
+
function convertBareEnvVarsToVsCodeSyntax(def) {
|
|
239
|
+
return cloneAndChange(def, value => {
|
|
240
|
+
if (URI.isUri(value)) {
|
|
241
|
+
return value;
|
|
242
|
+
}
|
|
243
|
+
if (typeof value === "string") {
|
|
244
|
+
const replaced = value.replace(BARE_ENV_VAR_RE, "${env:$1}");
|
|
245
|
+
return replaced !== value ? replaced : undefined;
|
|
246
|
+
}
|
|
247
|
+
return undefined;
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
const HOOK_TYPE_MAP = {
|
|
251
|
+
"SessionStart": "SessionStart",
|
|
252
|
+
"SessionEnd": "SessionEnd",
|
|
253
|
+
"UserPromptSubmit": "UserPromptSubmit",
|
|
254
|
+
"PreToolUse": "PreToolUse",
|
|
255
|
+
"PostToolUse": "PostToolUse",
|
|
256
|
+
"PreCompact": "PreCompact",
|
|
257
|
+
"SubagentStart": "SubagentStart",
|
|
258
|
+
"SubagentStop": "SubagentStop",
|
|
259
|
+
"Stop": "Stop",
|
|
260
|
+
"ErrorOccurred": "ErrorOccurred",
|
|
261
|
+
"sessionStart": "SessionStart",
|
|
262
|
+
"sessionEnd": "SessionEnd",
|
|
263
|
+
"userPromptSubmitted": "UserPromptSubmit",
|
|
264
|
+
"preToolUse": "PreToolUse",
|
|
265
|
+
"postToolUse": "PostToolUse",
|
|
266
|
+
"agentStop": "Stop",
|
|
267
|
+
"subagentStop": "SubagentStop",
|
|
268
|
+
"errorOccurred": "ErrorOccurred"
|
|
269
|
+
};
|
|
270
|
+
function normalizeHookCommand(raw) {
|
|
271
|
+
if (raw.type !== undefined && raw.type !== "command") {
|
|
272
|
+
return undefined;
|
|
273
|
+
}
|
|
274
|
+
const hasCommand = typeof raw.command === "string" && raw.command.length > 0;
|
|
275
|
+
const hasBash = typeof raw.bash === "string" && raw.bash.length > 0;
|
|
276
|
+
const hasPowerShell = typeof raw.powershell === "string" && raw.powershell.length > 0;
|
|
277
|
+
const hasWindows = typeof raw.windows === "string" && raw.windows.length > 0;
|
|
278
|
+
const hasLinux = typeof raw.linux === "string" && raw.linux.length > 0;
|
|
279
|
+
const hasOsx = typeof raw.osx === "string" && raw.osx.length > 0;
|
|
280
|
+
if (!hasCommand && !hasBash && !hasPowerShell && !hasWindows && !hasLinux && !hasOsx) {
|
|
281
|
+
return undefined;
|
|
282
|
+
}
|
|
283
|
+
const windows = hasWindows ? raw.windows : (hasPowerShell ? raw.powershell : undefined);
|
|
284
|
+
const linux = hasLinux ? raw.linux : (hasBash ? raw.bash : undefined);
|
|
285
|
+
const osx = hasOsx ? raw.osx : (hasBash ? raw.bash : undefined);
|
|
286
|
+
const timeout = typeof raw.timeout === "number" ? raw.timeout : (typeof raw.timeoutSec === "number" ? raw.timeoutSec : undefined);
|
|
287
|
+
return {
|
|
288
|
+
...(hasCommand && {
|
|
289
|
+
command: raw.command
|
|
290
|
+
}),
|
|
291
|
+
...(windows && {
|
|
292
|
+
windows
|
|
293
|
+
}),
|
|
294
|
+
...(linux && {
|
|
295
|
+
linux
|
|
296
|
+
}),
|
|
297
|
+
...(osx && {
|
|
298
|
+
osx
|
|
299
|
+
}),
|
|
300
|
+
...(typeof raw.env === "object" && raw.env !== null && {
|
|
301
|
+
env: raw.env
|
|
302
|
+
}),
|
|
303
|
+
...(timeout !== undefined && {
|
|
304
|
+
timeout
|
|
305
|
+
})
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
function resolveHookCommand(raw, workspaceRoot, userHome) {
|
|
309
|
+
const normalized = normalizeHookCommand(raw);
|
|
310
|
+
if (!normalized) {
|
|
311
|
+
return undefined;
|
|
312
|
+
}
|
|
313
|
+
let cwdUri;
|
|
314
|
+
const rawCwd = typeof raw.cwd === "string" ? raw.cwd : undefined;
|
|
315
|
+
if (rawCwd) {
|
|
316
|
+
const expanded = untildify(rawCwd, userHome);
|
|
317
|
+
if (isAbsolute(expanded)) {
|
|
318
|
+
cwdUri = URI.file(expanded);
|
|
319
|
+
} else if (workspaceRoot) {
|
|
320
|
+
cwdUri = joinPath(workspaceRoot, expanded);
|
|
321
|
+
}
|
|
322
|
+
} else {
|
|
323
|
+
cwdUri = workspaceRoot;
|
|
324
|
+
}
|
|
325
|
+
return {
|
|
326
|
+
...normalized,
|
|
327
|
+
cwd: cwdUri
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
function extractHookCommands(item, workspaceRoot, userHome) {
|
|
331
|
+
if (!item || typeof item !== "object") {
|
|
332
|
+
return [];
|
|
333
|
+
}
|
|
334
|
+
const itemObj = item;
|
|
335
|
+
const commands = [];
|
|
336
|
+
const nestedHooks = itemObj.hooks;
|
|
337
|
+
if (nestedHooks !== undefined && Array.isArray(nestedHooks)) {
|
|
338
|
+
for (const nested of nestedHooks) {
|
|
339
|
+
if (!nested || typeof nested !== "object") {
|
|
340
|
+
continue;
|
|
341
|
+
}
|
|
342
|
+
const resolved = resolveHookCommand(nested, workspaceRoot, userHome);
|
|
343
|
+
if (resolved) {
|
|
344
|
+
commands.push(resolved);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
} else {
|
|
348
|
+
const resolved = resolveHookCommand(itemObj, workspaceRoot, userHome);
|
|
349
|
+
if (resolved) {
|
|
350
|
+
commands.push(resolved);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
return commands;
|
|
354
|
+
}
|
|
355
|
+
function parseHooksJson(hookUri, json, workspaceRoot, userHome) {
|
|
356
|
+
if (!json || typeof json !== "object") {
|
|
357
|
+
return [];
|
|
358
|
+
}
|
|
359
|
+
const root = json;
|
|
360
|
+
if (root.disableAllHooks === true) {
|
|
361
|
+
return [];
|
|
362
|
+
}
|
|
363
|
+
const hooks = root.hooks;
|
|
364
|
+
if (!hooks || typeof hooks !== "object") {
|
|
365
|
+
return [];
|
|
366
|
+
}
|
|
367
|
+
const hooksObj = hooks;
|
|
368
|
+
const result = [];
|
|
369
|
+
for (const originalId of ( Object.keys(hooksObj))) {
|
|
370
|
+
const canonicalType = HOOK_TYPE_MAP[originalId];
|
|
371
|
+
if (!canonicalType) {
|
|
372
|
+
continue;
|
|
373
|
+
}
|
|
374
|
+
const hookArray = hooksObj[originalId];
|
|
375
|
+
if (!Array.isArray(hookArray)) {
|
|
376
|
+
continue;
|
|
377
|
+
}
|
|
378
|
+
const commands = [];
|
|
379
|
+
for (const item of hookArray) {
|
|
380
|
+
commands.push(...extractHookCommands(item, workspaceRoot, userHome));
|
|
381
|
+
}
|
|
382
|
+
if (commands.length > 0) {
|
|
383
|
+
result.push({
|
|
384
|
+
type: canonicalType,
|
|
385
|
+
commands,
|
|
386
|
+
uri: hookUri,
|
|
387
|
+
originalId
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return result;
|
|
392
|
+
}
|
|
393
|
+
function interpolateHookPluginRoot(hookUri, json, pluginUri, workspaceRoot, userHome, token, envVar) {
|
|
394
|
+
const fsPath = pluginUri.fsPath;
|
|
395
|
+
const typedJson = json;
|
|
396
|
+
const mutateHookCommand = hook => {
|
|
397
|
+
for (const field of ["command", "windows", "linux", "osx"]) {
|
|
398
|
+
if (typeof hook[field] === "string") {
|
|
399
|
+
hook[field] = shellQuotePluginRootInCommand(hook[field], fsPath, token);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
if (!hook.env || typeof hook.env !== "object") {
|
|
403
|
+
hook.env = {};
|
|
404
|
+
}
|
|
405
|
+
hook.env[envVar] = fsPath;
|
|
406
|
+
};
|
|
407
|
+
for (const lifecycle of ( Object.values(typedJson.hooks ?? {}))) {
|
|
408
|
+
if (!Array.isArray(lifecycle)) {
|
|
409
|
+
continue;
|
|
410
|
+
}
|
|
411
|
+
for (const lifecycleEntry of lifecycle) {
|
|
412
|
+
if (!lifecycleEntry || typeof lifecycleEntry !== "object") {
|
|
413
|
+
continue;
|
|
414
|
+
}
|
|
415
|
+
const entry = lifecycleEntry;
|
|
416
|
+
if (Array.isArray(entry.hooks)) {
|
|
417
|
+
for (const hook of entry.hooks) {
|
|
418
|
+
mutateHookCommand(hook);
|
|
419
|
+
}
|
|
420
|
+
} else {
|
|
421
|
+
mutateHookCommand(entry);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
const replacer = v => {
|
|
426
|
+
return typeof v === "string" ? v.replaceAll(token, pluginUri.fsPath) : undefined;
|
|
427
|
+
};
|
|
428
|
+
return parseHooksJson(hookUri, cloneAndChange(json, replacer), workspaceRoot, userHome);
|
|
429
|
+
}
|
|
430
|
+
async function pathExists(resource, fileService) {
|
|
431
|
+
try {
|
|
432
|
+
await fileService.resolve(resource);
|
|
433
|
+
return true;
|
|
434
|
+
} catch {
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
const COMMAND_FILE_SUFFIX = ".md";
|
|
439
|
+
async function readSkills(pluginRoot, dirs, fileService) {
|
|
440
|
+
const seen = ( new Set());
|
|
441
|
+
const skills = [];
|
|
442
|
+
const addSkill = (name, skillMd) => {
|
|
443
|
+
if (!( seen.has(name))) {
|
|
444
|
+
seen.add(name);
|
|
445
|
+
skills.push({
|
|
446
|
+
uri: skillMd,
|
|
447
|
+
name
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
};
|
|
451
|
+
for (const dir of dirs) {
|
|
452
|
+
const skillMd = URI.joinPath(dir, "SKILL.md");
|
|
453
|
+
if (await pathExists(skillMd, fileService)) {
|
|
454
|
+
addSkill(basename(dir), skillMd);
|
|
455
|
+
continue;
|
|
456
|
+
}
|
|
457
|
+
let stat;
|
|
458
|
+
try {
|
|
459
|
+
stat = await fileService.resolve(dir);
|
|
460
|
+
} catch {
|
|
461
|
+
continue;
|
|
462
|
+
}
|
|
463
|
+
if (!stat.isDirectory || !stat.children) {
|
|
464
|
+
continue;
|
|
465
|
+
}
|
|
466
|
+
for (const child of stat.children) {
|
|
467
|
+
const childSkillMd = URI.joinPath(child.resource, "SKILL.md");
|
|
468
|
+
if (await pathExists(childSkillMd, fileService)) {
|
|
469
|
+
addSkill(basename(child.resource), childSkillMd);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
if (skills.length === 0) {
|
|
474
|
+
const rootSkillMd = URI.joinPath(pluginRoot, "SKILL.md");
|
|
475
|
+
if (await pathExists(rootSkillMd, fileService)) {
|
|
476
|
+
addSkill(basename(pluginRoot), rootSkillMd);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
skills.sort((a, b) => a.name.localeCompare(b.name));
|
|
480
|
+
return skills;
|
|
481
|
+
}
|
|
482
|
+
async function readMarkdownComponents(dirs, fileService) {
|
|
483
|
+
const seen = ( new Set());
|
|
484
|
+
const items = [];
|
|
485
|
+
const addItem = (name, uri) => {
|
|
486
|
+
if (!( seen.has(name))) {
|
|
487
|
+
seen.add(name);
|
|
488
|
+
items.push({
|
|
489
|
+
uri,
|
|
490
|
+
name
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
};
|
|
494
|
+
for (const dir of dirs) {
|
|
495
|
+
let stat;
|
|
496
|
+
try {
|
|
497
|
+
stat = await fileService.resolve(dir);
|
|
498
|
+
} catch {
|
|
499
|
+
continue;
|
|
500
|
+
}
|
|
501
|
+
if (stat.isFile && extname(dir).toLowerCase() === COMMAND_FILE_SUFFIX) {
|
|
502
|
+
addItem(basename(dir).slice(0, -COMMAND_FILE_SUFFIX.length), dir);
|
|
503
|
+
continue;
|
|
504
|
+
}
|
|
505
|
+
if (!stat.isDirectory || !stat.children) {
|
|
506
|
+
continue;
|
|
507
|
+
}
|
|
508
|
+
for (const child of stat.children) {
|
|
509
|
+
if (!child.isFile || extname(child.resource).toLowerCase() !== COMMAND_FILE_SUFFIX) {
|
|
510
|
+
continue;
|
|
511
|
+
}
|
|
512
|
+
addItem(
|
|
513
|
+
basename(child.resource).slice(0, -COMMAND_FILE_SUFFIX.length),
|
|
514
|
+
child.resource
|
|
515
|
+
);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
items.sort((a, b) => a.name.localeCompare(b.name));
|
|
519
|
+
return items;
|
|
520
|
+
}
|
|
521
|
+
function parseMcpServerDefinitionMap(definitionURI, raw, pluginFsPath, formatConfig) {
|
|
522
|
+
const mcpServers = resolveMcpServersMap(raw);
|
|
523
|
+
if (!mcpServers) {
|
|
524
|
+
return [];
|
|
525
|
+
}
|
|
526
|
+
const definitions = [];
|
|
527
|
+
for (const [name, configValue] of Object.entries(mcpServers)) {
|
|
528
|
+
const configuration = normalizeMcpServerConfiguration(configValue);
|
|
529
|
+
if (!configuration) {
|
|
530
|
+
continue;
|
|
531
|
+
}
|
|
532
|
+
let def = {
|
|
533
|
+
name,
|
|
534
|
+
configuration,
|
|
535
|
+
uri: definitionURI
|
|
536
|
+
};
|
|
537
|
+
if (formatConfig.pluginRootToken && formatConfig.pluginRootEnvVar) {
|
|
538
|
+
def = interpolateMcpPluginRoot(
|
|
539
|
+
def,
|
|
540
|
+
pluginFsPath,
|
|
541
|
+
formatConfig.pluginRootToken,
|
|
542
|
+
formatConfig.pluginRootEnvVar
|
|
543
|
+
);
|
|
544
|
+
}
|
|
545
|
+
def = convertBareEnvVarsToVsCodeSyntax(def);
|
|
546
|
+
definitions.push(def);
|
|
547
|
+
}
|
|
548
|
+
return definitions;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
export { PluginFormat, convertBareEnvVarsToVsCodeSyntax, detectPluginFormat, interpolateHookPluginRoot, interpolateMcpPluginRoot, normalizeMcpServerConfiguration, parseComponentPathConfig, parseMcpServerDefinitionMap, pathExists, readMarkdownComponents, readSkills, resolveComponentDirs, resolveMcpServersMap, shellQuotePluginRootInCommand };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
3
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
4
|
+
import { ITerminalSandboxService } from "@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/terminalSandboxService.service";
|
|
5
|
+
import { IAgentNetworkFilterService } from "@codingame/monaco-vscode-api/vscode/vs/platform/networkFilter/common/networkFilterService.service";
|
|
6
|
+
export declare class AgentNetworkFilterService extends Disposable implements IAgentNetworkFilterService {
|
|
7
|
+
private readonly configurationService;
|
|
8
|
+
private readonly terminalSandboxService;
|
|
9
|
+
readonly _serviceBrand: undefined;
|
|
10
|
+
private enabled;
|
|
11
|
+
private terminalSandboxEnabled;
|
|
12
|
+
private allowedPatterns;
|
|
13
|
+
private deniedPatterns;
|
|
14
|
+
private readonly domainCache;
|
|
15
|
+
private readonly onDidChangeEmitter;
|
|
16
|
+
readonly onDidChange: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
|
|
17
|
+
constructor(configurationService: IConfigurationService, terminalSandboxService: ITerminalSandboxService);
|
|
18
|
+
private readConfiguration;
|
|
19
|
+
private updateTerminalSandboxEnabled;
|
|
20
|
+
isUriAllowed(uri: URI): boolean;
|
|
21
|
+
formatError(uri: URI): string;
|
|
22
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
4
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import { LRUCache } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
6
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
8
|
+
import { AgentSandboxSettingId } from '@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/settings';
|
|
9
|
+
import { ITerminalSandboxService } from '@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/terminalSandboxService.service';
|
|
10
|
+
import { extractDomainFromUri, isDomainAllowed } from '@codingame/monaco-vscode-katex-common/vscode/vs/platform/networkFilter/common/domainMatcher';
|
|
11
|
+
import { AgentNetworkDomainSettingId } from '@codingame/monaco-vscode-katex-common/vscode/vs/platform/networkFilter/common/settings';
|
|
12
|
+
|
|
13
|
+
let AgentNetworkFilterService = class AgentNetworkFilterService extends Disposable {
|
|
14
|
+
constructor(configurationService, terminalSandboxService) {
|
|
15
|
+
super();
|
|
16
|
+
this.configurationService = configurationService;
|
|
17
|
+
this.terminalSandboxService = terminalSandboxService;
|
|
18
|
+
this.enabled = false;
|
|
19
|
+
this.terminalSandboxEnabled = false;
|
|
20
|
+
this.allowedPatterns = [];
|
|
21
|
+
this.deniedPatterns = [];
|
|
22
|
+
this.domainCache = ( new LRUCache(100));
|
|
23
|
+
this.onDidChangeEmitter = this._register(( new Emitter()));
|
|
24
|
+
this.onDidChange = this.onDidChangeEmitter.event;
|
|
25
|
+
this.readConfiguration();
|
|
26
|
+
void this.updateTerminalSandboxEnabled();
|
|
27
|
+
this._register(this.configurationService.onDidChangeConfiguration(e => {
|
|
28
|
+
if (e.affectsConfiguration(AgentNetworkDomainSettingId.NetworkFilter) || e.affectsConfiguration(AgentNetworkDomainSettingId.AllowedNetworkDomains) || e.affectsConfiguration(AgentNetworkDomainSettingId.DeniedNetworkDomains)) {
|
|
29
|
+
this.readConfiguration();
|
|
30
|
+
this.onDidChangeEmitter.fire();
|
|
31
|
+
} else if (e.affectsConfiguration(AgentSandboxSettingId.AgentSandboxEnabled) || e.affectsConfiguration(AgentSandboxSettingId.DeprecatedAgentSandboxEnabled)) {
|
|
32
|
+
void this.updateTerminalSandboxEnabled();
|
|
33
|
+
}
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
readConfiguration() {
|
|
37
|
+
const networkFilterEnabled = this.configurationService.getValue(AgentNetworkDomainSettingId.NetworkFilter) ?? false;
|
|
38
|
+
this.enabled = networkFilterEnabled || this.terminalSandboxEnabled;
|
|
39
|
+
this.allowedPatterns = this.configurationService.getValue(AgentNetworkDomainSettingId.AllowedNetworkDomains) ?? [];
|
|
40
|
+
this.deniedPatterns = this.configurationService.getValue(AgentNetworkDomainSettingId.DeniedNetworkDomains) ?? [];
|
|
41
|
+
this.domainCache.clear();
|
|
42
|
+
}
|
|
43
|
+
async updateTerminalSandboxEnabled() {
|
|
44
|
+
const enabled = await this.terminalSandboxService.isEnabled();
|
|
45
|
+
if (this.terminalSandboxEnabled === enabled) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.terminalSandboxEnabled = enabled;
|
|
49
|
+
this.readConfiguration();
|
|
50
|
+
this.onDidChangeEmitter.fire();
|
|
51
|
+
}
|
|
52
|
+
isUriAllowed(uri) {
|
|
53
|
+
if (!this.enabled) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
if (uri.scheme === "file" || !uri.authority) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
const domain = extractDomainFromUri(uri);
|
|
60
|
+
if (!domain) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
let result = this.domainCache.get(domain);
|
|
64
|
+
if (result === undefined) {
|
|
65
|
+
result = isDomainAllowed(domain, this.allowedPatterns, this.deniedPatterns);
|
|
66
|
+
this.domainCache.set(domain, result);
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
formatError(uri) {
|
|
71
|
+
const domain = extractDomainFromUri(uri);
|
|
72
|
+
return localize(
|
|
73
|
+
2051,
|
|
74
|
+
"Access to {0} is blocked by network domain policy (see `{1}` and `{2}` settings).",
|
|
75
|
+
domain ?? uri.authority,
|
|
76
|
+
AgentNetworkDomainSettingId.AllowedNetworkDomains,
|
|
77
|
+
AgentNetworkDomainSettingId.DeniedNetworkDomains
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
AgentNetworkFilterService = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, ITerminalSandboxService))], AgentNetworkFilterService));
|
|
82
|
+
|
|
83
|
+
export { AgentNetworkFilterService };
|
package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js
CHANGED
|
@@ -117,7 +117,7 @@ let ChatAccessibilityService = class ChatAccessibilityService extends Disposable
|
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
119
|
this.toasts.clearAndDisposeAll();
|
|
120
|
-
const title = widget?.viewModel?.model.title ? ( localize(
|
|
120
|
+
const title = widget?.viewModel?.model.title ? ( localize(4704, "Chat: {0}", widget.viewModel.model.title)) : ( localize(4705, "Untitled Chat"));
|
|
121
121
|
const cts = ( new CancellationTokenSource());
|
|
122
122
|
const disposable = toDisposable(() => cts.dispose(true));
|
|
123
123
|
this.toasts.add(disposable);
|
|
@@ -125,7 +125,7 @@ let ChatAccessibilityService = class ChatAccessibilityService extends Disposable
|
|
|
125
125
|
clicked
|
|
126
126
|
} = await this._hostService.showToast({
|
|
127
127
|
title,
|
|
128
|
-
body: ( localize(
|
|
128
|
+
body: ( localize(4706, "New chat response."))
|
|
129
129
|
}, cts.token);
|
|
130
130
|
this.toasts.deleteAndDispose(disposable);
|
|
131
131
|
if (clicked) {
|