import os # Extended planner prompt prompt = f""" You are a web automation agent. Your task is to visit the given domain and perform a full login via the **Apple SSO button**, following all steps strictly as described below. ▶ Target: Find a login page inside this domain that allows "Sign in with Apple", and use it to complete login via Apple. Instructions: 1. If any cookie or privacy popups appear, dismiss or accept them. 2. Navigate through the site's UI to find the **login or sign-in page** (e.g., via buttons like "Log In", "Sign In", "Get Started"). - Only follow links within the same domain. 3. On the login page, look for a clearly labeled **Apple SSO button** — typically labeled as: - "Continue with Apple" - "Sign in with Apple" - or a button with the Apple icon 4. Click the **Apple login button**. - ⚠️ The Apple login flow MUST open in a **new browser tab** (not a new window or popup). - ❌ If the login opens in a new **window** or **popup**, do NOT continue. Immediately stop and return the appropriate status. 5. Check if the user is **already logged in to Apple and immediately redirected back to the original site** without showing a Apple login screen. - ✅ If so, treat the login as successful and return immediately. 6. If redirected to the Apple login page: a. If a **CAPTCHA**, complete it. b. If a **MFA prompt**, or a request for **ID/password entry** appears, do NOT proceed - Immediately stop and return the appropriate status. - If a **"Continue"**, **"Trust"**, **"Authorize"**, or **"Allow"** button is displayed, click it to grant consent. 7. If login proceeds without interruptions, complete the login and **immediately close the browser window**. Do not perform any further actions. 8. Login is considered successful if: - You are redirected to a page that indicates successful login (e.g., a welcome page, dashboard, or account page). - If a page such as a sign-up page appears, consider it a successful login and terminate immediately. Credentials to use for Apple login: - Email: {os.getenv("APPLE_EMAIL", "")} - Password: {os.getenv("APPLE_PASSWORD", "")} Constraints: - Do NOT use search engines or guess URLs. - Do NOT use autofill, saved sessions, or cookies. - Do NOT proceed with login if: - The login opens in a new window (only tabs are allowed) - CAPTCHA or MFA appears - ID/password input is required - If the user is already logged in to Apple and redirected back automatically, stop there and report success. - If the login page cannot be found, return "login_page_not_found". - If the Apple login button is not found, return "sso_not_found". - If a page such as a sign-up page appears, consider it a successful login and terminate immediately. Final Output: Return the result in the following format only: ```json {{ "msg": "Apple login completed", "status": "success" | "already_logged_in" | "mfa_required" | "captcha_triggered" | "window_blocked" | "idpw_required" | "apple_blocked" | "sso_not_found" | "login_page_not_found", "final_url": "" }} ``` - Return ONLY the JSON object. Do NOT include any explanation, logging, or extra output. """