@codingame/monaco-vscode-chat-service-override 27.0.0 → 28.0.1
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
|
@@ -0,0 +1,263 @@
|
|
|
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 { FileSystemProviderCapabilities, createFileSystemProviderError, FileSystemProviderErrorCode, FileType } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
|
|
6
|
+
import { asJson } from '@codingame/monaco-vscode-api/vscode/vs/platform/request/common/request';
|
|
7
|
+
import { IRequestService } from '@codingame/monaco-vscode-api/vscode/vs/platform/request/common/request.service';
|
|
8
|
+
import { IAuthenticationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/common/authentication.service';
|
|
9
|
+
import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
10
|
+
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
11
|
+
|
|
12
|
+
var GitHubFileSystemProvider_1;
|
|
13
|
+
const GITHUB_REMOTE_FILE_SCHEME = "github-remote-file";
|
|
14
|
+
let GitHubFileSystemProvider = class GitHubFileSystemProvider extends Disposable {
|
|
15
|
+
static {
|
|
16
|
+
GitHubFileSystemProvider_1 = this;
|
|
17
|
+
}
|
|
18
|
+
static {
|
|
19
|
+
this.CACHE_TTL_MS = 5 * 60 * 1000;
|
|
20
|
+
}
|
|
21
|
+
static {
|
|
22
|
+
this.NOT_FOUND_CACHE_TTL_MS = 60 * 1000;
|
|
23
|
+
}
|
|
24
|
+
constructor(requestService, authenticationService, logService) {
|
|
25
|
+
super();
|
|
26
|
+
this.requestService = requestService;
|
|
27
|
+
this.authenticationService = authenticationService;
|
|
28
|
+
this.logService = logService;
|
|
29
|
+
this._onDidChangeCapabilities = this._register(( new Emitter()));
|
|
30
|
+
this.onDidChangeCapabilities = this._onDidChangeCapabilities.event;
|
|
31
|
+
this.capabilities = FileSystemProviderCapabilities.Readonly | FileSystemProviderCapabilities.FileReadWrite | FileSystemProviderCapabilities.PathCaseSensitive;
|
|
32
|
+
this._onDidChangeFile = this._register(( new Emitter()));
|
|
33
|
+
this.onDidChangeFile = this._onDidChangeFile.event;
|
|
34
|
+
this.treeCache = ( new Map());
|
|
35
|
+
this.notFoundCache = ( new Map());
|
|
36
|
+
this.pendingFetches = ( new Map());
|
|
37
|
+
}
|
|
38
|
+
parseUri(resource) {
|
|
39
|
+
const parts = resource.path.split("/").filter(Boolean);
|
|
40
|
+
if (parts.length < 3) {
|
|
41
|
+
throw createFileSystemProviderError(
|
|
42
|
+
"Invalid github-remote-file URI: expected /{owner}/{repo}/{ref}/...",
|
|
43
|
+
FileSystemProviderErrorCode.FileNotFound
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
const owner = decodeURIComponent(parts[0]);
|
|
47
|
+
const repo = decodeURIComponent(parts[1]);
|
|
48
|
+
const ref = decodeURIComponent(parts[2]);
|
|
49
|
+
const path = ( parts.slice(3).map(decodeURIComponent)).join("/");
|
|
50
|
+
return {
|
|
51
|
+
owner,
|
|
52
|
+
repo,
|
|
53
|
+
ref,
|
|
54
|
+
path
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
getCacheKey(owner, repo, ref) {
|
|
58
|
+
return `${owner}/${repo}/${ref}`;
|
|
59
|
+
}
|
|
60
|
+
async getAuthToken() {
|
|
61
|
+
const sessions = (await this.authenticationService.getSessions("github", ["repo"], {
|
|
62
|
+
silent: true
|
|
63
|
+
})) ?? (await this.authenticationService.getSessions("github", ["repo"], {
|
|
64
|
+
createIfNone: true
|
|
65
|
+
}));
|
|
66
|
+
return sessions[0].accessToken ?? "";
|
|
67
|
+
}
|
|
68
|
+
fetchTree(owner, repo, ref) {
|
|
69
|
+
const cacheKey = this.getCacheKey(owner, repo, ref);
|
|
70
|
+
const cached = this.treeCache.get(cacheKey);
|
|
71
|
+
if (cached && (Date.now() - cached.fetchedAt) < GitHubFileSystemProvider_1.CACHE_TTL_MS) {
|
|
72
|
+
return Promise.resolve(cached);
|
|
73
|
+
}
|
|
74
|
+
const notFoundAt = this.notFoundCache.get(cacheKey);
|
|
75
|
+
if (notFoundAt !== undefined && (Date.now() - notFoundAt) < GitHubFileSystemProvider_1.NOT_FOUND_CACHE_TTL_MS) {
|
|
76
|
+
return Promise.reject(createFileSystemProviderError(
|
|
77
|
+
`Tree not found for ${owner}/${repo}@${ref}`,
|
|
78
|
+
FileSystemProviderErrorCode.FileNotFound
|
|
79
|
+
));
|
|
80
|
+
}
|
|
81
|
+
const pending = this.pendingFetches.get(cacheKey);
|
|
82
|
+
if (pending) {
|
|
83
|
+
return pending;
|
|
84
|
+
}
|
|
85
|
+
const promise = this.doFetchTree(owner, repo, ref, cacheKey).finally(() => {
|
|
86
|
+
this.pendingFetches.delete(cacheKey);
|
|
87
|
+
});
|
|
88
|
+
this.pendingFetches.set(cacheKey, promise);
|
|
89
|
+
return promise;
|
|
90
|
+
}
|
|
91
|
+
async doFetchTree(owner, repo, ref, cacheKey) {
|
|
92
|
+
this.logService.info(`[SessionRepoFS] Fetching tree for ${owner}/${repo}@${ref}`);
|
|
93
|
+
const token = await this.getAuthToken();
|
|
94
|
+
const url = `https://api.github.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/git/trees/${encodeURIComponent(ref)}?recursive=1`;
|
|
95
|
+
const response = await this.requestService.request({
|
|
96
|
+
type: "GET",
|
|
97
|
+
url,
|
|
98
|
+
headers: {
|
|
99
|
+
"Authorization": `token ${token}`,
|
|
100
|
+
"Accept": "application/vnd.github.v3+json",
|
|
101
|
+
"User-Agent": "VSCode-SessionRepoFS"
|
|
102
|
+
}
|
|
103
|
+
}, CancellationToken.None);
|
|
104
|
+
if (response.res.statusCode === 404) {
|
|
105
|
+
this.notFoundCache.set(cacheKey, Date.now());
|
|
106
|
+
throw createFileSystemProviderError(
|
|
107
|
+
`Tree not found for ${owner}/${repo}@${ref}`,
|
|
108
|
+
FileSystemProviderErrorCode.FileNotFound
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
const data = await asJson(response);
|
|
112
|
+
if (!data) {
|
|
113
|
+
throw createFileSystemProviderError(
|
|
114
|
+
`Failed to fetch tree for ${owner}/${repo}@${ref}`,
|
|
115
|
+
FileSystemProviderErrorCode.Unavailable
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
const entries = ( new Map());
|
|
119
|
+
entries.set("", {
|
|
120
|
+
type: FileType.Directory,
|
|
121
|
+
size: 0,
|
|
122
|
+
sha: data.sha
|
|
123
|
+
});
|
|
124
|
+
const dirs = ( new Set());
|
|
125
|
+
for (const entry of data.tree) {
|
|
126
|
+
const fileType = entry.type === "tree" ? FileType.Directory : FileType.File;
|
|
127
|
+
entries.set(entry.path, {
|
|
128
|
+
type: fileType,
|
|
129
|
+
size: entry.size ?? 0,
|
|
130
|
+
sha: entry.sha
|
|
131
|
+
});
|
|
132
|
+
if (fileType === FileType.Directory) {
|
|
133
|
+
dirs.add(entry.path);
|
|
134
|
+
}
|
|
135
|
+
const pathParts = entry.path.split("/");
|
|
136
|
+
for (let i = 1; i < pathParts.length; i++) {
|
|
137
|
+
const parentPath = pathParts.slice(0, i).join("/");
|
|
138
|
+
if (!( dirs.has(parentPath))) {
|
|
139
|
+
dirs.add(parentPath);
|
|
140
|
+
if (!( entries.has(parentPath))) {
|
|
141
|
+
entries.set(parentPath, {
|
|
142
|
+
type: FileType.Directory,
|
|
143
|
+
size: 0,
|
|
144
|
+
sha: ""
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const cacheEntry = {
|
|
151
|
+
entries,
|
|
152
|
+
fetchedAt: Date.now()
|
|
153
|
+
};
|
|
154
|
+
this.treeCache.set(cacheKey, cacheEntry);
|
|
155
|
+
return cacheEntry;
|
|
156
|
+
}
|
|
157
|
+
async stat(resource) {
|
|
158
|
+
const {
|
|
159
|
+
owner,
|
|
160
|
+
repo,
|
|
161
|
+
ref,
|
|
162
|
+
path
|
|
163
|
+
} = this.parseUri(resource);
|
|
164
|
+
const tree = await this.fetchTree(owner, repo, ref);
|
|
165
|
+
const entry = tree.entries.get(path);
|
|
166
|
+
if (!entry) {
|
|
167
|
+
throw createFileSystemProviderError("File not found", FileSystemProviderErrorCode.FileNotFound);
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
type: entry.type,
|
|
171
|
+
ctime: 0,
|
|
172
|
+
mtime: 0,
|
|
173
|
+
size: entry.size
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
async readdir(resource) {
|
|
177
|
+
const {
|
|
178
|
+
owner,
|
|
179
|
+
repo,
|
|
180
|
+
ref,
|
|
181
|
+
path
|
|
182
|
+
} = this.parseUri(resource);
|
|
183
|
+
const tree = await this.fetchTree(owner, repo, ref);
|
|
184
|
+
const prefix = path ? path + "/" : "";
|
|
185
|
+
const result = [];
|
|
186
|
+
for (const [entryPath, entry] of tree.entries) {
|
|
187
|
+
if (!entryPath.startsWith(prefix)) {
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
const relativePath = entryPath.slice(prefix.length);
|
|
191
|
+
if (relativePath && !relativePath.includes("/")) {
|
|
192
|
+
result.push([relativePath, entry.type]);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return result;
|
|
196
|
+
}
|
|
197
|
+
async readFile(resource) {
|
|
198
|
+
const {
|
|
199
|
+
owner,
|
|
200
|
+
repo,
|
|
201
|
+
ref,
|
|
202
|
+
path
|
|
203
|
+
} = this.parseUri(resource);
|
|
204
|
+
const tree = await this.fetchTree(owner, repo, ref);
|
|
205
|
+
const entry = tree.entries.get(path);
|
|
206
|
+
if (!entry || entry.type === FileType.Directory) {
|
|
207
|
+
throw createFileSystemProviderError("File not found", FileSystemProviderErrorCode.FileNotFound);
|
|
208
|
+
}
|
|
209
|
+
const token = await this.getAuthToken();
|
|
210
|
+
const url = `https://api.github.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/git/blobs/${encodeURIComponent(entry.sha)}`;
|
|
211
|
+
const response = await this.requestService.request({
|
|
212
|
+
type: "GET",
|
|
213
|
+
url,
|
|
214
|
+
headers: {
|
|
215
|
+
"Authorization": `token ${token}`,
|
|
216
|
+
"Accept": "application/vnd.github.v3+json",
|
|
217
|
+
"User-Agent": "VSCode-SessionRepoFS"
|
|
218
|
+
}
|
|
219
|
+
}, CancellationToken.None);
|
|
220
|
+
const data = await asJson(response);
|
|
221
|
+
if (!data) {
|
|
222
|
+
throw createFileSystemProviderError(`Failed to read file ${path}`, FileSystemProviderErrorCode.Unavailable);
|
|
223
|
+
}
|
|
224
|
+
if (data.encoding === "base64") {
|
|
225
|
+
const binaryString = atob(data.content.replace(/\n/g, ""));
|
|
226
|
+
const bytes = ( new Uint8Array(binaryString.length));
|
|
227
|
+
for (let i = 0; i < binaryString.length; i++) {
|
|
228
|
+
bytes[i] = binaryString.charCodeAt(i);
|
|
229
|
+
}
|
|
230
|
+
return bytes;
|
|
231
|
+
}
|
|
232
|
+
return ( new TextEncoder()).encode(data.content);
|
|
233
|
+
}
|
|
234
|
+
watch() {
|
|
235
|
+
return Disposable.None;
|
|
236
|
+
}
|
|
237
|
+
async writeFile(_resource, _content, _opts) {
|
|
238
|
+
throw createFileSystemProviderError("Operation not supported", FileSystemProviderErrorCode.NoPermissions);
|
|
239
|
+
}
|
|
240
|
+
async mkdir(_resource) {
|
|
241
|
+
throw createFileSystemProviderError("Operation not supported", FileSystemProviderErrorCode.NoPermissions);
|
|
242
|
+
}
|
|
243
|
+
async delete(_resource, _opts) {
|
|
244
|
+
throw createFileSystemProviderError("Operation not supported", FileSystemProviderErrorCode.NoPermissions);
|
|
245
|
+
}
|
|
246
|
+
async rename(_from, _to, _opts) {
|
|
247
|
+
throw createFileSystemProviderError("Operation not supported", FileSystemProviderErrorCode.NoPermissions);
|
|
248
|
+
}
|
|
249
|
+
invalidateCache(owner, repo, ref) {
|
|
250
|
+
const cacheKey = this.getCacheKey(owner, repo, ref);
|
|
251
|
+
this.treeCache.delete(cacheKey);
|
|
252
|
+
this.notFoundCache.delete(cacheKey);
|
|
253
|
+
}
|
|
254
|
+
dispose() {
|
|
255
|
+
this.treeCache.clear();
|
|
256
|
+
this.notFoundCache.clear();
|
|
257
|
+
this.pendingFetches.clear();
|
|
258
|
+
super.dispose();
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
GitHubFileSystemProvider = GitHubFileSystemProvider_1 = ( __decorate([( __param(0, IRequestService)), ( __param(1, IAuthenticationService)), ( __param(2, ILogService))], GitHubFileSystemProvider));
|
|
262
|
+
|
|
263
|
+
export { GITHUB_REMOTE_FILE_SCHEME, GitHubFileSystemProvider };
|
|
@@ -18,6 +18,11 @@ import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/plat
|
|
|
18
18
|
import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
|
|
19
19
|
import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/sessionsManagementService.service";
|
|
20
20
|
export declare const IsNewChatSessionContext: RawContextKey<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* True when the active session uses the Background provider type (copilotcli).
|
|
23
|
+
* Used to gate actions that require a local worktree (run script, open in VS Code, terminal).
|
|
24
|
+
*/
|
|
25
|
+
export declare const IsActiveSessionBackgroundProviderContext: RawContextKey<boolean>;
|
|
21
26
|
/**
|
|
22
27
|
* An active session item extends IChatSessionItem with repository information.
|
|
23
28
|
* - For agent session items: repository is the workingDirectory from metadata
|
|
@@ -49,6 +54,7 @@ export declare class SessionsManagementService extends Disposable implements ISe
|
|
|
49
54
|
private readonly _newSession;
|
|
50
55
|
private lastSelectedSession;
|
|
51
56
|
private readonly isNewChatSessionContext;
|
|
57
|
+
private readonly _isBackgroundProvider;
|
|
52
58
|
constructor(storageService: IStorageService, uriIdentityService: IUriIdentityService, agentSessionsService: IAgentSessionsService, chatSessionsService: IChatSessionsService, chatWidgetService: IChatWidgetService, chatService: IChatService, instantiationService: IInstantiationService, logService: ILogService, contextKeyService: IContextKeyService, commandService: ICommandService, languageModelsService: ILanguageModelsService);
|
|
53
59
|
private refreshActiveSessionFromModel;
|
|
54
60
|
private showNextSession;
|
|
@@ -4,6 +4,7 @@ import { Disposable, DisposableStore, MutableDisposable } from '@codingame/monac
|
|
|
4
4
|
import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
5
5
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
6
6
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
7
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
8
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
8
9
|
import { RawContextKey } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
9
10
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
@@ -23,9 +24,11 @@ import { AgentSessionProviders } from '@codingame/monaco-vscode-api/vscode/vs/wo
|
|
|
23
24
|
import { LocalNewSession, RemoteNewSession } from '../../chat/browser/newSession.js';
|
|
24
25
|
import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
|
|
25
26
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
27
|
+
import { GITHUB_REMOTE_FILE_SCHEME } from '../../fileTreeView/browser/githubFileSystemProvider.js';
|
|
26
28
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
27
29
|
|
|
28
30
|
const IsNewChatSessionContext = ( new RawContextKey("isNewChatSession", true));
|
|
31
|
+
const IsActiveSessionBackgroundProviderContext = ( new RawContextKey("isActiveSessionBackgroundProvider", false, ( localize(2519, "Whether the active session uses the background agent provider"))));
|
|
29
32
|
const LAST_SELECTED_SESSION_KEY = "agentSessions.lastSelectedSession";
|
|
30
33
|
const repositoryOptionId = "repository";
|
|
31
34
|
let SessionsManagementService = class SessionsManagementService extends Disposable {
|
|
@@ -58,6 +61,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
58
61
|
this._newActiveSessionDisposables = this._register(( new DisposableStore()));
|
|
59
62
|
this._newSession = this._register(( new MutableDisposable()));
|
|
60
63
|
this.isNewChatSessionContext = IsNewChatSessionContext.bindTo(contextKeyService);
|
|
64
|
+
this._isBackgroundProvider = IsActiveSessionBackgroundProviderContext.bindTo(contextKeyService);
|
|
61
65
|
this.lastSelectedSession = this.loadLastSelectedSession();
|
|
62
66
|
this._register(this.storageService.onWillSaveState(() => this.saveLastSelectedSession()));
|
|
63
67
|
this._register(
|
|
@@ -104,10 +108,24 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
104
108
|
this.openNewSessionView();
|
|
105
109
|
}
|
|
106
110
|
}
|
|
107
|
-
getRepositoryFromMetadata(
|
|
111
|
+
getRepositoryFromMetadata(session) {
|
|
112
|
+
const metadata = session.metadata;
|
|
108
113
|
if (!metadata) {
|
|
109
114
|
return [undefined, undefined];
|
|
110
115
|
}
|
|
116
|
+
if (session.providerType === AgentSessionProviders.Cloud) {
|
|
117
|
+
const branch = typeof metadata.branch === "string" ? metadata.branch : "HEAD";
|
|
118
|
+
const repositoryUri = ( URI.from({
|
|
119
|
+
scheme: GITHUB_REMOTE_FILE_SCHEME,
|
|
120
|
+
authority: "github",
|
|
121
|
+
path: `/${metadata.owner}/${metadata.name}/${encodeURIComponent(branch)}`
|
|
122
|
+
}));
|
|
123
|
+
return [repositoryUri, undefined];
|
|
124
|
+
}
|
|
125
|
+
const workingDirectoryPath = metadata?.workingDirectoryPath;
|
|
126
|
+
if (workingDirectoryPath) {
|
|
127
|
+
return [URI.file(workingDirectoryPath), undefined];
|
|
128
|
+
}
|
|
111
129
|
const repositoryPath = metadata?.repositoryPath;
|
|
112
130
|
const repositoryPathUri = typeof repositoryPath === "string" ? URI.file(repositoryPath) : undefined;
|
|
113
131
|
const worktreePath = metadata?.worktreePath;
|
|
@@ -149,7 +167,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
149
167
|
this.isNewChatSessionContext.set(true);
|
|
150
168
|
}
|
|
151
169
|
let newSession;
|
|
152
|
-
if (target === AgentSessionProviders.Background
|
|
170
|
+
if (target === AgentSessionProviders.Background) {
|
|
153
171
|
newSession = this.instantiationService.createInstance(LocalNewSession, sessionResource, defaultRepoUri);
|
|
154
172
|
} else {
|
|
155
173
|
newSession = this.instantiationService.createInstance(RemoteNewSession, sessionResource, target);
|
|
@@ -277,15 +295,15 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
277
295
|
if (this.isNewChatSessionContext.get()) {
|
|
278
296
|
return;
|
|
279
297
|
}
|
|
280
|
-
this.isNewChatSessionContext.set(true);
|
|
281
298
|
this.setActiveSession(undefined);
|
|
299
|
+
this.isNewChatSessionContext.set(true);
|
|
282
300
|
}
|
|
283
301
|
setActiveSession(session) {
|
|
284
302
|
let activeSessionItem;
|
|
285
303
|
if (session) {
|
|
286
304
|
if (isAgentSession(session)) {
|
|
287
305
|
this.lastSelectedSession = session.resource;
|
|
288
|
-
const [repository, worktree] = this.getRepositoryFromMetadata(session
|
|
306
|
+
const [repository, worktree] = this.getRepositoryFromMetadata(session);
|
|
289
307
|
activeSessionItem = {
|
|
290
308
|
isUntitled: this.chatService.getSession(session.resource)?.contributedChatSession?.isUntitled ?? true,
|
|
291
309
|
label: session.label,
|
|
@@ -332,6 +350,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
332
350
|
} else {
|
|
333
351
|
this.logService.trace("[ActiveSessionService] Active session cleared");
|
|
334
352
|
}
|
|
353
|
+
this._isBackgroundProvider.set(activeSessionItem?.providerType === AgentSessionProviders.Background);
|
|
335
354
|
this._activeSession.set(activeSessionItem, undefined);
|
|
336
355
|
}
|
|
337
356
|
equalsSessionItem(a, b) {
|
|
@@ -341,7 +360,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
341
360
|
if (!a || !b) {
|
|
342
361
|
return false;
|
|
343
362
|
}
|
|
344
|
-
return (a.label === b.label && ( a.resource.toString()) === ( b.resource.toString()) && a.repository?.toString() === b.repository?.toString() && a.worktree?.toString() === b.worktree?.toString());
|
|
363
|
+
return (a.label === b.label && ( a.resource.toString()) === ( b.resource.toString()) && a.repository?.toString() === b.repository?.toString() && a.worktree?.toString() === b.worktree?.toString() && a.providerType === b.providerType);
|
|
345
364
|
}
|
|
346
365
|
async commitWorktreeFiles(session, fileUris) {
|
|
347
366
|
const worktreeUri = session.worktree;
|
|
@@ -375,4 +394,4 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
375
394
|
};
|
|
376
395
|
SessionsManagementService = ( __decorate([( __param(0, IStorageService)), ( __param(1, IUriIdentityService)), ( __param(2, IAgentSessionsService)), ( __param(3, IChatSessionsService)), ( __param(4, IChatWidgetService)), ( __param(5, IChatService)), ( __param(6, IInstantiationService)), ( __param(7, ILogService)), ( __param(8, IContextKeyService)), ( __param(9, ICommandService)), ( __param(10, ILanguageModelsService))], SessionsManagementService));
|
|
377
396
|
|
|
378
|
-
export { IsNewChatSessionContext, SessionsManagementService };
|
|
397
|
+
export { IsActiveSessionBackgroundProviderContext, IsNewChatSessionContext, SessionsManagementService };
|
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(4690, "Chat: {0}", widget.viewModel.model.title)) : ( localize(4691, "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(4692, "New chat response."))
|
|
129
129
|
}, cts.token);
|
|
130
130
|
this.toasts.deleteAndDispose(disposable);
|
|
131
131
|
if (clicked) {
|
package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js
CHANGED
|
@@ -76,29 +76,29 @@ function getToolSpecificDataDescription(toolSpecificData) {
|
|
|
76
76
|
{
|
|
77
77
|
const parts = [];
|
|
78
78
|
if (toolSpecificData.agentName) {
|
|
79
|
-
parts.push(( localize(
|
|
79
|
+
parts.push(( localize(4693, "Agent: {0}", toolSpecificData.agentName)));
|
|
80
80
|
}
|
|
81
81
|
if (toolSpecificData.description) {
|
|
82
82
|
parts.push(toolSpecificData.description);
|
|
83
83
|
}
|
|
84
84
|
if (toolSpecificData.prompt) {
|
|
85
|
-
parts.push(( localize(
|
|
85
|
+
parts.push(( localize(4694, "Task: {0}", toolSpecificData.prompt)));
|
|
86
86
|
}
|
|
87
87
|
return parts.join(". ") || "";
|
|
88
88
|
}
|
|
89
89
|
case "extensions":
|
|
90
|
-
return toolSpecificData.extensions.length > 0 ? ( localize(
|
|
90
|
+
return toolSpecificData.extensions.length > 0 ? ( localize(4695, "Extensions: {0}", toolSpecificData.extensions.join(", "))) : "";
|
|
91
91
|
case "todoList":
|
|
92
92
|
{
|
|
93
93
|
const todos = toolSpecificData.todoList;
|
|
94
94
|
if (todos.length === 0) {
|
|
95
95
|
return "";
|
|
96
96
|
}
|
|
97
|
-
const todoDescriptions = ( todos.map(t => ( localize(
|
|
98
|
-
return localize(
|
|
97
|
+
const todoDescriptions = ( todos.map(t => ( localize(4696, "{0} ({1})", t.title, t.status))));
|
|
98
|
+
return localize(4697, "{0} items: {1}", todos.length, todoDescriptions.join("; "));
|
|
99
99
|
}
|
|
100
100
|
case "pullRequest":
|
|
101
|
-
return localize(
|
|
101
|
+
return localize(4698, "PR: {0} by {1}", toolSpecificData.title, toolSpecificData.author);
|
|
102
102
|
case "input":
|
|
103
103
|
return typeof toolSpecificData.rawInput === "string" ? toolSpecificData.rawInput : JSON.stringify(toolSpecificData.rawInput);
|
|
104
104
|
case "resources":
|
|
@@ -114,13 +114,13 @@ function getToolSpecificDataDescription(toolSpecificData) {
|
|
|
114
114
|
return v.fsPath || v.path;
|
|
115
115
|
}
|
|
116
116
|
})).join(", ");
|
|
117
|
-
return localize(
|
|
117
|
+
return localize(4699, "Resources: {0}", paths);
|
|
118
118
|
}
|
|
119
119
|
case "simpleToolInvocation":
|
|
120
120
|
{
|
|
121
121
|
const inputText = toolSpecificData.input;
|
|
122
122
|
const outputText = toolSpecificData.output;
|
|
123
|
-
return localize(
|
|
123
|
+
return localize(4700, "Input: {0}, Output: {1}", inputText, outputText);
|
|
124
124
|
}
|
|
125
125
|
default:
|
|
126
126
|
return "";
|
|
@@ -149,12 +149,12 @@ function getResultDetailsDescription(resultDetails) {
|
|
|
149
149
|
}
|
|
150
150
|
if (isOutputDetailsSerialized(resultDetails)) {
|
|
151
151
|
return {
|
|
152
|
-
input: ( localize(
|
|
152
|
+
input: ( localize(4701, "{0} data", resultDetails.output.mimeType))
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
155
|
if (isToolResultOutputDetails(resultDetails)) {
|
|
156
156
|
return {
|
|
157
|
-
input: ( localize(
|
|
157
|
+
input: ( localize(4701, "{0} data", resultDetails.output.mimeType))
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
160
|
return {};
|
|
@@ -178,13 +178,13 @@ function getToolInvocationA11yDescription(
|
|
|
178
178
|
if (isComplete && resultDetails) {
|
|
179
179
|
const details = getResultDetailsDescription(resultDetails);
|
|
180
180
|
if (details.isError) {
|
|
181
|
-
parts.unshift(( localize(
|
|
181
|
+
parts.unshift(( localize(4702, "Errored")));
|
|
182
182
|
}
|
|
183
183
|
if (details.input && !toolDataDesc) {
|
|
184
|
-
parts.push(( localize(
|
|
184
|
+
parts.push(( localize(4703, "Input: {0}", details.input)));
|
|
185
185
|
}
|
|
186
186
|
if (details.files && details.files.length > 0) {
|
|
187
|
-
parts.push(( localize(
|
|
187
|
+
parts.push(( localize(4704, "Files: {0}", details.files.join(", "))));
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
return parts.join(". ");
|
|
@@ -246,7 +246,7 @@ class ChatResponseAccessibleProvider extends Disposable {
|
|
|
246
246
|
const thinkingValue = Array.isArray(part.value) ? part.value.join("") : (part.value || "");
|
|
247
247
|
const trimmed = thinkingValue.trim();
|
|
248
248
|
if (trimmed) {
|
|
249
|
-
contentParts.push(( localize(
|
|
249
|
+
contentParts.push(( localize(4705, "Thinking: {0}", trimmed)));
|
|
250
250
|
}
|
|
251
251
|
break;
|
|
252
252
|
}
|
|
@@ -303,7 +303,7 @@ class ChatResponseAccessibleProvider extends Disposable {
|
|
|
303
303
|
contentParts.push(toolContent);
|
|
304
304
|
} else if (state.type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
|
|
305
305
|
const postApprovalDetails = isToolResultInputOutputDetails(state.resultDetails) ? state.resultDetails.input : isToolResultOutputDetails(state.resultDetails) ? undefined : toolContentToA11yString(state.contentForModel);
|
|
306
|
-
contentParts.push(( localize(
|
|
306
|
+
contentParts.push(( localize(4706, "Approve results of {0}? Result: ", part.toolId)) + (postApprovalDetails ?? ""));
|
|
307
307
|
} else {
|
|
308
308
|
const resultDetails = IChatToolInvocation.resultDetails(part);
|
|
309
309
|
const isComplete = IChatToolInvocation.isComplete(part);
|
|
@@ -22,11 +22,11 @@ class AnnounceChatConfirmationAction extends Action2 {
|
|
|
22
22
|
super({
|
|
23
23
|
id: ACTION_ID_FOCUS_CHAT_CONFIRMATION,
|
|
24
24
|
title: {
|
|
25
|
-
value: ( localize(
|
|
25
|
+
value: ( localize(4707, "Focus Chat Confirmation")),
|
|
26
26
|
original: "Focus Chat Confirmation"
|
|
27
27
|
},
|
|
28
28
|
category: {
|
|
29
|
-
value: ( localize(
|
|
29
|
+
value: ( localize(4708, "Chat")),
|
|
30
30
|
original: "Chat"
|
|
31
31
|
},
|
|
32
32
|
precondition: ChatContextKeys.enabled,
|
|
@@ -42,12 +42,12 @@ class AnnounceChatConfirmationAction extends Action2 {
|
|
|
42
42
|
const chatWidgetService = accessor.get(IChatWidgetService);
|
|
43
43
|
const pendingWidget = chatWidgetService.getAllWidgets().find(widget => widget.viewModel?.model.requestNeedsInput.get());
|
|
44
44
|
if (!pendingWidget) {
|
|
45
|
-
alert(( localize(
|
|
45
|
+
alert(( localize(4709, "No active chat session found.")));
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
48
|
const viewModel = pendingWidget.viewModel;
|
|
49
49
|
if (!viewModel) {
|
|
50
|
-
alert(( localize(
|
|
50
|
+
alert(( localize(4710, "Chat interface not ready.")));
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
let firstConfirmationElement;
|
|
@@ -65,7 +65,7 @@ class AnnounceChatConfirmationAction extends Action2 {
|
|
|
65
65
|
firstConfirmationElement.focus();
|
|
66
66
|
}
|
|
67
67
|
} else {
|
|
68
|
-
alert(( localize(
|
|
68
|
+
alert(( localize(4711, "No chat confirmation required")));
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -74,11 +74,11 @@ class ToggleThinkingContentAccessibleViewAction extends Action2 {
|
|
|
74
74
|
super({
|
|
75
75
|
id: ACTION_ID_TOGGLE_THINKING_CONTENT_ACCESSIBLE_VIEW,
|
|
76
76
|
title: {
|
|
77
|
-
value: ( localize(
|
|
77
|
+
value: ( localize(4712, "Toggle Thinking Content in Accessible View")),
|
|
78
78
|
original: "Toggle Thinking Content in Accessible View"
|
|
79
79
|
},
|
|
80
80
|
category: {
|
|
81
|
-
value: ( localize(
|
|
81
|
+
value: ( localize(4708, "Chat")),
|
|
82
82
|
original: "Chat"
|
|
83
83
|
},
|
|
84
84
|
precondition: ChatContextKeys.enabled,
|
|
@@ -100,7 +100,7 @@ class ToggleThinkingContentAccessibleViewAction extends Action2 {
|
|
|
100
100
|
StorageScope.PROFILE,
|
|
101
101
|
StorageTarget.USER
|
|
102
102
|
);
|
|
103
|
-
alert(updatedValue ? ( localize(
|
|
103
|
+
alert(updatedValue ? ( localize(4713, "Thinking content will be included in the accessible view.")) : ( localize(4714, "Thinking content will be hidden from the accessible view.")));
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
function registerChatAccessibilityActions() {
|