Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.fasterxml.jackson.module.kotlin.treeToValue

Check warning on line 15 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/commands/MessageSerializer.kt

View workflow job for this annotation

GitHub Actions / Qodana Community for JVM

Unused import directive

Unused import directive

Check warning

Code scanning / QDJVMC

Unused import directive Warning

Unused import directive
import org.jetbrains.annotations.VisibleForTesting
import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage
import software.aws.toolkits.jetbrains.services.amazonq.messages.UnknownMessageType
Expand All @@ -36,6 +37,9 @@

fun serialize(value: Any): String = objectMapper.writeValueAsString(value)

fun <T> deserializeChatMessages(value: JsonNode, clazz: Class<T>): T =
objectMapper.treeToValue(value, clazz)

Check warning on line 41 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/commands/MessageSerializer.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/commands/MessageSerializer.kt#L41

Added line #L41 was not covered by tests

// Provide singleton global access
companion object {
private val instance = MessageSerializer()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@

import com.intellij.idea.AppMode
import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.runInEdt
import com.intellij.openapi.util.Disposer
import com.intellij.ui.components.JBLoadingPanel
import com.intellij.ui.components.JBPanelWithEmptyText
import com.intellij.ui.components.JBTextArea
import com.intellij.ui.components.panels.Wrapper
import com.intellij.ui.dsl.builder.Align
Expand All @@ -14,14 +18,15 @@
import com.intellij.ui.dsl.builder.panel
import com.intellij.ui.jcef.JBCefApp
import software.aws.toolkits.jetbrains.isDeveloperMode
import software.aws.toolkits.jetbrains.services.amazonq.lsp.artifacts.ArtifactHelper
import software.aws.toolkits.jetbrains.services.amazonq.webview.Browser
import java.awt.event.ActionListener
import java.util.concurrent.CompletableFuture
import javax.swing.JButton

class AmazonQPanel(private val parent: Disposable) {
private val webviewContainer = Wrapper()
var browser: Browser? = null
private set
val browser = CompletableFuture<Browser>()

Check warning on line 29 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt#L29

Added line #L29 was not covered by tests

val component = panel {
row {
Expand All @@ -39,7 +44,7 @@
// Code to be executed when the button is clicked
// Add your logic here

browser?.jcefBrowser?.openDevtools()
browser.get().jcefBrowser.openDevtools()

Check warning on line 47 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt#L47

Added line #L47 was not covered by tests
},
)
},
Expand All @@ -56,7 +61,7 @@

fun disposeAndRecreate() {
webviewContainer.removeAll()
val toDispose = browser
val toDispose = browser.get()

Check warning on line 64 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt#L64

Added line #L64 was not covered by tests
init()
if (toDispose != null) {
Disposer.dispose(toDispose)
Expand All @@ -71,10 +76,26 @@
} else {
webviewContainer.add(JBTextArea("JCEF not supported"))
}
browser = null
browser.complete(null)

Check warning on line 79 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt#L79

Added line #L79 was not covered by tests
} else {
browser = Browser(parent).also {
webviewContainer.add(it.component())
val loadingPanel = JBLoadingPanel(null, parent, 0)
val wrapper = Wrapper()
loadingPanel.startLoading()

Check warning on line 83 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt#L81-L83

Added lines #L81 - L83 were not covered by tests

loadingPanel.add(JBPanelWithEmptyText().withEmptyText("Wait for chat to be ready"))
webviewContainer.add(wrapper)
wrapper.setContent(loadingPanel)

Check warning on line 87 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt#L85-L87

Added lines #L85 - L87 were not covered by tests

ApplicationManager.getApplication().executeOnPooledThread {
val webUri = ArtifactHelper().getLatestLocalLspArtifact().resolve("amazonq-ui.js").toUri()
loadingPanel.stopLoading()
runInEdt {
browser.complete(
Browser(parent, webUri).also {
wrapper.setContent(it.component())
}

Check warning on line 96 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt#L89-L96

Added lines #L89 - L96 were not covered by tests
)
}

Check warning on line 98 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt#L98

Added line #L98 was not covered by tests
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,20 @@
import com.intellij.openapi.wm.ToolWindowManager
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.future.await
import kotlinx.coroutines.launch
import software.aws.toolkits.jetbrains.services.amazonq.QWebviewPanel
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
import software.aws.toolkits.jetbrains.services.amazonq.apps.AppConnection
import software.aws.toolkits.jetbrains.services.amazonq.commands.MessageTypeRegistry
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AsyncChatUiListener
import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage
import software.aws.toolkits.jetbrains.services.amazonq.messages.MessageConnector
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteraction
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager
import software.aws.toolkits.jetbrains.services.amazonq.util.highlightCommand
import software.aws.toolkits.jetbrains.services.amazonq.webview.Browser
import software.aws.toolkits.jetbrains.services.amazonq.webview.BrowserConnector
import software.aws.toolkits.jetbrains.services.amazonq.webview.FqnWebviewAdapter
import software.aws.toolkits.jetbrains.services.amazonq.webview.theme.EditorThemeAdapter
Expand All @@ -43,7 +46,7 @@
private val scope: CoroutineScope,
) : Disposable {
private val appSource = AppSource()
private val browserConnector = BrowserConnector()
private val browserConnector = BrowserConnector(project = project)

Check warning on line 49 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L49

Added line #L49 was not covered by tests
private val editorThemeAdapter = EditorThemeAdapter()

private val chatPanel = AmazonQPanel(parent = this)
Expand All @@ -53,19 +56,43 @@
private val appConnections = mutableListOf<AppConnection>()

init {
initConnections()
connectUi()
connectApps()
prepareBrowser()

Check warning on line 59 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L59

Added line #L59 was not covered by tests

scope.launch {
chatPanel.browser.await()
}

Check warning on line 63 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L61-L63

Added lines #L61 - L63 were not covered by tests

project.messageBus.connect().subscribe(
AsyncChatUiListener.TOPIC,
object : AsyncChatUiListener {

Check warning on line 67 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L65-L67

Added lines #L65 - L67 were not covered by tests
override fun onChange(message: String) {
runInEdt {

Check warning on line 69 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L69

Added line #L69 was not covered by tests
chatPanel.browser.get()?.postChat(message)
}
}

Check warning on line 72 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L71-L72

Added lines #L71 - L72 were not covered by tests
}
)
}

Check warning on line 75 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L75

Added line #L75 was not covered by tests

private fun prepareBrowser() {
chatPanel.browser.whenComplete { browser, ex ->

Check warning on line 78 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L78

Added line #L78 was not covered by tests
if (ex != null) {
return@whenComplete

Check warning on line 80 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L80

Added line #L80 was not covered by tests
}

initConnections()
connectUi(browser)
connectApps(browser)
}

Check warning on line 86 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L83-L86

Added lines #L83 - L86 were not covered by tests
}

fun disposeAndRecreate() {
browserConnector.uiReady = CompletableDeferred()

chatPanel.disposeAndRecreate()

appConnections.clear()
initConnections()
connectUi()
connectApps()
prepareBrowser()

Check warning on line 95 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L95

Added line #L95 was not covered by tests

ApplicationManager.getApplication().messageBus.syncPublisher(LafManagerListener.TOPIC).lookAndFeelChanged(LafManager.getInstance())
}
Expand Down Expand Up @@ -98,9 +125,7 @@
}
}

private fun connectApps() {
val browser = chatPanel.browser ?: return

private fun connectApps(browser: Browser) {
val fqnWebviewAdapter = FqnWebviewAdapter(browser.jcefBrowser, browserConnector)

appConnections.forEach { connection ->
Expand All @@ -118,11 +143,10 @@
}
}

private fun connectUi() {
val chatBrowser = chatPanel.browser ?: return
private fun connectUi(browser: Browser) {
val loginBrowser = QWebviewPanel.getInstance(project).browser ?: return

chatBrowser.init(
browser.init(

Check warning on line 149 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L149

Added line #L149 was not covered by tests
isCodeTransformAvailable = isCodeTransformAvailable(project),
isFeatureDevAvailable = isFeatureDevAvailable(project),
isCodeScanAvailable = isCodeScanAvailable(project),
Expand All @@ -135,15 +159,15 @@
scope.launch {
// Pipe messages from the UI to the relevant apps and vice versa
browserConnector.connect(
browser = chatBrowser,
browser = browser,

Check warning on line 162 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L162

Added line #L162 was not covered by tests
connections = appConnections,
)
}

scope.launch {
// Update the theme in the UI when the IDE theme changes
browserConnector.connectTheme(
chatBrowser = chatBrowser.jcefBrowser.cefBrowser,
chatBrowser = browser.jcefBrowser.cefBrowser,

Check warning on line 170 in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt#L170

Added line #L170 was not covered by tests
loginBrowser = loginBrowser.jcefBrowser.cefBrowser,
themeSource = editorThemeAdapter.onThemeChange(),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@
import software.aws.toolkits.jetbrains.services.amazonq.util.HighlightCommand
import software.aws.toolkits.jetbrains.services.amazonq.util.createBrowser
import software.aws.toolkits.jetbrains.settings.MeetQSettings
import java.net.URI

/*
Displays the web view for the Amazon Q tool window
*/
class Browser(parent: Disposable) : Disposable {
class Browser(parent: Disposable, private val webUri: URI) : Disposable {

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

View check run for this annotation

Codecov / codecov/patch

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

Added line #L20 was not covered by tests

val jcefBrowser = createBrowser(parent)

Expand Down Expand Up @@ -48,6 +49,13 @@

fun component() = jcefBrowser.component

fun postChat(message: String) {
jcefBrowser
.cefBrowser
.executeJavaScript("window.postMessage($message)", jcefBrowser.cefBrowser.url, 0)
}

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

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/Browser.kt#L53-L56

Added lines #L53 - L56 were not covered by tests

// TODO: Remove this once chat has been integrated with agents
fun post(message: String) =
jcefBrowser
.cefBrowser
Expand Down Expand Up @@ -94,33 +102,92 @@
activeProfile: QRegionProfile?,
): String {
val postMessageToJavaJsCode = receiveMessageQuery.inject("JSON.stringify(message)")

val jsScripts = """
<script type="text/javascript" src="$WEB_SCRIPT_URI" defer onload="init()"></script>
<script type="text/javascript" src="$webUri" defer onload="init()"></script>

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

View check run for this annotation

Codecov / codecov/patch

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

Added line #L106 was not covered by tests
<script type="text/javascript">
const init = () => {
mynahUI.createMynahUI(
amazonQChat.createChat(
{
postMessage: message => {
$postMessageToJavaJsCode
}
},
${MeetQSettings.getInstance().reinvent2024OnboardingCount < MAX_ONBOARDING_PAGE_COUNT},
${MeetQSettings.getInstance().disclaimerAcknowledged},
$isFeatureDevAvailable, // whether /dev is available
$isCodeTransformAvailable, // whether /transform is available
$isDocAvailable, // whether /doc is available
$isCodeScanAvailable, // whether /scan is available
$isCodeTestAvailable, // whether /test is available
${OBJECT_MAPPER.writeValueAsString(highlightCommand)},
"${activeProfile?.profileName.orEmpty()}"
},
{
quickActionCommands: [],
disclaimerAcknowledged: ${MeetQSettings.getInstance().disclaimerAcknowledged}

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

View check run for this annotation

Codecov / codecov/patch

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

Added line #L117 was not covered by tests
}
);
}
</script>
""".trimIndent()

addQuickActionCommands(
isCodeTransformAvailable,
isFeatureDevAvailable,
isDocAvailable,
isCodeTestAvailable,
isCodeScanAvailable,
highlightCommand,
activeProfile

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

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/Browser.kt#L124-L131

Added lines #L124 - L131 were not covered by tests
)
return """
<!DOCTYPE html>
<style>
body,
html {
background-color: var(--mynah-color-bg);
color: var(--mynah-color-text-default);
height: 100vh;
width: 100%%;
overflow: hidden;
margin: 0;
padding: 0;
}
.mynah-ui-icon-plus,
.mynah-ui-icon-cancel {
-webkit-mask-size: 155% !important;
mask-size: 155% !important;
mask-position: center;
scale: 60%;
}
.code-snippet-close-button i.mynah-ui-icon-cancel,
.mynah-chat-item-card-related-content-show-more i.mynah-ui-icon-down-open {
-webkit-mask-size: 195.5% !important;
mask-size: 195.5% !important;
mask-position: center;
aspect-ratio: 1/1;
width: 15px;
height: 15px;
scale: 50%
}
.mynah-ui-icon-tabs {
-webkit-mask-size: 102% !important;
mask-size: 102% !important;
mask-position: center;
}
textarea:placeholder-shown {
line-height: 1.5rem;
}
.mynah-ui-spinner-container {
contain: layout !important;
}
.mynah-ui-spinner-container > span.mynah-ui-spinner-logo-part {
position: static !important;
will-change: transform !important;
}
.mynah-ui-spinner-container,
.mynah-ui-spinner-container > span.mynah-ui-spinner-logo-part,
.mynah-ui-spinner-container > span.mynah-ui-spinner-logo-part > .mynah-ui-spinner-logo-mask.text {
border: 0 !important;
outline: none !important;
box-shadow: none !important;
border-radius: 0 !important;
}
.mynah-ui-spinner-container > span.mynah-ui-spinner-logo-part > .mynah-ui-spinner-logo-mask.text {
will-change: transform !important;
transform: translateZ(0) !important;
}
</style>
<html>
<head>
<title>AWS Q</title>
Expand All @@ -132,8 +199,28 @@
""".trimIndent()
}

private fun addQuickActionCommands(
isCodeTransformAvailable: Boolean,
isFeatureDevAvailable: Boolean,
isDocAvailable: Boolean,
isCodeTestAvailable: Boolean,
isCodeScanAvailable: Boolean,
highlightCommand: HighlightCommand?,
activeProfile: QRegionProfile?,
) {
// TODO: Remove this once chat has been integrated with agents. This is added temporarily to keep detekt happy.
isCodeScanAvailable
isCodeTestAvailable
isDocAvailable
isFeatureDevAvailable
isCodeTransformAvailable
MAX_ONBOARDING_PAGE_COUNT
OBJECT_MAPPER
highlightCommand
activeProfile
}

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

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/Browser.kt#L212-L221

Added lines #L212 - L221 were not covered by tests

companion object {
private const val WEB_SCRIPT_URI = "http://mynah/js/mynah-ui.js"
private const val MAX_ONBOARDING_PAGE_COUNT = 3
private val OBJECT_MAPPER = jacksonObjectMapper()
}
Expand Down
Loading
Loading