chore: 🐝 Update SDK - Generate 0.13.13#488
Conversation
* `openrouter.benchmarks.getBenchmarks()`: **Added** * `openrouter.datasets.getBenchmarksArtificialAnalysis()`: **Removed** (Breaking⚠️ ) * `openrouter.datasets.getBenchmarksDesignArena()`: **Removed** (Breaking⚠️ ) * `openrouter.embeddings.listModels()`: `response.data[].reasoning` **Added** * `openrouter.models.get()`: `response.data.reasoning` **Added** * `openrouter.models.list()`: `response.data[].reasoning` **Added** * `openrouter.models.listForUser()`: `response.data[].reasoning` **Added**
There was a problem hiding this comment.
Perry's Review
Speakeasy-generated SDK regen (0.13.12 → 0.13.13): consolidates the two benchmark endpoints into a single unified benchmarks.getBenchmarks with a required source param, removes the legacy per-source methods/types, and adds an optional reasoning field to the Model type.
Verdict: 💬 Comments / questions
Details
Risk: 🟡 Medium — public SDK surface change (method/type removals), but fully generated from an upstream spec change and CI-green.
CI: all passing ✅ (validate)
Findings (see inline comments for full context):
- 🟡
package.json:3— breaking API change (removed public methods + exported types) shipped under a patch version bump; consumers on a caret range auto-upgrade into a compile break. - nit: the new reasoning row in
docs/models/model.mdlinks to a generated modelreasoning doc page that the generator did not emit. This matches a pre-existing pattern (the modelbenchmarks and modellinks doc pages are already dangling links on main), so it is not a regression introduced here — flagging for awareness only.
Codex (second opinion): 3 findings surfaced; 2 rejected after verifying against the OpenAPI spec (source and meta.task_type are required by design in the committed spec — the SDK faithfully reflects it; task_type is nullable, so Design Arena responses send null rather than omitting it). 1 confirmed (missing reasoning doc page) — folded into the nit above.
Research: Per Speakeasy's SDK versioning docs (https://www.speakeasy.com/docs/sdks/manage/versioning), Speakeasy does not analyze OpenAPI content (added/removed operations) when versioning — it only reads info.version plus a document checksum. The openapiDocVersion stayed 1.0.0, so the breaking consolidation produced only a checksum-driven patch bump. A spec-signalled major would have been auto-downgraded to a minor (0.14.0) for a pre-1.0 SDK. This is expected generator behavior, not a code defect — but worth a human confirming the bump is intentional (see inline).
Security: no concerns — no secrets in the diff; read-only GET endpoint consolidation, no auth/credential/streaming/rendering surface touched.
Test coverage: generated SDK with no committed unit tests for these funcs; the upstream validate CI check (green) is the compilation/contract gate.
Unresolved threads: none
Scope: first review (full)
Review: tier=large · model=claude-opus-latest · score=29.7
| { | ||
| "name": "@openrouter/sdk", | ||
| "version": "0.13.12", | ||
| "version": "0.13.13", |
There was a problem hiding this comment.
[suggestion] Breaking API change shipped as a patch bump (0.13.12 → 0.13.13) — confirm this is intentional before publishing.
Details
Why: This regen removes public SDK surface that existed on main:
datasets.getBenchmarksArtificialAnalysis()anddatasets.getBenchmarksDesignArena()methods are deleted (replaced bybenchmarks.getBenchmarks({ source })).- Root-exported types
BenchmarksAAResponse,BenchmarksDAResponse,BenchmarksAAItem,BenchmarksDAItem,BenchmarkPricing, etc. are removed/renamed toUnified*.
Any consumer pinned to a caret range (^0.13.12) auto-resolves to 0.13.13 and gets a compile/runtime break with no major/minor signal. For a pre-1.0 SDK the SemVer-conventional bump for a breaking change is the minor (→ 0.14.0).
This is expected Speakeasy behavior, not a hand-edit: Speakeasy versions off info.version + a doc checksum only — it does not inspect added/removed operations. Since openapiDocVersion stayed 1.0.0, the breaking consolidation only triggered a checksum-driven patch bump. To get the minor bump, the upstream spec's info.version needs to signal a major (auto-downgraded to minor pre-1.0), or set SPEAKEASY_BUMP_OVERRIDE.
Fix: Decide intentionally:
- (preferred) Re-cut as a minor (0.14.0) so caret-range consumers don't silently break on a benchmark API removal.
- Keep the patch bump if downstream impact is known-acceptable, and call the removal out in
RELEASES.md/ a changelog entry so consumers aren't surprised.
Prompt for agents
The SDK regen at package.json:3 (and jsr.json, .speakeasy/gen.yaml) bumps 0.13.12 -> 0.13.13 (patch), but this release removes public methods (datasets.getBenchmarksArtificialAnalysis, datasets.getBenchmarksDesignArena) and renames/removes root-exported benchmark types — a breaking change. Decide on the version: either re-generate as a minor bump (0.14.0) by signalling a major in the upstream OpenAPI info.version (Speakeasy auto-downgrades major->minor for pre-1.0 SDKs) or via SPEAKEASY_BUMP_OVERRIDE, OR keep the patch and add an explicit breaking-change note to RELEASES.md so caret-range consumers are warned. Do not hand-edit the generated files; drive the version through the Speakeasy spec/config.
Reviewed at c7a8a06
SDK update
Versioning
Version Bump Type: [patch] - 🤖 (automated)
Tip
If updates to your OpenAPI document introduce breaking changes, be sure to update the
info.versionfield to trigger the correct version bump.Speakeasy supports manual control of SDK versioning through multiple methods.
Typescript SDK Changes:
openrouter.benchmarks.getBenchmarks(): Addedopenrouter.datasets.getBenchmarksArtificialAnalysis(): Removed (Breakingopenrouter.datasets.getBenchmarksDesignArena(): Removed (Breakingopenrouter.embeddings.listModels():response.data[].reasoningAddedopenrouter.models.get():response.data.reasoningAddedopenrouter.models.list():response.data[].reasoningAddedopenrouter.models.listForUser():response.data[].reasoningAddedView full SDK changelog
OpenAPI Change Summary
View full report
Linting Report
0 errors, 1 warnings, 0 hintsView full report
TYPESCRIPT CHANGELOG
No relevant generator changes
Based on Speakeasy CLI 1.763.2
Last updated by Speakeasy workflow