refactor: consolidate IPC bridge to native-only

Remove business IPC handlers/preload APIs that are now served by
Internal HTTP Server: preferences, NLP, data queries, message search,
analytics, members, SQL lab. Migrate chart modules from window.*Api
direct calls to useDataService() and NLP components to HTTP.

Make Internal Server a hard dependency, delete ElectronDataAdapter/
MessageAdapter/PreferencesAdapter and IPC fallback path. Retain IPC
only for native capabilities: file import, AI/LLM, session-index
summaries, agent streaming.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
diguaandCursor committed 2026-06-02 15:41:21 +08:00
1 parent 96a9d143c4
commit f9b5b6b13d
23 files changed
+251 -2475

No files matched your search

+1 -8
View File
@@ -9,9 +9,8 @@ import { electronAPI } from '@electron-toolkit/preload'
import { extendedApi } from './apis/core'
import { chatApi, mergeApi } from './apis/chat'
import { aiApi, llmApi, agentApi, assistantApi, skillApi } from './apis/ai'
import { nlpApi, networkApi, cacheApi, sessionApi } from './apis/utils'
import { networkApi, cacheApi, sessionApi } from './apis/utils'
import { apiServerApi } from './apis/api-server'
import { preferencesApi } from './apis/preferences'
import { internalApi } from './apis/internal-api'
// 为渲染进程提供统一的类型入口,避免 type-only import 指向无导出的运行时代码。
@@ -46,9 +45,7 @@ if (process.contextIsolated) {
contextBridge.exposeInMainWorld('cacheApi', cacheApi)
contextBridge.exposeInMainWorld('networkApi', networkApi)
contextBridge.exposeInMainWorld('sessionApi', sessionApi)
contextBridge.exposeInMainWorld('nlpApi', nlpApi)
contextBridge.exposeInMainWorld('apiServerApi', apiServerApi)
contextBridge.exposeInMainWorld('preferencesApi', preferencesApi)
contextBridge.exposeInMainWorld('internalApi', internalApi)
} catch (error) {
console.error(error)
@@ -79,11 +76,7 @@ if (process.contextIsolated) {
// @ts-ignore (define in dts)
window.sessionApi = sessionApi
// @ts-ignore (define in dts)
window.nlpApi = nlpApi
// @ts-ignore (define in dts)
window.apiServerApi = apiServerApi
// @ts-ignore (define in dts)
window.preferencesApi = preferencesApi
// @ts-ignore (define in dts)
window.internalApi = internalApi
}