{"openapi":"3.1.0","info":{"title":"LifeLongEdge","version":"0.1.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/r":{"get":{"summary":"Track Click Redirect","description":"Log an email/link click, then 302 to destination. Only redirects to\nwhitelisted hosts to prevent open-redirect abuse.","operationId":"track_click_redirect_r_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/px":{"get":{"summary":"Track Email Open","description":"1x1 transparent GIF that logs an email open. Most email clients fetch\nimages with image loading enabled; we accept the undercounting that\nhappens with image-blocking.","operationId":"track_email_open_px_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/contact":{"post":{"summary":"Contact Submit","description":"Handle homepage contact form submissions.\n\nStores submission to Firestore lle_contact_submissions, emails the admin,\nand logs a contact_submit tracking event. Subscribe intent is recorded\non the submission for admin follow-up — no automatic mailing-list add.","operationId":"contact_submit_api_contact_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/track":{"post":{"summary":"Track Web Event","description":"Web beacon endpoint for page_view and cta_click events.\n\nSent via navigator.sendBeacon from the inline tracker in _page_shell.\nBody is JSON: { type, page, target, target_url, campaign }","operationId":"track_web_event_api_track_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Home Page","operationId":"home_page__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/philosophy":{"get":{"summary":"Philosophy Page","operationId":"philosophy_page_philosophy_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/about":{"get":{"summary":"About Page","operationId":"about_page_about_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/edge-s2":{"get":{"summary":"Edge S2 Page","operationId":"edge_s2_page_edge_s2_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/edge-s2/lineage":{"get":{"summary":"Edge S2 Lineage Page","operationId":"edge_s2_lineage_page_edge_s2_lineage_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/mockups/{slug}":{"get":{"summary":"Mockup Preview","operationId":"mockup_preview_mockups__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store":{"get":{"summary":"Store Page Redirect","operationId":"store_page_redirect_store_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/pricing":{"get":{"summary":"Pricing Page","operationId":"pricing_page_pricing_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/bundles/bmr":{"get":{"summary":"Bmr Bundle Page","operationId":"bmr_bundle_page_bundles_bmr_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/bundles/first-pattern-starter":{"get":{"summary":"First Pattern Starter Page","operationId":"first_pattern_starter_page_bundles_first_pattern_starter_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/bundles/traders-desk":{"get":{"summary":"Traders Desk Page","operationId":"traders_desk_page_bundles_traders_desk_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/bundles/alignment-pack":{"get":{"summary":"Alignment Pack Page","operationId":"alignment_pack_page_bundles_alignment_pack_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/why-tc2000":{"get":{"summary":"Why Tc2000 Page","operationId":"why_tc2000_page_why_tc2000_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/trader-journey":{"get":{"summary":"Trader Journey Page","operationId":"trader_journey_page_trader_journey_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/layouts":{"get":{"summary":"Layouts Page","operationId":"layouts_page_layouts_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/layouts/{slug}":{"get":{"summary":"Layout Detail","operationId":"layout_detail_layouts__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/glossary":{"get":{"summary":"Glossary Page","operationId":"glossary_page_glossary_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/faq":{"get":{"summary":"Faq Page","operationId":"faq_page_faq_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/learn/opening-movers":{"get":{"summary":"Learn Opening Movers Page","operationId":"learn_opening_movers_page_learn_opening_movers_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/login":{"get":{"summary":"Login Page","operationId":"login_page_login_get","parameters":[{"name":"error","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Login Post","description":"Send a magic sign-in link to the email if it is whitelisted.\n\nResponse is identical whether the email is on the whitelist or not, so\nthe page cannot be used to enumerate registered customers.","operationId":"login_post_login_post","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/auth/verify":{"get":{"summary":"Auth Verify","description":"Consume a magic-link token, create the session, and redirect to members.","operationId":"auth_verify_auth_verify_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/logout":{"post":{"summary":"Logout","operationId":"logout_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/members/layouts":{"get":{"summary":"Member Layouts","operationId":"member_layouts_members_layouts_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/admin":{"get":{"summary":"Admin Page","operationId":"admin_page_admin_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/admin/contact-submissions":{"get":{"summary":"Admin Contact Submissions","description":"Admin view of homepage contact form submissions.","operationId":"admin_contact_submissions_admin_contact_submissions_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/admin/metrics":{"get":{"summary":"Admin Metrics Page","description":"Daily engagement metrics dashboard for LLE admins.","operationId":"admin_metrics_page_admin_metrics_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/admin/whitelist":{"post":{"summary":"Admin Add Whitelist","operationId":"admin_add_whitelist_admin_whitelist_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/checkout":{"post":{"summary":"Create Checkout","description":"Create a Stripe Checkout Session for a bundle purchase.","operationId":"create_checkout_api_checkout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/stripe-webhook":{"post":{"summary":"Stripe Webhook","description":"Handle Stripe webhook events.","operationId":"stripe_webhook_api_stripe_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/checkout/success":{"get":{"summary":"Checkout Success","description":"Post-checkout success page.","operationId":"checkout_success_checkout_success_get","parameters":[{"name":"session_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/checkout/cancel":{"get":{"summary":"Checkout Cancel","description":"Post-checkout cancel page.","operationId":"checkout_cancel_checkout_cancel_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/cron/send-email":{"post":{"summary":"Cron Send Email","description":"Cron-triggered email campaign. Protected by secret header.","operationId":"cron_send_email_api_cron_send_email_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cron/send-test":{"post":{"summary":"Cron Send Test","description":"Send a test email. Protected by secret header.","operationId":"cron_send_test_api_cron_send_test_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/email-unsubscribe":{"get":{"summary":"Email Unsubscribe","description":"One-click unsubscribe.","operationId":"email_unsubscribe_api_email_unsubscribe_get","parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string","default":"","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/layouts":{"get":{"summary":"Api Layouts","description":"Full layout catalog as JSON for AI agent consumption.","operationId":"api_layouts_api_layouts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/lab":{"get":{"summary":"Lab Landing Page","description":"Public Edge Lab landing — frames the research program and links into the\nindexed /lab/pub catalog. Registered before the /lab/{slug} catch-all so the\nliteral 'lab' path is never consumed as an unlisted-bundle slug (LL-001).","operationId":"lab_landing_page_lab_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/lab/pub":{"get":{"summary":"Lab Pub Catalog","description":"Public, indexed catalog of published studies.","operationId":"lab_pub_catalog_lab_pub_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/lab/pub/{slug}":{"get":{"summary":"Lab Pub Index","operationId":"lab_pub_index_lab_pub__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lab/pub/{slug}/{path}":{"get":{"summary":"Lab Pub Asset","operationId":"lab_pub_asset_lab_pub__slug___path__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/lab/request-artifact":{"post":{"summary":"Lab Request Artifact","description":"Capture an email for a study's artifact package, email a personal download\nlink, and log the lead (LL-010). The files themselves are never on the public\nsurface — they are streamed only by /lab/artifact/{slug} after token check.","operationId":"lab_request_artifact_api_lab_request_artifact_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/lab/artifact/{slug}":{"get":{"summary":"Lab Artifact Download","description":"Stream the gated artifact zip after validating the signed token (LL-010).","operationId":"lab_artifact_download_lab_artifact__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"t","in":"query","required":false,"schema":{"type":"string","default":"","title":"T"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mcp":{"get":{"summary":"Mcp Get","operationId":"mcp_get_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Mcp Post","operationId":"mcp_post_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"options":{"summary":"Mcp Preflight","operationId":"mcp_preflight_mcp_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/lab/{slug}":{"get":{"summary":"Lab Index","operationId":"lab_index_lab__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Lab Unlock","operationId":"lab_unlock_lab__slug__post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/lab/{slug}/{path}":{"get":{"summary":"Lab Asset","operationId":"lab_asset_lab__slug___path__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/lab":{"get":{"summary":"Admin Lab","description":"Operator-only catalog of published bundles (unlisted URLs).","operationId":"admin_lab_admin_lab_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/robots.txt":{"get":{"summary":"Robots Txt","description":"Explicitly allow all major AI crawlers.","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","description":"Curated site map for LLM consumption.","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/.well-known/mcp-registry-auth":{"get":{"summary":"Mcp Registry Auth","operationId":"mcp_registry_auth__well_known_mcp_registry_auth_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms-full.txt":{"get":{"summary":"Llms Full Txt","description":"Full layout catalog + glossary for deep LLM consumption.","operationId":"llms_full_txt_llms_full_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap Xml","description":"Dynamic XML sitemap.","operationId":"sitemap_xml_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}