chore: 🐝 Update SDK - Generate 0.10.1#338
Conversation
* `open_router.benchmarks.get_benchmarks()`: **Added** * `open_router.datasets.get_benchmarks_artificial_analysis()`: **Deleted** **Breaking**⚠️ * `open_router.datasets.get_benchmarks_design_arena()`: **Deleted** **Breaking**⚠️ * `open_router.embeddings.list_models()`: `response.data.[].reasoning` **Added** * `open_router.models.get()`: `response.data.reasoning` **Added** * `open_router.models.list()`: `response.data.[].reasoning` **Added** * `open_router.models.list_for_user()`: `response.data.[].reasoning` **Added**
There was a problem hiding this comment.
Perry's Review
Speakeasy SDK regen to 0.10.1: consolidates the two per-source benchmark dataset methods into a single unified Benchmarks endpoint, renames the supporting components, and adds an optional reasoning field to the Model schema.
Verdict: 💬 Comments / questions
Details
Risk: 🟡 Medium
What changed:
- Removed the two datasets.get_benchmarks_artificial_analysis / datasets.get_benchmarks_design_arena methods (at the legacy per-source dataset paths) and replaced them with a single unified benchmarks.get_benchmarks(source=...) call against the new benchmarks path. The OpenAPI source-of-truth confirms the old paths were removed and the unified getBenchmarks operation added — this is a faithful regen of a real upstream API change, not a generator artifact.
- Renamed the supporting components (BenchmarkPricing → UnifiedBenchmarkPricing, BenchmarksAAItem → UnifiedBenchmarksAAItem, BenchmarksDAItem → UnifiedBenchmarksDAItem) and added UnifiedBenchmarksMeta / UnifiedBenchmarksResponse with a discriminated union keyed on source.
- Added an optional reasoning field (ModelReasoning component) to the Model schema — purely additive, mirrors PR #331.
Verification performed:
- All 13 changed Python files compile under Python 3.12.
- No dangling references remain to any removed symbol (checked: BenchmarksAAResponse, BenchmarksDAResponse, BenchmarksAAMeta, BenchmarksDAMeta, BenchmarkPricing, GetBenchmarksArtificialAnalysis, GetBenchmarksDesignArena, and both removed method names). The components and operations re-export maps are updated consistently. The retained Datasets resource still exposes its app-rankings / rankings-daily methods correctly.
Main discussion point — breaking change shipped as a patch bump (0.10.0 → 0.10.1): removing two public SDK methods breaks any caller using them. Speakeasy only performs automatic major-version bumps after 1.0.0, so at 0.x this lands as a patch — that is expected generator behavior, not a defect. Flagging for human awareness only: anyone calling the old per-source methods will need to migrate to the unified call. Same observation as the prior review of #334.
Codex (HEAVY_SECONDARY_MODEL): 2 findings surfaced, both on the generated schema and both verified to be faithful to the OpenAPI contract rather than SDK defects: (1) the Design-Arena meta omits arena/category/elo_bounds — but those fields are not defined in the spec's UnifiedBenchmarksMeta, so the SDK correctly omits them; (2) the response union has only the two known source variants and no catch-all — but the source enum is open at the field level (x-speakeasy-unknown-values allow), and a forward-compat catch-all variant would have to be added in the upstream spec, not hand-edited into this DO-NOT-EDIT generated file. Neither is actionable in this PR.
Research: Reviewed Speakeasy's SDK versioning policy — automatic major bumps only begin after 1.0.0; pre-1.0 breaking changes are expected to land as patch/minor. The OpenRouter benchmarks endpoint is not yet in the public API reference docs.
Security: no concerns — generated read-only GET client code; no secrets, auth, streaming, or logging changes. Secret-pattern scan on added lines was clean.
Test coverage: no SDK test suite present (typical for Speakeasy regens — endpoint correctness is enforced by the generator against the OpenAPI contract).
Unresolved threads: none
CI: no checks reported on the head commit.
Scope: first review (full)
Review: tier=large · model=claude-opus-latest · score=32.8
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.
Python SDK Changes:
open_router.benchmarks.get_benchmarks(): Addedopen_router.datasets.get_benchmarks_artificial_analysis(): Deleted Breakingopen_router.datasets.get_benchmarks_design_arena(): Deleted Breakingopen_router.embeddings.list_models():response.data.[].reasoningAddedopen_router.models.get():response.data.reasoningAddedopen_router.models.list():response.data.[].reasoningAddedopen_router.models.list_for_user():response.data.[].reasoningAddedOpenAPI Change Summary
PYTHON CHANGELOG
No relevant generator changes
Based on Speakeasy CLI 1.680.0
Last updated by Speakeasy workflow