From ad18ee7c4f7d49e38f90b61b59365173f0d47d35 Mon Sep 17 00:00:00 2001 From: Heatherm Huang Date: Sat, 11 Jul 2026 09:09:05 +0800 Subject: [PATCH] fix(grok): use responses adapter for OpenCode --- frontend/src/components/keys/UseKeyModal.vue | 2 +- .../src/components/keys/__tests__/UseKeyModal.spec.ts | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/keys/UseKeyModal.vue b/frontend/src/components/keys/UseKeyModal.vue index 6aa096595b..e6bce556da 100644 --- a/frontend/src/components/keys/UseKeyModal.vue +++ b/frontend/src/components/keys/UseKeyModal.vue @@ -1148,7 +1148,7 @@ function generateOpenCodeConfig(platform: string, baseUrl: string, apiKey: strin } else if (platform === 'openai') { provider[platform].models = openaiModels } else if (platform === 'grok') { - provider[platform].npm = '@ai-sdk/openai-compatible' + provider[platform].npm = '@ai-sdk/openai' provider[platform].name = 'Grok via Sub2API' provider[platform].models = grokModels } diff --git a/frontend/src/components/keys/__tests__/UseKeyModal.spec.ts b/frontend/src/components/keys/__tests__/UseKeyModal.spec.ts index 21c8a96e06..24581d9f6b 100644 --- a/frontend/src/components/keys/__tests__/UseKeyModal.spec.ts +++ b/frontend/src/components/keys/__tests__/UseKeyModal.spec.ts @@ -51,6 +51,14 @@ describe('UseKeyModal', () => { expect(grokConfig).toContain('api_key = "sk-grok-test"') expect(grokConfig).toContain('api_backend = "responses"') + const windowsTab = wrapper.findAll('button').find( + (button) => button.text().trim() === 'Windows' + ) + expect(windowsTab).toBeDefined() + await windowsTab!.trigger('click') + await nextTick() + expect(wrapper.text()).toContain('%userprofile%\\.grok/config.toml') + const opencodeTab = wrapper.findAll('button').find((button) => button.text().includes('keys.useKeyModal.cliTabs.opencode') ) @@ -59,7 +67,7 @@ describe('UseKeyModal', () => { await nextTick() const parsed = JSON.parse(wrapper.find('pre code').text()) - expect(parsed.provider.grok.npm).toBe('@ai-sdk/openai-compatible') + expect(parsed.provider.grok.npm).toBe('@ai-sdk/openai') expect(parsed.provider.grok.options).toEqual({ baseURL: 'https://example.com/v1', apiKey: 'sk-grok-test'