@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
|
@@ -4,10 +4,6 @@ import { InlineChatController } from "@codingame/monaco-vscode-katex-common/vsco
|
|
|
4
4
|
import { Action2, IAction2Options } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
|
|
5
5
|
import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
6
6
|
export declare const START_INLINE_CHAT: import("@codingame/monaco-vscode-api/vscode/vs/base/common/themables").ThemeIcon;
|
|
7
|
-
export interface IHoldForSpeech {
|
|
8
|
-
(accessor: ServicesAccessor, controller: InlineChatController, source: Action2): void;
|
|
9
|
-
}
|
|
10
|
-
export declare function setHoldForSpeech(holdForSpeech: IHoldForSpeech): void;
|
|
11
7
|
export declare class StartSessionAction extends Action2 {
|
|
12
8
|
constructor();
|
|
13
9
|
run(accessor: ServicesAccessor, ...args: unknown[]): any;
|
|
@@ -56,6 +52,10 @@ export declare class AskInChatAction extends EditorAction2 {
|
|
|
56
52
|
constructor();
|
|
57
53
|
runEditorCommand(accessor: ServicesAccessor, editor: ICodeEditor): Promise<void>;
|
|
58
54
|
}
|
|
55
|
+
export declare class DismissEditorAffordanceAction extends EditorAction2 {
|
|
56
|
+
constructor();
|
|
57
|
+
runEditorCommand(_accessor: ServicesAccessor, editor: ICodeEditor): void;
|
|
58
|
+
}
|
|
59
59
|
export declare class QueueInChatAction extends AbstractInlineChatAction {
|
|
60
60
|
constructor();
|
|
61
61
|
runInlineChatCommand(accessor: ServicesAccessor, ctrl: InlineChatController, editor: ICodeEditor): Promise<void>;
|
|
@@ -7,13 +7,12 @@ import { EmbeddedDiffEditorWidget } from '@codingame/monaco-vscode-api/vscode/vs
|
|
|
7
7
|
import { EmbeddedCodeEditorWidget } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/codeEditor/embeddedCodeEditorWidget';
|
|
8
8
|
import { EditorContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/editorContextKeys';
|
|
9
9
|
import { InlineChatController, InlineChatRunOptions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
|
|
10
|
-
import { ACTION_ACCEPT_CHANGES, CTX_INLINE_CHAT_V1_ENABLED, CTX_INLINE_CHAT_V2_ENABLED, CTX_INLINE_CHAT_POSSIBLE, CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT, ACTION_START, InlineChatConfigKeys, CTX_INLINE_CHAT_OUTER_CURSOR_POSITION, CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_FOCUSED, CTX_FIX_DIAGNOSTICS_ENABLED, CTX_HOVER_MODE, CTX_INLINE_CHAT_PENDING_CONFIRMATION, CTX_INLINE_CHAT_INPUT_WIDGET_FOCUSED, CTX_INLINE_CHAT_INPUT_HAS_TEXT, ACTION_ASK_IN_CHAT } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
|
|
10
|
+
import { ACTION_ACCEPT_CHANGES, CTX_INLINE_CHAT_V1_ENABLED, CTX_INLINE_CHAT_V2_ENABLED, CTX_INLINE_CHAT_POSSIBLE, CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT, ACTION_START, InlineChatConfigKeys, CTX_INLINE_CHAT_OUTER_CURSOR_POSITION, CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_FOCUSED, CTX_FIX_DIAGNOSTICS_ENABLED, CTX_HOVER_MODE, CTX_INLINE_CHAT_PENDING_CONFIRMATION, CTX_INLINE_CHAT_INPUT_WIDGET_FOCUSED, CTX_INLINE_CHAT_INPUT_HAS_TEXT, ACTION_ASK_IN_CHAT, CTX_INLINE_CHAT_AFFORDANCE_VISIBLE } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
|
|
11
11
|
import { ctxHasRequestInProgress, ctxHasEditorModification } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys';
|
|
12
12
|
import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
13
13
|
import { Action2, MenuId, MenuRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
14
14
|
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
15
15
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
16
|
-
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
17
16
|
import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
|
|
18
17
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
19
18
|
import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service';
|
|
@@ -29,14 +28,14 @@ import { ChatRequestQueueKind } from '@codingame/monaco-vscode-api/vscode/vs/wor
|
|
|
29
28
|
|
|
30
29
|
CommandsRegistry.registerCommandAlias("interactiveEditor.start", "inlineChat.start");
|
|
31
30
|
CommandsRegistry.registerCommandAlias("interactive.acceptChanges", ACTION_ACCEPT_CHANGES);
|
|
32
|
-
const START_INLINE_CHAT = registerIcon("start-inline-chat", Codicon.sparkle, ( localize(
|
|
31
|
+
const START_INLINE_CHAT = registerIcon("start-inline-chat", Codicon.sparkle, ( localize(9638, "Icon which spawns the inline chat from the editor toolbar.")));
|
|
33
32
|
const inlineChatContextKey = ( ContextKeyExpr.and(( ContextKeyExpr.or(CTX_INLINE_CHAT_V1_ENABLED, CTX_INLINE_CHAT_V2_ENABLED)), CTX_INLINE_CHAT_POSSIBLE, EditorContextKeys.writable, ( EditorContextKeys.editorSimpleInput.negate())));
|
|
34
33
|
class StartSessionAction extends Action2 {
|
|
35
34
|
constructor() {
|
|
36
35
|
super({
|
|
37
36
|
id: ACTION_START,
|
|
38
|
-
title: ( localize2(
|
|
39
|
-
shortTitle: ( localize2(
|
|
37
|
+
title: ( localize2(9639, "Open Inline Chat")),
|
|
38
|
+
shortTitle: ( localize2(9640, "Inline Chat")),
|
|
40
39
|
category: AbstractInlineChatAction.category,
|
|
41
40
|
f1: true,
|
|
42
41
|
precondition: ( ContextKeyExpr.and(inlineChatContextKey, ( CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT.negate()))),
|
|
@@ -92,7 +91,7 @@ class StartSessionAction extends Action2 {
|
|
|
92
91
|
}
|
|
93
92
|
if (!options?.message && configServce.getValue(InlineChatConfigKeys.RenderMode) === "hover") {
|
|
94
93
|
const selection = editor.getSelection();
|
|
95
|
-
const placeholder = selection && !selection.isEmpty() ? ( localize(
|
|
94
|
+
const placeholder = selection && !selection.isEmpty() ? ( localize(9641, "Describe how to change this")) : ( localize(9642, "Describe what to generate"));
|
|
96
95
|
await ctrl.inputOverlayWidget.showMenuAtSelection(placeholder);
|
|
97
96
|
return;
|
|
98
97
|
}
|
|
@@ -111,8 +110,8 @@ MenuRegistry.appendMenuItem(MenuId.InlineChatEditorAffordance, {
|
|
|
111
110
|
)),
|
|
112
111
|
command: {
|
|
113
112
|
id: ACTION_START,
|
|
114
|
-
title: ( localize(
|
|
115
|
-
shortTitle: ( localize(
|
|
113
|
+
title: ( localize(9643, "Ask for Edits")),
|
|
114
|
+
shortTitle: ( localize(9644, "Ask for Edits")),
|
|
116
115
|
icon: Codicon.sparkle
|
|
117
116
|
}
|
|
118
117
|
});
|
|
@@ -120,7 +119,7 @@ class FocusInlineChat extends EditorAction2 {
|
|
|
120
119
|
constructor() {
|
|
121
120
|
super({
|
|
122
121
|
id: "inlineChat.focus",
|
|
123
|
-
title: ( localize2(
|
|
122
|
+
title: ( localize2(9645, "Focus Input")),
|
|
124
123
|
f1: true,
|
|
125
124
|
category: AbstractInlineChatAction.category,
|
|
126
125
|
precondition: ( ContextKeyExpr.and(EditorContextKeys.editorTextFocus, CTX_INLINE_CHAT_VISIBLE, ( CTX_INLINE_CHAT_FOCUSED.negate()), ( CONTEXT_ACCESSIBILITY_MODE_ENABLED.negate()))),
|
|
@@ -141,7 +140,7 @@ class FocusInlineChat extends EditorAction2 {
|
|
|
141
140
|
}
|
|
142
141
|
class AbstractInlineChatAction extends EditorAction2 {
|
|
143
142
|
static {
|
|
144
|
-
this.category = ( localize2(
|
|
143
|
+
this.category = ( localize2(9646, "Inline Chat"));
|
|
145
144
|
}
|
|
146
145
|
constructor(desc) {
|
|
147
146
|
const massageMenu = menu => {
|
|
@@ -207,10 +206,9 @@ class FixDiagnosticsAction extends AbstractInlineChatAction {
|
|
|
207
206
|
constructor() {
|
|
208
207
|
super({
|
|
209
208
|
id: "inlineChat.fixDiagnostics",
|
|
210
|
-
title: ( localize2(
|
|
209
|
+
title: ( localize2(9647, "Fix")),
|
|
211
210
|
icon: Codicon.editSparkle,
|
|
212
211
|
precondition: ( ContextKeyExpr.and(
|
|
213
|
-
inlineChatContextKey,
|
|
214
212
|
CTX_FIX_DIAGNOSTICS_ENABLED,
|
|
215
213
|
EditorContextKeys.selectionHasDiagnostics,
|
|
216
214
|
( CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT.negate())
|
|
@@ -237,6 +235,7 @@ class FixDiagnosticsAction extends AbstractInlineChatAction {
|
|
|
237
235
|
});
|
|
238
236
|
}
|
|
239
237
|
runInlineChatCommand(_accessor, ctrl, _editor, ..._args) {
|
|
238
|
+
ctrl.inputWidget.hide();
|
|
240
239
|
ctrl.run({
|
|
241
240
|
autoSend: true,
|
|
242
241
|
attachDiagnostics: true
|
|
@@ -263,7 +262,7 @@ class KeepSessionAction2 extends KeepOrUndoSessionAction {
|
|
|
263
262
|
constructor() {
|
|
264
263
|
super(true, {
|
|
265
264
|
id: "inlineChat2.keep",
|
|
266
|
-
title: ( localize2(
|
|
265
|
+
title: ( localize2(9648, "Keep")),
|
|
267
266
|
f1: true,
|
|
268
267
|
icon: Codicon.check,
|
|
269
268
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE, ( ctxHasRequestInProgress.negate()), ctxHasEditorModification)),
|
|
@@ -288,7 +287,7 @@ class UndoSessionAction2 extends KeepOrUndoSessionAction {
|
|
|
288
287
|
constructor() {
|
|
289
288
|
super(false, {
|
|
290
289
|
id: "inlineChat2.undo",
|
|
291
|
-
title: ( localize2(
|
|
290
|
+
title: ( localize2(9649, "Undo")),
|
|
292
291
|
f1: true,
|
|
293
292
|
icon: Codicon.discard,
|
|
294
293
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE, CTX_HOVER_MODE)),
|
|
@@ -310,7 +309,7 @@ class UndoAndCloseSessionAction2 extends KeepOrUndoSessionAction {
|
|
|
310
309
|
constructor() {
|
|
311
310
|
super(false, {
|
|
312
311
|
id: "inlineChat2.close",
|
|
313
|
-
title: ( localize2(
|
|
312
|
+
title: ( localize2(9650, "Close")),
|
|
314
313
|
f1: true,
|
|
315
314
|
icon: Codicon.close,
|
|
316
315
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE)),
|
|
@@ -332,7 +331,7 @@ class CancelSessionAction extends KeepOrUndoSessionAction {
|
|
|
332
331
|
constructor() {
|
|
333
332
|
super(false, {
|
|
334
333
|
id: "inlineChat2.cancel",
|
|
335
|
-
title: ( localize2(
|
|
334
|
+
title: ( localize2(9651, "Cancel")),
|
|
336
335
|
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_VISIBLE, ctxHasRequestInProgress)),
|
|
337
336
|
keybinding: [{
|
|
338
337
|
when: ( ContextKeyExpr.or(EditorContextKeys.focus, ChatContextKeys.inputHasFocus)),
|
|
@@ -352,7 +351,7 @@ class SubmitInlineChatInputAction extends AbstractInlineChatAction {
|
|
|
352
351
|
constructor() {
|
|
353
352
|
super({
|
|
354
353
|
id: "inlineChat.submitInput",
|
|
355
|
-
title: ( localize2(
|
|
354
|
+
title: ( localize2(9652, "Send")),
|
|
356
355
|
icon: Codicon.send,
|
|
357
356
|
precondition: ( ContextKeyExpr.and(
|
|
358
357
|
CTX_INLINE_CHAT_INPUT_WIDGET_FOCUSED,
|
|
@@ -387,7 +386,7 @@ class HideInlineChatInputAction extends AbstractInlineChatAction {
|
|
|
387
386
|
constructor() {
|
|
388
387
|
super({
|
|
389
388
|
id: "inlineChat.hideInput",
|
|
390
|
-
title: ( localize2(
|
|
389
|
+
title: ( localize2(9653, "Hide Input")),
|
|
391
390
|
precondition: CTX_INLINE_CHAT_INPUT_WIDGET_FOCUSED,
|
|
392
391
|
keybinding: {
|
|
393
392
|
when: CTX_INLINE_CHAT_INPUT_WIDGET_FOCUSED,
|
|
@@ -404,7 +403,7 @@ class AskInChatAction extends EditorAction2 {
|
|
|
404
403
|
constructor() {
|
|
405
404
|
super({
|
|
406
405
|
id: ACTION_ASK_IN_CHAT,
|
|
407
|
-
title: ( localize2(
|
|
406
|
+
title: ( localize2(9654, "Ask in Chat")),
|
|
408
407
|
category: AbstractInlineChatAction.category,
|
|
409
408
|
f1: true,
|
|
410
409
|
precondition: ( ContextKeyExpr.and(inlineChatContextKey, CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT)),
|
|
@@ -438,15 +437,32 @@ class AskInChatAction extends EditorAction2 {
|
|
|
438
437
|
}
|
|
439
438
|
const entry = chatEditingService.editingSessionsObs.get().find(value => value.getEntry(editor.getModel().uri));
|
|
440
439
|
if (entry) {
|
|
441
|
-
ctrl.inputOverlayWidget.showMenuAtSelection(( localize(
|
|
440
|
+
ctrl.inputOverlayWidget.showMenuAtSelection(( localize(9655, "Describe how to proceed in Chat")));
|
|
442
441
|
}
|
|
443
442
|
}
|
|
444
443
|
}
|
|
444
|
+
class DismissEditorAffordanceAction extends EditorAction2 {
|
|
445
|
+
constructor() {
|
|
446
|
+
super({
|
|
447
|
+
id: "inlineChat.dismissEditorAffordance",
|
|
448
|
+
title: ( localize2(9656, "Dismiss Editor Affordance")),
|
|
449
|
+
precondition: ( ContextKeyExpr.and(CTX_INLINE_CHAT_AFFORDANCE_VISIBLE, ( ContextKeyExpr.equals("config.inlineChat.affordance", "editor")))),
|
|
450
|
+
keybinding: {
|
|
451
|
+
when: EditorContextKeys.editorTextFocus,
|
|
452
|
+
weight: KeybindingWeight.EditorContrib,
|
|
453
|
+
primary: KeyCode.Escape
|
|
454
|
+
}
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
runEditorCommand(_accessor, editor) {
|
|
458
|
+
InlineChatController.get(editor)?.inputOverlayWidget.dismiss();
|
|
459
|
+
}
|
|
460
|
+
}
|
|
445
461
|
class QueueInChatAction extends AbstractInlineChatAction {
|
|
446
462
|
constructor() {
|
|
447
463
|
super({
|
|
448
464
|
id: "inlineChat.queueInChat",
|
|
449
|
-
title: ( localize2(
|
|
465
|
+
title: ( localize2(9657, "Queue in Chat")),
|
|
450
466
|
icon: Codicon.arrowUp,
|
|
451
467
|
precondition: ( ContextKeyExpr.and(
|
|
452
468
|
CTX_INLINE_CHAT_INPUT_WIDGET_FOCUSED,
|
|
@@ -496,4 +512,4 @@ class QueueInChatAction extends AbstractInlineChatAction {
|
|
|
496
512
|
}
|
|
497
513
|
}
|
|
498
514
|
|
|
499
|
-
export { AbstractInlineChatAction, AskInChatAction, CancelSessionAction, FixDiagnosticsAction, FocusInlineChat, HideInlineChatInputAction, KeepSessionAction2, QueueInChatAction, START_INLINE_CHAT, StartSessionAction, SubmitInlineChatInputAction, UndoAndCloseSessionAction2, UndoSessionAction2 };
|
|
515
|
+
export { AbstractInlineChatAction, AskInChatAction, CancelSessionAction, DismissEditorAffordanceAction, FixDiagnosticsAction, FocusInlineChat, HideInlineChatInputAction, KeepSessionAction2, QueueInChatAction, START_INLINE_CHAT, StartSessionAction, SubmitInlineChatInputAction, UndoAndCloseSessionAction2, UndoSessionAction2 };
|
|
@@ -41,14 +41,14 @@ registerWorkbenchContribution2(
|
|
|
41
41
|
( Registry.as(Extensions.Configuration)).registerConfiguration({
|
|
42
42
|
...{
|
|
43
43
|
id: "inlineChat",
|
|
44
|
-
title: ( localize(
|
|
44
|
+
title: ( localize(9663, "Inline Chat")),
|
|
45
45
|
order: 30,
|
|
46
46
|
type: "object"
|
|
47
47
|
},
|
|
48
48
|
properties: {
|
|
49
49
|
[InlineChatConfigKeys.DefaultModel]: {
|
|
50
50
|
description: ( localize(
|
|
51
|
-
|
|
51
|
+
9664,
|
|
52
52
|
"Select the default language model to use for inline chat from the available providers. Model names may include the provider in parentheses, for example 'Claude Haiku 4.5 (copilot)'."
|
|
53
53
|
)),
|
|
54
54
|
type: "string",
|
|
@@ -212,7 +212,7 @@ let InlineChatEscapeToolContribution = class InlineChatEscapeToolContribution ex
|
|
|
212
212
|
source: ToolDataSource.Internal,
|
|
213
213
|
canBeReferencedInPrompt: false,
|
|
214
214
|
alwaysDisplayInputOutput: false,
|
|
215
|
-
displayName: ( localize(
|
|
215
|
+
displayName: ( localize(9671, "Inline Chat to Panel Chat")),
|
|
216
216
|
modelDescription: "Moves the inline chat session to the richer panel chat which supports edits across files, creating and deleting files, multi-turn conversations between the user and the assistant, and access to more IDE tools, like retrieve problems, interact with source control, run terminal commands etc."
|
|
217
217
|
};
|
|
218
218
|
}
|
|
@@ -266,16 +266,16 @@ let InlineChatEscapeToolContribution = class InlineChatEscapeToolContribution ex
|
|
|
266
266
|
} else {
|
|
267
267
|
result = await dialogService.confirm({
|
|
268
268
|
type: "question",
|
|
269
|
-
title: ( localize(
|
|
270
|
-
message: ( localize(
|
|
269
|
+
title: ( localize(9672, "Do you want to continue in Chat view?")),
|
|
270
|
+
message: ( localize(9673, "Do you want to continue in Chat view?")),
|
|
271
271
|
detail: ( localize(
|
|
272
|
-
|
|
272
|
+
9674,
|
|
273
273
|
"Inline chat is designed for making single-file code changes. Continue your request in the Chat view or rephrase it for inline chat."
|
|
274
274
|
)),
|
|
275
|
-
primaryButton: ( localize(
|
|
276
|
-
cancelButton: ( localize(
|
|
275
|
+
primaryButton: ( localize(9675, "Continue in Chat view")),
|
|
276
|
+
cancelButton: ( localize(9676, "Cancel")),
|
|
277
277
|
checkbox: {
|
|
278
|
-
label: ( localize(
|
|
278
|
+
label: ( localize(9677, "Don't ask again")),
|
|
279
279
|
checked: false
|
|
280
280
|
}
|
|
281
281
|
});
|
|
@@ -322,7 +322,7 @@ registerAction2(class ResetMoveToPanelChatChoice extends Action2 {
|
|
|
322
322
|
super({
|
|
323
323
|
id: "inlineChat.resetMoveToPanelChatChoice",
|
|
324
324
|
precondition: ( ChatContextKeys.Setup.hidden.negate()),
|
|
325
|
-
title: ( localize2(
|
|
325
|
+
title: ( localize2(9678, "Reset Choice for 'Move Inline Chat to Panel Chat'")),
|
|
326
326
|
f1: true
|
|
327
327
|
});
|
|
328
328
|
}
|
|
@@ -82,8 +82,8 @@ let McpPromptArgumentPick = class McpPromptArgumentPick extends Disposable {
|
|
|
82
82
|
const arg = prompt.arguments[i];
|
|
83
83
|
const restore = backSnapshots.at(i);
|
|
84
84
|
quickPick.step = i + 1;
|
|
85
|
-
quickPick.placeholder = arg.required ? arg.description : `${arg.description || ""} (${( localize(
|
|
86
|
-
quickPick.title = ( localize(
|
|
85
|
+
quickPick.placeholder = arg.required ? arg.description : `${arg.description || ""} (${( localize(10264, "Optional"))})`;
|
|
86
|
+
quickPick.title = ( localize(10265, "Value for: {0}", arg.title || arg.name));
|
|
87
87
|
quickPick.value = restore?.value ?? ((args.hasOwnProperty(arg.name) && args[arg.name]) || "");
|
|
88
88
|
quickPick.items = restore?.items ?? [];
|
|
89
89
|
quickPick.activeItems = restore?.activeItems ?? [];
|
|
@@ -105,7 +105,7 @@ let McpPromptArgumentPick = class McpPromptArgumentPick extends Disposable {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
quickPick.value = "";
|
|
108
|
-
quickPick.placeholder = ( localize(
|
|
108
|
+
quickPick.placeholder = ( localize(10266, "Loading..."));
|
|
109
109
|
quickPick.busy = true;
|
|
110
110
|
return args;
|
|
111
111
|
}
|
|
@@ -116,13 +116,13 @@ let McpPromptArgumentPick = class McpPromptArgumentPick extends Disposable {
|
|
|
116
116
|
const store = ( new DisposableStore());
|
|
117
117
|
const input$ = observableValue(this, quickPick.value);
|
|
118
118
|
const asyncPicks = [{
|
|
119
|
-
name: ( localize(
|
|
119
|
+
name: ( localize(10267, "Suggestions")),
|
|
120
120
|
observer: this._promptCompletions(arg, input$, argsSoFar)
|
|
121
121
|
}, {
|
|
122
|
-
name: ( localize(
|
|
122
|
+
name: ( localize(10268, "Active File")),
|
|
123
123
|
observer: this._activeFileCompletions()
|
|
124
124
|
}, {
|
|
125
|
-
name: ( localize(
|
|
125
|
+
name: ( localize(10269, "Files")),
|
|
126
126
|
observer: this._fileCompletions(input$)
|
|
127
127
|
}];
|
|
128
128
|
store.add(autorun(reader => {
|
|
@@ -133,15 +133,15 @@ let McpPromptArgumentPick = class McpPromptArgumentPick extends Disposable {
|
|
|
133
133
|
let items = [];
|
|
134
134
|
items.push({
|
|
135
135
|
id: "insert-text",
|
|
136
|
-
label: ( localize(
|
|
136
|
+
label: ( localize(10270, "Insert as text")),
|
|
137
137
|
iconClass: ThemeIcon.asClassName(Codicon.textSize),
|
|
138
138
|
action: "text",
|
|
139
139
|
alwaysShow: true
|
|
140
140
|
});
|
|
141
141
|
items.push({
|
|
142
142
|
id: "run-command",
|
|
143
|
-
label: ( localize(
|
|
144
|
-
description: ( localize(
|
|
143
|
+
label: ( localize(10271, "Run as Command")),
|
|
144
|
+
description: ( localize(10272, "Inserts the command output as the prompt argument")),
|
|
145
145
|
iconClass: ThemeIcon.asClassName(Codicon.terminal),
|
|
146
146
|
action: "command",
|
|
147
147
|
alwaysShow: true
|
|
@@ -187,7 +187,7 @@ let McpPromptArgumentPick = class McpPromptArgumentPick extends Disposable {
|
|
|
187
187
|
store.add(quickPick.onDidAccept(() => {
|
|
188
188
|
const item = quickPick.selectedItems[0];
|
|
189
189
|
if (!quickPick.value && arg.required && (!item || item.action === "text" || item.action === "command")) {
|
|
190
|
-
quickPick.validationMessage = ( localize(
|
|
190
|
+
quickPick.validationMessage = ( localize(10273, "This argument is required"));
|
|
191
191
|
} else if (!item) {
|
|
192
192
|
resolve({
|
|
193
193
|
id: "insert-text",
|
|
@@ -322,7 +322,7 @@ let McpPromptArgumentPick = class McpPromptArgumentPick extends Disposable {
|
|
|
322
322
|
const items = [];
|
|
323
323
|
items.push({
|
|
324
324
|
id: "active-file",
|
|
325
|
-
label: ( localize(
|
|
325
|
+
label: ( localize(10274, "Active File")),
|
|
326
326
|
description: this._labelService.getUriLabel(resource),
|
|
327
327
|
iconClasses: getIconClasses(this._modelService, this._languageService, resource),
|
|
328
328
|
uri: resource,
|
|
@@ -332,10 +332,10 @@ let McpPromptArgumentPick = class McpPromptArgumentPick extends Disposable {
|
|
|
332
332
|
if (selection && selection.model && selection.range && !selection.range.isEmpty()) {
|
|
333
333
|
const selectedText = selection.model.getValueInRange(selection.range);
|
|
334
334
|
const lineCount = selection.range.endLineNumber - selection.range.startLineNumber + 1;
|
|
335
|
-
const description = lineCount === 1 ? ( localize(
|
|
335
|
+
const description = lineCount === 1 ? ( localize(10275, "line {0}", selection.range.startLineNumber)) : ( localize(10276, "{0} lines", lineCount));
|
|
336
336
|
items.push({
|
|
337
337
|
id: "selected-text",
|
|
338
|
-
label: ( localize(
|
|
338
|
+
label: ( localize(10277, "Selected Text")),
|
|
339
339
|
description,
|
|
340
340
|
selectedText,
|
|
341
341
|
iconClass: ThemeIcon.asClassName(Codicon.selection),
|
|
@@ -369,7 +369,7 @@ let McpPromptArgumentPick = class McpPromptArgumentPick extends Disposable {
|
|
|
369
369
|
async _getTerminalOutput(command, token) {
|
|
370
370
|
const terminal = (this._terminal ??= this._register(await this._terminalService.createTerminal({
|
|
371
371
|
config: {
|
|
372
|
-
name: ( localize(
|
|
372
|
+
name: ( localize(10278, "MCP Terminal")),
|
|
373
373
|
isTransient: true,
|
|
374
374
|
forceShellIntegration: true,
|
|
375
375
|
isFeatureTerminal: true
|
|
@@ -42,12 +42,12 @@ registerAction2(class extends NotebookAction {
|
|
|
42
42
|
super({
|
|
43
43
|
id: "notebook.cell.chat.start",
|
|
44
44
|
title: {
|
|
45
|
-
value: "$(sparkle) " + ( localize(
|
|
45
|
+
value: "$(sparkle) " + ( localize(10777, "Generate")),
|
|
46
46
|
original: "$(sparkle) Generate"
|
|
47
47
|
},
|
|
48
|
-
tooltip: ( localize(
|
|
48
|
+
tooltip: ( localize(10778, "Start Chat to Generate Code")),
|
|
49
49
|
metadata: {
|
|
50
|
-
description: ( localize(
|
|
50
|
+
description: ( localize(10778, "Start Chat to Generate Code")),
|
|
51
51
|
args: [{
|
|
52
52
|
name: "args",
|
|
53
53
|
schema: {
|
|
@@ -128,10 +128,10 @@ registerAction2(class extends NotebookAction {
|
|
|
128
128
|
super({
|
|
129
129
|
id: "notebook.cell.chat.startAtTop",
|
|
130
130
|
title: {
|
|
131
|
-
value: "$(sparkle) " + ( localize(
|
|
131
|
+
value: "$(sparkle) " + ( localize(10777, "Generate")),
|
|
132
132
|
original: "$(sparkle) Generate"
|
|
133
133
|
},
|
|
134
|
-
tooltip: ( localize(
|
|
134
|
+
tooltip: ( localize(10778, "Start Chat to Generate Code")),
|
|
135
135
|
f1: false,
|
|
136
136
|
menu: [{
|
|
137
137
|
id: MenuId.NotebookCellListTop,
|
|
@@ -149,8 +149,8 @@ MenuRegistry.appendMenuItem(MenuId.NotebookToolbar, {
|
|
|
149
149
|
command: {
|
|
150
150
|
id: "notebook.cell.chat.start",
|
|
151
151
|
icon: Codicon.sparkle,
|
|
152
|
-
title: ( localize(
|
|
153
|
-
tooltip: ( localize(
|
|
152
|
+
title: ( localize(10779, "Generate")),
|
|
153
|
+
tooltip: ( localize(10780, "Start Chat to Generate Code"))
|
|
154
154
|
},
|
|
155
155
|
order: -10,
|
|
156
156
|
group: "navigation/add",
|
|
@@ -160,9 +160,9 @@ class AcceptChangesAndRun extends EditorAction2 {
|
|
|
160
160
|
constructor() {
|
|
161
161
|
super({
|
|
162
162
|
id: "notebook.inlineChat.acceptChangesAndRun",
|
|
163
|
-
title: ( localize2(
|
|
164
|
-
shortTitle: ( localize(
|
|
165
|
-
tooltip: ( localize(
|
|
163
|
+
title: ( localize2(10781, "Accept and Run")),
|
|
164
|
+
shortTitle: ( localize(10782, "Accept & Run")),
|
|
165
|
+
tooltip: ( localize(10783, "Accept the changes and run the cell")),
|
|
166
166
|
icon: Codicon.check,
|
|
167
167
|
f1: true,
|
|
168
168
|
precondition: ( ContextKeyExpr.and(( NOTEBOOK_EDITOR_EDITABLE.isEqualTo(true)), CTX_INLINE_CHAT_VISIBLE)),
|
|
@@ -91,7 +91,7 @@ let NotebookChatContribution = class NotebookChatContribution extends Disposable
|
|
|
91
91
|
result.suggestions.push({
|
|
92
92
|
label: `${chatVariableLeader}${NotebookKernelVariableKey}`,
|
|
93
93
|
insertText: `${chatVariableLeader}${NotebookKernelVariableKey}:`,
|
|
94
|
-
detail: ( localize(
|
|
94
|
+
detail: ( localize(10784, "Pick a variable from the kernel")),
|
|
95
95
|
range,
|
|
96
96
|
kind: CompletionItemKind.Text,
|
|
97
97
|
command: {
|
|
@@ -198,7 +198,7 @@ class SelectAndInsertKernelVariableAction extends Action2 {
|
|
|
198
198
|
detail: variable.type
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
|
-
const placeHolder = quickPickItems.length > 0 ? ( localize(
|
|
201
|
+
const placeHolder = quickPickItems.length > 0 ? ( localize(10785, "Select a kernel variable")) : ( localize(10786, "No kernel variables found"));
|
|
202
202
|
const pickedVariable = await quickInputService.pick(quickPickItems, {
|
|
203
203
|
placeHolder
|
|
204
204
|
});
|
|
@@ -248,7 +248,7 @@ let KernelVariableContextPicker = class KernelVariableContextPicker {
|
|
|
248
248
|
this.editorService = editorService;
|
|
249
249
|
this.notebookKernelService = notebookKernelService;
|
|
250
250
|
this.type = "pickerPick";
|
|
251
|
-
this.label = ( localize(
|
|
251
|
+
this.label = ( localize(10787, "Kernel Variable..."));
|
|
252
252
|
this.icon = Codicon.serverEnvironment;
|
|
253
253
|
}
|
|
254
254
|
isEnabled(widget) {
|
|
@@ -287,7 +287,7 @@ let KernelVariableContextPicker = class KernelVariableContextPicker {
|
|
|
287
287
|
return result;
|
|
288
288
|
})();
|
|
289
289
|
return {
|
|
290
|
-
placeholder: ( localize(
|
|
290
|
+
placeholder: ( localize(10788, "Select a kernel variable")),
|
|
291
291
|
picks
|
|
292
292
|
};
|
|
293
293
|
}
|
|
@@ -297,7 +297,7 @@ registerAction2(class AddCellOutputToChatAction extends Action2 {
|
|
|
297
297
|
constructor() {
|
|
298
298
|
super({
|
|
299
299
|
id: "notebook.cellOutput.addToChat",
|
|
300
|
-
title: ( localize(
|
|
300
|
+
title: ( localize(10789, "Add Cell Output to Chat")),
|
|
301
301
|
menu: {
|
|
302
302
|
id: MenuId.NotebookOutputToolbar,
|
|
303
303
|
when: ( ContextKeyExpr.and(NOTEBOOK_CELL_HAS_OUTPUTS, ContextKeyExpr.in(
|
package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
3
3
|
import { RawContextKey } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
4
4
|
|
|
5
|
-
const CTX_NOTEBOOK_CHAT_HAS_AGENT = ( new RawContextKey("notebookChatAgentRegistered", false, ( localize(
|
|
5
|
+
const CTX_NOTEBOOK_CHAT_HAS_AGENT = ( new RawContextKey("notebookChatAgentRegistered", false, ( localize(10790, "Whether a chat agent for notebook is registered"))));
|
|
6
6
|
|
|
7
7
|
export { CTX_NOTEBOOK_CHAT_HAS_AGENT };
|
|
@@ -13,42 +13,42 @@ import { IRemoteCodingAgentsService } from '@codingame/monaco-vscode-api/vscode/
|
|
|
13
13
|
const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
14
14
|
extensionPoint: "remoteCodingAgents",
|
|
15
15
|
jsonSchema: {
|
|
16
|
-
description: ( localize(
|
|
16
|
+
description: ( localize(11868, "Contributes remote coding agent integrations to the chat widget.")),
|
|
17
17
|
type: "array",
|
|
18
18
|
items: {
|
|
19
19
|
type: "object",
|
|
20
20
|
properties: {
|
|
21
21
|
id: {
|
|
22
|
-
description: ( localize(
|
|
22
|
+
description: ( localize(11869, "A unique identifier for this item.")),
|
|
23
23
|
type: "string"
|
|
24
24
|
},
|
|
25
25
|
command: {
|
|
26
26
|
description: ( localize(
|
|
27
|
-
|
|
27
|
+
11870,
|
|
28
28
|
"Identifier of the command to execute. The command must be declared in the \"commands\" section."
|
|
29
29
|
)),
|
|
30
30
|
type: "string"
|
|
31
31
|
},
|
|
32
32
|
displayName: {
|
|
33
33
|
description: ( localize(
|
|
34
|
-
|
|
34
|
+
11871,
|
|
35
35
|
"A user-friendly name for this item which is used for display in menus."
|
|
36
36
|
)),
|
|
37
37
|
type: "string"
|
|
38
38
|
},
|
|
39
39
|
description: {
|
|
40
|
-
description: ( localize(
|
|
40
|
+
description: ( localize(11872, "Description of the remote agent for use in menus and tooltips.")),
|
|
41
41
|
type: "string"
|
|
42
42
|
},
|
|
43
43
|
followUpRegex: {
|
|
44
44
|
description: ( localize(
|
|
45
|
-
|
|
45
|
+
11873,
|
|
46
46
|
"The last occurrence of pattern in an existing chat conversation is sent to the contributing extension to facilitate follow-up responses."
|
|
47
47
|
)),
|
|
48
48
|
type: "string"
|
|
49
49
|
},
|
|
50
50
|
when: {
|
|
51
|
-
description: ( localize(
|
|
51
|
+
description: ( localize(11874, "Condition which must be true to show this item.")),
|
|
52
52
|
type: "string"
|
|
53
53
|
}
|
|
54
54
|
},
|
|
@@ -37,68 +37,68 @@ function getAccessibilityHelpText(accessor) {
|
|
|
37
37
|
const focusResponseKeybinding = keybindingService.lookupKeybinding("chat.action.focus")?.getAriaLabel();
|
|
38
38
|
const focusInputKeybinding = keybindingService.lookupKeybinding("workbench.action.chat.focusInput")?.getAriaLabel();
|
|
39
39
|
content.push(( localize(
|
|
40
|
-
|
|
40
|
+
13506,
|
|
41
41
|
"Inline chat occurs within a terminal. It is useful for suggesting terminal commands. Keep in mind that AI generated code may be incorrect."
|
|
42
42
|
)));
|
|
43
43
|
content.push(( localize(
|
|
44
|
-
|
|
44
|
+
13507,
|
|
45
45
|
"It can be activated using the command: Terminal: Start Chat ({0}), which will focus the input box.",
|
|
46
46
|
startChatKeybinding
|
|
47
47
|
)));
|
|
48
48
|
content.push(makeRequestKeybinding ? ( localize(
|
|
49
|
-
|
|
49
|
+
13508,
|
|
50
50
|
"The input box is where the user can type a request and can make the request ({0}). The widget will be closed and all content will be discarded when the Escape key is pressed and the terminal will regain focus.",
|
|
51
51
|
makeRequestKeybinding
|
|
52
52
|
)) : ( localize(
|
|
53
|
-
|
|
53
|
+
13509,
|
|
54
54
|
"The input box is where the user can type a request and can make the request by tabbing to the Make Request button, which is not currently triggerable via keybindings. The widget will be closed and all content will be discarded when the Escape key is pressed and the terminal will regain focus."
|
|
55
55
|
)));
|
|
56
56
|
content.push(openAccessibleViewKeybinding ? ( localize(
|
|
57
|
-
|
|
57
|
+
13510,
|
|
58
58
|
"The response can be inspected in the accessible view ({0}).",
|
|
59
59
|
openAccessibleViewKeybinding
|
|
60
60
|
)) : ( localize(
|
|
61
|
-
|
|
61
|
+
13511,
|
|
62
62
|
"With the input box focused, inspect the response in the accessible view via the Open Accessible View command, which is currently not triggerable by a keybinding."
|
|
63
63
|
)));
|
|
64
64
|
content.push(focusResponseKeybinding ? ( localize(
|
|
65
|
-
|
|
65
|
+
13512,
|
|
66
66
|
"Reach the response from the input box ({0}).",
|
|
67
67
|
focusResponseKeybinding
|
|
68
68
|
)) : ( localize(
|
|
69
|
-
|
|
69
|
+
13513,
|
|
70
70
|
"Reach the response from the input box by tabbing or assigning a keybinding for the command: Focus Terminal Response."
|
|
71
71
|
)));
|
|
72
72
|
content.push(focusInputKeybinding ? ( localize(
|
|
73
|
-
|
|
73
|
+
13514,
|
|
74
74
|
"Reach the input box from the response ({0}).",
|
|
75
75
|
focusInputKeybinding
|
|
76
76
|
)) : ( localize(
|
|
77
|
-
|
|
77
|
+
13515,
|
|
78
78
|
"Reach the response from the input box by shift+tabbing or assigning a keybinding for the command: Focus Terminal Input."
|
|
79
79
|
)));
|
|
80
80
|
content.push(runCommandKeybinding ? ( localize(
|
|
81
|
-
|
|
81
|
+
13516,
|
|
82
82
|
"With focus in the input box or command editor, the Terminal: Run Chat Command ({0}) action.",
|
|
83
83
|
runCommandKeybinding
|
|
84
84
|
)) : ( localize(
|
|
85
|
-
|
|
85
|
+
13517,
|
|
86
86
|
"Run a command by tabbing to the button as the action is currently not triggerable by a keybinding."
|
|
87
87
|
)));
|
|
88
88
|
content.push(insertCommandKeybinding ? ( localize(
|
|
89
|
-
|
|
89
|
+
13518,
|
|
90
90
|
"With focus in the input box command editor, the Terminal: Insert Chat Command ({0}) action.",
|
|
91
91
|
insertCommandKeybinding
|
|
92
92
|
)) : ( localize(
|
|
93
|
-
|
|
93
|
+
13519,
|
|
94
94
|
"Insert a command by tabbing to the button as the action is currently not triggerable by a keybinding."
|
|
95
95
|
)));
|
|
96
96
|
content.push(( localize(
|
|
97
|
-
|
|
97
|
+
13520,
|
|
98
98
|
"Use tab to reach conditional parts like commands, status, message responses and more."
|
|
99
99
|
)));
|
|
100
100
|
content.push(( localize(
|
|
101
|
-
|
|
101
|
+
13521,
|
|
102
102
|
"Accessibility Signals can be changed via settings with a prefix of signals.chat. By default, if a request takes more than 4 seconds, you will hear a sound indicating that progress is still occurring."
|
|
103
103
|
)));
|
|
104
104
|
return content.join("\n");
|