Preview · contract version 2026-09-10.2
Offline migration preflight
Find incompatible parameters, model mappings and known translation gaps before you switch endpoints. This is a local config check, not a credential validator, live benchmark or automatic migration.
Check a redacted configuration
Analysis happens in this browser only. Do not paste real keys. Use environment placeholders such as $SOURCE_API_KEY, redact private content first, and keep your original config locally. The input is cleared after analysis; neither input nor report is stored or sent by this workflow.
Versioned preflight cohort
| Model | Text | Stream | Tools | Inline vision | JSON object | Strict schema |
|---|---|---|---|---|---|---|
| routexor/gpt-4.1-mini | Checked subset | Checked subset | Checked subset | Checked subset | Checked subset | Checked subset |
| routexor/claude-haiku-4.5 | Checked subset | Checked subset | Checked subset | Checked subset | Excluded | Checked subset |
| routexor/gemini-2.5-flash-lite | Checked subset | Checked subset | Excluded | Checked subset | Checked subset | Checked subset |
What this preview excludes
The first cohort checks direct Chat Completions on the three IDs shown above. Strict JSON schemas have a separate bounded nonstreaming, pinned, text-only contract; the matrix does not certify every combination. Messages migration analysis, Responses, reasoning/cache controls, routing/fallback policies, ensembles, shadows, agent-run configuration, custom endpoints and arbitrary headers are not accepted by this preflight. Some exist elsewhere in Routexor; exclusion here is not an API implementation claim.
Google tool round trips and thought signatures are excluded. Vision checks accept supported inline base64 images, not remote URLs or file references. Tool parameter schemas receive shape checks, not semantic certification. Catalog data is bundled with this build and can be stale; check the current model listing before a canary.
No provider requests run here. Passing does not verify account access, actual model outputs, complete SDK compatibility, cancellation, cache savings or final invoices. Streaming can end with an error after output; no seamless post-output replacement is promised.
Same check in your terminal
From a checked-out Routexor repository, build the shared package once, then pipe a redacted file through the local CLI. It reads only stdin and writes only the redacted report. It does not discover files, read credential environment variables or contact endpoints.
pnpm --filter @routexor/shared build
node scripts/migration-preflight.mjs --example
node scripts/migration-preflight.mjs < redacted-config.json
node scripts/migration-preflight.mjs --matrixExit 0 means this offline subset passed; exit 2 means blocked input; exit 1 means local failure. Keep the old config untouched. A downloaded report contains a separate placeholder canary, not an automatically rewritten workload.