diff --git a/bun.lock b/bun.lock index 632d028607..af94cbae03 100644 --- a/bun.lock +++ b/bun.lock @@ -32,7 +32,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@corvu/drawer": "catalog:", "@dnd-kit/abstract": "0.5.0", @@ -98,7 +98,7 @@ }, "packages/cli": { "name": "@opencode-ai/cli", - "version": "1.17.19", + "version": "1.17.20", "bin": { "opencode2": "./bin/opencode2.cjs", }, @@ -158,7 +158,7 @@ }, "packages/codemode": { "name": "@opencode-ai/codemode", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "acorn": "8.15.0", "effect": "catalog:", @@ -172,7 +172,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -208,7 +208,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -235,7 +235,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@ai-sdk/anthropic": "3.0.82", "@ai-sdk/openai": "3.0.48", @@ -257,7 +257,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -281,7 +281,7 @@ }, "packages/console/support": { "name": "@opencode-ai/console-support", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@opencode-ai/console-core": "workspace:*", @@ -301,7 +301,7 @@ }, "packages/core": { "name": "@opencode-ai/core", - "version": "1.17.19", + "version": "1.17.20", "bin": { "opencode": "./bin/opencode", }, @@ -397,7 +397,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@zip.js/zip.js": "2.7.62", "effect": "catalog:", @@ -457,7 +457,7 @@ }, "packages/effect-drizzle-sqlite": { "name": "@opencode-ai/effect-drizzle-sqlite", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "drizzle-orm": "catalog:", "effect": "catalog:", @@ -471,7 +471,7 @@ }, "packages/effect-sqlite-node": { "name": "@opencode-ai/effect-sqlite-node", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "effect": "catalog:", }, @@ -483,7 +483,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@hono/standard-validator": "catalog:", "@opencode-ai/core": "workspace:*", @@ -515,7 +515,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -531,7 +531,7 @@ }, "packages/http-recorder": { "name": "@opencode-ai/http-recorder", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@effect/platform-node-shared": "4.0.0-beta.83", }, @@ -563,7 +563,7 @@ }, "packages/llm": { "name": "@opencode-ai/llm", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@opencode-ai/schema": "workspace:*", "@smithy/eventstream-codec": "4.2.14", @@ -582,7 +582,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.17.19", + "version": "1.17.20", "bin": { "opencode": "./bin/opencode", }, @@ -715,7 +715,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@ai-sdk/provider": "3.0.8", "@opencode-ai/client": "workspace:*", @@ -802,7 +802,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "cross-spawn": "catalog:", }, @@ -817,7 +817,7 @@ }, "packages/server": { "name": "@opencode-ai/server", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@effect/platform-node": "catalog:", "@opencode-ai/core": "workspace:*", @@ -834,7 +834,7 @@ }, "packages/session-ui": { "name": "@opencode-ai/session-ui", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/core": "workspace:*", @@ -895,7 +895,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -908,7 +908,7 @@ }, "packages/stats/app": { "name": "@opencode-ai/stats-app", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@ibm/plex": "6.4.1", "@kobalte/core": "catalog:", @@ -942,7 +942,7 @@ }, "packages/stats/core": { "name": "@opencode-ai/stats-core", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@aws-sdk/client-athena": "3.933.0", "@planetscale/database": "1.19.0", @@ -961,7 +961,7 @@ }, "packages/stats/server": { "name": "@opencode-ai/stats-server", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@aws-sdk/client-firehose": "3.933.0", "@effect/platform-node": "catalog:", @@ -1002,7 +1002,7 @@ }, "packages/tui": { "name": "@opencode-ai/tui", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@opencode-ai/client": "workspace:*", "@opencode-ai/core": "workspace:*", @@ -1032,7 +1032,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@kobalte/core": "catalog:", "@pierre/diffs": "catalog:", @@ -1083,7 +1083,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/app/package.json b/packages/app/package.json index c5d9a11198..3a0eb6d426 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.17.19", + "version": "1.17.20", "description": "", "type": "module", "exports": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 2a3503dff6..f356ed92b6 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/cli", - "version": "1.17.19", + "version": "1.17.20", "type": "module", "license": "MIT", "bin": { diff --git a/packages/codemode/package.json b/packages/codemode/package.json index a7e2ce3f4b..43072205a2 100644 --- a/packages/codemode/package.json +++ b/packages/codemode/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/codemode", - "version": "1.17.19", + "version": "1.17.20", "description": "Effect-native confined code execution over schema-described tools", "private": true, "type": "module", diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 3db6b14fc3..52fc4a17e4 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.17.19", + "version": "1.17.20", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 66be843c05..9820650fae 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.17.19", + "version": "1.17.20", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index 08c0a56049..7497160977 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.17.19", + "version": "1.17.20", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index 1ca0ed2b71..fd52148535 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.17.19", + "version": "1.17.20", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/console/support/package.json b/packages/console/support/package.json index c9d0cc9b8a..6bd1d8a7d8 100644 --- a/packages/console/support/package.json +++ b/packages/console/support/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-support", - "version": "1.17.19", + "version": "1.17.20", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/core/package.json b/packages/core/package.json index 7def5deb9a..374eb40f4d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.19", + "version": "1.17.20", "name": "@opencode-ai/core", "type": "module", "license": "MIT", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index ab0be7d0d8..8436062a5e 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.17.19", + "version": "1.17.20", "type": "module", "license": "MIT", "homepage": "https://opencode.ai", diff --git a/packages/effect-drizzle-sqlite/package.json b/packages/effect-drizzle-sqlite/package.json index 1a9a7c13e6..d5d3c45c3b 100644 --- a/packages/effect-drizzle-sqlite/package.json +++ b/packages/effect-drizzle-sqlite/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.19", + "version": "1.17.20", "name": "@opencode-ai/effect-drizzle-sqlite", "type": "module", "license": "MIT", diff --git a/packages/effect-sqlite-node/package.json b/packages/effect-sqlite-node/package.json index aa7367391d..9912ecda1a 100644 --- a/packages/effect-sqlite-node/package.json +++ b/packages/effect-sqlite-node/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.19", + "version": "1.17.20", "name": "@opencode-ai/effect-sqlite-node", "type": "module", "license": "MIT", diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 7d3f07b88d..57b73a3efb 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.17.19", + "version": "1.17.20", "private": true, "type": "module", "license": "MIT", diff --git a/packages/function/package.json b/packages/function/package.json index eee06e20eb..5b576df63f 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.17.19", + "version": "1.17.20", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/http-recorder/package.json b/packages/http-recorder/package.json index 962850f24c..8306dc8ae3 100644 --- a/packages/http-recorder/package.json +++ b/packages/http-recorder/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.19", + "version": "1.17.20", "name": "@opencode-ai/http-recorder", "description": "Record and replay Effect HTTP and WebSocket traffic with deterministic cassettes", "type": "module", diff --git a/packages/llm/package.json b/packages/llm/package.json index 9e8c08f1ed..cd14f7d523 100644 --- a/packages/llm/package.json +++ b/packages/llm/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.19", + "version": "1.17.20", "name": "@opencode-ai/llm", "type": "module", "license": "MIT", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 3938eac6e0..0f4c85d246 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.19", + "version": "1.17.20", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/opencode/src/plugin/openai/codex.ts b/packages/opencode/src/plugin/openai/codex.ts index 10186635be..d16b749565 100644 --- a/packages/opencode/src/plugin/openai/codex.ts +++ b/packages/opencode/src/plugin/openai/codex.ts @@ -6,15 +6,12 @@ import { setTimeout as sleep } from "node:timers/promises" import { createServer } from "http" import { OpenAIWebSocketPool } from "./ws-pool" import { OauthCallbackPage } from "@opencode-ai/core/oauth/page" -import { isRecord } from "@/util/record" const CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann" const ISSUER = "https://auth.openai.com" const CODEX_API_ENDPOINT = "https://chatgpt.com/backend-api/codex/responses" const OAUTH_PORT = 1455 const OAUTH_POLLING_SAFETY_MARGIN_MS = 3000 -const CODEX_COMPATIBILITY_VERSION = "0.144.0" -const RESPONSES_LITE_MODEL = "gpt-5.6-luna" const ALLOWED_MODELS = new Set(["gpt-5.5", "gpt-5.3-codex-spark", "gpt-5.4", "gpt-5.4-mini"]) const DISALLOWED_MODELS = new Set(["gpt-5.5-pro"]) @@ -421,9 +418,7 @@ export async function CodexAuthPlugin(input: PluginInput, options: CodexAuthPlug const requestInit = { ...init, - body: parsed.pathname.endsWith("/responses") - ? prepareResponsesLiteRequest(init?.body, headers) - : init?.body, + body: init?.body, headers, } if (websocketFetch && parsed.pathname.endsWith("/responses")) return websocketFetch(url, requestInit) @@ -568,61 +563,3 @@ export async function CodexAuthPlugin(input: PluginInput, options: CodexAuthPlug }, } } - -function prepareResponsesLiteRequest(body: BodyInit | null | undefined, headers: Headers) { - if (typeof body !== "string") return body - const request: unknown = JSON.parse(body) - if (!isRecord(request)) return body - if (request.model !== RESPONSES_LITE_MODEL) return body - if (!Array.isArray(request.input)) throw new Error("Responses Lite requires an input array") - if (request.tools !== undefined && !Array.isArray(request.tools)) { - throw new Error("Responses Lite requires a tools array") - } - if (request.instructions !== undefined && typeof request.instructions !== "string") { - throw new Error("Responses Lite requires string instructions") - } - - const sessionID = headers.get("session-id") - if (!sessionID) throw new Error("Responses Lite requires a session-id header") - - function stripImageDetail(value: unknown) { - if (Array.isArray(value)) { - value.forEach(stripImageDetail) - return - } - if (!isRecord(value)) return - if (value.type === "input_image") delete value.detail - Object.values(value).forEach(stripImageDetail) - } - - stripImageDetail(request.input) - request.input = [ - { type: "additional_tools", role: "developer", tools: request.tools ?? [] }, - ...(request.instructions - ? [ - { - type: "message", - role: "developer", - content: [{ type: "input_text", text: request.instructions }], - }, - ] - : []), - ...request.input, - ] - delete request.tools - delete request.instructions - request.tool_choice = "auto" - request.parallel_tool_calls = false - request.prompt_cache_key = sessionID - request.reasoning = { - ...(isRecord(request.reasoning) ? request.reasoning : {}), - context: "all_turns", - } - - headers.set("session-id", sessionID) - headers.set("x-session-affinity", sessionID) - headers.set("version", CODEX_COMPATIBILITY_VERSION) - headers.set(OpenAIWebSocketPool.RESPONSES_LITE_HEADER, "true") - headers.delete("content-length") - return JSON.stringify(request) -} diff --git a/packages/opencode/src/plugin/openai/ws-pool.ts b/packages/opencode/src/plugin/openai/ws-pool.ts index 2cc7dcc940..3cbb29a301 100644 --- a/packages/opencode/src/plugin/openai/ws-pool.ts +++ b/packages/opencode/src/plugin/openai/ws-pool.ts @@ -4,8 +4,6 @@ import { isRecord } from "@/util/record" import { OpenAIWebSocket } from "./ws" export const TITLE_HEADER = "x-opencode-title" -export const RESPONSES_LITE_HEADER = "x-openai-internal-codex-responses-lite" -const RESPONSES_LITE_CLIENT_METADATA = "ws_request_header_x_openai_internal_codex_responses_lite" export interface CreateWebSocketFetchOptions { httpFetch?: typeof globalThis.fetch @@ -100,16 +98,7 @@ export function createWebSocketFetch(options?: CreateWebSocketFetchOptions) { }) const response = OpenAIWebSocket.streamResponsesWebSocket({ socket: entry.socket, - body: - internalHeaders[RESPONSES_LITE_HEADER] === "true" - ? { - ...body, - client_metadata: { - ...(isRecord(body.client_metadata) ? body.client_metadata : {}), - [RESPONSES_LITE_CLIENT_METADATA]: "true", - }, - } - : body, + body, idleTimeout, signal: init?.signal ?? undefined, onFirstEvent: (error) => resolveFirstEvent(error ?? true), diff --git a/packages/plugin/package.json b/packages/plugin/package.json index ab722b4527..08370d53d4 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.17.19", + "version": "1.17.20", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index 555d4dd70e..6c987d51c0 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.17.19", + "version": "1.17.20", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/server/package.json b/packages/server/package.json index 8e6a76b126..e695ea8f87 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/server", - "version": "1.17.19", + "version": "1.17.20", "private": true, "type": "module", "license": "MIT", diff --git a/packages/session-ui/package.json b/packages/session-ui/package.json index d32280dce6..0b756b68b6 100644 --- a/packages/session-ui/package.json +++ b/packages/session-ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/session-ui", - "version": "1.17.19", + "version": "1.17.20", "private": true, "type": "module", "license": "MIT", diff --git a/packages/slack/package.json b/packages/slack/package.json index 7f8bcedac1..d443317ce0 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.17.19", + "version": "1.17.20", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/stats/app/package.json b/packages/stats/app/package.json index 4449d2136a..6dc7bc45fb 100644 --- a/packages/stats/app/package.json +++ b/packages/stats/app/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/stats-app", - "version": "1.17.19", + "version": "1.17.20", "private": true, "type": "module", "license": "MIT", diff --git a/packages/stats/core/package.json b/packages/stats/core/package.json index 86ac69d05b..a907acb570 100644 --- a/packages/stats/core/package.json +++ b/packages/stats/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/stats-core", - "version": "1.17.19", + "version": "1.17.20", "private": true, "type": "module", "license": "MIT", diff --git a/packages/stats/server/package.json b/packages/stats/server/package.json index 663ab31e0a..e40dc1275a 100644 --- a/packages/stats/server/package.json +++ b/packages/stats/server/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/stats-server", - "version": "1.17.19", + "version": "1.17.20", "private": true, "type": "module", "license": "MIT", diff --git a/packages/tui/package.json b/packages/tui/package.json index c5a9376e9e..162b3ddb94 100644 --- a/packages/tui/package.json +++ b/packages/tui/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/tui", - "version": "1.17.19", + "version": "1.17.20", "private": true, "type": "module", "license": "MIT", diff --git a/packages/ui/package.json b/packages/ui/package.json index 0ae92073b5..9723660afa 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.17.19", + "version": "1.17.20", "type": "module", "license": "MIT", "repository": { diff --git a/packages/web/package.json b/packages/web/package.json index 0f9288cfa4..ab3094e8e2 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -2,7 +2,7 @@ "name": "@opencode-ai/web", "type": "module", "license": "MIT", - "version": "1.17.19", + "version": "1.17.20", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index c50de6f79d..c3c34b83dd 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.17.19", + "version": "1.17.20", "publisher": "sst-dev", "repository": { "type": "git",