diff --git a/package-lock.json b/package-lock.json index 60d0999c8e7..77bfc670449 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10833,12 +10833,12 @@ } }, "node_modules/@aws/chat-client-ui-types": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/@aws/chat-client-ui-types/-/chat-client-ui-types-0.1.12.tgz", - "integrity": "sha512-2yfRwElcJOwJ8dBR8aLcWAy9HlULRluaVCerCHXV+LstiIvkS0cd92l248Y+RQlKAvbGZXpnEzUOrlkNWVa80Q==", + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@aws/chat-client-ui-types/-/chat-client-ui-types-0.1.22.tgz", + "integrity": "sha512-vn+UKnh9hgZN1LCMONgeZE8WWxivWXaHQq+oG9wpbFhaTXn/nNBTQ9ON7S2fvMqo0g0Np/6hirxZy5ROcWnB9Q==", "dev": true, "dependencies": { - "@aws/language-server-runtimes-types": "^0.1.10" + "@aws/language-server-runtimes-types": "^0.1.19" } }, "node_modules/@aws/language-server-runtimes": { @@ -10876,9 +10876,9 @@ } }, "node_modules/@aws/language-server-runtimes-types": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/@aws/language-server-runtimes-types/-/language-server-runtimes-types-0.1.13.tgz", - "integrity": "sha512-+FJREN6qyNcOwbu0fxAKt0QUh6x10xg2a9fLL722yVisXV0p4ElgHuXssOWhwALJrmy47DF7bRunZYNpFR9mqw==", + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@aws/language-server-runtimes-types/-/language-server-runtimes-types-0.1.19.tgz", + "integrity": "sha512-c81J3G3N6JP5A6g70xTpK/XPS1YWwviQBn307Rk3S5fSiALT8INeHM+IPDg9AuONU6w378RJjzQy3+PE0gJvsw==", "dev": true, "dependencies": { "vscode-languageserver-textdocument": "^1.0.12", @@ -26804,7 +26804,7 @@ "devDependencies": { "@aws-sdk/types": "^3.13.1", "@aws/chat-client": "^0.1.4", - "@aws/chat-client-ui-types": "^0.1.12", + "@aws/chat-client-ui-types": "^0.1.22", "@aws/language-server-runtimes": "^0.2.58", "@aws/language-server-runtimes-types": "^0.1.13", "@cspotcode/source-map-support": "^0.8.1", diff --git a/packages/amazonq/package.json b/packages/amazonq/package.json index fbcab15a174..aac597fabd2 100644 --- a/packages/amazonq/package.json +++ b/packages/amazonq/package.json @@ -131,6 +131,10 @@ "amazonQChatDisclaimer": { "type": "boolean", "default": false + }, + "amazonQChatPairProgramming": { + "type": "boolean", + "default": false } }, "additionalProperties": false diff --git a/packages/amazonq/src/lsp/chat/messages.ts b/packages/amazonq/src/lsp/chat/messages.ts index 417ab3d9cf4..ffc64739f2b 100644 --- a/packages/amazonq/src/lsp/chat/messages.ts +++ b/packages/amazonq/src/lsp/chat/messages.ts @@ -12,6 +12,8 @@ import { AuthFollowUpType, DISCLAIMER_ACKNOWLEDGED, UiMessageResultParams, + CHAT_PROMPT_OPTION_ACKNOWLEDGED, + ChatPromptOptionAcknowledgedMessage, } from '@aws/chat-client-ui-types' import { ChatResult, @@ -146,6 +148,15 @@ export function registerMessageListeners( void AmazonQPromptSettings.instance.update('amazonQChatDisclaimer', true) break } + case CHAT_PROMPT_OPTION_ACKNOWLEDGED: { + const acknowledgedMessage = message as ChatPromptOptionAcknowledgedMessage + switch (acknowledgedMessage.params.messageId) { + case 'programmerModeCardId': { + void AmazonQPromptSettings.instance.disablePrompt('amazonQChatPairProgramming') + } + } + break + } case chatRequestType.method: { const partialResultToken = uuidv4() const chatDisposable = languageClient.onProgress(chatRequestType, partialResultToken, (partialResult) => diff --git a/packages/amazonq/src/lsp/chat/webviewProvider.ts b/packages/amazonq/src/lsp/chat/webviewProvider.ts index cbfefc9a978..025881f3460 100644 --- a/packages/amazonq/src/lsp/chat/webviewProvider.ts +++ b/packages/amazonq/src/lsp/chat/webviewProvider.ts @@ -96,6 +96,8 @@ export class AmazonQChatViewProvider implements WebviewViewProvider { const isSMUS = isSageMaker('SMUS') const disabledCommands = isSM ? `['/dev', '/transform', '/test', '/review', '/doc']` : '[]' const disclaimerAcknowledged = !AmazonQPromptSettings.instance.isPromptEnabled('amazonQChatDisclaimer') + const pairProgrammingAcknowledged = + !AmazonQPromptSettings.instance.isPromptEnabled('amazonQChatPairProgramming') const welcomeCount = globals.globalState.tryGet('aws.amazonq.welcomeChatShowCount', Number, 0) // only show profile card when the two conditions @@ -144,7 +146,7 @@ export class AmazonQChatViewProvider implements WebviewViewProvider { const vscodeApi = acquireVsCodeApi() const hybridChatConnector = new HybridChatAdapter(${(await AuthUtil.instance.getChatAuthState()).amazonQ === 'connected'},${featureConfigData},${welcomeCount},${disclaimerAcknowledged},${regionProfileString},${disabledCommands},${isSMUS},${isSM},vscodeApi.postMessage) const commands = [hybridChatConnector.initialQuickActions[0]] - amazonQChat.createChat(vscodeApi, {disclaimerAcknowledged: ${disclaimerAcknowledged}, quickActionCommands: commands}, hybridChatConnector); + amazonQChat.createChat(vscodeApi, {disclaimerAcknowledged: ${disclaimerAcknowledged}, pairProgrammingAcknowledged: ${pairProgrammingAcknowledged}, quickActionCommands: commands}, hybridChatConnector); } diff --git a/packages/core/package.json b/packages/core/package.json index 60b0be39320..98f24feae81 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -442,7 +442,7 @@ "devDependencies": { "@aws-sdk/types": "^3.13.1", "@aws/chat-client": "^0.1.4", - "@aws/chat-client-ui-types": "^0.1.12", + "@aws/chat-client-ui-types": "^0.1.22", "@aws/language-server-runtimes": "^0.2.58", "@aws/language-server-runtimes-types": "^0.1.13", "@cspotcode/source-map-support": "^0.8.1", diff --git a/packages/core/src/shared/settings-amazonq.gen.ts b/packages/core/src/shared/settings-amazonq.gen.ts index f0a3d47f989..7bd20bc1e78 100644 --- a/packages/core/src/shared/settings-amazonq.gen.ts +++ b/packages/core/src/shared/settings-amazonq.gen.ts @@ -21,7 +21,8 @@ export const amazonqSettings = { "ssoCacheError": {}, "amazonQLspManifestMessage": {}, "amazonQWorkspaceLspManifestMessage": {}, - "amazonQChatDisclaimer": {} + "amazonQChatDisclaimer": {}, + "amazonQChatPairProgramming": {} }, "amazonQ.showCodeWithReferences": {}, "amazonQ.allowFeatureDevelopmentToRunCodeAndTests": {},