TanStack
OSS
ai
Sign in / Sign up
Open main menu
ai
GitHub
Overview
Runs
Analytics
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Succeeded
fix/sync-models-skip-openrouter-aliases
4f1491fa ci: Version Packages (#573) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
by github-act...
g
Succeeded
fix/sync-models-skip-openrouter-aliases
4f1491fa Merge b0ae8f69e3403c346f12eb40d775272df4df2360 into c35043709c000b7b45aa769243f1742a5ad38973
by Alem Tuzlak
A
Succeeded
fix/sync-models-skip-openrouter-aliases
aab48377 fix(scripts): sanitize tilde prefix in OpenRouter alias model constant names The daily sync-models workflow has been failing for several weeks. Example: https://github.com/TanStack/ai/actions/runs/26025311706/job/76496996066 OpenRouter started returning model IDs prefixed with `~` to denote routing aliases (e.g. `~anthropic/claude-haiku-latest`, `~anthropic/claude-opus-latest`, ~16 in the current snapshot). These point to whatever the current canonical model is for that slot and are valid models users can call. The generator transformed the IDs into JavaScript identifiers verbatim, producing `const ~ANTHROPIC_CLAUDE_HAIKU_LATEST = {…}` — not a valid identifier. Prettier then bailed with `SyntaxError: Variable declaration expected. (4:7)` and the workflow failed. Fix: - Map a leading `~` in the model ID to `_` only when deriving the constant name. The original ID is still emitted as a string literal on the meta object's `id` field (`id: '~anthropic/claude-haiku-latest'`), so users can pass the exact ID to `chat({ model: '~anthropic/claude-haiku-latest' })` and the constant list (`OPENROUTER_CHAT_MODELS`) references the alias by that same ID. - Add a regex check inside `generateModelMetaString` that throws with a clear, actionable error if a generated constant name isn't a valid JS identifier. Future OpenRouter ID quirks will fail loudly at generation time instead of writing invalid TS that breaks later in the pipeline. Verified locally: `pnpm regenerate:models` now produces valid identifiers like `_ANTHROPIC_CLAUDE_HAIKU_LATEST` with the original `'~anthropic/...'` strings intact, and `pnpm exec prettier --write` on the generated file succeeds.
by Alem Tuzlak
A
Succeeded
fix/sync-models-skip-openrouter-aliases
aab48377 Merge f1bd255ed7e1242dccaf98e76f2c6ecb910070b5 into 2f6bd139dd7404e04edfa81c0ab105f2bfb02680
by Alem Tuzlak
A
Succeeded
fix/sync-models-skip-openrouter-aliases
e8086158 fix(scripts): skip OpenRouter routing-alias model IDs in the sync workflow The daily sync-models workflow has been failing for several weeks. Example: https://github.com/TanStack/ai/actions/runs/26025311706/job/76496996066 OpenRouter started returning model IDs prefixed with `~` to denote unstable routing aliases (e.g. `~anthropic/claude-haiku-latest`, ~16 in the current snapshot). The model-meta generator transformed them into JavaScript identifiers verbatim, producing `const ~ANTHROPIC_CLAUDE_HAIKU_LATEST = {…}` in `packages/typescript/ai-openrouter/src/model-meta.ts`. That's not a valid identifier, so the next step in the pipeline (`pnpm format` → prettier) bailed with `SyntaxError: Variable declaration expected. (4:7)`, which surfaced as a workflow failure but only after the file was already written. Fixes: - Add an `isRoutingAlias()` helper that recognises the `~` prefix. - Filter routing aliases out in `convertModels` before they reach the generator. They don't belong in static `model-meta.ts` anyway — the underlying model can change between sync runs and we'd never know. - Add a safety net inside `generateModelMetaString` that throws with a clear, actionable error if a generated constant name isn't a valid JS identifier. Future OpenRouter ID quirks will fail loudly at generation time instead of silently writing invalid TS that breaks later in the pipeline. Verified locally: `pnpm regenerate:models` now produces a clean file and `pnpm format` passes. Console output reports the count of skipped aliases so the filter's behaviour is visible.
by Alem Tuzlak
A
Succeeded
fix/sync-models-skip-openrouter-aliases
e8086158 Merge 07cd914ef0d5df1a6d6327497c74d1c2d4bf5402 into 2f6bd139dd7404e04edfa81c0ab105f2bfb02680
by Alem Tuzlak
A
Previous page
Previous
Next
Next page