From 0e99a0738534842b2e0d694aaa7016c5ed5ff69c Mon Sep 17 00:00:00 2001 From: Mark Huggins Date: Tue, 1 Jul 2025 22:07:57 -0400 Subject: [PATCH 1/2] fix: Copilot Premium Requests All calls including those initiated by a tool or the assistant are currently being counted against the copilot premium request limit. This header should prevent calls initiated by either the "tool" or "assistant" from counting against those request limits. For example codecompanion.nvim recently implemented a similar (fix)[https://github.com/olimorris/codecompanion.nvim/commit/ed96fe33c17b41957f2334b1cae29c24d35f8ef2] fix #430 --- packages/opencode/src/provider/provider.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 3374e3b2b8b..c2c8dcbd8a1 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -99,11 +99,30 @@ export namespace Provider { }) info.access = tokens.access } + let isAgentCall = false + try { + const body = + typeof init.body === "string" + ? JSON.parse(init.body) + : init.body + let m + for (m of body.messages) { + Log.Default.warn("role", { role: m.role }) + } + if (body?.messages) { + isAgentCall = body.messages.some( + (msg: any) => + msg.role && ["tool", "assistant"].includes(msg.role), + ) + } + } catch {} + Log.Default.warn("isAgentCall", { isAgentCall }) const headers = { ...init.headers, ...copilot.HEADERS, Authorization: `Bearer ${info.access}`, "Openai-Intent": "conversation-edits", + "X-Initiator": isAgentCall ? "agent" : "user", } delete headers["x-api-key"] return fetch(input, { From a8e78aa1a9dfcf2eee2b06f9636609cba61d720b Mon Sep 17 00:00:00 2001 From: Mark Huggins Date: Tue, 1 Jul 2025 22:28:53 -0400 Subject: [PATCH 2/2] chore: remove log statements --- packages/opencode/src/provider/provider.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index c2c8dcbd8a1..eb904283d49 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -105,10 +105,6 @@ export namespace Provider { typeof init.body === "string" ? JSON.parse(init.body) : init.body - let m - for (m of body.messages) { - Log.Default.warn("role", { role: m.role }) - } if (body?.messages) { isAgentCall = body.messages.some( (msg: any) => @@ -116,7 +112,6 @@ export namespace Provider { ) } } catch {} - Log.Default.warn("isAgentCall", { isAgentCall }) const headers = { ...init.headers, ...copilot.HEADERS,