Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

chore(scripts): model sync emits `tools: []` and skips ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS, so every new Anthropic model lands red (#1516)

クローズ
#1,573 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
68/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
typescript
領域
ai, testing-qa, tooling

調査の方向性

Start with scripts/model-sync/provider-supports.ts and scripts/sync-provider-models.ts, then run the failing Anthropic and OpenRouter tests named in the issue. Check the generated metadata against the hand-maintained Anthropic capability list and the catalog-based OpenRouter test. Done means the sync regenerates green metadata and the Sync Model Metadata workflow no longer fails.

索引モデルが issue の本文から書いたものです。

説明

Problem

The daily model sync (automated/sync-models, PR #1516) is red on Test and Coverage. The Coverage job is not reporting a coverage drop — @tanstack/ai-anthropic:test:coverage errors out, so the job exits 1 before any comparison runs.

Run: https://github.com/TanStack/ai/actions/runs/36563236332 (head 3cbc3a061)

Three failures, all from the newly synced claude-sonnet-5-5 plus one removed OpenRouter model. All three reproduce locally:

  1. @tanstack/ai-anthropic:test:lib — tests/model-meta.test.ts:418, "covers every registered model that accepts output_config.format":

    AssertionError: expected [ 'claude-sonnet-5-5' ] to deeply equal []
    

    The sync added CLAUDE_SONNET_5_5.id to ANTHROPIC_MODELS and to the three type maps, but not to ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS (packages/ai-anthropic/src/model-meta.ts:778).

  2. @tanstack/ai-anthropic:test:types — tests/tools-per-model-type-safety.test.ts:252, "every registered model declares at least one provider tool":

    error TS2344: Type '"claude-opus-5-fast"' does not satisfy the constraint
    '"Expected: literal string: claude-opus-5-fast, Actual: literal string: claude-sonnet-5-5"'
    

    The generated entry has supports: { tools: [] }, so the new model joins claude-opus-5-fast in the "declares no provider tool" set that the test pins to exactly one id. For comparison, the hand-written CLAUDE_SONNET_5 (packages/ai-anthropic/src/model-meta.ts:464) lists web_search, web_fetch, code_execution, computer_use, bash, text_editor, memory. The generated entry also omits the extended_thinking / adaptive_thinking / priority_tier flags its siblings carry — same root cause, not caught by any test.

  3. @tanstack/ai-openrouter:test:types — tests/openrouter-combined-structured-output.test.ts:187: 'anthropic/claude-3-haiku' is no longer in OPENROUTER_CHAT_MODELS. This sync dropped it (along with deepseek/deepseek-r1-distill-llama-70b and four :free variants), so the literal no longer type-checks.

Root cause

1 and 2 are generator bugs and recur on every sync that adds a native Anthropic model.

scripts/model-sync/provider-supports.ts hardcodes tools: [] for every provider (case 'anthropic' at line 118, and the same literal in the openai, gemini and grok branches) — a conservative placeholder that was never filled in. scripts/sync-provider-models.ts:443 emits it verbatim, and nothing in the sync knows about ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS, so a new model lands registered-but-unlisted.

Same class as #1163: the sync writes a generated model list while a hand-maintained companion list goes stale.

3 is unrelated test brittleness — the test pins a literal catalog id that OpenRouter can (and did) delete.

Fix

  • scripts/model-sync/provider-supports.ts: fill the real provider server tools for new models instead of emitting tools: [], per provider (Anthropic, OpenAI, Gemini, Grok each have their own vocabulary — Anthropic web_search/code_execution/…, OpenAI web_search/file_search/code_interpreter/mcp/…, Gemini code_execution/google_search/url_context/…). While in there, emit the per-generation Anthropic flags (extended_thinking / adaptive_thinking / priority_tier) the hand-written entries carry.
  • scripts/sync-provider-models.ts: insert a new native Anthropic model id into ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS when it accepts output_config.format.
  • packages/ai-openrouter/tests/openrouter-combined-structured-output.test.ts:187: stop pinning a literal that a sync can delete — pick the model from the catalog by capability instead.
  • Then re-run Sync Model Metadata (workflow_dispatch) so #1516 regenerates green. Fixing #1516's branch directly is pointless: .github/workflows/sync-models.yml:52 rebuilds it from main and git push --forces it every day at 06:00 UTC.
主要言語
TypeScript
スター
3.1k
フォーク
340
平均マージ
2日 10時間
マージ済み PR(30日)
169

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

TanStack/ai のほかの issue

TanStack/ai の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。