Skip to content

feat(catalog): add claude-fable-5-1 to model metadata - #3293

Draft
Veritas-7 wants to merge 1 commit into
lidge-jun:devfrom
Veritas-7:feat/fable-51-model-metadata
Draft

feat(catalog): add claude-fable-5-1 to model metadata#3293
Veritas-7 wants to merge 1 commit into
lidge-jun:devfrom
Veritas-7:feat/fable-51-model-metadata

Conversation

@Veritas-7

@Veritas-7 Veritas-7 commented Sep 2, 2026

Copy link
Copy Markdown

Summary

  • Upstream PR feat(anthropic): add claude-fable-5-1 with official Fable 5.1 pricing #3203 added claude-fable-5-1 to the Anthropic registry, expected-prices, and tests, but not scripts/model-metadata.source.json or src/generated/model-metadata.ts. This PR closes that remaining catalog gap so Fable 5.1 resolves through generated metadata like claude-fable-5.
  • Add claude-fable-5-1 to the canonical Anthropic model-metadata source and regenerate src/generated/model-metadata.ts.
  • Keep the existing verified claude-fable-5-1 expected-price rows (verifiedAt: 2026-09-02) and their official rates: $10 / 1M input, $50 / 1M output, $0.25 / 1M cache read, and $12.50 / 1M 5-minute cache write. The generated row keeps cacheRead: 0.25, matching CLAUDE_FABLE_51 in src/usage/expected-prices.ts:74.
  • The repository's Anthropic registry already records 1,000,000 context tokens and 128,000 max output tokens for Fable 5.1; the generated row mirrors the existing Fable 5 metadata shape, including text/image input and reasoning support. No additional context/max-output inference was required.
  • thinking is a snapshot-only field mirrored from claude-fable-5; the generator does not consume it.

Verification

  • bun run generate:model-metadata — passed; regenerated src/generated/model-metadata.ts from the source snapshot.
  • bun test tests/model-metadata-sync.test.ts tests/usage-cost.test.ts — passed: 83 pass, 0 fail, 445 expect() calls, Ran 83 tests across 2 files. [202.00ms].
  • bun run typecheck — passed with exit code 0 (bun x tsc --noEmit).
  • Additional focused coverage: bun test tests/provider-registry-parity.test.ts tests/codex-catalog.test.ts tests/anthropic-hardening.test.ts — passed: 312 pass, 0 fail, 1814 expect() calls, Ran 312 tests across 3 files. [6.78s].
  • The generator diff is limited to the new claude-fable-5-1 row in the anthropic generated data block; the source diff is the matching canonical Anthropic object. Precedence is implemented in src/usage/cost.ts:253-284; a nonzero bundled row outranks the overlay, so the retained overlay rows are compatibility fallbacks. The canonical Anthropic result now reports source: "jawcode" and jawcodeProvider: "anthropic".

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults; this catalog-only change does not touch security-sensitive behavior.

Review readiness checklist

This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:

  • All CI tests are green on my local testing.

  • I pushed my PR to the latest dev commit.

  • I resolved all correct Codex and CodeRabbit findings.

  • My PR is ready for review.

lidge-jun#3203 added the registry and pricing rows but not the model metadata; this fills that gap.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the enhancement New feature or request label Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • review readiness checklist open (0/4 boxes ticked).

What to do

  • Tick all four boxes in the PR description once you're done (currently 0/4).

Review readiness checklist

  • ⬜ All CI tests are green on my local testing.
  • ⬜ I pushed my PR to the latest dev commit.
  • ⬜ I resolved all correct Codex and CodeRabbit findings.
  • ⬜ My PR is ready for review.

0/4 boxes ticked.

This PR stays in draft until every box above is ticked.

@lidge-jun

Copy link
Copy Markdown
Owner

리뷰 · 우선순위 46 / 80

이 PR은 #3203이 Anthropic 레지스트리·expected-prices·테스트에는 claude-fable-5-1을 넣었지만, 생성 메타데이터 소스에는 안 넣은 구멍을 메우려는 작업입니다. 지금 dev HEAD(938c0136a)를 보면 src/usage/expected-prices.ts에는 anthropic / anthropic-apikey / cursor 오버레이가 있고, 테스트도 overlay 경로(source: "expected")를 기대합니다. 그런데 scripts/model-metadata.source.json의 anthropic 블록과 src/generated/model-metadata.ts에는 claude-fable-5만 있고 claude-fable-5-1 행이 없습니다. 그래서 가격은 오버레이로 맞지만, jawcode/bundled 메타데이터 경로로는 Fable 5.1이 아직 “없는 모델”입니다.

