@codingame/monaco-vscode-chat-service-override 27.0.0 → 28.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +5 -2
- package/package.json +5 -5
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +54 -4
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +179 -11
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +5 -1
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +6 -1
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +25 -10
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +67 -0
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +263 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +6 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +13 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +49 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +58 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +537 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.js +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/media/agentPluginEditor.css +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +17 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +89 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +4 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +146 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +56 -54
- 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 +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +25 -25
- 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/aiCustomizationIcons.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +13 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +189 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +42 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +210 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +14 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +122 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +87 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +702 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +279 -214
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +12 -3
- 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.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +63 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +62 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +2 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +32 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -5
- 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.js +1 -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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +49 -49
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +103 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +61 -61
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +245 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +78 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.js +234 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +31 -126
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +229 -524
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.js +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +54 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +11 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +112 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +99 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +489 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +348 -285
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +18 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +107 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +4 -4
- 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/tools/languageModelToolsConfirmationService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +55 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +20 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +148 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +29 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +72 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +11 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +72 -23
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +19 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +37 -8
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +36 -3
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +71 -25
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +217 -91
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +85 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +257 -63
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +3 -16
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +7 -50
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +32 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +26 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +287 -88
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +75 -20
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +121 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +1422 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +81 -41
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +8 -6
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.d.ts +14 -2
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +54 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +6 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +38 -22
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +8 -8
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +36 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +27 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +0 -67
|
@@ -15,6 +15,11 @@ class ChatDebugServiceImpl extends Disposable {
|
|
|
15
15
|
this._size = 0;
|
|
16
16
|
this._onDidAddEvent = this._register(( new Emitter()));
|
|
17
17
|
this.onDidAddEvent = this._onDidAddEvent.event;
|
|
18
|
+
this._onDidClearProviderEvents = this._register(( new Emitter()));
|
|
19
|
+
this.onDidClearProviderEvents = this._onDidClearProviderEvents.event;
|
|
20
|
+
this._onDidAttachDebugData = this._register(( new Emitter()));
|
|
21
|
+
this.onDidAttachDebugData = this._onDidAttachDebugData.event;
|
|
22
|
+
this._debugDataAttachedSessions = ( new ResourceMap());
|
|
18
23
|
this._providers = ( new Set());
|
|
19
24
|
this._invocationCts = ( new ResourceMap());
|
|
20
25
|
this._providerEvents = ( new WeakSet());
|
|
@@ -86,6 +91,7 @@ class ChatDebugServiceImpl extends Disposable {
|
|
|
86
91
|
this._buffer.fill(undefined);
|
|
87
92
|
this._head = 0;
|
|
88
93
|
this._size = 0;
|
|
94
|
+
this._debugDataAttachedSessions.clear();
|
|
89
95
|
}
|
|
90
96
|
registerProvider(provider) {
|
|
91
97
|
this._providers.add(provider);
|
|
@@ -98,6 +104,9 @@ class ChatDebugServiceImpl extends Disposable {
|
|
|
98
104
|
this._providers.delete(provider);
|
|
99
105
|
});
|
|
100
106
|
}
|
|
107
|
+
hasInvokedProviders(sessionResource) {
|
|
108
|
+
return ( this._invocationCts.has(sessionResource));
|
|
109
|
+
}
|
|
101
110
|
async invokeProviders(sessionResource) {
|
|
102
111
|
if (!LocalChatSessionUri.isLocalSession(sessionResource)) {
|
|
103
112
|
return;
|
|
@@ -139,6 +148,7 @@ class ChatDebugServiceImpl extends Disposable {
|
|
|
139
148
|
cts.dispose();
|
|
140
149
|
this._invocationCts.delete(sessionResource);
|
|
141
150
|
}
|
|
151
|
+
this._debugDataAttachedSessions.delete(sessionResource);
|
|
142
152
|
}
|
|
143
153
|
_clearProviderEvents(sessionResource) {
|
|
144
154
|
const key = ( sessionResource.toString());
|
|
@@ -159,6 +169,16 @@ class ChatDebugServiceImpl extends Disposable {
|
|
|
159
169
|
this._buffer[(this._head + i) % ChatDebugServiceImpl.MAX_EVENTS] = undefined;
|
|
160
170
|
}
|
|
161
171
|
this._size = write;
|
|
172
|
+
this._onDidClearProviderEvents.fire(sessionResource);
|
|
173
|
+
}
|
|
174
|
+
markDebugDataAttached(sessionResource) {
|
|
175
|
+
if (!( this._debugDataAttachedSessions.has(sessionResource))) {
|
|
176
|
+
this._debugDataAttachedSessions.set(sessionResource, true);
|
|
177
|
+
this._onDidAttachDebugData.fire(sessionResource);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
hasAttachedDebugData(sessionResource) {
|
|
181
|
+
return ( this._debugDataAttachedSessions.has(sessionResource));
|
|
162
182
|
}
|
|
163
183
|
async resolveEvent(eventId) {
|
|
164
184
|
for (const provider of this._providers) {
|
|
@@ -80,7 +80,6 @@ export declare class ChatService extends Disposable implements IChatService {
|
|
|
80
80
|
* For test use only
|
|
81
81
|
*/
|
|
82
82
|
waitForModelDisposals(): Promise<void>;
|
|
83
|
-
get edits2Enabled(): boolean;
|
|
84
83
|
private get isEmptyWindow();
|
|
85
84
|
constructor(storageService: IStorageService, logService: ILogService, telemetryService: ITelemetryService, extensionService: IExtensionService, instantiationService: IInstantiationService, workspaceContextService: IWorkspaceContextService, chatSlashCommandService: IChatSlashCommandService, chatAgentService: IChatAgentService, configurationService: IConfigurationService, chatTransferService: IChatTransferService, chatSessionService: IChatSessionsService, mcpService: IMcpService, promptsService: IPromptsService, chatEntitlementService: IChatEntitlementService, languageModelsService: ILanguageModelsService, chatDebugService: IChatDebugService);
|
|
86
85
|
get editingSessions(): import("@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService").IChatEditingSession[];
|
|
@@ -144,6 +143,7 @@ export declare class ChatService extends Disposable implements IChatService {
|
|
|
144
143
|
/**
|
|
145
144
|
* Process the next pending request from the model's queue, if any.
|
|
146
145
|
* Called after a request completes to continue processing queued requests.
|
|
146
|
+
* Multiple consecutive steering requests are combined into a single request.
|
|
147
147
|
*/
|
|
148
148
|
private processNextPendingRequest;
|
|
149
149
|
private generateInitialChatTitleIfNeeded;
|
|
@@ -45,12 +45,13 @@ import { ChatSessionStore } from '../model/chatSessionStore.js';
|
|
|
45
45
|
import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service';
|
|
46
46
|
import { IChatTransferService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatTransferService.service';
|
|
47
47
|
import { LocalChatSessionUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
48
|
-
import {
|
|
48
|
+
import { ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
49
49
|
import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
50
50
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
51
51
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
|
|
52
52
|
import { ChatSessionOperationLog } from '../model/chatSessionOperationLog.js';
|
|
53
53
|
import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
|
|
54
|
+
import { mergeHooks } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
|
|
54
55
|
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
55
56
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
56
57
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
@@ -99,9 +100,6 @@ let ChatService = class ChatService extends Disposable {
|
|
|
99
100
|
waitForModelDisposals() {
|
|
100
101
|
return this._sessionModels.waitForModelDisposals();
|
|
101
102
|
}
|
|
102
|
-
get edits2Enabled() {
|
|
103
|
-
return this.configurationService.getValue(ChatConfiguration.Edits2Enabled);
|
|
104
|
-
}
|
|
105
103
|
get isEmptyWindow() {
|
|
106
104
|
const workspace = this.workspaceContextService.getWorkspace();
|
|
107
105
|
return !workspace.configuration && workspace.folders.length === 0;
|
|
@@ -333,7 +331,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
333
331
|
}
|
|
334
332
|
async getLiveSessionItems() {
|
|
335
333
|
return await Promise.all(( Array.from(( this._sessionModels.values())).filter(session => this.shouldBeInHistory(session)).map(async session => {
|
|
336
|
-
const title = session.title || ( localize(
|
|
334
|
+
const title = session.title || ( localize(6984, "New Chat"));
|
|
337
335
|
return {
|
|
338
336
|
sessionResource: session.sessionResource,
|
|
339
337
|
title,
|
|
@@ -498,7 +496,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
498
496
|
}
|
|
499
497
|
}
|
|
500
498
|
async loadRemoteSession(sessionResource, location, token) {
|
|
501
|
-
await this.chatSessionService.canResolveChatSession(sessionResource);
|
|
499
|
+
await this.chatSessionService.canResolveChatSession(sessionResource.scheme);
|
|
502
500
|
{
|
|
503
501
|
const existingRef = this.acquireExistingSession(sessionResource);
|
|
504
502
|
if (existingRef) {
|
|
@@ -872,6 +870,18 @@ let ChatService = class ChatService extends Disposable {
|
|
|
872
870
|
} catch (error) {
|
|
873
871
|
this.logService.warn("[ChatService] Failed to collect hooks:", error);
|
|
874
872
|
}
|
|
873
|
+
const agentName = options?.modeInfo?.modeInstructions?.name;
|
|
874
|
+
if (agentName) {
|
|
875
|
+
try {
|
|
876
|
+
const agents = await this.promptsService.getCustomAgents(token, model.sessionResource);
|
|
877
|
+
const customAgent = agents.find(a => a.name === agentName);
|
|
878
|
+
if (customAgent?.hooks) {
|
|
879
|
+
collectedHooks = mergeHooks(collectedHooks, customAgent.hooks);
|
|
880
|
+
}
|
|
881
|
+
} catch (error) {
|
|
882
|
+
this.logService.warn("[ChatService] Failed to collect agent hooks:", error);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
875
885
|
const stopWatch = ( new StopWatch(false));
|
|
876
886
|
store.add(token.onCancellationRequested(() => {
|
|
877
887
|
this.trace(
|
|
@@ -949,6 +959,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
949
959
|
userSelectedModelId: options?.userSelectedModelId,
|
|
950
960
|
userSelectedTools: options?.userSelectedTools?.get(),
|
|
951
961
|
modeInstructions: options?.modeInfo?.modeInstructions,
|
|
962
|
+
permissionLevel: options?.modeInfo?.permissionLevel,
|
|
952
963
|
editedFileEvents: request.editedFileEvents,
|
|
953
964
|
hooks: collectedHooks,
|
|
954
965
|
hasHooksEnabled: !!collectedHooks && ( ( Object.values(collectedHooks)).some(arr => arr.length > 0))
|
|
@@ -1063,7 +1074,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1063
1074
|
history,
|
|
1064
1075
|
location,
|
|
1065
1076
|
model.sessionResource,
|
|
1066
|
-
token
|
|
1077
|
+
token,
|
|
1078
|
+
options
|
|
1067
1079
|
);
|
|
1068
1080
|
agentOrCommandFollowups = Promise.resolve(commandResult?.followUp);
|
|
1069
1081
|
rawResult = {};
|
|
@@ -1073,6 +1085,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1073
1085
|
if ((token.isCancellationRequested && !rawResult)) {
|
|
1074
1086
|
return;
|
|
1075
1087
|
} else if (!request) {
|
|
1088
|
+
shouldProcessPending = !token.isCancellationRequested;
|
|
1076
1089
|
return;
|
|
1077
1090
|
} else {
|
|
1078
1091
|
if (!rawResult) {
|
|
@@ -1082,7 +1095,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1082
1095
|
);
|
|
1083
1096
|
rawResult = {
|
|
1084
1097
|
errorDetails: {
|
|
1085
|
-
message: ( localize(
|
|
1098
|
+
message: ( localize(6985, "Provider returned null response"))
|
|
1086
1099
|
}
|
|
1087
1100
|
};
|
|
1088
1101
|
}
|
|
@@ -1177,31 +1190,64 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1177
1190
|
}
|
|
1178
1191
|
}
|
|
1179
1192
|
processNextPendingRequest(model) {
|
|
1180
|
-
const
|
|
1181
|
-
|
|
1193
|
+
const steeringRequests = model.dequeueAllSteeringRequests();
|
|
1194
|
+
const nextQueued = steeringRequests.length === 0 ? model.dequeuePendingRequest() : undefined;
|
|
1195
|
+
const allRequests = steeringRequests.length > 0 ? steeringRequests : (nextQueued ? [nextQueued] : []);
|
|
1196
|
+
if (allRequests.length === 0) {
|
|
1182
1197
|
return;
|
|
1183
1198
|
}
|
|
1184
1199
|
this.trace(
|
|
1185
1200
|
"processNextPendingRequest",
|
|
1186
|
-
`Processing queued request for session ${model.sessionResource}`
|
|
1201
|
+
`Processing ${allRequests.length} queued request(s) for session ${model.sessionResource}`
|
|
1187
1202
|
);
|
|
1188
|
-
const
|
|
1189
|
-
|
|
1203
|
+
const deferreds = [];
|
|
1204
|
+
for (const req of allRequests) {
|
|
1205
|
+
const deferred = this._queuedRequestDeferreds.get(req.request.id);
|
|
1206
|
+
this._queuedRequestDeferreds.delete(req.request.id);
|
|
1207
|
+
if (deferred) {
|
|
1208
|
+
deferreds.push(deferred);
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
const firstRequest = allRequests[0];
|
|
1190
1212
|
const sendOptions = {
|
|
1191
|
-
...
|
|
1192
|
-
attachedContext:
|
|
1213
|
+
...firstRequest.sendOptions,
|
|
1214
|
+
attachedContext: allRequests.flatMap(req => req.request.variableData.variables.slice())
|
|
1193
1215
|
};
|
|
1194
1216
|
const location = sendOptions.location ?? sendOptions.locationData?.type ?? model.initialLocation;
|
|
1195
1217
|
const defaultAgent = this.chatAgentService.getDefaultAgent(location, sendOptions.modeInfo?.kind);
|
|
1196
1218
|
if (!defaultAgent) {
|
|
1197
1219
|
this.logService.warn("processNextPendingRequest", `No default agent for location ${location}`);
|
|
1198
|
-
deferred
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1220
|
+
for (const deferred of deferreds) {
|
|
1221
|
+
deferred.complete({
|
|
1222
|
+
kind: "rejected",
|
|
1223
|
+
reason: "No default agent available"
|
|
1224
|
+
});
|
|
1225
|
+
}
|
|
1226
|
+
return;
|
|
1227
|
+
}
|
|
1228
|
+
let parsedRequest;
|
|
1229
|
+
try {
|
|
1230
|
+
if (allRequests.length > 1) {
|
|
1231
|
+
const combinedText = ( allRequests.map(req => req.request.message.text)).join("\n\n");
|
|
1232
|
+
parsedRequest = this.parseChatRequest(model.sessionResource, combinedText, location, {
|
|
1233
|
+
...sendOptions,
|
|
1234
|
+
agentId: undefined,
|
|
1235
|
+
slashCommand: undefined
|
|
1236
|
+
});
|
|
1237
|
+
} else {
|
|
1238
|
+
parsedRequest = firstRequest.request.message;
|
|
1239
|
+
}
|
|
1240
|
+
} catch (err) {
|
|
1241
|
+
this.logService.error("processNextPendingRequest: failed to parse combined chat request", err);
|
|
1242
|
+
const reason = toErrorMessage(err);
|
|
1243
|
+
for (const deferred of deferreds) {
|
|
1244
|
+
deferred.complete({
|
|
1245
|
+
kind: "rejected",
|
|
1246
|
+
reason
|
|
1247
|
+
});
|
|
1248
|
+
}
|
|
1202
1249
|
return;
|
|
1203
1250
|
}
|
|
1204
|
-
const parsedRequest = pendingRequest.request.message;
|
|
1205
1251
|
const silentAgent = sendOptions.agentIdSilent ? this.chatAgentService.getAgent(sendOptions.agentIdSilent) : undefined;
|
|
1206
1252
|
const agent = silentAgent ?? parsedRequest.parts.find(r => r instanceof ChatRequestAgentPart)?.agent ?? defaultAgent;
|
|
1207
1253
|
const agentSlashCommandPart = parsedRequest.parts.find(r => r instanceof ChatRequestAgentSubcommandPart);
|
|
@@ -1209,20 +1255,23 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1209
1255
|
model,
|
|
1210
1256
|
model.sessionResource,
|
|
1211
1257
|
parsedRequest,
|
|
1212
|
-
|
|
1258
|
+
firstRequest.request.attempt,
|
|
1213
1259
|
!sendOptions.noCommandDetection,
|
|
1214
1260
|
silentAgent ?? defaultAgent,
|
|
1215
1261
|
location,
|
|
1216
1262
|
sendOptions
|
|
1217
1263
|
);
|
|
1218
|
-
|
|
1264
|
+
const result = {
|
|
1219
1265
|
kind: "sent",
|
|
1220
1266
|
data: {
|
|
1221
1267
|
...responseState,
|
|
1222
1268
|
agent,
|
|
1223
1269
|
slashCommand: agentSlashCommandPart?.command
|
|
1224
1270
|
}
|
|
1225
|
-
}
|
|
1271
|
+
};
|
|
1272
|
+
for (const deferred of deferreds) {
|
|
1273
|
+
deferred.complete(result);
|
|
1274
|
+
}
|
|
1226
1275
|
}
|
|
1227
1276
|
generateInitialChatTitleIfNeeded(model, request, defaultAgent, token) {
|
|
1228
1277
|
if (model.getRequests().length !== 1 || model.customTitle) {
|
|
@@ -4,7 +4,7 @@ import { IChatAgentData } from "@codingame/monaco-vscode-api/vscode/vs/workbench
|
|
|
4
4
|
import { ChatRequestModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
|
|
5
5
|
import { ChatRequestAgentSubcommandPart, ChatRequestSlashCommandPart } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatParserTypes";
|
|
6
6
|
import { IChatSendRequestOptions, IChatUserActionEvent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
7
|
-
import { ChatAgentLocation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
7
|
+
import { ChatAgentLocation, ChatPermissionLevel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
8
8
|
import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
|
|
9
9
|
export type ChatProviderInvokedEvent = {
|
|
10
10
|
timeToFirstProgress: number | undefined;
|
|
@@ -22,6 +22,9 @@ export type ChatProviderInvokedEvent = {
|
|
|
22
22
|
enableCommandDetection: boolean;
|
|
23
23
|
attachmentKinds: string[];
|
|
24
24
|
model: string | undefined;
|
|
25
|
+
permissionLevel: ChatPermissionLevel | undefined;
|
|
26
|
+
chatMode: string | undefined;
|
|
27
|
+
sessionType: string | undefined;
|
|
25
28
|
};
|
|
26
29
|
export type ChatProviderInvokedClassification = {
|
|
27
30
|
timeToFirstProgress: {
|
|
@@ -99,6 +102,21 @@ export type ChatProviderInvokedClassification = {
|
|
|
99
102
|
purpose: "FeatureInsight";
|
|
100
103
|
comment: "The model used to generate the response.";
|
|
101
104
|
};
|
|
105
|
+
permissionLevel: {
|
|
106
|
+
classification: "SystemMetaData";
|
|
107
|
+
purpose: "FeatureInsight";
|
|
108
|
+
comment: "The tool auto-approval permission level selected in the permission picker (default, autoApprove, or autopilot). Undefined when the picker is not applicable (e.g. ask mode or API-driven requests).";
|
|
109
|
+
};
|
|
110
|
+
chatMode: {
|
|
111
|
+
classification: "SystemMetaData";
|
|
112
|
+
purpose: "FeatureInsight";
|
|
113
|
+
comment: "The chat mode used for the request. Built-in modes (ask, agent, edit), extension-contributed names (e.g. Plan), or a hashed identifier for user-created custom agents.";
|
|
114
|
+
};
|
|
115
|
+
sessionType: {
|
|
116
|
+
classification: "SystemMetaData";
|
|
117
|
+
purpose: "FeatureInsight";
|
|
118
|
+
comment: "The session type scheme (e.g. vscodeLocalChatSession for local, or remote session scheme).";
|
|
119
|
+
};
|
|
102
120
|
owner: "roblourens";
|
|
103
121
|
comment: "Provides insight into the performance of Chat agents.";
|
|
104
122
|
};
|
|
@@ -5,6 +5,7 @@ import { isLocation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common
|
|
|
5
5
|
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
6
6
|
import { ChatAgentVoteDirection, ChatCopyKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
7
7
|
import { isImageVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
8
|
+
import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
8
9
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
9
10
|
import { chatSessionResourceToId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
10
11
|
|
|
@@ -128,7 +129,10 @@ let ChatRequestTelemetry = class ChatRequestTelemetry {
|
|
|
128
129
|
citations: request.response?.codeCitations.length ?? 0,
|
|
129
130
|
numCodeBlocks: getCodeBlocks(request.response?.response.toString() ?? "").length,
|
|
130
131
|
attachmentKinds: this.attachmentKindsForTelemetry(request.variableData),
|
|
131
|
-
model: this.resolveModelId(this.opts.options?.userSelectedModelId)
|
|
132
|
+
model: this.resolveModelId(this.opts.options?.userSelectedModelId),
|
|
133
|
+
permissionLevel: this.opts.options?.modeInfo?.kind === ChatModeKind.Ask ? undefined : this.opts.options?.modeInfo?.permissionLevel,
|
|
134
|
+
chatMode: this.opts.options?.modeInfo?.modeName ?? this.opts.options?.modeInfo?.modeId,
|
|
135
|
+
sessionType: this.opts.sessionResource.scheme
|
|
132
136
|
});
|
|
133
137
|
}
|
|
134
138
|
attachmentKindsForTelemetry(variableData) {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
2
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
3
3
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
4
|
+
import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
|
|
4
5
|
import { IEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service";
|
|
5
6
|
import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
|
|
6
7
|
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
8
|
+
import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
|
|
7
9
|
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
8
10
|
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
9
11
|
import { IUserDataProfilesService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service";
|
|
@@ -24,13 +26,15 @@ export declare class ChatSessionStore extends Disposable {
|
|
|
24
26
|
private readonly userDataProfilesService;
|
|
25
27
|
private readonly configurationService;
|
|
26
28
|
private readonly workspaceEditingService;
|
|
29
|
+
private readonly dialogService;
|
|
30
|
+
private readonly openerService;
|
|
27
31
|
private storageRoot;
|
|
28
32
|
private readonly previousEmptyWindowStorageRoot;
|
|
29
33
|
private readonly transferredSessionStorageRoot;
|
|
30
34
|
private readonly storeQueue;
|
|
31
35
|
private storeTask;
|
|
32
36
|
private shuttingDown;
|
|
33
|
-
constructor(fileService: IFileService, environmentService: IEnvironmentService, logService: ILogService, workspaceContextService: IWorkspaceContextService, telemetryService: ITelemetryService, storageService: IStorageService, lifecycleService: ILifecycleService, userDataProfilesService: IUserDataProfilesService, configurationService: IConfigurationService, workspaceEditingService: IWorkspaceEditingService);
|
|
37
|
+
constructor(fileService: IFileService, environmentService: IEnvironmentService, logService: ILogService, workspaceContextService: IWorkspaceContextService, telemetryService: ITelemetryService, storageService: IStorageService, lifecycleService: ILifecycleService, userDataProfilesService: IUserDataProfilesService, configurationService: IConfigurationService, workspaceEditingService: IWorkspaceEditingService, dialogService: IDialogService, openerService: IOpenerService);
|
|
34
38
|
private handleWorkspaceTransition;
|
|
35
39
|
private migrateSessionsToNewWorkspace;
|
|
36
40
|
storeSessions(sessions: ChatModel[]): Promise<void>;
|
|
@@ -41,6 +45,7 @@ export declare class ChatSessionStore extends Disposable {
|
|
|
41
45
|
getTransferredSessionData(): URI | undefined;
|
|
42
46
|
readTransferredSession(sessionResource: URI): Promise<ISerializedChatDataReference | undefined>;
|
|
43
47
|
private cleanupTransferredSession;
|
|
48
|
+
private _didReportIssue;
|
|
44
49
|
private writeSession;
|
|
45
50
|
private writeSessionMetadataOnly;
|
|
46
51
|
private flushIndex;
|
|
@@ -10,10 +10,12 @@ import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/res
|
|
|
10
10
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
11
11
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
12
12
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
13
|
+
import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
13
14
|
import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service';
|
|
14
15
|
import { toFileOperationResult, FileOperationResult } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
|
|
15
16
|
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
16
17
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
18
|
+
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
17
19
|
import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
18
20
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
19
21
|
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
@@ -47,7 +49,9 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
47
49
|
lifecycleService,
|
|
48
50
|
userDataProfilesService,
|
|
49
51
|
configurationService,
|
|
50
|
-
workspaceEditingService
|
|
52
|
+
workspaceEditingService,
|
|
53
|
+
dialogService,
|
|
54
|
+
openerService
|
|
51
55
|
) {
|
|
52
56
|
super();
|
|
53
57
|
this.fileService = fileService;
|
|
@@ -60,8 +64,11 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
60
64
|
this.userDataProfilesService = userDataProfilesService;
|
|
61
65
|
this.configurationService = configurationService;
|
|
62
66
|
this.workspaceEditingService = workspaceEditingService;
|
|
67
|
+
this.dialogService = dialogService;
|
|
68
|
+
this.openerService = openerService;
|
|
63
69
|
this.storeQueue = ( new Sequencer());
|
|
64
70
|
this.shuttingDown = false;
|
|
71
|
+
this._didReportIssue = false;
|
|
65
72
|
const workspace = this.workspaceContextService.getWorkspace();
|
|
66
73
|
const isEmptyWindow = !workspace.configuration && workspace.folders.length === 0;
|
|
67
74
|
const workspaceId = this.workspaceContextService.getWorkspace().id;
|
|
@@ -91,7 +98,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
91
98
|
}
|
|
92
99
|
e.join(this.storeTask, {
|
|
93
100
|
id: "join.chatSessionStore",
|
|
94
|
-
label: ( localize(
|
|
101
|
+
label: ( localize(7020, "Saving chat history"))
|
|
95
102
|
});
|
|
96
103
|
}));
|
|
97
104
|
}
|
|
@@ -337,10 +344,32 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
337
344
|
if (!session.dataSerializer) {
|
|
338
345
|
session.dataSerializer = ( new ChatSessionOperationLog());
|
|
339
346
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
347
|
+
let op;
|
|
348
|
+
let data;
|
|
349
|
+
try {
|
|
350
|
+
({
|
|
351
|
+
op,
|
|
352
|
+
data
|
|
353
|
+
} = session.dataSerializer.write(session));
|
|
354
|
+
} catch (e) {
|
|
355
|
+
if (!this._didReportIssue) {
|
|
356
|
+
this._didReportIssue = true;
|
|
357
|
+
this.dialogService.prompt({
|
|
358
|
+
custom: true,
|
|
359
|
+
title: ( localize(7021, "Error saving chat session")),
|
|
360
|
+
message: ( localize(
|
|
361
|
+
7022,
|
|
362
|
+
"Error serializing chat session for storage. The session will be lost if the window is closed. Please report this issue to the VS Code team:\n\n{0}",
|
|
363
|
+
e.stack || toErrorMessage(e)
|
|
364
|
+
)),
|
|
365
|
+
buttons: [{
|
|
366
|
+
label: ( localize(7023, "Report Issue")),
|
|
367
|
+
run: () => this.openerService.open("https://github.com/microsoft/vscode/issues/new?template=bug_report.md")
|
|
368
|
+
}]
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
throw e;
|
|
372
|
+
}
|
|
344
373
|
if (data.byteLength > 0) {
|
|
345
374
|
await this.fileService.writeFile(storageLocation.log, data, {
|
|
346
375
|
append: op === "append"
|
|
@@ -638,7 +667,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
638
667
|
return this.storageRoot;
|
|
639
668
|
}
|
|
640
669
|
};
|
|
641
|
-
ChatSessionStore = ChatSessionStore_1 = ( __decorate([( __param(0, IFileService)), ( __param(1, IEnvironmentService)), ( __param(2, ILogService)), ( __param(3, IWorkspaceContextService)), ( __param(4, ITelemetryService)), ( __param(5, IStorageService)), ( __param(6, ILifecycleService)), ( __param(7, IUserDataProfilesService)), ( __param(8, IConfigurationService)), ( __param(9, IWorkspaceEditingService))], ChatSessionStore));
|
|
670
|
+
ChatSessionStore = ChatSessionStore_1 = ( __decorate([( __param(0, IFileService)), ( __param(1, IEnvironmentService)), ( __param(2, ILogService)), ( __param(3, IWorkspaceContextService)), ( __param(4, ITelemetryService)), ( __param(5, IStorageService)), ( __param(6, ILifecycleService)), ( __param(7, IUserDataProfilesService)), ( __param(8, IConfigurationService)), ( __param(9, IWorkspaceEditingService)), ( __param(10, IDialogService)), ( __param(11, IOpenerService))], ChatSessionStore));
|
|
642
671
|
function isChatSessionEntryMetadata(obj) {
|
|
643
672
|
return (!!obj && typeof obj === "object" && typeof obj.sessionId === "string" && typeof obj.title === "string" && typeof obj.lastMessageDate === "number");
|
|
644
673
|
}
|
|
@@ -679,7 +708,7 @@ async function getSessionMetadata(session) {
|
|
|
679
708
|
}
|
|
680
709
|
return {
|
|
681
710
|
sessionId: session.sessionId,
|
|
682
|
-
title: title || ( localize(
|
|
711
|
+
title: title || ( localize(7024, "New Chat")),
|
|
683
712
|
lastMessageDate,
|
|
684
713
|
timing,
|
|
685
714
|
initialLocation: session.initialLocation,
|
|
@@ -3,6 +3,21 @@ import { assertNever } from '@codingame/monaco-vscode-api/vscode/vs/base/common/
|
|
|
3
3
|
import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
4
4
|
import { isUndefinedOrNull } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
5
5
|
|
|
6
|
+
function prefixError(e, prefix) {
|
|
7
|
+
e.message = prefix + e.message;
|
|
8
|
+
if (e.stack) {
|
|
9
|
+
const nlIdx = e.stack.indexOf("\n");
|
|
10
|
+
e.stack = nlIdx !== -1 ? `${e.name}: ${e.message}${e.stack.slice(nlIdx)}` : `${e.name}: ${e.message}`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function rethrowWithPathSegment(e, segment) {
|
|
14
|
+
if (e instanceof Error) {
|
|
15
|
+
const part = typeof segment === "number" ? `[${segment}]` : `.${segment}`;
|
|
16
|
+
const needsSep = !e.message.startsWith("[") && !e.message.startsWith(".");
|
|
17
|
+
prefixError(e, part + (needsSep ? ": " : ""));
|
|
18
|
+
}
|
|
19
|
+
throw e;
|
|
20
|
+
}
|
|
6
21
|
var TransformKind;
|
|
7
22
|
(function(TransformKind) {
|
|
8
23
|
TransformKind[TransformKind["Key"] = 0] = "Key";
|
|
@@ -34,7 +49,13 @@ function array(schema) {
|
|
|
34
49
|
return {
|
|
35
50
|
kind: TransformKind.Array,
|
|
36
51
|
itemSchema: schema,
|
|
37
|
-
extract: from => from?.map(item =>
|
|
52
|
+
extract: from => from?.map((item, i) => {
|
|
53
|
+
try {
|
|
54
|
+
return schema.extract(item);
|
|
55
|
+
} catch (e) {
|
|
56
|
+
rethrowWithPathSegment(e, i);
|
|
57
|
+
}
|
|
58
|
+
})
|
|
38
59
|
};
|
|
39
60
|
}
|
|
40
61
|
function object(schema, options) {
|
|
@@ -49,7 +70,11 @@ function object(schema, options) {
|
|
|
49
70
|
}
|
|
50
71
|
const result = Object.create(null);
|
|
51
72
|
for (const [key, transform] of entries) {
|
|
52
|
-
|
|
73
|
+
try {
|
|
74
|
+
result[key] = transform.extract(from);
|
|
75
|
+
} catch (e) {
|
|
76
|
+
rethrowWithPathSegment(e, key);
|
|
77
|
+
}
|
|
53
78
|
}
|
|
54
79
|
return result;
|
|
55
80
|
}
|
|
@@ -152,7 +177,15 @@ class ObjectMutationLog {
|
|
|
152
177
|
}
|
|
153
178
|
const entries = [];
|
|
154
179
|
const path = [];
|
|
155
|
-
|
|
180
|
+
try {
|
|
181
|
+
this._diff(this._transform, path, this._previous, currentValue, entries);
|
|
182
|
+
} catch (e) {
|
|
183
|
+
if (e instanceof Error) {
|
|
184
|
+
const pathStr = ( path.map(s => typeof s === "number" ? `[${s}]` : `.${s}`)).join("") || "<root>";
|
|
185
|
+
prefixError(e, `error diffing at ${pathStr}: `);
|
|
186
|
+
}
|
|
187
|
+
throw e;
|
|
188
|
+
}
|
|
156
189
|
if (entries.length === 0) {
|
|
157
190
|
return {
|
|
158
191
|
op: "append",
|
|
@@ -3,11 +3,11 @@ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"
|
|
|
3
3
|
import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
4
4
|
import { IProgress } from "@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress";
|
|
5
5
|
import { IChatMessage } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels";
|
|
6
|
-
import { IChatFollowup, IChatProgress, IChatResponseProgressFileTreeData } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
6
|
+
import { IChatFollowup, IChatProgress, IChatResponseProgressFileTreeData, IChatSendRequestOptions } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
7
7
|
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
8
8
|
import { ChatAgentLocation, ChatModeKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
9
9
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
10
|
-
import { Target } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/
|
|
10
|
+
import { Target } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
|
|
11
11
|
import { IChatSlashCommandService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service";
|
|
12
12
|
export interface IChatSlashData {
|
|
13
13
|
command: string;
|
|
@@ -36,7 +36,7 @@ export interface IChatSlashFragment {
|
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
export type IChatSlashCallback = {
|
|
39
|
-
(prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, sessionResource: URI, token: CancellationToken): Promise<{
|
|
39
|
+
(prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, sessionResource: URI, token: CancellationToken, options?: IChatSendRequestOptions): Promise<{
|
|
40
40
|
followUp: IChatFollowup[];
|
|
41
41
|
} | void>;
|
|
42
42
|
};
|
|
@@ -51,7 +51,7 @@ export declare class ChatSlashCommandService extends Disposable implements IChat
|
|
|
51
51
|
registerSlashCommand(data: IChatSlashData, command: IChatSlashCallback): IDisposable;
|
|
52
52
|
getCommands(location: ChatAgentLocation, mode: ChatModeKind): Array<IChatSlashData>;
|
|
53
53
|
hasCommand(id: string): boolean;
|
|
54
|
-
executeCommand(id: string, prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, sessionResource: URI, token: CancellationToken): Promise<{
|
|
54
|
+
executeCommand(id: string, prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, sessionResource: URI, token: CancellationToken, options?: IChatSendRequestOptions): Promise<{
|
|
55
55
|
followUp: IChatFollowup[];
|
|
56
56
|
} | void>;
|
|
57
57
|
}
|
|
@@ -39,7 +39,7 @@ let ChatSlashCommandService = class ChatSlashCommandService extends Disposable {
|
|
|
39
39
|
hasCommand(id) {
|
|
40
40
|
return ( this._commands.has(id));
|
|
41
41
|
}
|
|
42
|
-
async executeCommand(id, prompt, progress, history, location, sessionResource, token) {
|
|
42
|
+
async executeCommand(id, prompt, progress, history, location, sessionResource, token, options) {
|
|
43
43
|
const data = this._commands.get(id);
|
|
44
44
|
if (!data) {
|
|
45
45
|
throw ( new Error("No command with id ${id} NOT registered"));
|
|
@@ -50,7 +50,7 @@ let ChatSlashCommandService = class ChatSlashCommandService extends Disposable {
|
|
|
50
50
|
if (!data.command) {
|
|
51
51
|
throw ( new Error(`No command with id ${id} NOT resolved`));
|
|
52
52
|
}
|
|
53
|
-
return await data.command(prompt, progress, history, location, sessionResource, token);
|
|
53
|
+
return await data.command(prompt, progress, history, location, sessionResource, token, options);
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
ChatSlashCommandService = ( __decorate([( __param(0, IExtensionService))], ChatSlashCommandService));
|
|
@@ -3,7 +3,8 @@ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/
|
|
|
3
3
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
4
|
import { SyncDescriptor0 } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors";
|
|
5
5
|
import { IMcpServerConfiguration } from "@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/mcpPlatformTypes";
|
|
6
|
-
import {
|
|
6
|
+
import { IHookCommand } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema";
|
|
7
|
+
import { HookType } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes";
|
|
7
8
|
import { IMarketplacePlugin } from "./pluginMarketplaceService.js";
|
|
8
9
|
export interface IAgentPluginHook {
|
|
9
10
|
readonly type: HookType;
|
|
@@ -28,8 +29,12 @@ export interface IAgentPluginMcpServerDefinition {
|
|
|
28
29
|
}
|
|
29
30
|
export interface IAgentPlugin {
|
|
30
31
|
readonly uri: URI;
|
|
32
|
+
/** Human-readable display name for the plugin. */
|
|
33
|
+
readonly label: string;
|
|
31
34
|
readonly enabled: IObservable<boolean>;
|
|
32
35
|
setEnabled(enabled: boolean): void;
|
|
36
|
+
/** Removes this plugin from its discovery source (config or installed storage). */
|
|
37
|
+
remove(): void;
|
|
33
38
|
readonly hooks: IObservable<readonly IAgentPluginHook[]>;
|
|
34
39
|
readonly commands: IObservable<readonly IAgentPluginCommand[]>;
|
|
35
40
|
readonly skills: IObservable<readonly IAgentPluginSkill[]>;
|