Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@ class Browser(parent: Disposable, private val webUri: URI, val project: Project)
},
"${activeProfile?.profileName.orEmpty()}")
const commands = [hybridChatConnector.initialQuickActions[0], hybridChatConnector.initialQuickActions[1]]
amazonQChat.createChat(
{
postMessage: message => {
Expand All @@ -148,7 +147,7 @@ class Browser(parent: Disposable, private val webUri: URI, val project: Project)
},
{
agenticMode: true,
quickActionCommands: commands,
quickActionCommands: [],
disclaimerAcknowledged: ${MeetQSettings.getInstance().disclaimerAcknowledged},
pairProgrammingAcknowledged: ${MeetQSettings.getInstance().pairProgrammingAcknowledged}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@
import software.aws.toolkits.jetbrains.services.amazonq.util.tabType
import software.aws.toolkits.jetbrains.services.amazonq.webview.theme.AmazonQTheme
import software.aws.toolkits.jetbrains.services.amazonq.webview.theme.ThemeBrowserAdapter
import software.aws.toolkits.jetbrains.services.amazonqCodeScan.auth.isCodeScanAvailable
import software.aws.toolkits.jetbrains.services.amazonqCodeTest.auth.isCodeTestAvailable
import software.aws.toolkits.jetbrains.services.amazonqDoc.auth.isDocAvailable
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.auth.isFeatureDevAvailable
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.isCodeTransformAvailable
import software.aws.toolkits.jetbrains.services.codewhisperer.settings.CodeWhispererConfigurable
import software.aws.toolkits.jetbrains.settings.MeetQSettings
import software.aws.toolkits.telemetry.MetricResult
Expand Down Expand Up @@ -173,12 +178,7 @@
uiReady.await()

// Chat options including history and quick actions need to be sent in once UI is ready
val showChatOptions = """{
"command": "chatOptions",
"params": ${Gson().toJson(AwsServerCapabilitiesProvider.getInstance(project).getChatOptions())}
}
""".trimIndent()
browser.postChat(showChatOptions)
updateQuickActionsInBrowser(browser)

Check warning on line 181 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt#L181

Added line #L181 was not covered by tests

// Send inbound messages to the browser
val inboundMessages = connections.map { it.messagesFromAppToUi.flow }.merge()
Expand Down Expand Up @@ -535,6 +535,45 @@
browser.postChat(cancelMessage)
}

private fun updateQuickActionsInBrowser(browser: Browser) {
val isFeatureDevAvailable = isFeatureDevAvailable(project)
val isCodeTransformAvailable = isCodeTransformAvailable(project)
val isDocAvailable = isDocAvailable(project)
val isCodeScanAvailable = isCodeScanAvailable(project)
val isCodeTestAvailable = isCodeTestAvailable(project)

Check warning on line 543 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt#L539-L543

Added lines #L539 - L543 were not covered by tests

val script = """

Check warning on line 545 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt#L545

Added line #L545 was not covered by tests
try {
const tempConnector = connectorAdapter.initiateAdapter(
false,
true, // the two values are not used here, needed for constructor
$isFeatureDevAvailable,
$isCodeTransformAvailable,
$isDocAvailable,
$isCodeScanAvailable,
$isCodeTestAvailable,

Check warning on line 554 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt#L550-L554

Added lines #L550 - L554 were not covered by tests
{ postMessage: () => {} }
);

const commands = tempConnector.initialQuickActions?.slice(0, 2) || [];
const options = ${Gson().toJson(AwsServerCapabilitiesProvider.getInstance(project).getChatOptions())};

Check warning on line 559 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt#L559

Added line #L559 was not covered by tests
options.quickActions.quickActionsCommandGroups = [
...commands,
...options.quickActions.quickActionsCommandGroups
];

window.postMessage({
command: "chatOptions",
params: options
});
} catch (e) {
console.error("Error updating quick actions:", e);
}
""".trimIndent()

Check warning on line 572 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt#L572

Added line #L572 was not covered by tests

browser.jcefBrowser.cefBrowser.executeJavaScript(script, browser.jcefBrowser.cefBrowser.url, 0)
}

Check warning on line 575 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt#L574-L575

Added lines #L574 - L575 were not covered by tests

private fun cancelInflightRequests(tabId: String) {
chatCommunicationManager.getInflightRequestForTab(tabId)?.let { request ->
request.cancel(true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,14 @@
return CompletableFuture.failedFuture(e)
}

return AmazonQLspService.executeIfRunning(project) { server ->
val future = AmazonQLspService.executeIfRunning(project) { server ->
server.updateTokenCredentials(payload)
} ?: (CompletableFuture.failedFuture(IllegalStateException("LSP Server not running")))
} ?: CompletableFuture.failedFuture(IllegalStateException("LSP Server not running"))

Check warning on line 116 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L116

Added line #L116 was not covered by tests

return future.thenApply { response ->
updateConfiguration()
response

Check warning on line 120 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L118-L120

Added lines #L118 - L120 were not covered by tests
}
}

override fun deleteTokenCredentials(): CompletableFuture<Unit> =
Expand Down
Loading