From c0dd8759afa7ed2dfeec6c57094f7ae4cf5254aa Mon Sep 17 00:00:00 2001 From: Gabriel Brown Date: Sun, 12 Jul 2026 12:09:33 -0400 Subject: [PATCH] fix(expo): support anthropic_oauth_json auth type in provider form The backend aiProviderProfiles authType union added 'anthropic_oauth_json' but the Expo provider form's local AuthType type was stale, breaking typecheck. Add the literal, a picker option, help text, and multiline handling to match the Next app. Claude-Session: https://claude.ai/code/session_01ScyZ1NhfN84LAnHpwhfEQk --- .../settings/ai-provider-profile-form.tsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/apps/expo/src/components/settings/ai-provider-profile-form.tsx b/apps/expo/src/components/settings/ai-provider-profile-form.tsx index 1454b7a..0dc6fc6 100644 --- a/apps/expo/src/components/settings/ai-provider-profile-form.tsx +++ b/apps/expo/src/components/settings/ai-provider-profile-form.tsx @@ -20,7 +20,11 @@ type Provider = | 'cloudflare_ai_gateway' | 'custom_openai_compatible' | 'opencode_openai_login'; -type AuthType = 'api_key' | 'opencode_auth_json' | 'none'; +type AuthType = + | 'api_key' + | 'opencode_auth_json' + | 'anthropic_oauth_json' + | 'none'; type ReasoningEffort = 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh'; type ExistingProfile = { @@ -174,6 +178,7 @@ export const AiProviderProfileForm = ({ options={[ { label: 'API key', value: 'api_key' }, { label: 'Codex auth JSON', value: 'opencode_auth_json' }, + { label: 'Anthropic OAuth JSON', value: 'anthropic_oauth_json' }, { label: 'None', value: 'none' }, ]} value={authType} @@ -186,10 +191,20 @@ export const AiProviderProfileForm = ({ agent workspaces for Codex CLI runs. ) : null} + {authType === 'anthropic_oauth_json' ? ( + + Paste the credentials JSON from your Claude auth folder, for example + ~/.claude/.credentials.json, and paste it here. Spoon writes it into + isolated agent workspaces for Claude Code CLI runs. + + ) : null} {authType !== 'none' ? (