@bitkyc08/opencodex 2.61.0 → 2.63.0-preview.20260923
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/gui/dist/assets/App-EJxiUFMq.js +50 -0
- package/gui/dist/assets/{Tray-CLZh48fM.js → Tray-B03pW-Uf.js} +1 -1
- package/gui/dist/assets/index-BmJwNBHL.js +86 -0
- package/gui/dist/assets/index-DdDunwDb.css +1 -0
- package/gui/dist/assets/{usage-companion-chart-a0N58rRI.js → usage-companion-chart-IftE60UK.js} +1 -1
- package/gui/dist/index.html +2 -2
- package/package.json +1 -1
- package/src/adapters/cursor/catalog.ts +15 -0
- package/src/adapters/cursor/effort-map.ts +7 -0
- package/src/adapters/cursor/envelope-echo.ts +51 -25
- package/src/adapters/cursor/protobuf-request.ts +39 -13
- package/src/adapters/cursor.ts +52 -4
- package/src/adapters/devin/cloud-direct/chat.ts +50 -16
- package/src/adapters/devin/cloud-direct/stated-reset-retry.ts +4 -1
- package/src/adapters/devin/live-models.ts +7 -0
- package/src/adapters/devin.ts +7 -5
- package/src/adapters/kiro/reasoning.ts +5 -0
- package/src/adapters/openai-responses/passthrough.ts +4 -4
- package/src/adapters/openai-responses/tool-output-recovery.ts +5 -3
- package/src/claude/desktop-gateway-state.ts +7 -2
- package/src/claude/desktop-policy.ts +105 -1
- package/src/cli/config-command.ts +22 -7
- package/src/cli/doctor.ts +14 -4
- package/src/codex/catalog/effort.ts +35 -4
- package/src/codex/catalog/metadata.ts +33 -5
- package/src/codex/catalog/native-models.ts +43 -2
- package/src/codex/catalog/pinned-models.ts +37 -0
- package/src/codex/catalog-auto-refresh.ts +6 -0
- package/src/codex/data/roster-pinned-models.json +359 -0
- package/src/codex/data/upstream-models.json +365 -271
- package/src/codex/inject/provider-table.ts +108 -0
- package/src/codex/inject/remove.ts +2 -114
- package/src/codex/model-entitlements.ts +14 -10
- package/src/codex/subagent-defaults.ts +2 -109
- package/src/codex/toml-source-lines.ts +112 -0
- package/src/config/live-reconcile.ts +145 -27
- package/src/config/load-degrade.ts +3 -4
- package/src/config.ts +2 -2
- package/src/generated/compatibility-version.json +83 -67
- package/src/generated/model-metadata.ts +5 -5
- package/src/lab/artifacts/sanitize.ts +60 -19
- package/src/lib/app-owned-memory-stores.ts +7 -0
- package/src/lib/app-owned-memory.ts +13 -2
- package/src/lib/errors.ts +6 -4
- package/src/lib/upstream-retry.ts +35 -5
- package/src/oauth/devin.ts +43 -37
- package/src/providers/codebuddy-models.ts +11 -0
- package/src/providers/kiro-models.ts +9 -0
- package/src/providers/quota/vendor-probes-oauth.ts +9 -2
- package/src/providers/registry/entries-core.ts +19 -8
- package/src/providers/registry/entries-extended.ts +4 -1
- package/src/providers/registry/model-seeds.ts +22 -2
- package/src/responses/bridge-search-replay-cache.ts +20 -10
- package/src/responses/plaintext-v2-agent-messages.ts +10 -1
- package/src/routing/identity-domains.ts +22 -15
- package/src/server/index/websocket-handler.ts +22 -2
- package/src/server/management/agent-settings-routes.ts +19 -10
- package/src/server/management/context.ts +4 -2
- package/src/server/responses/codex-ws-exchange.ts +24 -8
- package/src/server/responses/core-codex-account.ts +4 -0
- package/src/server/responses/core-combo-failure.ts +16 -9
- package/src/server/responses/core-combo.ts +7 -3
- package/src/server/responses/core-options.ts +6 -0
- package/src/server/responses/native-injection-replay.ts +13 -1
- package/src/server/responses/native-injection.ts +66 -7
- package/src/server/responses/native-response-control.ts +6 -2
- package/src/server/responses/native-steering-replay.ts +60 -0
- package/src/server/responses/native-steering.ts +9 -1
- package/src/server/responses/passthrough-delivery.ts +3 -4
- package/src/server/responses/passthrough-dispatch.ts +7 -0
- package/src/server/responses/request-prepare.ts +12 -0
- package/src/server/responses/request-transport.ts +5 -2
- package/src/server/responses/ws-upstream.ts +1 -1
- package/src/server/ws-bridge.ts +17 -1
- package/src/types/request.ts +5 -0
- package/src/usage/expected-prices.ts +38 -8
- package/src/web-search/executor.ts +38 -13
- package/gui/dist/assets/App-CH6C5H7x.js +0 -50
- package/gui/dist/assets/index-_bpvxJu0.css +0 -1
- package/gui/dist/assets/index-wpTOyepx.js +0 -86
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import upstreamModelsSnapshot from "../data/upstream-models.json";
|
|
2
|
+
import rosterPinnedModels from "../data/roster-pinned-models.json";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Every native row this build pins, in one list: the codex-rs bundled snapshot first, then the
|
|
6
|
+
* rows captured from a live authenticated `/models` roster that the snapshot does not carry.
|
|
7
|
+
*
|
|
8
|
+
* Two files rather than one on purpose. `upstream-models.json` is re-pinned wholesale from the
|
|
9
|
+
* codex-rs bundled catalog, and a hand-merged row inside it would be erased (or conflict) on the
|
|
10
|
+
* next refresh. `roster-pinned-models.json` holds rows upstream serves but codex-rs has not
|
|
11
|
+
* bundled yet — `gpt-6-sol` and `gpt-6-luna`, captured from
|
|
12
|
+
* `chatgpt.com/backend-api/codex/models?client_version=0.155.0` on 2026-09-23, the day after
|
|
13
|
+
* https://openai.com/index/introducing-gpt-6-sol-and-luna/.
|
|
14
|
+
*
|
|
15
|
+
* The snapshot always wins: a roster row is appended only when its slug is absent from the
|
|
16
|
+
* snapshot. Once a codex-rs refresh bundles Sol or Luna, that row takes over automatically and
|
|
17
|
+
* the roster copy goes inert instead of shadowing newer upstream metadata. The roster file can
|
|
18
|
+
* then be emptied at leisure; nothing breaks while it still holds the stale copy.
|
|
19
|
+
*/
|
|
20
|
+
type PinnedRow = Record<string, unknown> & { slug?: unknown };
|
|
21
|
+
|
|
22
|
+
function rowsOf(source: unknown): PinnedRow[] {
|
|
23
|
+
const models = (source as { models?: unknown }).models;
|
|
24
|
+
return Array.isArray(models) ? models as PinnedRow[] : [];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const PINNED_NATIVE_MODEL_ROWS: ReadonlyArray<PinnedRow> = (() => {
|
|
28
|
+
const snapshot = rowsOf(upstreamModelsSnapshot);
|
|
29
|
+
const snapshotSlugs = new Set(snapshot.flatMap(row => typeof row.slug === "string" ? [row.slug] : []));
|
|
30
|
+
const roster = rowsOf(rosterPinnedModels)
|
|
31
|
+
.filter(row => typeof row.slug === "string" && !snapshotSlugs.has(row.slug));
|
|
32
|
+
return Object.freeze([...snapshot, ...roster]);
|
|
33
|
+
})();
|
|
34
|
+
|
|
35
|
+
export function pinnedNativeModelRows(): ReadonlyArray<PinnedRow> {
|
|
36
|
+
return PINNED_NATIVE_MODEL_ROWS;
|
|
37
|
+
}
|
|
@@ -65,11 +65,17 @@ async function tick(): Promise<void> {
|
|
|
65
65
|
const entryGeneration = generation;
|
|
66
66
|
try {
|
|
67
67
|
const {
|
|
68
|
+
armDetachedConfigBaseline,
|
|
68
69
|
loadConfig,
|
|
69
70
|
isCatalogAutoRefreshEnabled,
|
|
70
71
|
resolveCatalogAutoRefreshIntervalMs,
|
|
71
72
|
} = await import("../config");
|
|
72
73
|
const config = loadConfig();
|
|
74
|
+
// Convergence can persist model-discovery fields after awaiting provider /models.
|
|
75
|
+
// Arm this independently loaded snapshot as detached so the save rebases every
|
|
76
|
+
// field — listener binding and disk-only keys included — against what is on disk
|
|
77
|
+
// by then, and concurrent hand edits survive the tick.
|
|
78
|
+
armDetachedConfigBaseline(config);
|
|
73
79
|
if (!isCatalogAutoRefreshEnabled(config)) return;
|
|
74
80
|
const configured = resolveCatalogAutoRefreshIntervalMs(config);
|
|
75
81
|
// 0 is dormant: the section stays configured but this tick must not converge,
|