From d603d9da654435711b9679511de116ffc2d13933 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 2 Apr 2026 12:49:28 -0400 Subject: [PATCH] fix(opencode): use openai-compatible SDK for e2e LLM mock routing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The e2eURL() path used createOpenAI().responses() which produces a Responses API format that the mock server's SSE stream can't correctly convey tool calls through. Switch to createOpenAICompatible().chatModel() which uses the chat completions format — matching what the mock was designed for and what the integration tests use. This only affects the OPENCODE_E2E_LLM_URL code path (e2e tests only). --- packages/opencode/src/provider/provider.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index c3ca1b3852..81479dcd75 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -1458,11 +1458,11 @@ export namespace Provider { return yield* Effect.promise(async () => { const url = e2eURL() if (url) { - const language = createOpenAI({ + const language = createOpenAICompatible({ name: model.providerID, apiKey: "test-key", baseURL: url, - }).responses(model.api.id) + }).chatModel(model.api.id) s.models.set(key, language) return language }