Skip to content

Commit 2f6d437

Browse files
authored
Merge #6951 from justinmk3/fixdisclaimer
2 parents ff2e4cb + 65eaf41 commit 2f6d437

File tree

12 files changed

+47
-38
lines changed

12 files changed

+47
-38
lines changed

package-lock.json

Lines changed: 8 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/amazonq/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@
127127
"amazonQWorkspaceLspManifestMessage": {
128128
"type": "boolean",
129129
"default": false
130+
},
131+
"amazonQChatDisclaimer": {
132+
"type": "boolean",
133+
"default": false
130134
}
131135
},
132136
"additionalProperties": false

packages/amazonq/src/app/inline/sessionManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
import { InlineCompletionItemWithReferences } from '@aws/language-server-runtimes-types/inlineCompletionWithReferences'
6+
import { InlineCompletionItemWithReferences } from '@aws/language-server-runtimes-types'
77

88
// TODO: add more needed data to the session interface
99
interface CodeWhispererSession {

packages/amazonq/src/lsp/chat/messages.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
CHAT_OPTIONS,
1111
COPY_TO_CLIPBOARD,
1212
AuthFollowUpType,
13+
DISCLAIMER_ACKNOWLEDGED,
1314
} from '@aws/chat-client-ui-types'
1415
import {
1516
ChatResult,
@@ -27,6 +28,7 @@ import { Disposable, LanguageClient, Position, State, TextDocumentIdentifier } f
2728
import * as jose from 'jose'
2829
import { AmazonQChatViewProvider } from './webviewProvider'
2930
import { AuthUtil } from 'aws-core-vscode/codewhisperer'
31+
import { AmazonQPromptSettings } from 'aws-core-vscode/shared'
3032

3133
export function registerLanguageServerEventListener(languageClient: LanguageClient, provider: AmazonQChatViewProvider) {
3234
languageClient.onDidChangeState(({ oldState, newState }) => {
@@ -106,6 +108,10 @@ export function registerMessageListeners(
106108
}
107109
break
108110
}
111+
case DISCLAIMER_ACKNOWLEDGED: {
112+
void AmazonQPromptSettings.instance.disablePrompt('amazonQChatDisclaimer')
113+
break
114+
}
109115
case chatRequestType.method: {
110116
const partialResultToken = uuidv4()
111117
const chatDisposable = languageClient.onProgress(chatRequestType, partialResultToken, (partialResult) =>

packages/amazonq/src/lsp/chat/webviewProvider.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ import {
1212
WebviewViewResolveContext,
1313
Uri,
1414
} from 'vscode'
15-
import { LanguageServerResolver } from 'aws-core-vscode/shared'
1615
import { QuickActionCommandGroup } from '@aws/mynah-ui'
1716
import * as path from 'path'
17+
import { AmazonQPromptSettings, LanguageServerResolver } from 'aws-core-vscode/shared'
1818

1919
export class AmazonQChatViewProvider implements WebviewViewProvider {
2020
public static readonly viewType = 'aws.amazonq.AmazonQChatView'
@@ -43,7 +43,11 @@ export class AmazonQChatViewProvider implements WebviewViewProvider {
4343

4444
constructor(private readonly mynahUIPath: string) {}
4545

46-
public resolveWebviewView(webviewView: WebviewView, context: WebviewViewResolveContext, _token: CancellationToken) {
46+
public async resolveWebviewView(
47+
webviewView: WebviewView,
48+
context: WebviewViewResolveContext,
49+
_token: CancellationToken
50+
) {
4751
this.webview = webviewView.webview
4852

4953
const lspDir = Uri.parse(LanguageServerResolver.defaultDir)
@@ -54,12 +58,13 @@ export class AmazonQChatViewProvider implements WebviewViewProvider {
5458
}
5559

5660
const uiPath = webviewView.webview.asWebviewUri(Uri.parse(this.mynahUIPath)).toString()
57-
webviewView.webview.html = this.getWebviewContent(uiPath)
61+
webviewView.webview.html = await this.getWebviewContent(uiPath)
5862

5963
this.onDidResolveWebviewEmitter.fire()
6064
}
6165

62-
private getWebviewContent(mynahUIPath: string) {
66+
private async getWebviewContent(mynahUIPath: string) {
67+
const disclaimerAcknowledged = AmazonQPromptSettings.instance.isPromptEnabled('amazonQChatDisclaimer')
6368
return `
6469
<!DOCTYPE html>
6570
<html lang="en">
@@ -84,7 +89,7 @@ export class AmazonQChatViewProvider implements WebviewViewProvider {
8489
<script type="text/javascript" src="${mynahUIPath.toString()}" defer onload="init()"></script>
8590
<script type="text/javascript">
8691
const init = () => {
87-
amazonQChat.createChat(acquireVsCodeApi(), { disclaimerAcknowledged: false, quickActionCommands: ${JSON.stringify(this.quickActionCommands)}});
92+
amazonQChat.createChat(acquireVsCodeApi(), { disclaimerAcknowledged: ${disclaimerAcknowledged}, quickActionCommands: ${JSON.stringify(this.quickActionCommands)}});
8893
}
8994
</script>
9095
</body>

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@
440440
},
441441
"devDependencies": {
442442
"@aws-sdk/types": "^3.13.1",
443-
"@aws/chat-client-ui-types": "^0.0.8",
443+
"@aws/chat-client-ui-types": "^0.1.12",
444444
"@aws/language-server-runtimes": "^0.2.49",
445445
"@aws/language-server-runtimes-types": "^0.1.10",
446446
"@cspotcode/source-map-support": "^0.8.1",

packages/core/src/amazonq/webview/generators/webViewContent.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { AuthUtil } from '../../../codewhisperer/util/authUtil'
99
import { FeatureConfigProvider, FeatureContext } from '../../../shared/featureConfig'
1010
import globals from '../../../shared/extensionGlobals'
1111
import { isSageMaker } from '../../../shared/extensionUtilities'
12+
import { AmazonQPromptSettings } from '../../../shared/settings'
1213

1314
export class WebViewContentGenerator {
1415
private async generateFeatureConfigsData(): Promise<string> {
@@ -82,8 +83,7 @@ export class WebViewContentGenerator {
8283
const isSMUS = isSageMaker('SMUS')
8384

8485
const disabledCommandsString = isSM ? `['/dev', '/transform', '/test', '/review', '/doc']` : '[]'
85-
const disclaimerAcknowledged = globals.globalState.tryGet('aws.amazonq.disclaimerAcknowledged', Boolean, false)
86-
86+
const disclaimerAcknowledged = !AmazonQPromptSettings.instance.isPromptEnabled('amazonQChatDisclaimer')
8787
const welcomeLoadCount = globals.globalState.tryGet('aws.amazonq.welcomeChatShowCount', Number, 0)
8888

8989
return `

packages/core/src/amazonq/webview/messages/messageDispatcher.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { isClickTelemetry, isOpenAgentTelemetry } from '../ui/telemetry/actions'
1515
import globals from '../../../shared/extensionGlobals'
1616
import { openUrl } from '../../../shared/utilities/vsCodeUtils'
1717
import { DefaultAmazonQAppInitContext } from '../../apps/initContext'
18+
import { AmazonQPromptSettings } from '../../../shared/settings'
1819

1920
const qChatModuleName = 'amazonqChat'
2021

@@ -77,7 +78,7 @@ export function dispatchWebViewMessagesToApps(
7778
return
7879
}
7980
case 'disclaimer-acknowledged': {
80-
globals.globalState.tryUpdate('aws.amazonq.disclaimerAcknowledged', true)
81+
void AmazonQPromptSettings.instance.disablePrompt('amazonQChatDisclaimer')
8182
return
8283
}
8384
case 'update-welcome-count': {

packages/core/src/shared/globalState.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export type globalKey =
3535
| 'aws.amazonq.codescan.groupingStrategy'
3636
| 'aws.amazonq.notifications'
3737
| 'aws.amazonq.welcomeChatShowCount'
38-
| 'aws.amazonq.disclaimerAcknowledged'
38+
| 'aws.amazonq.disclaimerAcknowledged' // Legacy, use `AmazonQPromptSettings` instead.
3939
| 'aws.notifications'
4040
| 'aws.notifications.dev' // keys to store notifications for testing
4141
| 'aws.downloadPath'

packages/core/src/shared/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export { activate as activateLogger } from './logger/activation'
1313
export { activate as activateTelemetry } from './telemetry/activation'
1414
export { DefaultAwsContext } from './awsContext'
1515
export { DefaultAWSClientBuilder, ServiceOptions } from './awsClientBuilder'
16-
export { Settings, Experiments, DevSettings } from './settings'
16+
export { Settings, Experiments, DevSettings, AmazonQPromptSettings } from './settings'
1717
export * from './extensionUtilities'
1818
export * from './extensionStartup'
1919
export { RegionProvider } from './regions/regionProvider'

0 commit comments

Comments
 (0)