From f2383c4c2fb2e00b2e9c4038c7b6a76443beab5e Mon Sep 17 00:00:00 2001 From: Randall-Jiang Date: Mon, 14 Apr 2025 12:17:40 -0700 Subject: [PATCH 1/4] add programmer card --- .../core/src/amazonq/webview/ui/tabs/generator.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/core/src/amazonq/webview/ui/tabs/generator.ts b/packages/core/src/amazonq/webview/ui/tabs/generator.ts index c6748bcb84b..cdfd544f8bc 100644 --- a/packages/core/src/amazonq/webview/ui/tabs/generator.ts +++ b/packages/core/src/amazonq/webview/ui/tabs/generator.ts @@ -56,6 +56,18 @@ export class TabDataGenerator { if (tabType === 'welcome') { return {} } + const programmerModeCard: ChatItem | undefined = { + type: ChatItemType.ANSWER, + title: 'Pair Programming Mode', + header: { + icon: 'code-block', + iconStatus: 'primary', + body: '## You are now in pair programming mode', + }, + fullWidth: true, + canBeDismissed: true, + body: 'In pair programming mode, I can help you write, modify, and debug code. I can access your workspace files and execute commands to assist you with your development tasks.', + } const regionProfileCard: ChatItem | undefined = this.regionProfile === undefined @@ -76,6 +88,7 @@ export class TabDataGenerator { contextCommands: this.getContextCommands(tabType), chatItems: needWelcomeMessages ? [ + ...(tabType === 'cwc' || tabType === 'unknown' ? [programmerModeCard] : []), ...(regionProfileCard ? [regionProfileCard] : []), { type: ChatItemType.ANSWER, @@ -88,7 +101,7 @@ export class TabDataGenerator { ] : [...(regionProfileCard ? [regionProfileCard] : [])], promptInputOptions: - tabType === 'cwc' + tabType === 'cwc' || tabType === 'unknown' ? [ { type: 'switch', From 0c80bb09d47a37205b6d909d7fce9781d628ab95 Mon Sep 17 00:00:00 2001 From: Randall-Jiang Date: Mon, 14 Apr 2025 12:54:44 -0700 Subject: [PATCH 2/4] edit the welcome message and add programmer card --- packages/core/resources/css/amazonq-webview.css | 2 +- .../src/amazonq/webview/ui/tabs/generator.ts | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/core/resources/css/amazonq-webview.css b/packages/core/resources/css/amazonq-webview.css index 8304aa9eec1..d0cfdf5cd25 100644 --- a/packages/core/resources/css/amazonq-webview.css +++ b/packages/core/resources/css/amazonq-webview.css @@ -130,6 +130,6 @@ div.mynah-card.padding-large { } .mynah-chat-wrapper { - padding: 0.75rem 1.25rem !important; /* 12px top/bottom, 20px left/right */ + padding: 0.75rem 1.25rem; box-sizing: border-box; } diff --git a/packages/core/src/amazonq/webview/ui/tabs/generator.ts b/packages/core/src/amazonq/webview/ui/tabs/generator.ts index cdfd544f8bc..82af2ee496f 100644 --- a/packages/core/src/amazonq/webview/ui/tabs/generator.ts +++ b/packages/core/src/amazonq/webview/ui/tabs/generator.ts @@ -58,15 +58,15 @@ export class TabDataGenerator { } const programmerModeCard: ChatItem | undefined = { type: ChatItemType.ANSWER, - title: 'Pair Programming Mode', + title: 'NEW FEATURE', header: { icon: 'code-block', iconStatus: 'primary', - body: '## You are now in pair programming mode', + body: '## Pair programmer mode', }, fullWidth: true, canBeDismissed: true, - body: 'In pair programming mode, I can help you write, modify, and debug code. I can access your workspace files and execute commands to assist you with your development tasks.', + body: 'Pair code with Amazon Q, your virtual pair programmer that can work alongside you autonomously making real-time code changes on your behalf. \n\n Switch off pair programmer mode to get read-only responses from Q.', } const regionProfileCard: ChatItem | undefined = @@ -79,6 +79,15 @@ export class TabDataGenerator { messageId: 'regionProfile', } + const welcomeMessage = `Hi! I'm Amazon Q. + +You can ask me to: +• Create new projects and files +• Make changes to your codebase +• Explain how to do things + +Enter \`/\` to view quick actions. Use \`@\` to add saved prompts, files, folders, or your entire workspace as context.` + const tabData: MynahUIDataModel = { tabTitle: taskName ?? TabTypeDataMap[tabType].title, promptInputInfo: @@ -92,7 +101,7 @@ export class TabDataGenerator { ...(regionProfileCard ? [regionProfileCard] : []), { type: ChatItemType.ANSWER, - body: isSMUS ? qChatIntroMessageForSMUS : TabTypeDataMap[tabType].welcome, + body: welcomeMessage, }, { type: ChatItemType.ANSWER, From 9c67a5a50e73bea25d864adc35ad4efaf2ab2b4c Mon Sep 17 00:00:00 2001 From: Randall-Jiang Date: Mon, 14 Apr 2025 13:06:33 -0700 Subject: [PATCH 3/4] remove the unused import --- packages/core/src/amazonq/webview/ui/tabs/generator.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/amazonq/webview/ui/tabs/generator.ts b/packages/core/src/amazonq/webview/ui/tabs/generator.ts index 82af2ee496f..7097058c94b 100644 --- a/packages/core/src/amazonq/webview/ui/tabs/generator.ts +++ b/packages/core/src/amazonq/webview/ui/tabs/generator.ts @@ -7,7 +7,7 @@ import { ChatItem, ChatItemType, MynahUIDataModel, QuickActionCommandGroup } fro import { TabType } from '../storages/tabsStorage' import { FollowUpGenerator } from '../followUps/generator' import { QuickActionGenerator } from '../quickActions/generator' -import { qChatIntroMessageForSMUS, TabTypeDataMap } from './constants' +import { TabTypeDataMap } from './constants' import { agentWalkthroughDataModel } from '../walkthrough/agent' import { FeatureContext } from '../../../../shared/featureConfig' import { RegionProfile } from '../../../../codewhisperer/models/model' From af43f1bf61007da71d59a2d43b6f378166ce1ee0 Mon Sep 17 00:00:00 2001 From: Randall-Jiang Date: Mon, 14 Apr 2025 16:09:40 -0700 Subject: [PATCH 4/4] change back the welcome message for sage maker user --- packages/core/src/amazonq/webview/ui/tabs/generator.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/amazonq/webview/ui/tabs/generator.ts b/packages/core/src/amazonq/webview/ui/tabs/generator.ts index 7097058c94b..c9872a0ab38 100644 --- a/packages/core/src/amazonq/webview/ui/tabs/generator.ts +++ b/packages/core/src/amazonq/webview/ui/tabs/generator.ts @@ -7,7 +7,7 @@ import { ChatItem, ChatItemType, MynahUIDataModel, QuickActionCommandGroup } fro import { TabType } from '../storages/tabsStorage' import { FollowUpGenerator } from '../followUps/generator' import { QuickActionGenerator } from '../quickActions/generator' -import { TabTypeDataMap } from './constants' +import { qChatIntroMessageForSMUS, TabTypeDataMap } from './constants' import { agentWalkthroughDataModel } from '../walkthrough/agent' import { FeatureContext } from '../../../../shared/featureConfig' import { RegionProfile } from '../../../../codewhisperer/models/model' @@ -101,7 +101,7 @@ Enter \`/\` to view quick actions. Use \`@\` to add saved prompts, files, folder ...(regionProfileCard ? [regionProfileCard] : []), { type: ChatItemType.ANSWER, - body: welcomeMessage, + body: isSMUS ? qChatIntroMessageForSMUS : welcomeMessage, }, { type: ChatItemType.ANSWER,