Skip to content

Audit IonRouter provider catalog - #1849

Open
DanielButler1 wants to merge 1 commit into
mainfrom
data/audit-ionrouter-20260824
Open

Audit IonRouter provider catalog#1849
DanielButler1 wants to merge 1 commit into
mainfrom
data/audit-ionrouter-20260824

Conversation

@DanielButler1

Copy link
Copy Markdown
Member

Summary

  • reconcile IonRouter against the official API reference and the public live /v1/models response as of 2026-08-24
  • expand the provider from 17 to 33 exact routes across text, vision, image, video, and text-to-speech, with canonical model and organisation entities
  • record documented endpoints, US data/execution constraints, 100 RPM and 128k chat limits, MiniMax 1M context, multimodal Qwen3.5 inputs, and verified source metadata
  • add structured published token, image, and generated-audio pricing while preserving every existing route and its pricing history
  • keep non-text models non-routable in the gateway until IonRouter capability executors exist

Reconciliation

  • 18 models returned by the unauthenticated live discovery endpoint
  • 31 models listed in the official docs catalog
  • union: 33 exact provider IDs (the live-only voxtral-mini-4b and qwen3-vl-30b-a3b are retained alongside the docs catalog)
  • no existing IonRouter routes or historical pricing entries removed
  • published video billing remains represented in route/source metadata rather than mis-modelled as video duration: IonRouter bills GPU-seconds, for which the catalog has no exact pricing meter

Validation

  • pnpm validate:data
  • pnpm validate:pricing
  • pnpm validate:gateway
  • pnpm data:check-manifest
  • git diff --check

Created with Codex

@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
phaseo Ready Ready Preview Aug 24, 2026 2:15am

Request Review

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 25 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: cfeb4220-5797-4e7c-870e-a87c6e4fb045

📥 Commits

Reviewing files that changed from the base of the PR and between 0300953 and 0d4719c.

📒 Files selected for processing (47)
  • .changeset/warm-pandas-route.md
  • packages/data/catalog/src/data/api_providers/ionrouter/api_provider.json
  • packages/data/catalog/src/data/api_providers/ionrouter/models.json
  • packages/data/catalog/src/data/manifest.json
  • packages/data/catalog/src/data/models/canopy-labs/orpheus-3b/model.json
  • packages/data/catalog/src/data/models/deepseek/deepseek-r1-distill-qwen-14b/model.json
  • packages/data/catalog/src/data/models/fastvideo/fastwan-t2v-1.3b/model.json
  • packages/data/catalog/src/data/models/fastvideo/fastwan-t2v-14b/model.json
  • packages/data/catalog/src/data/models/fastvideo/fastwan-ti2v-5b/model.json
  • packages/data/catalog/src/data/models/lightricks/ltx-video/model.json
  • packages/data/catalog/src/data/models/lllyasviel/framepack-i2v/model.json
  • packages/data/catalog/src/data/models/mistral/voxtral-mini-4b/model.json
  • packages/data/catalog/src/data/models/nari-labs/dia-1.6b/model.json
  • packages/data/catalog/src/data/models/opengvlab/internvl3.5-8b/model.json
  • packages/data/catalog/src/data/models/qwen/wan2.2-i2v-a14b/model.json
  • packages/data/catalog/src/data/models/swivid/f5-tts/model.json
  • packages/data/catalog/src/data/models/tencent/hunyuanvideo/model.json
  • packages/data/catalog/src/data/organisations/canopy-labs/organisation.json
  • packages/data/catalog/src/data/organisations/fastvideo/organisation.json
  • packages/data/catalog/src/data/organisations/lllyasviel/organisation.json
  • packages/data/catalog/src/data/organisations/nari-labs/organisation.json
  • packages/data/catalog/src/data/organisations/opengvlab/organisation.json
  • packages/data/catalog/src/data/organisations/swivid/organisation.json
  • packages/data/catalog/src/data/pricing/ionrouter/allenai-molmo-2-8b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/black-forest-labs-flux-1-dev/image.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/black-forest-labs-flux-1-schnell/image.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/canopy-labs-orpheus-3b/audio.speech/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/deepseek-deepseek-r1-distill-qwen-14b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/minimax-minimax-m2.5/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/moonshotai-kimi-k2.5/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/nari-labs-dia-1.6b/audio.speech/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/openai-gpt-oss-120b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/opengvlab-internvl3.5-8b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen2.5-14b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen2.5-32b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen2.5-7b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen2.5-vl-7b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen3-14b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen3-30b-a3b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen3-8b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen3-vl-30b-a3b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen3-vl-8b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen3.5-122b-a10b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen3.5-27b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/qwen-qwen3.5-35b-a3b/text.generate/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/swivid-f5-tts/audio.speech/pricing.json
  • packages/data/catalog/src/data/pricing/ionrouter/z-ai-glm-5/text.generate/pricing.json

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0d4719ce6b

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

"formats": [
"openai"
],
"endpoint": "https://glm.ionrouter.io/v1/chat/completions",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Route GLM-5 through the endpoint declared here

For glm-5 requests, the gateway executor calls resolveIonRouterUrlProvider, but apps/api/src/providers/ionrouter/config.ts only handles Kimi and MiniMax specially and otherwise selects https://api.ionrouter.io; it therefore never uses the newly verified https://glm.ionrouter.io endpoint. Calls requiring this model-specific host will be sent to the wrong server, so add the GLM configuration/resolver mapping or retain the general endpoint if that is actually authoritative.

AGENTS.md reference: packages/data/catalog/AGENTS.md:L17-L18

Useful? React with 👍 / 👎.

"provider_api_model_id": "ionrouter:voxtral-mini-4b",
"provider_model_slug": "voxtral-mini-4b",
"internal_model_id": "mistral/voxtral-mini-4b",
"is_active_gateway": true,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add pricing before activating the Voxtral route

When mistral/voxtral-mini-4b is requested through IonRouter, this new active route has no matching pricing/ionrouter/.../text.generate/pricing.json anywhere in the catalog. The gateway explicitly removes candidates without pricing in apps/api/src/pipeline/before/index.ts, recording pricing_missing, so the newly advertised route cannot execute; add its pricing card or leave it inactive until pricing is available.

AGENTS.md reference: packages/data/catalog/AGENTS.md:L14-L18

Useful? React with 👍 / 👎.

"output_modalities": "text",
"context_length": null,
"max_output_tokens": null,
"max_output_tokens": 128000,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep Qwen 2.5's output limit within its canonical limit

For IonRouter's qwen2.5-7b route, this raises max_output_tokens to 128,000 even though the canonical models/qwen/qwen2.5-7b/model.json records an 8,192-token output limit. The imported provider route will consequently advertise a limit the underlying model cannot satisfy, causing oversized requests to reach the provider rather than being constrained consistently; use the provider-supported output limit instead.

AGENTS.md reference: packages/data/catalog/AGENTS.md:L14-L16

Useful? React with 👍 / 👎.

@@ -0,0 +1,5 @@
---
"@phaseo/catalog": patch

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Target the actual catalog package in the changeset

This changeset names @phaseo/catalog, but no workspace package has that name; the catalog package declares @phaseo/data-catalog in packages/data/catalog/package.json. Changesets cannot apply this release entry to the intended package, so catalog versioning/release processing will fail or omit the change until the package name is corrected.

AGENTS.md reference: packages/data/catalog/AGENTS.md:L34-L34

Useful? React with 👍 / 👎.

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.

1 participant