in packages/core/src/amazonqGumby/chat/controller/messenger/messenger.ts [201:290]
public async sendLanguageUpgradeProjectPrompt(projects: TransformationCandidateProject[], tabID: string) {
const projectFormOptions: { value: any; label: string }[] = []
const detectedJavaVersions = new Array<JDKVersion | undefined>()
for (const candidateProject of projects) {
projectFormOptions.push({
value: candidateProject.path,
label: candidateProject.name,
})
detectedJavaVersions.push(candidateProject.JDKVersion)
}
const formItems: ChatItemFormItem[] = []
formItems.push({
id: 'GumbyTransformLanguageUpgradeProjectForm',
type: 'select',
title: CodeWhispererConstants.chooseProjectFormTitle,
mandatory: true,
options: projectFormOptions,
})
formItems.push({
id: 'GumbyTransformJdkFromForm',
type: 'select',
title: CodeWhispererConstants.chooseSourceVersionFormTitle,
mandatory: true,
options: [
{
value: JDKVersion.JDK8,
label: JDKVersion.JDK8,
},
{
value: JDKVersion.JDK11,
label: JDKVersion.JDK11,
},
{
value: JDKVersion.JDK17,
label: JDKVersion.JDK17,
},
{
value: JDKVersion.JDK21,
label: JDKVersion.JDK21,
},
],
})
formItems.push({
id: 'GumbyTransformJdkToForm',
type: 'select',
title: CodeWhispererConstants.chooseTargetVersionFormTitle,
mandatory: true,
options: [
{
value: JDKVersion.JDK17,
label: JDKVersion.JDK17,
},
{
value: JDKVersion.JDK21,
label: JDKVersion.JDK21,
},
],
})
this.dispatcher.sendAsyncEventProgress(
new AsyncEventProgressMessage(tabID, {
inProgress: true,
message: CodeWhispererConstants.projectPromptChatMessage,
})
)
this.dispatcher.sendAsyncEventProgress(
new AsyncEventProgressMessage(tabID, {
inProgress: false,
message: undefined,
})
)
this.dispatcher.sendChatPrompt(
new ChatPrompt(
{
message: 'Q Code Transformation',
formItems: formItems,
},
'LanguageUpgradeTransformForm',
tabID,
false
)
)
}