in plugin/src/software/aws/toolkits/eclipse/amazonq/providers/assets/ChatWebViewAssetProvider.java [206:248]
private String generateJS(final String jsEntrypoint) {
var chatQuickActionConfig = generateQuickActionConfig();
var contextCommands = generateContextCommands();
var disclaimerAcknowledged = Activator.getPluginStore().get(PluginStoreKeys.CHAT_DISCLAIMER_ACKNOWLEDGED);
return String.format("""
<script type="text/javascript" src="%s" defer></script>
<script type="text/javascript">
%s
const init = () => {
waitForFunction('ideCommand')
.then(() => {
const mynahUI = amazonQChat.createChat({
postMessage: (message) => {
ideCommand(JSON.stringify(message));
}
},
{
quickActionCommands: %s,
disclaimerAcknowledged: %b
});
const tabId = mynahUI.getSelectedTabId();
window.tabId = tabId
mynahUI.updateStore(tabId, { contextCommands: %s });
window.mynah = mynahUI
})
.catch(error => console.error('Error initializing chat:', error));
}
window.addEventListener('load', init);
%s
%s
%s
%s
</script>
""", jsEntrypoint, getWaitFunction(), chatQuickActionConfig, "true".equals(disclaimerAcknowledged), contextCommands,
getArrowKeyBlockingFunction(), getSelectAllAndCopySupportFunctions(), getPreventEmptyPopupFunction(),
getFocusOnChatPromptFunction());
}