PR이 하는 일은 짧고 분명합니다. 소스 JSON에 Fable 5.1 객체를 넣고 bun run generate:model-metadata로 generated 파일을 갱신합니다. 비용은 input 10 / output 50 / cacheRead 0.25 / cacheWrite 12.5로, 이미 있는 CLAUDE_FABLE_51과 같습니다. cacheRead 0.25는 다른 Claude 패밀리의 0.1x가 아니라 0.025x라는 Fable 5.1 공식 비율이라서, 여기를 1.0이나 다른 값으로 복사하면 안 됩니다. PR은 그 숫자를 맞게 넣었습니다.

src/usage/cost.ts 쪽 순서를 보면, 유효한 nonzero bundled(jawcode) 행이 있으면 일반 overlay보다 먼저 쓰입니다. 그래서 이 행이 생긴 뒤 resolveMatchedPrice("anthropic", "claude-fable-5-1")source: "jawcode" / jawcodeProvider: "anthropic"이 되고, 테스트도 그렇게 바뀝니다. 오버레이 행은 지우지 않고 호환·직접 조회로 남깁니다. 계정 풀 라벨 anthropic-pb…가 같은 가격으로 접히는지도 테스트에 남아 있습니다. 방향은 #3203이 열어 둔 “공식 가격을 카탈로그에도 같은 숫자로”와 맞습니다.

다만 이 브랜치는 dev 최신보다 behind입니다. 베이스가 #3286(Gemini 3.8)·#3246(write_stdin 브리지) 이전이라, 브랜치 트리만 보면 Gemini 플랜/코드가 “사라진” 것처럼 보입니다. 실제 PR 세 점 디프는 메타데이터 네 파일뿐이고, 머지 전에 최신 dev로 리베이스해야 #3286/#3246을 되돌리지 않습니다. 또한 PR이 draft이고 readiness 체크리스트가 아직 비어 있습니다. 리뷰·CI 준비가 끝나기 전에는 랜딩하면 안 됩니다.

작은 정확도 이슈도 있습니다. 본문은 thinking 블록을 claude-fable-5에서 그대로 가져왔다고 하는데, HEAD의 fable-5는 "mode": "budget"이고 PR의 5-1은 "anthropic-adaptive"입니다. 생성기가 thinking을 소비하지 않는다면 런타임 영향은 없지만, “미러” 설명은 사실과 다릅니다. 또 Bedrock/EU/global 등 다른 프로바이더 블록의 fable-5 대응 행은 이번 범위 밖입니다. #3203이 Anthropic 표면만 다뤘다면 이번에도 Anthropic만으로 충분할 수 있지만, “카탈로그 완전성”을 어디까지 볼지는 메인테이너 몫입니다.

라인 scripts/model-metadata.source.json claude-fable-5-1 - cacheRead 0.25는 Fable 5.1 공식 0.025x라서 유지가 맞고, fable-5의 cacheRead 1과 섞이면 안 된다
라인 같은 파일 thinking.mode - 본문은 fable-5 미러라고 했지만 fable-5는 budget, 여기는 anthropic-adaptive다. 생성기가 안 읽더라도 설명을 고치거나 값을 맞출지 정하라
경로 src/generated/model-metadata.ts - 소스에서 regenerate한 anthropic 행만 바뀌어야 한다. 손편집 금지
경로 브랜치 - dev에 이미 있는 #3286/#3246보다 behind이므로, 리베이스 없이 머지하면 충돌·되돌림 위험이 있다
경로 PR 상태 - draft + checklist 미완료라 review-ready가 아니다

메인테이너의 판단이 필요한 지점

  • draft 해제·체크리스트·CI green 전에 머지할지, 준비될 때까지 기다릴지
  • Bedrock/지역 별칭 메타데이터에도 fable-5-1을 같은 유닛에서 넣을지, Anthropic만으로 닫을지
  • thinking.mode를 fable-5와 맞출지, anthropic-adaptive를 의도적으로 둘지

너의 추천
의도는 좋고 HEAD의 실제 구멍과도 맞습니다. 최신 dev로 리베이스 → draft 해제·CI 확인 후 머지하세요. 지금 상태 그대로 랜딩하지는 마세요. thinking 설명/값 불일치는 한 줄만 정리하면 됩니다.

이 댓글은 grok-bot이 작성했습니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants