diff --git a/.npmrc b/.npmrc index 4b5e155..917e172 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,8 @@ shamefully-hoist=true electron_mirror=https://npmmirror.com/mirrors/electron/ +# Keep the Windows x64 sherpa-onnx optional runtime available when packaging +# Windows from macOS/Linux hosts. +supportedArchitectures.os[]=darwin +supportedArchitectures.os[]=win32 +supportedArchitectures.cpu[]=arm64 +supportedArchitectures.cpu[]=x64 diff --git a/src/main/index.ts b/src/main/index.ts index c373a2b..4fd2c11 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1117,6 +1117,7 @@ app.whenReady().then(async () => { ipcMain.handle('ai:listProviders', () => aiProviderService.list()) ipcMain.handle('ai:getRuntimeConfig', () => aiProviderService.getRuntimeConfig()) + ipcMain.handle('ai:getVisionRuntimeConfig', () => aiProviderService.getVisionRuntimeConfig()) ipcMain.handle('ai:saveProvider', (_, provider: AIProviderConfig) => aiProviderService.save(provider) ) diff --git a/src/preload/index.d.ts b/src/preload/index.d.ts index 1b8383a..04fb13f 100644 --- a/src/preload/index.d.ts +++ b/src/preload/index.d.ts @@ -40,6 +40,7 @@ import type { AIProviderConfig, AIProviderListResult, AIRuntimeModelConfig, + AIVisionRuntimeConfig, AIVisionTestRequest, AIVisionTestResult, LegacyAIConfig @@ -238,6 +239,7 @@ declare global { }> listAIProviders: () => Promise getAIRuntimeConfig: () => Promise + getAIVisionRuntimeConfig: () => Promise getAiSearchProviderStatus: () => Promise authorizeAiSearchExternalProvider: ( request: AiSearchExternalAuthorizationRequest diff --git a/src/preload/index.ts b/src/preload/index.ts index a87b5fb..f57362b 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -124,6 +124,7 @@ const api = { ipcRenderer.invoke('ai:chat', messages, options), listAIProviders: () => ipcRenderer.invoke('ai:listProviders'), getAIRuntimeConfig: () => ipcRenderer.invoke('ai:getRuntimeConfig'), + getAIVisionRuntimeConfig: () => ipcRenderer.invoke('ai:getVisionRuntimeConfig'), getAiSearchProviderStatus: (): Promise => ipcRenderer.invoke('ai-search:getProviderStatus'), authorizeAiSearchExternalProvider: ( diff --git a/tests/integration/preload-contract.test.ts b/tests/integration/preload-contract.test.ts index c1e9524..ddd917a 100644 --- a/tests/integration/preload-contract.test.ts +++ b/tests/integration/preload-contract.test.ts @@ -64,6 +64,8 @@ describe('preload IPC contract', () => { expect(invoke).toHaveBeenLastCalledWith('cache:clear', 'knowledge') await api.openKnowledgeDirectory() expect(invoke).toHaveBeenLastCalledWith('cache:openKnowledgeDirectory') + await api.getAIVisionRuntimeConfig() + expect(invoke).toHaveBeenLastCalledWith('ai:getVisionRuntimeConfig') await api.getImage('fixture-md5', 'fixture.dat', 'fixture-session', { force: true,