The whole hunk
from line 68, old and new numbered
/
lines
from line 68
6868Model identifiers are values of `ClaudeModel`. Use a compiled-in constant, or construct one with explicit capabilities for an ID that isn't compiled in yet (see [Capabilities](https://platform.claude.com/docs/en/cli-sdks-libraries/libraries/apple-foundation-models#capabilities)):
6969
7070```swift
71ClaudeLanguageModel(name: .opus5, auth: auth)
71ClaudeLanguageModel(name: .opus5_5, auth: auth)
7272```
7373
7474Constants mirror API model IDs (`.opus5` is `claude-opus-5`) and carry each model's capabilities. New models ship as new constants in package releases; check `ClaudeModel` in Xcode for the current list, and the [Models overview](https://platform.claude.com/docs/en/models/overview) to compare models.
from line 90
9090Pin a Claude [effort level](https://platform.claude.com/docs/en/build-with-claude/effort) for every request with `fixedEffort:`. It takes precedence over the framework's per-request reasoning hints. The framework's named reasoning levels stop at high; to request more effort for a single request instead, pass a custom reasoning level naming the Claude effort (`.custom("xhigh")` or `.custom("max")`), which maps directly. The API defaults to `high` when no effort is sent:
9191
9292```swift
93ClaudeLanguageModel(name: .opus5, auth: auth, fixedEffort: .xhigh)
93ClaudeLanguageModel(name: .opus5_5, auth: auth, fixedEffort: .xhigh)
9494```
9595
9696The level must be one the model accepts. Each `ClaudeModel` declares which of the five levels (`low`, `medium`, `high`, `xhigh`, `max`) its model takes, if any: some models don't accept effort at all.