--- phase: 31-puter.js-zero-config-cloud plan: "03" subsystem: ui tags: [react, puter, google-oauth, api-key, onboarding, shadcn, lucide-react] # Dependency graph requires: - phase: 31-puter.js-zero-config-cloud/31-01 provides: puterProxyService and routes (POST /api/puter-proxy/token, /api/puter-proxy/chat) - phase: 31-puter.js-zero-config-cloud/31-02 provides: Google OAuth PKCE routes (authorize, callback, claim) and api-keys/store endpoint - phase: 30-hardware-detection-mode-selection/30-02 provides: NexusOnboardingWizard 3-step structure and ModeSelector card pattern provides: - ProviderSelectionStep component (Step 3 of 4) with Puter/Google/API key cards - PuterAuthButton: loads Puter CDN, triggers signIn popup, captures token in React state - GoogleOAuthButton: 3-second risk warning gate, opens OAuth popup, captures stateId - ApiKeyEntryForm: provider dropdown (OpenAI/Anthropic/Groq) + password input - puterProxyApi client: storeToken, getAuthUrl, claimGoogleTokens, storeApiKey - NexusOnboardingWizard updated to 4-step flow with credential storage after company creation affects: [31-04, 33-personal-ai-assistant, future-onboarding-phases] # Tech tracking tech-stack: added: [] patterns: - "Provider card interaction: