Skip to content

feat(providers): add GPT-6.1 Sol catalogs, pricing and model wiring - #15171

Open
xiaoyaner0201 wants to merge 5 commits into
diegosouzapw:release/v3.8.52from
xiaoyaner0201:feat/gpt-61-sol-catalog-pricing
Open

xiaoyaner0201 wants to merge 5 commits into
diegosouzapw:release/v3.8.52from
xiaoyaner0201:feat/gpt-61-sol-catalog-pricing

Conversation

@xiaoyaner0201

@xiaoyaner0201 xiaoyaner0201 commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Add gpt-6.1-sol to the built-in OpenAI and Codex catalogs, rather than requiring a discovered/custom model to supply missing metadata and prices.

  • Public API: 1,050,000-token context, 128,000 output, Responses tool routing, reasoning low through max.
  • Codex: 872,000 maximum context, base + low/medium/high/xhigh/max/ultra aliases, low default, max preserved through chat translation, and existing ultra delegation behavior. The app-server catalog inherits the model entries.
  • Explicit Standard USD/MTok estimates: input 2, cached input 0.10, output/reasoning 10; API cache writes 2.50. Codex's independent rate card is 50 / 2.5 / 250 credits per MTok at 25 credits/USD. It does not specify separate cache-write pricing, so none is invented for Codex.
  • Codex Fast eligibility and 2x purchased-credit/USD multiplier for this model. Included-subscription consumption is separately documented as 2.5x; this PR does not reprice older models.
  • Keep the Dockerfile Codex CLI pin, default request identity, and Codex golden header values together at 0.159.2. A same-account, identical-payload, tool-free direct Codex probe returned HTTP 400 with identity 0.156.1 and HTTP 200 / response.completed with 0.159.2. The catalog's minimum-client field is 0.153.0, so this is a tested identity, not a claim that 0.159.2 is the minimum.

Related Issues

Closes #15166.

Related: #15158 by @HouMinXi adds responses to model-import endpoint validation only. Its code is not copied here; that change remains independently useful for discovery/import. This PR covers built-in entries, metadata, price rows, and model-specific runtime wiring.

Validation

Current published head and fresh CI (2026-10-02)

Current head: bc23cfd3f0d47e606e726d42ddf49f2fe802f6dd; tree: aa2f22b1bd4f18b17ce4e959c853a28d0f3b781f. The preceding db63e67860c5a2cdc7e0ec2c4b3ab0c62ee1a39b repaired the Fast-tier assertion; the later commit adds bare GPT-6.1 Sol IDs to the Codex-native list and a dedicated bare-ID routing test. This is not a CI-green claim.

  • On the exact published head, 133/133 focused tests passed across 17 files (the preceding 16-file suite plus tests/unit/codex-gpt61-sol-bare-id.test.ts), using Node 24 with isolated test DATA_DIR; zero failed, skipped or cancelled.
  • The fresh GitHub run checked the synthetic merge f5392be870d82c207974abc034027176b9a6acf2, whose parents are target 3eca71da4a4a42ff3087ff56dba8eae9a06824ec and this head. Its eight unit shards, four fast-path shards, Vitest, integration tests, security tests, API Route Typecheck and the new-code ESLint gate passed. The CI rollup still has failed and cancelled jobs.
  • I ran the same commands on the exact target parent and the synthetic merge, with the identical lockfile (package-lock.json blob 846e1da20205d8952cb20cf3c1e94b452b1d096b) and Node 24. npm run check:agent-skills-sync exits 2 on both (one generated omni-providers artifact). npm run i18n:check exits 1 on both with the same six drifted documentation sources. npm run check:complexity-ratchets -- --base-ref a1a2dce1a64a4b123f80ec899fc88bb2aa34d1a4 exits 1 on both with the same five offending file/signature pairs, none changed by this PR; the aggregate counts differ because the merge has more changed files.
  • The default local npm mirror does not implement npm audit, so I reran the same npm run audit:deps command on both trees with the official npm registry configured for both. Both exit 1 on the same 16 advisories, including the same critical Next.js GHSA-vcvr-r3jv-pc5j entry. This PR does not change the lockfile. The failed Lint job is this dependency audit, not ESLint.
  • The Build job was cancelled when its runner received a shutdown signal. Coverage was cancelled; the summary gates reflect failed jobs. They are not candidate-owned failures that have been repaired, and no unrelated upstream config, generated docs, or dependencies were changed to manufacture a green CI status. The target branch has since advanced, so any future run needs a fresh exact-target comparison.
  • The earlier independent exact-tree review passed on db63e678... only. It does not transfer to the newer bc23cfd3... head; no new review PASS is claimed for that commit.

