diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index 65b77ef43..2a1579efc 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -35,7 +35,7 @@ const crypto = require('crypto'); const loadModelTransform = require('../utility/loadModelTransform'); const exportDbModelSql = require('../utility/exportDbModelSql'); const axios = require('axios'); -const { callTextToSqlApi } = require('../utility/authProxy'); +const { callTextToSqlApi, callCompleteOnCursorApi } = require('../utility/authProxy'); const logger = getLogger('databaseConnections'); @@ -573,7 +573,21 @@ module.exports = { const res = await callTextToSqlApi(text, structure, dialect); - if (!res.sql) { + if (!res?.sql) { + return { errorMessage: 'No SQL generated' }; + } + + return res; + }, + + completeOnCursor_meta: true, + async completeOnCursor({ conid, database, text, dialect, line }) { + const existing = this.opened.find(x => x.conid == conid && x.database == database); + const { structure } = existing || {}; + if (!structure) return { errorMessage: 'No database structure' }; + const res = await callCompleteOnCursorApi(text, structure, dialect, line); + + if (!res?.sql) { return { errorMessage: 'No SQL generated' }; } diff --git a/packages/api/src/utility/authProxy.js b/packages/api/src/utility/authProxy.js index e0899b91e..f6122c916 100644 --- a/packages/api/src/utility/authProxy.js +++ b/packages/api/src/utility/authProxy.js @@ -28,6 +28,10 @@ async function callTextToSqlApi(text, structure, dialect) { return null; } +async function callCompleteOnCursorApi(cursorId, query, position, dialect) { + return null; +} + module.exports = { isAuthProxySupported, authProxyGetRedirectUrl, @@ -37,4 +41,5 @@ module.exports = { supportsAwsIam, getAwsIamToken, callTextToSqlApi, + callCompleteOnCursorApi, }; diff --git a/packages/web/src/tabs/QueryTab.svelte b/packages/web/src/tabs/QueryTab.svelte index c81d2e56f..5c5bf52a4 100644 --- a/packages/web/src/tabs/QueryTab.svelte +++ b/packages/web/src/tabs/QueryTab.svelte @@ -519,6 +519,8 @@ onClose={() => { isAiAssistantVisible = false; }} + text={$editorValue} + getLine={() => domEditor.getEditor().getSelectionRange().start.row} />