Path: blob/main/src/vs/sessions/contrib/chat/browser/sessionsChatAccessibilityHelp.ts
13401 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { ServicesAccessor } from '../../../../editor/browser/editorExtensions.js';6import { AccessibleViewProviderId, AccessibleViewType, AccessibleContentProvider } from '../../../../platform/accessibility/browser/accessibleView.js';7import { IAccessibleViewImplementation } from '../../../../platform/accessibility/browser/accessibleViewRegistry.js';8import { AccessibilityVerbositySettingId } from '../../../../workbench/contrib/accessibility/browser/accessibilityConfiguration.js';9import { IsSessionsWindowContext } from '../../../../workbench/common/contextkeys.js';10import { localize } from '../../../../nls.js';11import { FOCUS_AI_CUSTOMIZATION_VIEW_ID } from '../../aiCustomizationTreeView/browser/aiCustomizationTreeView.js';12import { IViewsService } from '../../../../workbench/services/views/common/viewsService.js';13import { NewChatViewPane, SessionsViewId } from './newChatViewPane.js';1415export class SessionsChatAccessibilityHelp implements IAccessibleViewImplementation {16readonly priority = 120;17readonly name = 'sessionsChat';18readonly type = AccessibleViewType.Help;19readonly when = IsSessionsWindowContext;2021getProvider(accessor: ServicesAccessor) {22const viewsService = accessor.get(IViewsService);2324const content: string[] = [];25content.push(localize('sessionsChat.overview', "You are in the Agents app. The Agents app is a dedicated workspace for working with AI agents. It provides a chat interface, a changes view for reviewing agent-generated changes, a file explorer, and customization options."));26content.push(localize('sessionsChat.input', "You are in the chat input. Type a message and press Enter to send it."));27content.push(localize('sessionsChat.workspace', "Shift+Tab to navigate to the workspace picker and choose a workspace for your session."));28content.push(localize('sessionsChat.history', "Use up and down arrows to navigate your request history in the input box."));29content.push(localize('sessionsChat.changes', "Focus the Changes view{0}.", '<keybinding:workbench.action.agentSessions.focusChangesView>'));30content.push(localize('sessionsChat.filesView', "Focus the Files Explorer view{0}.", '<keybinding:workbench.action.agentSessions.focusChangesFileView>'));31content.push(localize('sessionsChat.sessionsView', "Focus the Chat Sessions view{0}.", '<keybinding:workbench.action.chat.focusAgentSessionsViewer>'));32content.push(localize('sessionsChat.customizations', "Focus the Chat Customizations view{0}.", `<keybinding:${FOCUS_AI_CUSTOMIZATION_VIEW_ID}>`));3334return new AccessibleContentProvider(35AccessibleViewProviderId.SessionsChat,36{ type: AccessibleViewType.Help },37() => content.join('\n'),38() => {39const view = viewsService.getActiveViewWithId<NewChatViewPane>(SessionsViewId);40view?.focus();41},42AccessibilityVerbositySettingId.SessionsChat,43);44}45}464748