From cceb5908d913209f0e448930e1c8efe8accbb657 Mon Sep 17 00:00:00 2001 From: Melih Mucuk Date: Thu, 15 Jan 2026 23:26:31 +0300 Subject: [PATCH] fix: opencode provider uses system role instead of developer (#755) * fix: opencode provider uses system role instead of developer for /v1 endpoint * changelog updated --- packages/ai/CHANGELOG.md | 4 ++++ packages/ai/src/providers/openai-completions.ts | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index b8241171..61cdfec3 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- Fixed OpenCode provider's `/v1` endpoint to use `system` role instead of `developer` role, fixing `400 Incorrect role information` error for models using `openai-completions` API ([#755](https://github.com/badlogic/pi-mono/pull/755) by [@melihmucuk](https://github.com/melihmucuk)) + ## [0.46.0] - 2026-01-15 ### Added diff --git a/packages/ai/src/providers/openai-completions.ts b/packages/ai/src/providers/openai-completions.ts index a90ed563..3edeca45 100644 --- a/packages/ai/src/providers/openai-completions.ts +++ b/packages/ai/src/providers/openai-completions.ts @@ -690,7 +690,8 @@ function detectCompatFromUrl(baseUrl: string): Required { baseUrl.includes("api.x.ai") || baseUrl.includes("mistral.ai") || baseUrl.includes("chutes.ai") || - isZai; + isZai || + baseUrl.includes("opencode.ai"); const useMaxTokens = baseUrl.includes("mistral.ai") || baseUrl.includes("chutes.ai");