feat(providers): byte-sync core mirror for Claude Fable 5 #2519

Merged
claude-ceo-assistant merged 1 commits from feat/support-claude-fable-5 into main 2026-06-10 14:22:20 +00:00
4 changed files with 10 additions and 7 deletions
@@ -16,7 +16,7 @@ const SchemaVersion = 1
// Fingerprint is a stable content hash of the generated projection (schema
// version + provider catalog + runtime native sets). It changes iff the
// registry DATA changes (comment-only YAML edits do not churn it).
const Fingerprint = "acb3798aa8ec3cec"
const Fingerprint = "dd8a39fb5426368c"
// GenProvider is the generated projection of one provider catalog entry —
// the subset a downstream consumer needs to derive + display a provider.
@@ -83,10 +83,10 @@ var Providers = []GenProvider{
var Runtimes = map[string][]GenRuntimeRef{
"claude-code": {
{Name: "anthropic-oauth", Models: []string{"sonnet", "opus", "haiku", "anthropic:sonnet", "anthropic:opus", "anthropic:haiku"}},
{Name: "anthropic-api", Models: []string{"claude-sonnet-4-6", "claude-opus-4-7", "claude-haiku-4-5", "claude-sonnet-4-5", "anthropic:claude-sonnet-4-6", "anthropic:claude-opus-4-7", "anthropic:claude-haiku-4-5", "anthropic:claude-sonnet-4-5"}},
{Name: "anthropic-api", Models: []string{"claude-fable-5", "claude-sonnet-4-6", "claude-opus-4-7", "claude-haiku-4-5", "claude-sonnet-4-5", "anthropic:claude-fable-5", "anthropic:claude-sonnet-4-6", "anthropic:claude-opus-4-7", "anthropic:claude-haiku-4-5", "anthropic:claude-sonnet-4-5"}},
{Name: "kimi-coding", Models: []string{"kimi-for-coding", "kimi-k2.5", "kimi-k2"}},
{Name: "minimax", Models: []string{"MiniMax-M2", "MiniMax-M2.7", "MiniMax-M2.7-highspeed", "MiniMax-M3"}},
{Name: "platform", Models: []string{"anthropic/claude-opus-4-7", "anthropic/claude-sonnet-4-6", "moonshot/kimi-k2.6", "moonshot/kimi-k2.5", "minimax/MiniMax-M2.7", "minimax/MiniMax-M2.7-highspeed", "minimax/MiniMax-M3"}},
{Name: "platform", Models: []string{"anthropic/claude-fable-5", "anthropic/claude-opus-4-7", "anthropic/claude-sonnet-4-6", "moonshot/kimi-k2.6", "moonshot/kimi-k2.5", "minimax/MiniMax-M2.7", "minimax/MiniMax-M2.7-highspeed", "minimax/MiniMax-M3"}},
{Name: "zai", Models: []string{}},
{Name: "deepseek", Models: []string{}},
{Name: "xiaomi-mimo", Models: []string{}},
@@ -847,10 +847,12 @@ runtimes:
# BYOK selection spelling used across the create/test corpus
# (internal#718 P4 PR-1). Both forms route to anthropic-api.
models:
- claude-fable-5
- claude-sonnet-4-6
- claude-opus-4-7
- claude-haiku-4-5
- claude-sonnet-4-5
- anthropic:claude-fable-5
- anthropic:claude-sonnet-4-6
- anthropic:claude-opus-4-7
- anthropic:claude-haiku-4-5
@@ -883,6 +885,7 @@ runtimes:
# template can offer no platform model absent from this set.
- name: platform
models:
- anthropic/claude-fable-5
- anthropic/claude-opus-4-7
- anthropic/claude-sonnet-4-6
- moonshot/kimi-k2.6
@@ -112,11 +112,11 @@ func TestModelsForRuntime_ExactModelIDs(t *testing.T) {
"sonnet", "opus", "haiku",
"anthropic:sonnet", "anthropic:opus", "anthropic:haiku",
// anthropic API versioned (bare + legacy colon-namespaced BYOK)
"claude-sonnet-4-6", "claude-opus-4-7", "claude-haiku-4-5", "claude-sonnet-4-5",
"anthropic:claude-sonnet-4-6", "anthropic:claude-opus-4-7",
"claude-fable-5", "claude-sonnet-4-6", "claude-opus-4-7", "claude-haiku-4-5", "claude-sonnet-4-5",
"anthropic:claude-fable-5", "anthropic:claude-sonnet-4-6", "anthropic:claude-opus-4-7",
"anthropic:claude-haiku-4-5", "anthropic:claude-sonnet-4-5",
// anthropic via platform proxy (namespaced)
"anthropic/claude-opus-4-7", "anthropic/claude-sonnet-4-6",
"anthropic/claude-fable-5", "anthropic/claude-opus-4-7", "anthropic/claude-sonnet-4-6",
// kimi (kimi-coding gateway, bare form only — colon-forms removed
// because claude-code's adapter cannot strip the moonshot: prefix;
// openclaw retains them natively, cp#521).
@@ -29,7 +29,7 @@ import (
// canonicalProvidersYAMLSHA256 is the sha256 of the canonical providers.yaml as
// synced from molecule-controlplane. Bumped deliberately on each re-sync (see
// file doc). Cross-checked live by the sync-providers-yaml CI workflow.
const canonicalProvidersYAMLSHA256 = "ab51d3faa21348696bf53cffe241ac07d0762c4074207264efe4f58f7591c4dc"
const canonicalProvidersYAMLSHA256 = "de2b7b5f1abee01d01d3e749868fa8b39028891a51ec07cff4c7770f48153383"
func TestSyncedYAMLMatchesCanonicalSHA(t *testing.T) {
sum := sha256.Sum256(embeddedYAML)