Summary
Add Claude Opus 4.8 (us.anthropic.claude-opus-4-8-v1) to the UCSF Versa API Bedrock provider's model list. The Claude 4.8 models are now available/entitled on UCSF's Bedrock account, so the reason the model was originally omitted no longer applies.
Background
VERSA_BEDROCK_KNOWN_MODELS in crates/biorouter/src/providers/versa_bedrock.rs currently lists Opus 4.6, Sonnet 4.6, Opus 4.5, and Haiku 4.5. Opus 4.7/4.8 were intentionally excluded, per the in-code comment:
Only models that UCSF's Bedrock account is entitled to invoke are listed — every entry below has been verified end-to-end via the Versa proxy. Opus 4.7 and 4.8 are intentionally omitted because UCSF returns AccessDeniedException for them; users can still type a newer ID via the "Enter a model not listed…" option once UCSF enables it.
Now that UCSF has enabled the 4.8 models, Opus 4.8 should be promoted from "type-it-yourself" to a first-class listed model.
What's already in place
Most of the supporting plumbing already anticipates Opus 4.8 — only the provider's known-model list needs the entry:
- Context window —
crates/biorouter/src/model.rs:113 already maps ("claude-opus-4-8", 1_000_000), so the 1M-context window is handled.
- Canonical/usage mapping —
crates/biorouter/src/providers/canonical/name_builder.rs:426 already maps versa_bedrock / us.anthropic.claude-opus-4-8-v1 → anthropic/claude-opus-4.8 (this also confirms the expected Bedrock model ID: us.anthropic.claude-opus-4-8-v1, matching the short -v1 form used by the existing us.anthropic.claude-opus-4-6-v1 entry).
Proposed change
In crates/biorouter/src/providers/versa_bedrock.rs:
- Add
"us.anthropic.claude-opus-4-8-v1" to the top of VERSA_BEDROCK_KNOWN_MODELS (the list is ordered newest → oldest; the UI auto-selects the first entry as the default when switching providers). Consider adding Opus 4.7 too if UCSF entitled both.
- Update the explanatory comment above the array so it no longer says 4.7/4.8 are omitted for
AccessDeniedException.
- Optional: update
VERSA_BEDROCK_DEFAULT_MODEL (currently us.anthropic.claude-opus-4-6-v1) to us.anthropic.claude-opus-4-8-v1 if 4.8 should become the provider's default.
The frontend model picker reads the provider's known_models/ModelInfo from the backend, so no separate UI list needs editing.
Verification (please confirm before merging)
The existing invariant is that every listed model is verified end-to-end via the Versa proxy (no AccessDeniedException). Before shipping:
- Confirm UCSF's Bedrock account returns a successful
converse/converse_stream for us.anthropic.claude-opus-4-8-v1 through the MuleSoft proxy (https://unified-api.ucsf.edu/general/awsai) — i.e. the AccessDeniedException that caused the original omission is gone.
- Double-check the exact Bedrock model ID against AWS's catalog for the
us. cross-region inference profile (expected us.anthropic.claude-opus-4-8-v1 per the canonical map above; adjust if AWS uses a date-stamped …-YYYYMMDD-v1:0 form instead).
(Note: I can't verify UCSF's entitlement or invoke the proxy from here — this request is filed on the report that the 4.8 models are now available.)
Environment
- Provider: UCSF Versa API Bedrock (
versa_bedrock).
- Model requested: Claude Opus 4.8 (
us.anthropic.claude-opus-4-8-v1, 1M context).
Summary
Add Claude Opus 4.8 (
us.anthropic.claude-opus-4-8-v1) to the UCSF Versa API Bedrock provider's model list. The Claude 4.8 models are now available/entitled on UCSF's Bedrock account, so the reason the model was originally omitted no longer applies.Background
VERSA_BEDROCK_KNOWN_MODELSincrates/biorouter/src/providers/versa_bedrock.rscurrently lists Opus 4.6, Sonnet 4.6, Opus 4.5, and Haiku 4.5. Opus 4.7/4.8 were intentionally excluded, per the in-code comment:Now that UCSF has enabled the 4.8 models, Opus 4.8 should be promoted from "type-it-yourself" to a first-class listed model.
What's already in place
Most of the supporting plumbing already anticipates Opus 4.8 — only the provider's known-model list needs the entry:
crates/biorouter/src/model.rs:113already maps("claude-opus-4-8", 1_000_000), so the 1M-context window is handled.crates/biorouter/src/providers/canonical/name_builder.rs:426already mapsversa_bedrock/us.anthropic.claude-opus-4-8-v1→anthropic/claude-opus-4.8(this also confirms the expected Bedrock model ID:us.anthropic.claude-opus-4-8-v1, matching the short-v1form used by the existingus.anthropic.claude-opus-4-6-v1entry).Proposed change
In
crates/biorouter/src/providers/versa_bedrock.rs:"us.anthropic.claude-opus-4-8-v1"to the top ofVERSA_BEDROCK_KNOWN_MODELS(the list is ordered newest → oldest; the UI auto-selects the first entry as the default when switching providers). Consider adding Opus 4.7 too if UCSF entitled both.AccessDeniedException.VERSA_BEDROCK_DEFAULT_MODEL(currentlyus.anthropic.claude-opus-4-6-v1) tous.anthropic.claude-opus-4-8-v1if 4.8 should become the provider's default.The frontend model picker reads the provider's
known_models/ModelInfofrom the backend, so no separate UI list needs editing.Verification (please confirm before merging)
The existing invariant is that every listed model is verified end-to-end via the Versa proxy (no
AccessDeniedException). Before shipping:converse/converse_streamforus.anthropic.claude-opus-4-8-v1through the MuleSoft proxy (https://unified-api.ucsf.edu/general/awsai) — i.e. theAccessDeniedExceptionthat caused the original omission is gone.us.cross-region inference profile (expectedus.anthropic.claude-opus-4-8-v1per the canonical map above; adjust if AWS uses a date-stamped…-YYYYMMDD-v1:0form instead).(Note: I can't verify UCSF's entitlement or invoke the proxy from here — this request is filed on the report that the 4.8 models are now available.)
Environment
versa_bedrock).us.anthropic.claude-opus-4-8-v1, 1M context).