Files
dbx/apps/desktop/src/lib/backend/api.ts
T

999 lines
54 KiB
TypeScript

import { isTauriRuntime } from "@/lib/backend/tauriRuntime";
import type * as TauriModule from "@/lib/backend/tauri";
import { appendDebugLog } from "@/lib/backend/debugLog";
import { useSettingsStore } from "@/stores/settingsStore";
import type { AiConfigItem } from "@/types/ai";
// ---------------------------------------------------------------------------
// Lazy backend resolution (avoids top-level await)
// ---------------------------------------------------------------------------
type Backend = typeof TauriModule;
let _backend: Backend | null = null;
async function getBackend(): Promise<Backend> {
if (_backend) return _backend;
_backend = isTauriRuntime(globalThis) ? await import("@/lib/backend/tauri") : await import("@/lib/backend/http");
return _backend;
}
// ---------------------------------------------------------------------------
// Helper: create a forwarding function that lazily resolves the backend
// ---------------------------------------------------------------------------
function forward<K extends keyof Backend>(name: K): Backend[K] {
return (async (...args: unknown[]) => {
const startedAt = performance.now();
const operation = String(name);
appendDebugLog("debug", "[DBX][api:start]", operation);
const b = await getBackend();
try {
const result = await (b[name] as (...a: unknown[]) => unknown)(...args);
appendDebugLog("debug", "[DBX][api:success]", {
operation,
elapsedMs: Math.round(performance.now() - startedAt),
});
return result;
} catch (error) {
appendDebugLog("error", "[DBX][api:error]", {
operation,
elapsedMs: Math.round(performance.now() - startedAt),
error,
});
throw error;
}
}) as unknown as Backend[K];
}
// ---------------------------------------------------------------------------
// Re-export all functions via lazy forwarding
// ---------------------------------------------------------------------------
// Connection
export const testConnection = forward("testConnection");
export const testConnectionWithInfo = forward("testConnectionWithInfo");
export const connectDb = forward("connectDb");
export const connectionDatabaseInfo = forward("connectionDatabaseInfo");
export const saveConnectionDatabaseInfo = forward("saveConnectionDatabaseInfo");
export const unlockConnectionWrites = forward("unlockConnectionWrites");
export const lockConnectionWrites = forward("lockConnectionWrites");
export const connectionWriteUnlockState = forward("connectionWriteUnlockState");
export const connectionFinalProxyPort = forward("connectionFinalProxyPort");
export const disconnectDb = forward("disconnectDb");
export const sessionCredentialStatus = forward("sessionCredentialStatus");
export const forgetSessionCredential = forward("forgetSessionCredential");
export const replaceNacosSessionCredential = forward("replaceNacosSessionCredential");
export const checkConnectionHealth = forward("checkConnectionHealth");
export const connectionIdentifierQuote = forward("connectionIdentifierQuote");
export const closeDatabaseConnection = forward("closeDatabaseConnection");
export const refreshConnections = forward("refreshConnections");
export const saveConnections = forward("saveConnections");
export const loadConnections = forward("loadConnections");
export const loadTunnelProfiles = forward("loadTunnelProfiles");
export const saveTunnelProfiles = forward("saveTunnelProfiles");
export const testTunnelProfile = forward("testTunnelProfile");
export const resolveSshPrompt = forward("resolveSshPrompt");
export const readKeychainPassword = forward("readKeychainPassword");
export const readKeychainPasswords = forward("readKeychainPasswords");
export const decryptConfig = forward("decryptConfig");
export const listPlugins = forward("listPlugins");
export const listJdbcDrivers = forward("listJdbcDrivers");
export const listJdbcMavenBundles = forward("listJdbcMavenBundles");
export const listJdbcLocalBundles = forward("listJdbcLocalBundles");
export const importJdbcDrivers = forward("importJdbcDrivers");
export const installJdbcDriverFromMaven = forward("installJdbcDriverFromMaven");
export const installPrestoSqlJdbcDriver = forward("installPrestoSqlJdbcDriver");
export const deleteJdbcDriver = forward("deleteJdbcDriver");
export const deleteJdbcMavenBundle = forward("deleteJdbcMavenBundle");
export const deleteJdbcLocalBundle = forward("deleteJdbcLocalBundle");
export const jdbcPluginStatus = forward("jdbcPluginStatus");
export const installJdbcPlugin = forward("installJdbcPlugin");
export const installJdbcPluginLocal = forward("installJdbcPluginLocal");
export const uninstallJdbcPlugin = forward("uninstallJdbcPlugin");
export const listInstalledAgentsLocal = forward("listInstalledAgentsLocal");
export async function listInstalledAgents() {
const backend = await getBackend();
return backend.listInstalledAgents(useSettingsStore().editorSettings.updateDownloadSource);
}
export const isAgentInstalled = forward("isAgentInstalled");
export const getDriverStoreUsage = forward("getDriverStoreUsage");
export const clearDriverDownloadCache = forward("clearDriverDownloadCache");
export const getDriverRuntimeSummary = forward("getDriverRuntimeSummary");
export const stopDriverRuntime = forward("stopDriverRuntime");
export const restartDriverRuntime = forward("restartDriverRuntime");
export async function installAgent(dbType: string, operationId?: string) {
const backend = await getBackend();
return backend.installAgent(dbType, useSettingsStore().editorSettings.updateDownloadSource, operationId);
}
export async function upgradeAllAgents(operationId?: string) {
const backend = await getBackend();
return backend.upgradeAllAgents(useSettingsStore().editorSettings.updateDownloadSource, operationId);
}
export const cancelAgentInstall = forward("cancelAgentInstall");
export const cancelAgentUpgradeAll = forward("cancelAgentUpgradeAll");
export const checkAgentUpdateBlockers = forward("checkAgentUpdateBlockers");
export const uninstallAgent = forward("uninstallAgent");
export const getAgentJavaRuntimeConfig = forward("getAgentJavaRuntimeConfig");
export const setAgentJavaRuntimeConfig = forward("setAgentJavaRuntimeConfig");
export const invalidateAgentRegistryCache = forward("invalidateAgentRegistryCache");
export async function importAgentsFromZip(fileOrPath: string | File, operationId?: string) {
const backend = await getBackend();
return backend.importAgentsFromZip(fileOrPath, operationId);
}
export const previewAgentOfflineExport = forward("previewAgentOfflineExport");
export const exportAgentsOffline = forward("exportAgentsOffline");
export const importAgentDriver = forward("importAgentDriver");
export const importAgentJar = importAgentDriver;
export async function reinstallJre(jreKey?: string, operationId?: string) {
const backend = await getBackend();
return backend.reinstallJre(jreKey, useSettingsStore().editorSettings.updateDownloadSource, operationId);
}
export const uninstallJre = forward("uninstallJre");
export const listenAgentInstallProgress = forward("listenAgentInstallProgress");
export const loadSavedSqlLibrary = forward("loadSavedSqlLibrary");
export const loadSavedSqlFilesForSync = forward("loadSavedSqlFilesForSync");
export const loadSavedSqlFile = forward("loadSavedSqlFile");
export const saveSavedSqlFolder = forward("saveSavedSqlFolder");
export const deleteSavedSqlFolder = forward("deleteSavedSqlFolder");
export const saveSavedSqlFile = forward("saveSavedSqlFile");
export const deleteSavedSqlFile = forward("deleteSavedSqlFile");
export const savedSqlStorageDir = forward("savedSqlStorageDir");
export const openSavedSqlStorageDir = forward("openSavedSqlStorageDir");
export const revealPathInFileManager = forward("revealPathInFileManager");
export const deleteDatabaseBackupFiles = forward("deleteDatabaseBackupFiles");
export const isSqliteDatabaseFile = forward("isSqliteDatabaseFile");
export const backupSqliteDatabase = forward("backupSqliteDatabase");
export const restoreSqliteDatabase = forward("restoreSqliteDatabase");
export const syncSavedSqlDirectory = forward("syncSavedSqlDirectory");
// Schema
export const listDatabases = forward("listDatabases");
export const listDatabaseMetadata = forward("listDatabaseMetadata");
export const listDatabaseStorage = forward("listDatabaseStorage");
export const listXuguTablespaces = forward("listXuguTablespaces");
export const getSqlServerCompletionContext = forward("getSqlServerCompletionContext");
export const listDorisCatalogs = forward("listDorisCatalogs");
export const listDorisCatalogDatabases = forward("listDorisCatalogDatabases");
export const listSqlServerLinkedServers = forward("listSqlServerLinkedServers");
export const listSqlServerLinkedServerCatalogs = forward("listSqlServerLinkedServerCatalogs");
export const listSqlServerLinkedServerSchemas = forward("listSqlServerLinkedServerSchemas");
export const listSqlServerLinkedServerTables = forward("listSqlServerLinkedServerTables");
export const saveSchemaCache = forward("saveSchemaCache");
export const loadSchemaCache = forward("loadSchemaCache");
export const deleteSchemaCachePrefix = forward("deleteSchemaCachePrefix");
export const listSchemas = forward("listSchemas");
export const listSchemaInfos = forward("listSchemaInfos");
export const listTables = forward("listTables");
export const getTableComment = forward("getTableComment");
export const getMysqlTableAutoIncrement = forward("getMysqlTableAutoIncrement");
export const listObjects = forward("listObjects");
export const listObjectStatistics = forward("listObjectStatistics");
export const listCompletionObjects = forward("listCompletionObjects");
export const completionAssistantSearch = forward("completionAssistantSearch");
export const getObjectSource = forward("getObjectSource");
export const getEventInfo = forward("getEventInfo");
export const getCustomTypeDetails = forward("getCustomTypeDetails");
export const getColumns = forward("getColumns");
export const getAllColumns = forward("getAllColumns");
export const getSqlServerColumnMetadata = forward("getSqlServerColumnMetadata");
export const listDataTypes = forward("listDataTypes");
export const listIndexes = forward("listIndexes");
export const listReferenceKeyColumns = forward("listReferenceKeyColumns");
export const listReferenceKeys = forward("listReferenceKeys");
export const listForeignKeys = forward("listForeignKeys");
export const listTriggers = forward("listTriggers");
export const listConstraints = forward("listConstraints");
export const listPartitions = forward("listPartitions");
export const getTablePartitionStatus = forward("getTablePartitionStatus");
export const listInvalidIndexes = forward("listInvalidIndexes");
export const listSubpartitions = forward("listSubpartitions");
export const getTableDdl = forward("getTableDdl");
export const getTableDisplayDdl = forward("getTableDisplayDdl");
export const listFunctions = forward("listFunctions");
export const listSequences = forward("listSequences");
export const listRules = forward("listRules");
export const listOwners = forward("listOwners");
export const getTableOwner = forward("getTableOwner");
export const listExtensions = forward("listExtensions");
export const listAvailableExtensions = forward("listAvailableExtensions");
export const prepareSchemaDiff = forward("prepareSchemaDiff");
export const generateSchemaSyncSql = forward("generateSchemaSyncSql");
export const generateSchemaSyncPlan = forward("generateSchemaSyncPlan");
export const listDialectDataTypes = forward("listDialectDataTypes");
// Docs
export const collectDocsSnapshot = forward("collectDocsSnapshot");
export const loadDocsAnnotations = forward("loadDocsAnnotations");
export const applyDocsAnnotations = forward("applyDocsAnnotations");
export const saveDocsAnnotations = forward("saveDocsAnnotations");
export const exportDocsHtml = forward("exportDocsHtml");
// Query
export const executeQuery = forward("executeQuery");
export const executeConditionalUpdate = forward("executeConditionalUpdate");
export const executeMulti = forward("executeMulti");
export const executeMultiWithProgress = forward("executeMultiWithProgress");
export const executeBatch = forward("executeBatch");
export const executeScript = forward("executeScript");
export const executeScriptWith2pc = forward("executeScriptWith2pc");
export const executeInTransaction = forward("executeInTransaction");
export const beginManualTransaction = forward("beginManualTransaction");
export const executeInManualTransaction = forward("executeInManualTransaction");
export const commitManualTransaction = forward("commitManualTransaction");
export const rollbackManualTransaction = forward("rollbackManualTransaction");
export const cancelQuery = forward("cancelQuery");
export const cancelConditionalUpdate = forward("cancelConditionalUpdate");
export const closeQuerySession = forward("closeQuerySession");
export const closeClientConnectionSession = forward("closeClientConnectionSession");
export const analyzeSqlReferences = forward("analyzeSqlReferences");
export const findStatementAtCursor = forward("findStatementAtCursor");
export const prepareQueryPaginationExecutionPlan = forward("prepareQueryPaginationExecutionPlan");
export const buildSortedQuerySql = forward("buildSortedQuerySql");
export const buildExplainSql = forward("buildExplainSql");
export const getExplainInfo = forward("getExplainInfo");
export const buildCreateUserSql = forward("buildCreateUserSql");
export const buildDroppedFilePreviewSql = forward("buildDroppedFilePreviewSql");
export const buildTableSelectSql = forward("buildTableSelectSql");
export const buildDatabaseSearchSql = forward("buildDatabaseSearchSql");
export const buildSearchResultWhere = forward("buildSearchResultWhere");
export const buildRenameObjectSql = forward("buildRenameObjectSql");
export const buildRenameDatabaseSql = forward("buildRenameDatabaseSql");
export const buildRenameDatabasePreflightSql = forward("buildRenameDatabasePreflightSql");
export const buildCreateDatabaseSql = forward("buildCreateDatabaseSql");
export const buildDuckDbAttachDatabaseSql = forward("buildDuckDbAttachDatabaseSql");
export const buildSqliteAttachDatabaseSql = forward("buildSqliteAttachDatabaseSql");
export const buildDropObjectSql = forward("buildDropObjectSql");
export const buildDropTableSql = forward("buildDropTableSql");
export const buildDropTableChildObjectSql = forward("buildDropTableChildObjectSql");
export const buildEmptyTableSql = forward("buildEmptyTableSql");
export const buildTruncateTableSql = forward("buildTruncateTableSql");
export const buildVacuumTableSql = forward("buildVacuumTableSql");
export const buildMysqlAutoIncrementSql = forward("buildMysqlAutoIncrementSql");
export const buildDropDatabaseSql = forward("buildDropDatabaseSql");
export const buildCreateSchemaSql = forward("buildCreateSchemaSql");
export const buildUpdateDatabasePropertiesSql = forward("buildUpdateDatabasePropertiesSql");
export const buildDropSchemaSql = forward("buildDropSchemaSql");
export const buildDuplicateTableStructureSql = forward("buildDuplicateTableStructureSql");
export const buildCopyTableDataSql = forward("buildCopyTableDataSql");
export const buildExecutableObjectSourceStatements = forward("buildExecutableObjectSourceStatements");
export const buildExecutableObjectSourceSql = forward("buildExecutableObjectSourceSql");
export const buildEditableObjectSource = forward("buildEditableObjectSource");
export const buildRoutineRenameObjectSourceStatements = forward("buildRoutineRenameObjectSourceStatements");
export const buildViewDdlSql = forward("buildViewDdlSql");
export const buildTableStructureChangeSql = forward("buildTableStructureChangeSql");
export const buildTableOwnerChangeSql = forward("buildTableOwnerChangeSql");
export const previewSqliteTableStructureChange = forward("previewSqliteTableStructureChange");
export const applySqliteTableStructureChange = forward("applySqliteTableStructureChange");
export const buildCreateTableSql = forward("buildCreateTableSql");
export const buildSingleColumnAlterSql = forward("buildSingleColumnAlterSql");
export const analyzeEditableQueryEditability = forward("analyzeEditableQueryEditability");
export const prepareDataGridSave = forward("prepareDataGridSave");
export const extractDataGridSelection = forward("extractDataGridSelection");
export const buildDataGridCopyUpdateStatements = forward("buildDataGridCopyUpdateStatements");
export const buildDataGridCopyInsertStatement = forward("buildDataGridCopyInsertStatement");
export const buildDmlChangePreviewSql = forward("buildDmlChangePreviewSql");
export const buildDataGridContextFilterCondition = forward("buildDataGridContextFilterCondition");
export const buildDataGridColumnValueFilterCondition = forward("buildDataGridColumnValueFilterCondition");
export const buildDataGridColumnValuesFilterCondition = forward("buildDataGridColumnValuesFilterCondition");
export const buildDataGridColumnDistinctValuesSql = forward("buildDataGridColumnDistinctValuesSql");
export const buildDataGridCountSql = forward("buildDataGridCountSql");
export const buildDataGridConditionalUpdateSql = forward("buildDataGridConditionalUpdateSql");
export const buildHiveTablePropertiesSql = forward("buildHiveTablePropertiesSql");
export const buildExportInsertStatements = forward("buildExportInsertStatements");
export const buildExportSqlInsert = forward("buildExportSqlInsert");
export const buildDatabaseSqlExport = forward("buildDatabaseSqlExport");
export const prepareDataCompare = forward("prepareDataCompare");
export const prepareDataCompareFromTables = forward("prepareDataCompareFromTables");
export const prepareDataCompareMissingTarget = forward("prepareDataCompareMissingTarget");
export const buildDataCompareSyncPlan = forward("buildDataCompareSyncPlan");
// AI
export const aiComplete = forward("aiComplete");
export const aiStream = forward("aiStream");
export const aiAgentStream = forward("aiAgentStream");
export const aiCancelStream = forward("aiCancelStream");
export const aiTestConnection = forward("aiTestConnection");
export const aiListModels = forward("aiListModels");
export const aiResolveModelEffort = forward("aiResolveModelEffort");
export const saveAiChatSelection = forward("saveAiChatSelection");
export const loadAiChatSelection = forward("loadAiChatSelection");
export const saveAiConfig = forward("saveAiConfig");
export const loadAiConfig = forward("loadAiConfig");
export const saveAiConfigs = forward("saveAiConfigs");
export const loadAiConfigs = forward("loadAiConfigs");
export const setDefaultAiConfig = forward("setDefaultAiConfig");
export const saveAiConfigItem = forward("saveAiConfigItem");
export const deleteAiConfig = forward("deleteAiConfig");
export const saveAiProviderConfig = forward("saveAiProviderConfig");
export const loadAiProviderConfigs = forward("loadAiProviderConfigs");
export const loadDesktopSettings = forward("loadDesktopSettings");
export const saveDesktopSettings = forward("saveDesktopSettings");
export const loadMcpGlobalPolicy = forward("loadMcpGlobalPolicy");
export const saveMcpGlobalPolicy = forward("saveMcpGlobalPolicy");
export const loadMaxAgentTurns = forward("loadMaxAgentTurns");
export const saveMaxAgentTurns = forward("saveMaxAgentTurns");
export const loadMaxRetries = forward("loadMaxRetries");
export const saveMaxRetries = forward("saveMaxRetries");
export const completeAppClose = forward("completeAppClose");
export const requestAppClose = forward("requestAppClose");
export const setDriverStoreDir = forward("setDriverStoreDir");
export const setPluginStoreDir = forward("setPluginStoreDir");
export const setAgentStoreDir = forward("setAgentStoreDir");
export const getDriverStorePath = forward("getDriverStorePath");
export const loadPinnedTreeNodeIds = forward("loadPinnedTreeNodeIds");
export const savePinnedTreeNodeIds = forward("savePinnedTreeNodeIds");
export const loadEditorSettings = forward("loadEditorSettings");
export const saveEditorSettings = forward("saveEditorSettings");
export const loadOpenTabsState = forward("loadOpenTabsState");
export const saveOpenTabsState = forward("saveOpenTabsState");
export const loadSavedSqlEditorPositions = forward("loadSavedSqlEditorPositions");
export const saveSavedSqlEditorPositions = forward("saveSavedSqlEditorPositions");
export const loadTransferTaskLibrary = forward("loadTransferTaskLibrary");
export const saveTransferTaskLibrary = forward("saveTransferTaskLibrary");
export const webdavSyncTest = forward("webdavSyncTest");
export const webdavPasswordStatus = forward("webdavPasswordStatus");
export const saveWebdavSavedPassword = forward("saveWebdavSavedPassword");
export const forgetWebdavSavedPassword = forward("forgetWebdavSavedPassword");
export const webdavSyncSecretsStatus = forward("webdavSyncSecretsStatus");
export const saveWebdavSyncSecretsPreference = forward("saveWebdavSyncSecretsPreference");
export const forgetWebdavSyncSecretsPassphrase = forward("forgetWebdavSyncSecretsPassphrase");
export const webdavSyncUpload = forward("webdavSyncUpload");
export const webdavSyncDownload = forward("webdavSyncDownload");
export const snippetSyncTest = forward("snippetSyncTest");
export const snippetTokenStatus = forward("snippetTokenStatus");
export const saveSnippetSavedToken = forward("saveSnippetSavedToken");
export const forgetSnippetSavedToken = forward("forgetSnippetSavedToken");
export const snippetSyncSettings = forward("snippetSyncSettings");
export const saveSnippetSyncId = forward("saveSnippetSyncId");
export const retrySnippetLegacyCleanup = forward("retrySnippetLegacyCleanup");
export const snippetSyncUpload = forward("snippetSyncUpload");
export const snippetSyncDownload = forward("snippetSyncDownload");
export const saveAiConversation = forward("saveAiConversation");
export const loadAiConversations = forward("loadAiConversations");
export const deleteAiConversation = forward("deleteAiConversation");
export const saveAiRun = forward("saveAiRun");
export const saveAiRunState = forward("saveAiRunState");
export const loadAiRuns = forward("loadAiRuns");
// Prompt Templates
export const loadPromptTemplates = forward("loadPromptTemplates");
export const savePromptTemplate = forward("savePromptTemplate");
export const deletePromptTemplate = forward("deletePromptTemplate");
export const getAiGlobalCustomInstructions = forward("getAiGlobalCustomInstructions");
export const setAiGlobalCustomInstructions = forward("setAiGlobalCustomInstructions");
// System
export const listSystemFonts = forward("listSystemFonts");
export const listSshConfigHosts = forward("listSshConfigHosts");
// SQL File Execution
export const previewSqlFile = forward("previewSqlFile");
export const executeSqlFile = forward("executeSqlFile");
export const executeSqlFiles = forward("executeSqlFiles");
export const cancelSqlFileExecution = forward("cancelSqlFileExecution");
export const listenSqlFileProgress = forward("listenSqlFileProgress");
export const pendingOpenSqlFiles = forward("pendingOpenSqlFiles");
export const pendingOpenDbFiles = forward("pendingOpenDbFiles");
export const pendingOpenConnectionLinks = forward("pendingOpenConnectionLinks");
export const pendingOpenAiConfigLinks = forward("pendingOpenAiConfigLinks");
export const readExternalSqlFile = forward("readExternalSqlFile");
export const readExternalSqlFileSnapshot = forward("readExternalSqlFileSnapshot");
export const inspectExternalSqlFile = forward("inspectExternalSqlFile");
export const writeExternalSqlFile = forward("writeExternalSqlFile");
export const saveExternalSqlFile = forward("saveExternalSqlFile");
export const listSqlFilesInFolder = forward("listSqlFilesInFolder");
export const createSqlFileInFolder = forward("createSqlFileInFolder");
export const renameSqlFileInFolder = forward("renameSqlFileInFolder");
export const deleteSqlFileInFolder = forward("deleteSqlFileInFolder");
// Nacos
export const nacosTestConnection = forward("nacosTestConnection");
export const nacosListNamespaces = forward("nacosListNamespaces");
export const nacosSidebarSnapshot = forward("nacosSidebarSnapshot");
export const nacosCreateNamespace = forward("nacosCreateNamespace");
export const nacosUpdateNamespace = forward("nacosUpdateNamespace");
export const nacosDeleteNamespace = forward("nacosDeleteNamespace");
export const nacosListConfigs = forward("nacosListConfigs");
export const nacosGetConfig = forward("nacosGetConfig");
export const nacosPublishConfig = forward("nacosPublishConfig");
export const nacosDeleteConfig = forward("nacosDeleteConfig");
export const nacosSearchConfigContent = forward("nacosSearchConfigContent");
export const nacosCancelConfigContentSearch = forward("nacosCancelConfigContentSearch");
export const nacosExportConfigs = forward("nacosExportConfigs");
export const nacosPreviewConfigImport = forward("nacosPreviewConfigImport");
export const nacosApplyConfigImport = forward("nacosApplyConfigImport");
export const nacosPreviewConfigTransfer = forward("nacosPreviewConfigTransfer");
export const nacosApplyConfigTransfer = forward("nacosApplyConfigTransfer");
export const nacosListConfigHistory = forward("nacosListConfigHistory");
export const nacosGetConfigHistory = forward("nacosGetConfigHistory");
export const nacosRollbackConfig = forward("nacosRollbackConfig");
export const nacosGetRNacosConsoleCaptcha = forward("nacosGetRNacosConsoleCaptcha");
export const nacosLoginRNacosConsole = forward("nacosLoginRNacosConsole");
export const nacosListUsers = forward("nacosListUsers");
export const nacosCreateUser = forward("nacosCreateUser");
export const nacosUpdateUser = forward("nacosUpdateUser");
export const nacosDeleteUser = forward("nacosDeleteUser");
export const nacosListRoleBindings = forward("nacosListRoleBindings");
export const nacosAssignRole = forward("nacosAssignRole");
export const nacosRemoveRole = forward("nacosRemoveRole");
export const nacosAccessSnapshot = forward("nacosAccessSnapshot");
export const nacosStartAccessOperation = forward("nacosStartAccessOperation");
export const nacosGetAccessOperation = forward("nacosGetAccessOperation");
export const nacosRetryAccessOperation = forward("nacosRetryAccessOperation");
export const nacosUndoAccessOperation = forward("nacosUndoAccessOperation");
export const nacosListServices = forward("nacosListServices");
export const nacosGetService = forward("nacosGetService");
export const nacosCreateService = forward("nacosCreateService");
export const nacosUpdateService = forward("nacosUpdateService");
export const nacosDeleteService = forward("nacosDeleteService");
export const nacosListInstances = forward("nacosListInstances");
export const nacosUpdateInstance = forward("nacosUpdateInstance");
export const nacosRegisterInstance = forward("nacosRegisterInstance");
export const nacosDeregisterInstance = forward("nacosDeregisterInstance");
export const nacosGetDashboard = forward("nacosGetDashboard");
export const nacosRawRequest = forward("nacosRawRequest");
// Data Transfer
export const startTransfer = forward("startTransfer");
export const cancelTransfer = forward("cancelTransfer");
export const previewTransferOwnership = forward("previewTransferOwnership");
export const sortTablesByFkDependency = forward("sortTablesByFkDependency");
// Table File Import
export const previewTableImportFile = forward("previewTableImportFile");
export const importTableFile = forward("importTableFile");
export const cancelTableImport = forward("cancelTableImport");
export const releaseTableImportSource = forward("releaseTableImportSource");
// Database Export
export const beginDatabaseBackupSnapshot = forward("beginDatabaseBackupSnapshot");
export const exportDatabaseSql = forward("exportDatabaseSql");
export const cancelDatabaseExport = forward("cancelDatabaseExport");
export const clearDatabaseExportCancellation = forward("clearDatabaseExportCancellation");
export const recordDatabaseExportDestination = forward("recordDatabaseExportDestination");
export const exportQueryResultCsv = forward("exportQueryResultCsv");
export const exportTableDataCsv = forward("exportTableDataCsv");
export const exportQueryResultXlsx = forward("exportQueryResultXlsx");
export const exportQueryResultsXlsx = forward("exportQueryResultsXlsx");
export const exportQueryResultJson = forward("exportQueryResultJson");
export const exportQueryResultMarkdown = forward("exportQueryResultMarkdown");
export const startTableExport = forward("startTableExport");
export const cancelTableExport = forward("cancelTableExport");
export const startQueryResultExport = forward("startQueryResultExport");
export const cancelQueryResultExport = forward("cancelQueryResultExport");
// Redis
export const redisListDatabases = forward("redisListDatabases");
export const redisScanKeys = forward("redisScanKeys");
export const redisScanKeysBatch = forward("redisScanKeysBatch");
export const redisScanValues = forward("redisScanValues");
export const redisGetValue = forward("redisGetValue");
export const redisGetTtl = forward("redisGetTtl");
export const redisGetStreamEntries = forward("redisGetStreamEntries");
export const redisGetStreamGroups = forward("redisGetStreamGroups");
export const redisGetStreamConsumers = forward("redisGetStreamConsumers");
export const redisGetStreamPending = forward("redisGetStreamPending");
export const redisSetString = forward("redisSetString");
export const redisDeleteKey = forward("redisDeleteKey");
export const redisRenameKey = forward("redisRenameKey");
export const redisHashSet = forward("redisHashSet");
export const redisHashDel = forward("redisHashDel");
export const redisHashFieldUpdate = forward("redisHashFieldUpdate");
export const redisHashFieldSetTtl = forward("redisHashFieldSetTtl");
export const redisHashFieldSetExpireAt = forward("redisHashFieldSetExpireAt");
export const redisListPush = forward("redisListPush");
export const redisListSet = forward("redisListSet");
export const redisListRemove = forward("redisListRemove");
export const redisSetAdd = forward("redisSetAdd");
export const redisSetRemove = forward("redisSetRemove");
export const redisZadd = forward("redisZadd");
export const redisZrem = forward("redisZrem");
export const redisZsetUpdate = forward("redisZsetUpdate");
export const redisStreamAdd = forward("redisStreamAdd");
export const redisJsonSet = forward("redisJsonSet");
export const redisCheckJsonModule = forward("redisCheckJsonModule");
export const redisSetTtl = forward("redisSetTtl");
export const redisSetExpireAt = forward("redisSetExpireAt");
export const redisDeleteKeys = forward("redisDeleteKeys");
export const redisFlushDb = forward("redisFlushDb");
export const redisExecuteCommand = forward("redisExecuteCommand");
export const redisLoadMore = forward("redisLoadMore");
export const redisPubSubPublish = forward("redisPubSubPublish");
export const redisPubSubConnect = forward("redisPubSubConnect");
export const redisSlowlogGet = forward("redisSlowlogGet");
export const redisClusterMasterNodes = forward("redisClusterMasterNodes");
// etcd
export const etcdListPrefix = forward("etcdListPrefix");
export const etcdSupportsTtl = forward("etcdSupportsTtl");
export const etcdGet = forward("etcdGet");
export const etcdPut = forward("etcdPut");
export const etcdDelete = forward("etcdDelete");
export const etcdRename = forward("etcdRename");
export const etcdHistory = forward("etcdHistory");
export const etcdStatus = forward("etcdStatus");
export const etcdPreflight = forward("etcdPreflight");
export const etcdCompact = forward("etcdCompact");
export const etcdDefrag = forward("etcdDefrag");
export const etcdWatchStart = forward("etcdWatchStart");
export const etcdWatchPoll = forward("etcdWatchPoll");
export const etcdWatchStop = forward("etcdWatchStop");
export const etcdLeaseList = forward("etcdLeaseList");
export const etcdLeaseCall = forward("etcdLeaseCall");
export const etcdAuthCall = forward("etcdAuthCall");
// ZooKeeper
export const zookeeperListPrefix = forward("zookeeperListPrefix");
export const zookeeperGet = forward("zookeeperGet");
export const zookeeperPut = forward("zookeeperPut");
export const zookeeperDelete = forward("zookeeperDelete");
// Consul KV
export const consulCapabilities = forward("consulCapabilities");
export const consulTxn = forward("consulTxn");
export const consulRenameKey = forward("consulRenameKey");
export const consulBlockingQuery = forward("consulBlockingQuery");
export const consulDomainWatch = forward("consulDomainWatch");
export const consulCancelBlocking = forward("consulCancelBlocking");
export const consulWatchStart = forward("consulWatchStart");
export const consulListRecursive = forward("consulListRecursive");
export const consulSearch = forward("consulSearch");
export const consulSearchProgress = forward("consulSearchProgress");
export const consulCancelSearch = forward("consulCancelSearch");
export const consulExportBundle = forward("consulExportBundle");
export const consulImportPreview = forward("consulImportPreview");
export const consulImportExecute = forward("consulImportExecute");
export const consulDeletePrefixPreview = forward("consulDeletePrefixPreview");
export const consulDeletePrefixExecute = forward("consulDeletePrefixExecute");
export const consulListPrefix = forward("consulListPrefix");
export const consulGet = forward("consulGet");
export const consulPut = forward("consulPut");
export const consulDelete = forward("consulDelete");
export const consulPreparedQueryList = forward("consulPreparedQueryList");
export const consulPreparedQueryRead = forward("consulPreparedQueryRead");
export const consulPreparedQueryCreate = forward("consulPreparedQueryCreate");
export const consulPreparedQueryUpdate = forward("consulPreparedQueryUpdate");
export const consulPreparedQueryDelete = forward("consulPreparedQueryDelete");
export const consulPreparedQueryExecute = forward("consulPreparedQueryExecute");
export const consulPreparedQueryExplain = forward("consulPreparedQueryExplain");
export const consulEventList = forward("consulEventList");
export const consulEventFire = forward("consulEventFire");
export const consulCoordinateNodes = forward("consulCoordinateNodes");
export const consulOperatorRead = forward("consulOperatorRead");
export const consulSnapshotGenerate = forward("consulSnapshotGenerate");
export const consulSnapshotRestore = forward("consulSnapshotRestore");
export const consulAutopilotUpdate = forward("consulAutopilotUpdate");
export const consulRaftTransfer = forward("consulRaftTransfer");
export const consulRaftRemove = forward("consulRaftRemove");
export const consulKeyringWrite = forward("consulKeyringWrite");
export const consulLicenseWrite = forward("consulLicenseWrite");
export const consulStatusLeader = forward("consulStatusLeader");
export const consulStatusPeers = forward("consulStatusPeers");
export const consulAgentSelf = forward("consulAgentSelf");
export const consulAgentMembers = forward("consulAgentMembers");
export const consulAgentMetrics = forward("consulAgentMetrics");
export const consulCatalogDatacenters = forward("consulCatalogDatacenters");
export const consulCatalogNodes = forward("consulCatalogNodes");
export const consulCatalogServices = forward("consulCatalogServices");
export const consulCatalogServiceNodes = forward("consulCatalogServiceNodes");
export const consulCatalogNodeServices = forward("consulCatalogNodeServices");
export const consulHealthNode = forward("consulHealthNode");
export const consulHealthChecks = forward("consulHealthChecks");
export const consulHealthService = forward("consulHealthService");
export const consulHealthState = forward("consulHealthState");
export const consulAgentServices = forward("consulAgentServices");
export const consulAgentService = forward("consulAgentService");
export const consulAgentChecks = forward("consulAgentChecks");
export const consulAgentRegisterService = forward("consulAgentRegisterService");
export const consulAgentDeregisterService = forward("consulAgentDeregisterService");
export const consulAgentServiceMaintenance = forward("consulAgentServiceMaintenance");
export const consulAgentRegisterCheck = forward("consulAgentRegisterCheck");
export const consulAgentDeregisterCheck = forward("consulAgentDeregisterCheck");
export const consulAgentUpdateTtl = forward("consulAgentUpdateTtl");
export const consulSessions = forward("consulSessions");
export const consulNodeSessions = forward("consulNodeSessions");
export const consulSession = forward("consulSession");
export const consulSessionKeys = forward("consulSessionKeys");
export const consulSessionDestroyImpact = forward("consulSessionDestroyImpact");
export const consulCreateSession = forward("consulCreateSession");
export const consulRenewSession = forward("consulRenewSession");
export const consulDestroySession = forward("consulDestroySession");
export const consulAcquireLock = forward("consulAcquireLock");
export const consulReleaseLock = forward("consulReleaseLock");
export const consulAclList = forward("consulAclList");
export const consulAclTokenSelf = forward("consulAclTokenSelf");
export const consulAclTokenClone = forward("consulAclTokenClone");
export const consulAclGet = forward("consulAclGet");
export const consulAclApply = forward("consulAclApply");
export const consulAclReferences = forward("consulAclReferences");
export const consulAclDelete = forward("consulAclDelete");
export const consulEnterpriseList = forward("consulEnterpriseList");
export const consulEnterpriseGet = forward("consulEnterpriseGet");
export const consulEnterpriseApply = forward("consulEnterpriseApply");
export const consulEnterpriseImpact = forward("consulEnterpriseImpact");
export const consulEnterpriseDelete = forward("consulEnterpriseDelete");
export const consulMeshConfigList = forward("consulMeshConfigList");
export const consulMeshConfigGet = forward("consulMeshConfigGet");
export const consulMeshConfigApply = forward("consulMeshConfigApply");
export const consulMeshConfigDelete = forward("consulMeshConfigDelete");
export const consulMeshIntentionsList = forward("consulMeshIntentionsList");
export const consulMeshIntentionGet = forward("consulMeshIntentionGet");
export const consulMeshIntentionGetExact = forward("consulMeshIntentionGetExact");
export const consulMeshIntentionUpsert = forward("consulMeshIntentionUpsert");
export const consulMeshIntentionDelete = forward("consulMeshIntentionDelete");
export const consulMeshIntentionDeleteExact = forward("consulMeshIntentionDeleteExact");
export const consulMeshIntentionMatch = forward("consulMeshIntentionMatch");
export const consulMeshIntentionCheck = forward("consulMeshIntentionCheck");
export const consulMeshDiscoveryChain = forward("consulMeshDiscoveryChain");
export const consulMeshPeeringList = forward("consulMeshPeeringList");
export const consulMeshPeeringGet = forward("consulMeshPeeringGet");
export const consulMeshPeeringGenerateToken = forward("consulMeshPeeringGenerateToken");
export const consulMeshPeeringEstablish = forward("consulMeshPeeringEstablish");
export const consulMeshPeeringDelete = forward("consulMeshPeeringDelete");
export const consulMeshExportedServicesList = forward("consulMeshExportedServicesList");
export const consulMeshExportedServicesApply = forward("consulMeshExportedServicesApply");
// HBase
export const hbaseGetTableSchema = forward("hbaseGetTableSchema");
export const hbaseScanRows = forward("hbaseScanRows");
export const hbaseGetRow = forward("hbaseGetRow");
export const hbasePutRow = forward("hbasePutRow");
export const hbaseDeleteRow = forward("hbaseDeleteRow");
export const hbaseCreateTable = forward("hbaseCreateTable");
export const hbaseDeleteTable = forward("hbaseDeleteTable");
// Message Queue
export const mqTestConnection = forward("mqTestConnection");
export const mqListTenants = forward("mqListTenants");
export const mqGetTenant = forward("mqGetTenant");
export const mqCreateTenant = forward("mqCreateTenant");
export const mqUpdateTenant = forward("mqUpdateTenant");
export const mqDeleteTenant = forward("mqDeleteTenant");
export const mqListNamespaces = forward("mqListNamespaces");
export const mqCreateNamespace = forward("mqCreateNamespace");
export const mqDeleteNamespace = forward("mqDeleteNamespace");
export const mqGetNamespacePolicies = forward("mqGetNamespacePolicies");
export const mqListTopics = forward("mqListTopics");
export const mqCreateTopic = forward("mqCreateTopic");
export const mqDeleteTopic = forward("mqDeleteTopic");
export const mqUpdatePartitions = forward("mqUpdatePartitions");
export const mqGetTopicStats = forward("mqGetTopicStats");
export const mqGetTopicInternalStats = forward("mqGetTopicInternalStats");
export const mqListExchanges = forward("mqListExchanges");
export const mqCreateExchange = forward("mqCreateExchange");
export const mqDeleteExchange = forward("mqDeleteExchange");
export const mqListBindings = forward("mqListBindings");
export const mqBind = forward("mqBind");
export const mqUnbind = forward("mqUnbind");
export const mqListClientConnections = forward("mqListClientConnections");
export const mqListClientChannels = forward("mqListClientChannels");
export const mqCloseClientConnection = forward("mqCloseClientConnection");
export const mqListSubscriptions = forward("mqListSubscriptions");
export const mqEnrichSubscriptions = forward("mqEnrichSubscriptions");
export const mqGetKafkaConsumerGroupSnapshot = forward("mqGetKafkaConsumerGroupSnapshot");
export const mqCreateSubscription = forward("mqCreateSubscription");
export const mqDeleteSubscription = forward("mqDeleteSubscription");
export const mqSkipMessages = forward("mqSkipMessages");
export const mqResetCursor = forward("mqResetCursor");
export const mqClearBacklog = forward("mqClearBacklog");
export const mqPeekMessages = forward("mqPeekMessages");
export const mqExpireMessages = forward("mqExpireMessages");
export const mqListProducers = forward("mqListProducers");
export const mqListConsumers = forward("mqListConsumers");
export const mqUnloadTopic = forward("mqUnloadTopic");
export const mqSetPublishRate = forward("mqSetPublishRate");
export const mqSetDispatchRate = forward("mqSetDispatchRate");
export const mqSetSubscribeRate = forward("mqSetSubscribeRate");
export const mqSetBacklogQuota = forward("mqSetBacklogQuota");
export const mqSetRetention = forward("mqSetRetention");
export const mqGetEffectivePolicies = forward("mqGetEffectivePolicies");
export const mqGrantPermission = forward("mqGrantPermission");
export const mqRevokePermission = forward("mqRevokePermission");
export const mqListPermissions = forward("mqListPermissions");
export const mqIssueToken = forward("mqIssueToken");
export const mqListTokenRecords = forward("mqListTokenRecords");
export const mqGetBacklog = forward("mqGetBacklog");
export const mqGetConsumerGroupConfig = forward("mqGetConsumerGroupConfig");
export const mqAlterConsumerGroupConfig = forward("mqAlterConsumerGroupConfig");
export const mqGetClusterInfo = forward("mqGetClusterInfo");
export const mqGetTopicRoute = forward("mqGetTopicRoute");
export const mqAlterTopicConfig = forward("mqAlterTopicConfig");
export const mqSkipTopicAccumulation = forward("mqSkipTopicAccumulation");
export const mqViewMessage = forward("mqViewMessage");
export const mqQueryMessagesByKey = forward("mqQueryMessagesByKey");
export const mqQueryMessagesByTopic = forward("mqQueryMessagesByTopic");
export const mqQueryMessageTrace = forward("mqQueryMessageTrace");
export const mqRawRequest = forward("mqRawRequest");
export const mqSendMessage = forward("mqSendMessage");
export const mqListUsers = forward("mqListUsers");
export const mqCreateUser = forward("mqCreateUser");
export const mqDeleteUser = forward("mqDeleteUser");
export const mqListUserPermissions = forward("mqListUserPermissions");
export const mqGrantUserPermission = forward("mqGrantUserPermission");
export const mqRevokeUserPermission = forward("mqRevokeUserPermission");
export const mqListPolicies = forward("mqListPolicies");
export const mqSetPolicy = forward("mqSetPolicy");
export const mqDeletePolicy = forward("mqDeletePolicy");
export const mqGetOverview = forward("mqGetOverview");
export const mqListNodes = forward("mqListNodes");
// MongoDB
export const documentListDatabases = forward("documentListDatabases");
export const mongoListDatabases = forward("mongoListDatabases");
export const documentListCollections = forward("documentListCollections");
export const mongoListCollections = forward("mongoListCollections");
export const documentListGridFsBuckets = forward("documentListGridFsBuckets");
export const documentCreateGridFsBucket = forward("documentCreateGridFsBucket");
export const documentDeleteGridFsBucket = forward("documentDeleteGridFsBucket");
export const documentListGridFsFiles = forward("documentListGridFsFiles");
export const documentDownloadGridFsFile = forward("documentDownloadGridFsFile");
export const documentUploadGridFsFile = forward("documentUploadGridFsFile");
export const documentDeleteGridFsFile = forward("documentDeleteGridFsFile");
export const vectorGetCollectionDetail = forward("vectorGetCollectionDetail");
export const vectorDropDatabase = forward("vectorDropDatabase");
export const vectorDropCollection = forward("vectorDropCollection");
export const vectorRenameCollection = forward("vectorRenameCollection");
export const mongoCreateDatabase = forward("mongoCreateDatabase");
export const mongoDropDatabase = forward("mongoDropDatabase");
export const mongoDropCollection = forward("mongoDropCollection");
export const mongoRenameCollection = forward("mongoRenameCollection");
export const mongoCloneCollection = forward("mongoCloneCollection");
export const documentFindDocuments = forward("documentFindDocuments");
export const documentCountDocuments = forward("documentCountDocuments");
export const dynamodbDescribeTable = forward("dynamodbDescribeTable");
export const elasticsearchCountDocuments = forward("elasticsearchCountDocuments");
export const mongoFindDocuments = forward("mongoFindDocuments");
export const mongoParseShellCommand = forward("mongoParseShellCommand");
export const mongoFindOne = forward("mongoFindOne");
export const mongoCountDocuments = forward("mongoCountDocuments");
export const mongoServerVersion = forward("mongoServerVersion");
export const mongoAggregateDocuments = forward("mongoAggregateDocuments");
export const mongoDistinct = forward("mongoDistinct");
export const mongoCollectionStats = forward("mongoCollectionStats");
export const mongoListIndexSpecs = forward("mongoListIndexSpecs");
export const mongoCreateIndex = forward("mongoCreateIndex");
export const mongoCreateUser = forward("mongoCreateUser");
export const mongoRunCommand = forward("mongoRunCommand");
export const mongoDropIndexes = forward("mongoDropIndexes");
export const documentInsertDocument = forward("documentInsertDocument");
export const mongoInsertDocument = forward("mongoInsertDocument");
export const mongoInsertDocuments = forward("mongoInsertDocuments");
export const documentUpdateDocument = forward("documentUpdateDocument");
export const mongoUpdateDocument = forward("mongoUpdateDocument");
export const mongoUpdateDocuments = forward("mongoUpdateDocuments");
export const documentDeleteDocument = forward("documentDeleteDocument");
export const documentSaveMeilisearchBatch = forward("documentSaveMeilisearchBatch");
export const meilisearchSearchDocuments = forward("meilisearchSearchDocuments");
export const meilisearchFetchDocuments = forward("meilisearchFetchDocuments");
export const meilisearchGetDocument = forward("meilisearchGetDocument");
export const meilisearchGetIndexSettings = forward("meilisearchGetIndexSettings");
export const meilisearchUpdateIndexSettings = forward("meilisearchUpdateIndexSettings");
export const meilisearchGetIndexStats = forward("meilisearchGetIndexStats");
export const meilisearchGetIndexOverview = forward("meilisearchGetIndexOverview");
export const meilisearchDeleteIndex = forward("meilisearchDeleteIndex");
export const meilisearchDeleteAllDocuments = forward("meilisearchDeleteAllDocuments");
export const meilisearchGetSystemOverview = forward("meilisearchGetSystemOverview");
export const meilisearchListIndexes = forward("meilisearchListIndexes");
export const meilisearchListKeys = forward("meilisearchListKeys");
export const meilisearchGetKey = forward("meilisearchGetKey");
export const meilisearchCreateKey = forward("meilisearchCreateKey");
export const meilisearchUpdateKey = forward("meilisearchUpdateKey");
export const meilisearchDeleteKey = forward("meilisearchDeleteKey");
export const meilisearchGetTasks = forward("meilisearchGetTasks");
export const meilisearchGetTask = forward("meilisearchGetTask");
export const meilisearchCancelTasks = forward("meilisearchCancelTasks");
export const meilisearchDeleteTasks = forward("meilisearchDeleteTasks");
export const mongoDeleteDocument = forward("mongoDeleteDocument");
export const mongoDeleteDocuments = forward("mongoDeleteDocuments");
export const mongoFindOneAndUpdate = forward("mongoFindOneAndUpdate");
export const mongoFindOneAndReplace = forward("mongoFindOneAndReplace");
export const mongoFindOneAndDelete = forward("mongoFindOneAndDelete");
// Elasticsearch
export const elasticsearchListIndices = forward("elasticsearchListIndices");
export const elasticsearchGetIndexMetadata = forward("elasticsearchGetIndexMetadata");
export const elasticsearchDeleteAllDocuments = forward("elasticsearchDeleteAllDocuments");
export const vectorListCollections = forward("vectorListCollections");
// History
export const saveHistory = forward("saveHistory");
export const loadHistory = forward("loadHistory");
export const searchHistory = forward("searchHistory");
export const loadHistoryConnectionOptions = forward("loadHistoryConnectionOptions");
export const loadRedisHistory = forward("loadRedisHistory");
export const clearHistory = forward("clearHistory");
export const clearRedisHistory = forward("clearRedisHistory");
export const deleteHistoryEntry = forward("deleteHistoryEntry");
// Updates
export const checkMcpServerStatus = forward("checkMcpServerStatus");
export const installMcpServer = forward("installMcpServer");
export const uninstallMcpServer = forward("uninstallMcpServer");
export const loadMcpHttpServerSettings = forward("loadMcpHttpServerSettings");
export const saveMcpHttpServerSettings = forward("saveMcpHttpServerSettings");
export const mcpHttpServerStatus = forward("mcpHttpServerStatus");
export const rotateMcpHttpServerToken = forward("rotateMcpHttpServerToken");
export const loadWebMcpHttpStatus = forward("loadWebMcpHttpStatus");
export const checkForUpdates = forward("checkForUpdates");
export const fetchChangelog = forward("fetchChangelog");
export const getSystemProxyUrl = forward("getSystemProxyUrl");
export const downloadUpdate = forward("downloadUpdate");
export const cancelUpdateDownload = forward("cancelUpdateDownload");
export const installDownloadedUpdate = forward("installDownloadedUpdate");
export const getAppVersion = forward("getAppVersion");
export const getAppSupportInfo = forward("getAppSupportInfo");
// Layout
export const saveSidebarLayout = forward("saveSidebarLayout");
export const loadSidebarLayout = forward("loadSidebarLayout");
// ---------------------------------------------------------------------------
// Re-export all types from tauri.ts (shared between both backends)
// ---------------------------------------------------------------------------
export type { AiConfigItem };
export type {
AppSupportInfo,
AiMessage,
AiCompletionRequest,
AiTaskContract,
AiStreamChunk,
AiModelInfo,
AiChatMessage,
AiConversation,
AiRun,
AiRunStatus,
PromptTemplate,
AgentDriverInfo,
AgentOfflineArtifactKind,
AgentOfflineExportUnavailableReason,
AgentOfflineExportCandidate,
AgentOfflineExportPreview,
AgentOfflineExportResult,
DriverStoreUsage,
DriverStoreUsageItem,
DriverRuntimeHealth,
DriverRuntimeStatus,
DriverRuntimeInfo,
DriverRuntimeSummary,
JavaRuntimeMode,
JavaRuntimeConfig,
DriverInstallProgress,
DriverStoreMigrationResult,
DriverStorePathInfo,
WebDavConfig,
WebDavPasswordStatus,
WebDavSyncSummary,
WebDavDownloadResult,
SnippetProvider,
SnippetSyncConfig,
SnippetSyncSettings,
SnippetSyncSummary,
SnippetDownloadResult,
SnippetTokenStatus,
McpServerStatus,
McpHttpServerSettings,
McpHttpServerStatus,
WebMcpHttpStatus,
UpdateInfo,
RedisBlob,
RedisCollectionPage,
RedisDatabaseInfo,
RedisHashItem,
RedisKeyInfo,
RedisListItem,
RedisSetItem,
RedisStreamConsumer,
RedisStreamEntry,
RedisStreamField,
RedisStreamGroup,
RedisStreamMetric,
RedisStreamPage,
RedisStreamPendingEntry,
RedisStreamPendingPage,
RedisValue,
RedisValueData,
RedisZsetItem,
RedisScanResult,
RedisCommandSafety,
RedisCommandResult,
RedisSlowlogEntry,
RedisNodeEndpoint,
KvValueEncoding,
KvInt64,
KvValue,
KvKeyMetadata,
KvKeySummary,
KvListPrefixResponse,
KvListPrefixOptions,
KvGetOptions,
KvGetResponse,
KvWriteMode,
KvCreateMode,
KvPutOptions,
KvPutResponse,
KvDeleteOptions,
KvDeleteResponse,
KvHistoryEventType,
KvHistoryEvent,
KvHistoryResponse,
KvStatusMember,
KvPrometheusMetrics,
KvStatusResponse,
EtcdDefragResponse,
EtcdDefragMemberResult,
EtcdWatchStartRequest,
EtcdWatchStartResponse,
EtcdWatchPollResponse,
EtcdLeaseListResponse,
EtcdLeaseDetail,
EtcdAuthUserListResponse,
EtcdAuthUserDetail,
EtcdAuthPermission,
EtcdAuthRoleListResponse,
EtcdAuthRoleDetail,
EtcdPreflightResponse,
EtcdDangerousApproval,
DocumentQueryResult,
DynamoDbKeyInfo,
DynamoDbIndexInfo,
DynamoDbTableDescription,
MongoDocumentResult,
HistoryEntry,
HistoryConnectionFilter,
HistoryDatabaseFilter,
HistoryCursor,
HistorySearchRequest,
HistorySearchResult,
HistoryConnectionOption,
SqlFileStatus,
SqlFileRequest,
SqlFilePreview,
SqlFileProgress,
TransferRequest,
TransferProgress,
TransferMode,
TransferContent,
TransferObjectKind,
TransferObjectSelection,
TransferTableNameCase,
TransferOwnershipPolicy,
TransferOwnershipPreview,
TableImportMode,
TableImportStatus,
TableImportSourceFormat,
TableImportJsonShape,
TableImportTextEncoding,
TableImportColumnMapping,
TableImportParseOptions,
TableImportPreviewRequest,
TableImportPreview,
TableImportPreparedSource,
TableImportRequest,
TableImportSummary,
TableImportProgress,
DatabaseExportRequest,
ExportProgress,
TableExportProgress,
TableExportStatus,
TableExportRequest,
QueryResultExportRequest,
AgentEvent,
SqlFileEntry,
} from "@/lib/backend/tauri";
// MQTT
export const mqttGetBrokerInfo = forward("mqttGetBrokerInfo");
export const mqttSubscribe = forward("mqttSubscribe");
export const mqttSaveTopicConfig = forward("mqttSaveTopicConfig");
export const mqttDeleteTopicConfig = forward("mqttDeleteTopicConfig");
export const mqttUnsubscribe = forward("mqttUnsubscribe");
export const mqttPublish = forward("mqttPublish");
export const mqttListTopics = forward("mqttListTopics");
export const mqttListSavedTopicConfigs = forward("mqttListSavedTopicConfigs");
export const mqttGetTopicTree = forward("mqttGetTopicTree");
export const mqttGetMessages = forward("mqttGetMessages");
export const mqttClearMessages = forward("mqttClearMessages");