diff --git a/frontend/src/lib/components/codeGen/ScriptFix.svelte b/frontend/src/lib/components/codeGen/ScriptFix.svelte index 3573cf10f6..411d111706 100644 --- a/frontend/src/lib/components/codeGen/ScriptFix.svelte +++ b/frontend/src/lib/components/codeGen/ScriptFix.svelte @@ -6,9 +6,10 @@ import { sendUserToast } from '$lib/toast' import type Editor from '../Editor.svelte' import { faCheck, faClose, faMagicWandSparkles } from '@fortawesome/free-solid-svg-icons' - import { existsOpenaiResourcePath } from '$lib/stores' + import { dbSchema, existsOpenaiResourcePath } from '$lib/stores' import type DiffEditor from '../DiffEditor.svelte' import { scriptLangToEditorLang } from '$lib/scripts' + import Popover from '../Popover.svelte' // props export let lang: SupportedLanguage @@ -20,6 +21,7 @@ let genLoading: boolean = false let openaiAvailable: boolean | undefined = undefined let generatedCode = '' + let explanation = '' async function onFix() { if (!error) { @@ -33,11 +35,14 @@ } genLoading = true - generatedCode = await fixScript({ + const result = await fixScript({ language: lang, code: editor?.getCode() || '', - error + error, + dbSchema: lang === 'postgresql' ? $dbSchema : undefined }) + generatedCode = result.code + explanation = result.explanation } catch (err) { sendUserToast('Failed to generate code', true) console.error(err) @@ -50,11 +55,13 @@ editor?.setCode(diffEditor?.getModified() || '') editor?.format() generatedCode = '' + explanation = '' error = '' } function rejectDiff() { generatedCode = '' + explanation = '' } function checkIfOpenaiAvailable( @@ -108,6 +115,13 @@ > Accept + {#if explanation} + + {explanation} + + {/if} {:else}