Original feature verification (historical head)

Change type: provider/catalog, with model-specific reasoning and pricing wiring.

Tested base: a1a2dce1a64a4b123f80ec899fc88bb2aa34d1a4 (release/v3.8.52).
Tested head: 11143fed867b4104c6964851de9b7d0b99d7f6a4.
Tested tree: 942d3290dfa7bcd0c3597681f7a11ea8aea4ade6.

Independent full-code review plus final exact-tree incremental review passed. The numbered changelog is included; the original CI later exposed the Fast-tier assertion omission repaired above.

  • 117/117 tests pass in one final 15-file focused run:
node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts \
  --import ./tests/_setup/isolateDataDir.ts --test --test-concurrency=4 \
  tests/unit/{gpt61-sol-catalog,codex-astra,codex-gpt6-astra-bare-id,vscode-token-routes-gpt56,codex-gpt6-sol-luna,executor-codex,codex-gpt56-catalog,openai-gpt56-catalog,openai-gpt56-responses-routing,reasoning-routing-codex-extended-effort,codex-connection-defaults,claude-codex-identity-version-sync,codex-reasoning-suffix,executor-codex-gpt56-lite-ultra,executor-codex-gpt56}.test.ts
  • New catalog regression: the five tests fail on exact base production code and pass with this change (not an import/collection failure).
  • npm run typecheck:core and npm run check:open-sse-typecheck pass.
  • node scripts/check/check-api-typecheck.mjs passes its existing error baseline.
  • Changed-file ESLint and Prettier pass. Normal pre-commit and commit-message hooks run without bypass.
  • npm run check:provider-consistency, npm run check:provider-assets pass.
  • TMPDIR=/private/tmp npm run check:complexity-ratchets -- --base-ref a1a2dce1a64a4b123f80ec899fc88bb2aa34d1a4 and the matching file-size gate pass.
  • npm run gen:provider-reference was run. This document lists providers, not per-model entries; it generated only unrelated existing drift, so that churn is not included.

Baseline/environment caveats

⚠️ base-red inherited: #15100.

Paired runs against pristine a1a2dce1a64a4b123f80ec899fc88bb2aa34d1a4 establish:

  • Full npm run lint returns the same unused-suppression warning/exit 2 on base and candidate; changed-file lint is clean.
  • npm run check:docs-all: the same stale 3.8.51 versions in README.md and llm.txt against package 3.8.52.
  • Mutation-coverage gate: the same 24 existing missing test entries. No baseline or suppression was widened.
  • Provider translate-path golden: the same six github / ghe-copilot Linux-vs-macOS User-Agent differences. Only the intentional Codex client-version snapshot changes are committed.
  • Default-heap full-project TypeScript check exhausted the heap. A test-inclusive focused project has zero diagnostics in the new regression file and the same 40 inherited diagnostics as base; production-scoped checks above pass.

No full unit suite ran on the host: CLI stop tests can signal real host processes. Broad unit/Vitest/coverage/build results are left to the configured upstream CI; local focused passes are not a claim that all CI is green.

Tests Added Or Updated

  • tests/unit/gpt61-sol-catalog.test.ts — catalog limits, aliases, translator/executor max, low default, VS Code effort/Fast metadata, real pricing calculator, mocked Responses Lite delegation.
  • tests/unit/openai-gpt56-catalog.test.ts — new catalog ordering; exercise public API Responses URL/tool/reasoning behavior for Sol as well as Astra.
  • tests/unit/executor-codex.test.ts — pinned request identity.
  • tests/unit/codex-fast-tier.test.ts — retain the explicit default-model list guard with the new Sol entry.
  • tests/unit/codex-astra.test.ts — retain the catalog ordering guard for newly prepended Sol and existing Astra families.
  • tests/snapshots/provider/translate-path.json — Codex version fields only.

Reviewer Notes

No migrations, feature flags, discovery-validation change, or deployment. These are static Standard short-context price estimates; this PR does not add long-context/regional/Batch billing policy or plan-specific quota accounting.

Public sources:

The pricing/speed pages were fetched directly because cached extraction had older rates.

Overlap note: #15094 has since merged into release/v3.8.52. The deferred #14608 trial merge conflicts in its existing stryker.conf.json changes, not in this PR's shared pricing file; that deferred branch will need reconciliation when resumed. This PR does not mutate either sibling branch.

Register public API and Codex limits separately, retain max/ultra alias behavior, and use the live Codex low default. Add the current Standard cached-input rate and the purchased-credit Fast multiplier without changing older model prices.

