@bman654/clodex 2.18.3 → 2.18.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +57 -30
- package/dist/cli.js.map +1 -1
- package/docs/opencode-go.md +4 -4
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -346,7 +346,7 @@ import { join } from "path";
|
|
|
346
346
|
// package.json
|
|
347
347
|
var package_default = {
|
|
348
348
|
name: "@bman654/clodex",
|
|
349
|
-
version: "2.18.
|
|
349
|
+
version: "2.18.5",
|
|
350
350
|
publishConfig: {
|
|
351
351
|
access: "public"
|
|
352
352
|
},
|
|
@@ -433,7 +433,7 @@ var package_default = {
|
|
|
433
433
|
|
|
434
434
|
// src/constants.ts
|
|
435
435
|
var CODEX_RESPONSES_LITE_WS_URL = "wss://chatgpt.com/backend-api/codex/responses";
|
|
436
|
-
var CODEX_RESPONSES_LITE_VERSION = "0.
|
|
436
|
+
var CODEX_RESPONSES_LITE_VERSION = "0.159.0";
|
|
437
437
|
var CODEX_RESPONSES_WEBSOCKETS_BETA = "responses_websockets=2026-02-06";
|
|
438
438
|
var TEST_TIMEOUT_MS = 1e4;
|
|
439
439
|
var CONFLICTING_ENV_VARS = [
|
|
@@ -630,6 +630,7 @@ var HEURISTIC_RULES = [
|
|
|
630
630
|
[/claude/i, 2e5],
|
|
631
631
|
[/deepseek-v4|deepseek-r1|deepseek-reasoner/i, 1e6],
|
|
632
632
|
[/deepseek/i, 64e3],
|
|
633
|
+
[/gpt-6\.1-sol/i, 105e4],
|
|
633
634
|
[/gpt-6-(?:astra|sol|luna)/i, 105e4],
|
|
634
635
|
[/gpt-5|gpt-4\.1|o3-|o4-/i, 1e6],
|
|
635
636
|
[/gpt-4o|gpt-4-turbo|gpt-4/i, 128e3],
|
|
@@ -4916,31 +4917,6 @@ var opencode_go_models_default = [
|
|
|
4916
4917
|
upstreamModelId: "deepseek-v4.1-flash",
|
|
4917
4918
|
family: "deepseek"
|
|
4918
4919
|
},
|
|
4919
|
-
{
|
|
4920
|
-
id: "glm-5.1",
|
|
4921
|
-
name: "GLM-5.1",
|
|
4922
|
-
contextWindow: 202752,
|
|
4923
|
-
cost: {
|
|
4924
|
-
input: 1.4,
|
|
4925
|
-
output: 4.4,
|
|
4926
|
-
cache_read: 0.26
|
|
4927
|
-
},
|
|
4928
|
-
modelFormat: "openai",
|
|
4929
|
-
npm: "@ai-sdk/openai-compatible",
|
|
4930
|
-
apiUrl: "https://opencode.ai/zen/go/v1",
|
|
4931
|
-
reasoning: true,
|
|
4932
|
-
modalities: [
|
|
4933
|
-
"text"
|
|
4934
|
-
],
|
|
4935
|
-
compatibility: {
|
|
4936
|
-
supportsReasoningEffort: false,
|
|
4937
|
-
supportsStore: false,
|
|
4938
|
-
supportsDeveloperRole: false,
|
|
4939
|
-
maxTokensField: "max_tokens"
|
|
4940
|
-
},
|
|
4941
|
-
upstreamModelId: "glm-5.1",
|
|
4942
|
-
family: "glm"
|
|
4943
|
-
},
|
|
4944
4920
|
{
|
|
4945
4921
|
id: "glm-5.2",
|
|
4946
4922
|
name: "GLM-5.2",
|
|
@@ -5009,6 +4985,39 @@ var opencode_go_models_default = [
|
|
|
5009
4985
|
upstreamModelId: "gpt-5.6-luna",
|
|
5010
4986
|
family: "gpt"
|
|
5011
4987
|
},
|
|
4988
|
+
{
|
|
4989
|
+
id: "gpt-6-luna",
|
|
4990
|
+
name: "GPT-6 Luna",
|
|
4991
|
+
contextWindow: 105e4,
|
|
4992
|
+
pricingBoundary: 272e3,
|
|
4993
|
+
pricingBoundaryNote: "Above it, OpenCode Go lists $0.20 input and $0.75 output per million tokens.",
|
|
4994
|
+
cost: {
|
|
4995
|
+
input: 0.1,
|
|
4996
|
+
output: 0.5,
|
|
4997
|
+
cache_read: 0.01,
|
|
4998
|
+
cache_write: 0.125
|
|
4999
|
+
},
|
|
5000
|
+
modelFormat: "openai",
|
|
5001
|
+
npm: "@ai-sdk/openai",
|
|
5002
|
+
apiUrl: "https://opencode.ai/zen/go/v1",
|
|
5003
|
+
reasoning: true,
|
|
5004
|
+
modalities: [
|
|
5005
|
+
"text",
|
|
5006
|
+
"image"
|
|
5007
|
+
],
|
|
5008
|
+
compatibility: {
|
|
5009
|
+
reasoningEffortMap: {
|
|
5010
|
+
none: "none",
|
|
5011
|
+
low: "low",
|
|
5012
|
+
medium: "medium",
|
|
5013
|
+
high: "high",
|
|
5014
|
+
xhigh: "xhigh",
|
|
5015
|
+
max: "max"
|
|
5016
|
+
}
|
|
5017
|
+
},
|
|
5018
|
+
upstreamModelId: "gpt-6-luna",
|
|
5019
|
+
family: "gpt"
|
|
5020
|
+
},
|
|
5012
5021
|
{
|
|
5013
5022
|
id: "hy3",
|
|
5014
5023
|
name: "Hy3",
|
|
@@ -5193,7 +5202,8 @@ var opencode_go_models_default = [
|
|
|
5193
5202
|
cost: {
|
|
5194
5203
|
input: 0.3,
|
|
5195
5204
|
output: 1.2,
|
|
5196
|
-
cache_read: 0.06
|
|
5205
|
+
cache_read: 0.06,
|
|
5206
|
+
cache_write: 0.375
|
|
5197
5207
|
},
|
|
5198
5208
|
modelFormat: "openai",
|
|
5199
5209
|
npm: "@ai-sdk/openai-compatible",
|
|
@@ -6072,6 +6082,13 @@ var CHATGPT_CODEX_UNSUPPORTED_MODELS = /* @__PURE__ */ new Set([
|
|
|
6072
6082
|
// confirmed: rejected by chatgpt.com/backend-api/codex
|
|
6073
6083
|
]);
|
|
6074
6084
|
var OPENAI_OAUTH_MODEL_SEEDS = [
|
|
6085
|
+
// GPT-6.1 Sol: the 272K window and 872K ceiling are what the live Codex catalog
|
|
6086
|
+
// returned on 2026-09-29; a request near 872K has not been tried. The output limit
|
|
6087
|
+
// is the model card's. The catalog reports minimal_client_version 0.153.0, but on a
|
|
6088
|
+
// Plus account versions through 0.158.0 were refused and 0.159.0 worked (#298), so
|
|
6089
|
+
// this seed records that observed gate. A live refresh stores the catalog's value
|
|
6090
|
+
// instead. CODEX_RESPONSES_LITE_VERSION must stay at or above this.
|
|
6091
|
+
{ id: "gpt-6.1-sol", name: "GPT-6.1 Sol", contextWindow: 272e3, maxContextWindow: 872e3, maxOutputTokens: 128e3, reasoning: true, useResponsesLite: true, preferWebSockets: true, minimalClientVersion: "0.159.0" },
|
|
6075
6092
|
// GPT-6 family. The window, ceiling and Responses-Lite flags are what the live
|
|
6076
6093
|
// Codex catalog returned (Astra on 2026-09-04, Sol and Luna on 2026-09-22) and are
|
|
6077
6094
|
// deliberately NOT the published API numbers: the model cards list a 1,050,000
|
|
@@ -13025,8 +13042,8 @@ function translateRequest(body, npm, options) {
|
|
|
13025
13042
|
}
|
|
13026
13043
|
const upstreamModelId2 = options?.reasoningMetadata?.upstreamModelId ?? body.model;
|
|
13027
13044
|
const supportsExplicitOpenAiCaching = !options?.openAiOAuth && supportsOpenAiPromptCacheBreakpoints(upstreamModelId2);
|
|
13045
|
+
const claudeSessionId = extractClaudeSessionId(body, options?.claudeSessionId);
|
|
13028
13046
|
if (npm === "@ai-sdk/openai") {
|
|
13029
|
-
const claudeSessionId = extractClaudeSessionId(body, options?.claudeSessionId);
|
|
13030
13047
|
const serviceTier = options?.openAiOAuth ? oauthServiceTier() : void 0;
|
|
13031
13048
|
providerOptions = deepMergeProviderOptions(providerOptions, {
|
|
13032
13049
|
openai: {
|
|
@@ -13047,7 +13064,17 @@ function translateRequest(body, npm, options) {
|
|
|
13047
13064
|
toolChoice: compactRequest ? "none" : translateToolChoice(body.tool_choice),
|
|
13048
13065
|
maxOutputTokens: options?.openAiOAuth ? void 0 : body.max_tokens,
|
|
13049
13066
|
temperature: body.temperature,
|
|
13050
|
-
providerOptions
|
|
13067
|
+
providerOptions,
|
|
13068
|
+
// OpenRouter derives its own conversation key when none is sent, and routes a
|
|
13069
|
+
// session's requests to one provider when one is. The value needs to be stable
|
|
13070
|
+
// and unique, not recognizable, so the session UUID goes over hashed through
|
|
13071
|
+
// the same key the OpenAI route's prompt_cache_key uses; the system/tools hash
|
|
13072
|
+
// stays the fallback for clients that send no session identity.
|
|
13073
|
+
...isOpenRouterRoute(npm, options?.reasoningMetadata) ? {
|
|
13074
|
+
headers: {
|
|
13075
|
+
"x-session-id": claudeSessionId ? claudeSessionPromptCacheKey(claudeSessionId) : openAiPromptCacheKey(baseSystem, upstreamTools)
|
|
13076
|
+
}
|
|
13077
|
+
} : {}
|
|
13051
13078
|
};
|
|
13052
13079
|
}
|
|
13053
13080
|
function isOpenAiOAuthRoute(route) {
|