Add Apple Intelligence provider (Phase 1 — on-device)
- New AppleFoundationProvider using FoundationModels framework (macOS 27+) - Streaming via streamResponse(to:) → ResponseStream<String> snapshot deltas - Session built with system prompt + conversation history injected as instructions text - Full error mapping: context exceeded, guardrail violation, rate limit, availability states - Settings.Provider.appleOnDevice case wired through ProviderRegistry, Color+Extensions, CreditsView - inferProvider() detects "apple-" prefix model IDs - Settings → General: Apple Intelligence section with live availability badge and deep link to System Settings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -424,6 +424,8 @@ Don't narrate future actions ("Let me...") - just use the tools.
|
||||
func inferProviderPublic(from modelId: String) -> Settings.Provider? { inferProvider(from: modelId) }
|
||||
|
||||
private func inferProvider(from modelId: String) -> Settings.Provider? {
|
||||
// Apple Foundation Models
|
||||
if modelId.hasPrefix("apple-") { return .appleOnDevice }
|
||||
// OpenRouter models always contain a "/" (e.g. "anthropic/claude-3-5-sonnet")
|
||||
if modelId.contains("/") { return .openrouter }
|
||||
// Anthropic direct (e.g. "claude-sonnet-4-5-20250929")
|
||||
|
||||
Reference in New Issue
Block a user