Keep the bundled Codex CLI and request identity at the verified 0.159.2 release. Add focused catalog, translation, delegation and cost regressions; refresh only the Codex golden header values.

Refs diegosouzapw#15166. Related diegosouzapw#15158 remains an independent model-import validation fix.
… Sol

Assert both the newly prepended Sol family and the retained Astra family in Codex and app-server catalogs. Keep the existing ordering guarantee rather than removing it.
@xiaoyaner0201
xiaoyaner0201 marked this pull request as ready for review September 30, 2026 05:39
@xiaoyaner0201

Copy link
Copy Markdown
Contributor Author

CI update for 11143fed867b4104c6964851de9b7d0b99d7f6a4: the Docs Gates failure is the same pair reproduced on the exact base: stale 3.8.51 strings in README.md and llm.txt versus package 3.8.52. See job log and the existing base-red issue #15100. No docs baseline or unrelated version text was changed in this PR. API Route Typecheck, the semgrep job, and merge-integrity checks have passed; unit shards, Vitest and remaining quality/security checks are still running. Local final-tree focused verification is 117/117 passing.

TonisOrmisson added a commit to TonisOrmisson/OmniRoute that referenced this pull request Sep 30, 2026
Cherry-pick upstream diegosouzapw#15171: 0176f84, bcd186a and 11143fe. Preserve live-catalog enforcement and cover refresh-to-routing for GPT-6.1 Sol. Align documented client overrides with Codex 0.159.2.

Co-authored-by: 千乘妍 (Xiaoyaner) <xiaoyaner0201@users.noreply.github.com>
@xiaoyaner0201

Copy link
Copy Markdown
Contributor Author

Published the one-line CI repair in db63e67860c5a2cdc7e0ec2c4b3ab0c62ee1a39b: the explicit Fast-tier expected-model list now includes gpt-6.1-sol. No production behavior or test assertion was weakened.

Fresh verification on that head: 127/127 focused tests, changed-file ESLint and Prettier, and core typecheck pass. Independent exact-tree review passed. A conflict-free trial merge against current release/v3.8.52 (536527b6066b464618a37e3ca34f46aa7266a736) also passes 127/127; the base alone passes 121/121 existing tests. The trial merge was not pushed.

The PR body now separates current-head evidence from the original publication checks. Upstream #15113 has since fixed the inherited docs-version drift. New CI is still pending/running; the old head's red jobs are not evidence for this repaired head.

@xiaoyaner0201

Copy link
Copy Markdown
Contributor Author

CI follow-up for head db63e67860c5a2cdc7e0ec2c4b3ab0c62ee1a39b: all four unit-test shards, Vitest, Docs Gates, typecheck and the ESLint gate passed. The remaining failed Fast Quality Gates job reports mutation-test-coverage and complexity-ratchets; the PR is not CI-green.

The job checked out GitHub's synthetic merge e475828a82deacf1d447183acedbb76d8936a137 (parents: then-target 536527b6066b464618a37e3ca34f46aa7266a736 and PR head db63e678). I reran the same gate commands with Node 24 on isolated exact trees:

Tree npm run check:mutation-test-coverage -- --strict npm run check:complexity-ratchets -- --base-ref a1a2dce1a64a4b123f80ec899fc88bb2aa34d1a4
Original PR base a1a2dce1 exit 1, 24 missing coverage entries exit 0, no source diff
PR head db63e678 exit 1, same 24 missing entries exit 0, zero new cyclomatic/cognitive findings
Target tip used by this CI run 536527b exit 1, 25 missing entries exit 1, one new cyclomatic finding in open-sse/services/combo/targetExhaustion.ts (2 → 3)

The strict coverage job on the synthetic merge also reports 25 missing entries. The flagged targetExhaustion.ts blob in the synthetic merge is byte-identical to its target parent (012f0d0faaeaca2b93fba4a6d032e57e1ee7bc71) and differs from the blob at the PR head/original base (c2a1b521f110ab53f815b0dcb9baf27eef5fdc47). This PR does not change that file. These two failed gate signatures therefore come from the target's changes/baseline, not from this PR's additions. No unrelated gate configuration was changed. The target has since advanced; the next CI evaluation will need a fresh target-tree comparison rather than treating this historical run as green.

Add the seven gpt-6.1-sol ids to CODEX_NATIVE_UNPREFIXED_MODELS (parity with
gpt-6-astra and gpt-5.6-sol) and cover bare-id routing, catalog listing and
pricing wiring with a test.

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(providers): add GPT-6.1 Sol built-in catalogs, pricing and reasoning wiring

1 participant