1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1522],{2036:(e,s,a)=>{a.d(s,{A:()=>t});let t=(0,a(87573).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},31118:(e,s,a)=>{a.d(s,{r:()=>r});var t=a(54868);function r(e){let s=(0,t.useRef)(null),a=(0,t.useRef)(null);return(0,t.useEffect)(()=>{if(!e||!s.current)return;a.current=document.activeElement;let t=s.current,r=()=>t.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])'),i=r();i.length>0&&i[0].focus();let n=e=>{if("Escape"===e.key||"Tab"!==e.key)return;let s=r();if(0===s.length)return;let a=s[0],t=s[s.length-1];e.shiftKey?document.activeElement===a&&(e.preventDefault(),t.focus()):document.activeElement===t&&(e.preventDefault(),a.focus())};return t.addEventListener("keydown",n),()=>{t.removeEventListener("keydown",n),a.current?.focus()}},[e]),s}},41522:(e,s,a)=>{a.r(s),a.d(s,{default:()=>w});var t=a(79192),r=a(50819),i=a(54868),n=a(87131),o=a(2036),l=a(90010);function c(e){let{compact:s=!1}=e,a=s?"text-lg font-semibold text-warm-800 mb-2":"text-2xl font-semibold text-warm-800 mb-4",r=s?"text-base font-semibold text-warm-700 mb-2 mt-4":"text-lg font-semibold text-warm-700 mb-2 mt-4",i=s?"text-warm-600 text-sm leading-relaxed":"text-warm-600 leading-relaxed";return(0,t.jsxs)("div",{className:s?"space-y-6":"space-y-8",children:[(0,t.jsx)("p",{className:s?"text-warm-500 text-sm":"text-warm-600 text-lg",children:"Last updated: February 1, 2026"}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"1. Agreement to Terms"}),(0,t.jsx)("p",{className:i,children:'By accessing or using Lee ("the Service"), operated by Ask Lee ("we," "us," or "our"), you agree to be bound by these Terms of Service ("Terms"). If you do not agree to these Terms, you may not access or use the Service. The
1se Terms constitute a legally binding agreement between you and Ask Lee.'}),(0,t.jsx)("p",{className:`${i} mt-2`,children:'If you are using the Service on behalf of an organization, you represent and warrant that you have the authority to bind that organization to these Terms, and "you" refers to both you individually and that organization.'})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"2. Description of Service"}),(0,t.jsx)("p",{className:i,children:"Lee is an AI-powered assistant platform that enables users to interact with artificial intelligence through messaging applications including WhatsApp and Telegram. The Service acts as a technical bridge between your messaging application and AI providers, facilitating communication without storing, analyzing, or accessing the content of your conversations."}),(0,t.jsx)("h3",{className:r,children:"2.1 Service Architecture"}),(0,t.jsx)("p",{className:i,children:"Our Service operates on a pass-through architecture. Messages you send are transmitted directly to your chosen AI provider (such as OpenAI or Anthropic) for processing. We do not intercept, read, store, or analyze the content of your messages. Your conversations exist only in transit and in your messaging application's native storage."}),(0,t.jsx)("h3",{className:r,children:"2.2 Plan Types"}),(0,t.jsx)("p",{className:`${i} mb-2`,children:"We offer two service tiers:"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"}`,children:[(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Starter (BYOK):"})," You provide your own API keys from AI providers. Your keys are encrypted and used solely to authenticate requests on your behalf."]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"All-Inclusive:"})," We provide AI access through our managed infrastructure. Usage is included in your subscription."]})]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"3. Data Ownership and Privacy"}),(0,t.jsx)("h3",{className:r,children:"3.1 Your Data Remains Yours"}),(0,t.jsx)("p",{className:i,children:"You retain full ownership of all data you transmit through the Service. We claim no ownership, license, or rights to your conversations, messages, files, or any other content you send or receive through the Service."}),(0,t.jsx)("h3",{className:r,children:"3.2 What We Do Not Access"}),(0,t.jsx)("p",{className:`${i} mb-2`,children:"To be explicitly clear, we do NOT:"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"}`,children:[(0,t.jsx)("li",{children:"Read, analyze, or store your chat messages or conversations"}),(0,t.jsx)("li",{children:"Access, decrypt, or view your API keys (they are encrypted at rest and only decrypted in isolated runtime environments)"}),(0,t.jsx)("li",{children:"Train any AI models on your data"}),(0,t.jsx)("li",{children:"Share your conversation content with any third party (except the AI provider you select for processing)"}),(0,t.jsx)("li",{children:"Use your data for advertising, profiling, or marketing purposes"}),(0,t.jsx)("li",{children:"Retain copies of your messages after they are processed"})]}),(0,t.jsx)("h3",{className:r,children:"3.3 What We Do Collect"}),(0,t.jsx)("p",{className:`${i} mb-2`,children:"We collect only the minimum data necessary to operate the Service:"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"}`,children:[(0,t.jsx)("li",{children:"Account information (email address for authentication and billing)"}),(0,t.jsx)("li",{children:"Technical metadata (message counts, timestamps for billing and rate limiting)"}),(0,t.jsx)("li",{children:"Payment information (processed by Stripe; we do not store card numbers)"}),(0,t.jsx)("li",{children:"Connection status and error logs (without message content)"})]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"4. API Keys and Credentials"}),(0,t.jsx)("h3",{className:r,children:"4.1 Security of Your API Keys"}),(0,t.jsx)("p",{className:i,children:"If you use the Starter plan and provide your own API keys, we employ industry-standard encryption (AES-256) to protect them at rest. Your keys are decrypted only within isolated, ephemeral runtime environments when making requests to AI providers on your behalf. We cannot view, export, or access your plaintext API keys."}),(0,t.jsx)("h3",{className:r,children:"4.2 Your Responsibility"}),(0,t.jsx)("p",{className:i,children:"You are solely responsible for safeguarding your API keys, maintaining appropriate usage limits with your AI provider, and any charges incurred through your API usage. We recommend setting spending limits with your AI provider and rotating your keys periodically."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"5. User Responsibilities and Acceptable Use"}
1),(0,t.jsx)("h3",{className:r,children:"5.1 Account Security"}),(0,t.jsx)("p",{className:i,children:"You are responsible for maintaining the confidentiality of your account credentials and for all activities that occur under your account. You agree to notify us immediately of any unauthorized access or use of your account."}),(0,t.jsx)("h3",{className:r,children:"5.2 Prohibited Uses"}),(0,t.jsx)("p",{className:`${i} mb-2`,children:"You agree NOT to use the Service to:"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"}`,children:[(0,t.jsx)("li",{children:"Violate any applicable laws, regulations, or third-party rights"}),(0,t.jsx)("li",{children:"Generate, distribute, or facilitate illegal content including but not limited to CSAM, weapons instructions, or terrorist content"}),(0,t.jsx)("li",{children:"Harass, abuse, threaten, or incite violence against any individual or group"}),(0,t.jsx)("li",{children:"Impersonate others or misrepresent your affiliation with any person or entity"}),(0,t.jsx)("li",{children:"Attempt to circumvent security measures, rate limits, or access controls"}),(0,t.jsx)("li",{children:"Reverse engineer, decompile, or attempt to extract source code from the Service"}),(0,t.jsx)("li",{children:"Use automated systems to abuse the Service or degrade its performance"}),(0,t.jsx)("li",{children:"Resell, sublicense, or commercially exploit the Service without authorization"}),(0,t.jsx)("li",{children:"Send spam, bulk unsolicited messages, or use the Service for any form of unauthorized marketing"}),(0,t.jsx)("li",{children:"Use the Service from or on behalf of persons or entities in countries subject to sanctions"})]}),(0,t.jsx)("h3",{className:r,children:"5.3 AI Provider Terms"}),(0,t.jsx)("p",{className:i,children:"Your use of AI services through our platform is also subject to the terms of the underlying AI providers (e.g., OpenAI's Usage Policies, Anthropic's Acceptable Use Policy). You agree to comply with all applicable AI provider terms."}),(0,t.jsx)("h3",{className:r,children:"5.4 Messaging Platform Compliance"}),(0,t.jsx)("p",{className:i,children:"You must comply with the terms of service of the messaging platforms you use with our Service, including WhatsApp's Terms of Service and Business Policy, and Telegram's Terms of Service. Violations of these platform terms may result in suspension of your account and may expose you to liability from the platform providers."}),(0,t.jsx)("h3",{className:r,children:"5.5 Export Controls and Sanctions"}),(0,t.jsx)("p",{className:i,children:"The Service is subject to export control and sanctions laws of the European Union, United States, and other applicable jurisdictions. You may not use, export, or re-export the Service: (a) in violation of any applicable export control or sanctions laws; (b) to any country, entity, or person to which export is prohibited; or (c) for any purpose prohibited by applicable laws. You represent that you are not located in, under the control of, or a national or resident of any sanctioned country or on any prohibited party list."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"6. AI Agent Security and Configuration Risks"}),(0,t.jsx)("h3",{className:r,children:"6.1 Prompt Injection and Adversarial Inputs"}),(0,t.jsx)("p",{className:i,children:'AI systems, including those accessed through our Service, are susceptible to "prompt injection" attacks where malicious users attempt to manipulate the AI\'s behavior through specially crafted inputs. You acknowledge and understand that:'}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"} mt-2`,children:[(0,t.jsx)("li",{children:"Third parties who interact with your AI assistant may attempt to extract system prompts, configuration details, memory contents, or other information you have provided"}),(0,t.jsx)("li",{children:"AI models cannot guarantee perfect resistance to prompt injection or jailbreaking attempts"}),(0,t.jsx)("li",{children:"Malicious actors may attempt to manipulate your AI assistant to produce harmful, misleading, or unauthorized outputs"})]}),(0,t.jsx)("h3",{className:r,children:"6.2 Group Chat and Shared Access Risks"}),(0,t.jsx)("p",{className:i,children:"If you add your AI assistant to group chats, shared channels, or otherwise allow third parties to interact with it, you assume full responsibility for any resulting exposure of:"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"} mt-2`,children:[(0,t.jsx)("li",{children:"System prompts and personality configurations"}),(0,t.jsx)("li",{children:"Memory files, knowledge bases, and stored information"}),(0,t.jsx)("li",{children:"Internal instructions, rules, and behavioral guidelines"}),(0,t.jsx)("li",{children:"Connected service credentials or integration details"}),(0,t.jsx)("li",{children:"Personal information included in agent configuration"})]}),(0,t.jsx)("p",{className:`${i} mt-2`,children:"We strongly recommend that you do NOT include sensitive personal information, credentials, confidential business data, or private details in your AI assistant's configuration files or memory if the assistant will be accessible to untrusted third parties."}),(0,t.jsx)("h3",{className:r,children:"6.3 Your Responsibility for Agent Configuration"}),(0,t.jsx)("p",{className:i,children:"You are solely responsible for:"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"} mt-2`,children:[(0,t.jsx)("li",{children:"Determining who has access to interact with your AI assistant"}),(0,t.jsx)("li",{children:"Deciding what information to include in your assistant's configuration and memory"}),(0,t.jsx)("li",{children:"Understanding the risks of exposing your assistant to public or semi-public environments"}),(0,t.jsx)("li",{children:"Monitoring your assistant's interactions and outputs"}),(0,t.jsx)("li",{children:"Implementing appropriate access controls and usage policies for your assistant"})]}),(0,t.jsx)("h3",{className:r,children:"6.4 Limitation of Liability for Agent Interactions"}),(0,t.jsx)("p",{className:i,children:"WE ARE NOT LIABLE FOR ANY DAMAGES, LOSSES, OR HARM ARISING FROM: (A) PROMPT INJECTION OR ADVERSARIAL ATTACKS ON YOUR AI ASSISTANT; (B) EXTRACTION OR EXPOSURE OF YOUR CONFIGURATION, PROMPTS, OR MEMORY CONTENTS BY THIRD PARTIES; (C) MANIPULATION OF YOUR ASSISTANT'S BEHAVIOR BY MALICIOUS ACTORS; (D) ANY OUTPUTS PRODUCED BY YOUR ASSISTANT WHEN INTERACTING WITH THIRD PARTIES; OR (E) YOUR DECISION TO DEPLOY YOUR ASSISTANT IN GROUP CHATS, PUBLIC CHANNELS, OR OTHER
1SHARED ENVIRONMENTS."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"7. EU AI Act Compliance"}),(0,t.jsx)("h3",{className:r,children:"7.1 Transparency Notice"}),(0,t.jsx)("p",{className:i,children:"In accordance with the European Union Artificial Intelligence Act (Regulation (EU) 2024/1689), we inform you that the Service utilizes artificial intelligence systems. When you interact with Lee, you are communicating with an AI assistant, not a human. AI-generated responses are produced by third-party AI models and may not always be accurate, complete, or appropriate."}),(0,t.jsx)("h3",{className:r,children:"7.2 Risk Classification"}),(0,t.jsx)("p",{className:i,children:"The AI systems accessed through our Service are general-purpose AI assistants designed for informational and productivity purposes. These systems are not classified as high-risk AI systems under the EU AI Act, as they are not used for:"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"} mt-2`,children:[(0,t.jsx)("li",{children:"Biometric identification or categorization"}),(0,t.jsx)("li",{children:"Critical infrastructure management"}),(0,t.jsx)("li",{children:"Educational or vocational scoring"}),(0,t.jsx)("li",{children:"Employment, recruitment, or HR decisions"}),(0,t.jsx)("li",{children:"Credit scoring or financial assessments"}),(0,t.jsx)("li",{children:"Law enforcement or judicial proceedings"}),(0,t.jsx)("li",{children:"Migration, asylum, or border control"})]}),(0,t.jsx)("h3",{className:r,children:"7.3 AI Provider Compliance"}),(0,t.jsx)("p",{className:i,children:"The underlying AI models (such as those provided by OpenAI and Anthropic) are developed and maintained by their respective providers, who are responsible for model-level compliance with applicable AI regulations, including the EU AI Act requirements for general-purpose AI models. We act as a deployer providing an interface to these models."}),(0,t.jsx)("h3",{className:r,children:"7.4 User Obligations"}),(0,t.jsx)("p",{className:i,children:"If you use our Service for business purposes within the European Union, you may have independent obligations under the EU AI Act depending on how you deploy and use the AI assistant. You are responsible for ensuring your use of the Service complies with all applicable laws and regulations, including but not limited to the EU AI Act."}),(0,t.jsx)("h3",{className:r,children:"7.5 Prohibited High-Risk Uses"}),(0,t.jsx)("p",{className:i,children:"You may not use our Service for any purpose that would classify your use as a high-risk AI system under the EU AI Act without our prior written consent and implementation of appropriate compliance measures. Prohibited uses include but are not limited to automated decision-making in employment, credit, education, or law enforcement contexts."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"8. Payment and Billing"}),(0,t.jsx)("h3",{className:r,children:"8.1 Subscription Fees"}),(0,t.jsx)("p",{className:i,children:"Subscription fees are billed in advance on a monthly or annual basis, depending on your selected billing cycle. All fees are non-refundable except as expressly set forth herein or as required by applicable law."}),(0,t.jsx)("h3",{className:r,children:"8.2 Cancellation"}),(0,t.jsx)("p",{className:i,children:"You may cancel your subscription at any time through your account dashboard. Cancellation takes effect at the end of your current billing period. You will retain access to the Service until the end of the period for which you have paid."}),(0,t.jsx)("h3",{className:r,children:"8.3 Price Changes"}),(0,t.jsx)("p",{className:i,children:"We reserve the right to modify our pricing. Any price changes will be communicated at least 30 days in advance and will apply to subsequent billing cycles. Your continued use after a price change constitutes acceptance of the new pricing."}),(0,t.jsx)("h3",{className:r,children:"8.4 Taxes"}),(0,t.jsx)("p",{className:i,children:"All fees are exclusive of applicable taxes. You are responsible for paying all taxes associated with your use of the Service, excluding taxes based on our net income."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"9. Intellectual Property"}),(0,t.jsx)("h3",{className:r,children:"9.1 Our Property"}),(0,t.jsx)("p",{className:i,children:"The Service, including its software, design, logos, and documentation, is owned by Ask Lee and protected by copyright, trademark, and other intellectual property laws. These Terms do not grant you any right, title, or interest in the Service except for the limited right to use it in accordance with these Terms."}),(0,t.jsx)("h3",{className:r,children:"9.2 Your Content"}),(0,t.jsx)("p",{className:i,children:"You retain all rights to content you create, upload, or transmit through the Service. You grant us only the limited technical permissions necessary to provide the Service (e.g., transmitting your messages to AI providers)."}),(0,t.jsx)("h3",{className:r,children:"9.3 AI-Generated Content"}),(0,t.jsx)("p",{className:i,children:"Ownership and rights to AI-generated content are subject to the terms of the respective AI provider. We make no claims to AI-generated outputs and provide no warranties regarding intellectual property rights in such outputs. AI-generated content may inadvertently resemble existing copyrighted works; you are responsible for verifying that your use of AI outputs does not infringe third-party rights."}),(0,t.jsx)("h3",{className:r,children:"9.4 AI Outputs Do Not Represent Our Views"}),(0,t.jsx)("p",{className:i,children:"AI-generated responses and outputs do not represent the views, opinions, or endorsements of Ask Lee. The AI operates based on its training and your inputs;
1 we do not control, endorse, or take responsibility for the specific content of AI responses."}),(0,t.jsx)("h3",{className:r,children:"9.5 Feedback and Suggestions"}),(0,t.jsx)("p",{className:i,children:'If you provide us with feedback, suggestions, ideas, or improvements regarding the Service ("Feedback"), you grant us a perpetual, irrevocable, worldwide, royalty-free license to use, modify, and incorporate such Feedback into the Service without any obligation to compensate you. You waive any rights you may have in such Feedback.'}),(0,t.jsx)("h3",{className:r,children:"9.6 DMCA and Copyright Claims"}),(0,t.jsxs)("p",{className:i,children:["We respect intellectual property rights. If you believe content generated through our Service infringes your copyright, please contact us at"," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"text-brand-500 hover:text-brand-600",children:"[email protected]"})," ","with: (a) identification of the copyrighted work; (b) identification of the infringing material; (c) your contact information; (d) a statement of good faith belief; and (e) a statement of accuracy under penalty of perjury. Note that as AI outputs are generated in real-time and not stored by us, our ability to address claims may be limited."]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"10. Disclaimers"}),(0,t.jsx)("h3",{className:r,children:'10.1 Service Provided "As Is"'}),(0,t.jsx)("p",{className:i,children:'THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.'}),(0,t.jsx)("h3",{className:r,children:"10.2 AI Accuracy"}),(0,t.jsx)("p",{className:i,children:"We do not warrant that AI responses will be accurate, complete, reliable, current, or error-free. AI systems can produce incorrect, biased, or inappropriate outputs. You are solely responsible for evaluating and verifying any information provided by the AI."}),(0,t.jsx)("h3",{className:r,children:"10.3 Third-Party Services"}),(0,t.jsx)("p",{className:i,children:"We are not responsible for the availability, accuracy, or reliability of third-party services including AI providers, messaging platforms (WhatsApp, Telegram), and payment processors. Outages or changes to these services may affect your use of our Service."}),(0,t.jsx)("h3",{className:r,children:"10.4 No Professional Advice"}),(0,t.jsx)("p",{className:i,children:"The Service does not provide legal, medical, financial, or other professional advice. AI responses should not be relied upon as a substitute for consultation with qualified professionals."}),(0,t.jsx)("h3",{className:r,children:"10.5 No Uptime Guarantee (Service Level Agreement)"}),(0,t.jsx)("p",{className:i,children:"WE DO NOT GUARANTEE ANY SPECIFIC LEVEL OF SERVICE AVAILABILITY OR UPTIME. The Service is provided without any service level agreement (SLA) or uptime commitment. While we strive to maintain reliable service, we expressly disclaim any warranty or guarantee of:"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"} mt-2`,children:[(0,t.jsx)("li",{children:"Any specific uptime percentage (e.g., 99.9%, 99.99%)"}),(0,t.jsx)("li",{children:"Continuous, uninterrupted, or error-free operation"}),(0,t.jsx)("li",{children:"Timely delivery of messages or AI responses"}),(0,t.jsx)("li",{children:"Availability during any specific time period"}),(0,t.jsx)("li",{children:"Response time or latency performance"})]}),(0,t.jsx)("p",{className:`${i} mt-2`,children:"The Service may be subject to interruptions, outages, delays, or degraded performance due to maintenance, updates, technical issues, third-party service disruptions, or circumstances beyond our control. We shall not be liable for any damages or losses resulting from service unavailability or performance issues."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"11. Limitation of Liability"}),(0,t.jsx)("p",{className:i,children:"TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL OPENCLAW, ITS AFFILIATES, DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, PUNITIVE, OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA, OR OTHER INTANGIBLE LOSSES, REGARDLESS OF WHETHER WE WERE ADVISED OF THE POSSIBILITY OF SUCH DAMAGES."}),(0,t.jsx)("h3",{className:r,children:"11.1 Liability Cap"}),(0,t.jsx)("p",{className:i,children:"OUR TOTAL AGGREGATE LIABILITY FOR ALL CLAIMS ARISING OUT OF OR RELATED TO THESE TERMS OR THE SERVICE, WHETHER IN CONTRACT, TORT, OR OTHERWISE, SHALL NOT EXCEED THE TOTAL AMOUNTS YOU ACTUALLY PAID TO US IN THE TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE FIRST EVENT GIVING RISE TO LIABILITY. THIS LIMITATION IS CUMULATIVE AND NOT PER-INCIDENT; MULTIPLE CLAIMS WILL NOT EXPAND THIS LIMIT."}),(0,t.jsx)("h3",{className:r,children:"11.2 Notice Requirement"}),(0,t.jsx)("p",{className:i,children:"AS A CONDITION PRECEDENT TO ANY LIABILITY, YOU MUST PROVIDE US WITH WRITTEN NOTICE OF ANY CLAIM WITHIN THIRTY (30) DAYS OF DISCOVERING THE ISSUE GIVING RISE TO THE CLAIM. FAILURE TO PROVIDE TIMELY NOTICE SHALL CONSTITUTE A COMPLETE WAIVER OF ANY SUCH CLAIM."}),(0,t.jsx)("h3",{className:r,children:"11.3 Claim Deadline"}),(0,t.jsx)("p",{className:i,children:"ANY CLAIM OR CAUSE OF ACTION ARISING OUT OF OR RELATED TO THESE TERMS OR THE SERVICE MUST BE FILED WITHIN TWELVE (12) MONTHS AFTER THE CLAIM OR CAUSE OF ACTION AROSE. ANY CLAIM NOT FILED WITHIN THIS PERIOD IS PERMANENTLY BARRED."}),(0,t.jsx)("h3",{className:r,children:"11.4 Jurisdictional Variations"}),(0,t.jsx)("p",{className:i,children:"SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES OR THE IMPOSITION OF CLAIM DEADLINES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE EXCLUSIONS OR LIMITATIONS MAY NOT APPLY TO THE EXTENT PROHIBITED BY MANDATORY LAW, AN
1D YOU MAY HAVE ADDITIONAL RIGHTS."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"12. Indemnification"}),(0,t.jsx)("p",{className:i,children:"You agree to indemnify, defend, and hold harmless Ask Lee and its officers, directors, employees, agents, and affiliates from and against any claims, liabilities, damages, losses, costs, or expenses (including reasonable attorneys' fees) arising out of or relating to: (a) your use of the Service; (b) your violation of these Terms; (c) your violation of any third-party rights; or (d) your content or data."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"13. Termination"}),(0,t.jsx)("h3",{className:r,children:"13.1 Termination by You"}),(0,t.jsx)("p",{className:i,children:"You may terminate your account at any time by canceling your subscription and deleting your account through the dashboard. Upon termination, your right to use the Service will immediately cease."}),(0,t.jsx)("h3",{className:r,children:"13.2 Termination by Us"}),(0,t.jsx)("p",{className:i,children:"We may suspend or terminate your access to the Service immediately, without prior notice, if we reasonably believe you have violated these Terms, engaged in fraudulent activity, or if required by law. We may also terminate the Service entirely with 30 days' notice."}),(0,t.jsx)("h3",{className:r,children:"13.3 Effect of Termination"}),(0,t.jsx)("p",{className:i,children:"Upon termination, all licenses and rights granted to you under these Terms will immediately terminate. Sections that by their nature should survive termination shall survive, including but not limited to ownership, disclaimers, indemnification, and limitation of liability."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"14. Modifications to Service and Terms"}),(0,t.jsx)("h3",{className:r,children:"14.1 Service Changes"}),(0,t.jsx)("p",{className:i,children:"We reserve the right to modify, suspend, or discontinue any aspect of the Service at any time, with or without notice. We shall not be liable to you or any third party for any modification, suspension, or discontinuation of the Service."}),(0,t.jsx)("h3",{className:r,children:"14.2 Terms Changes"}),(0,t.jsx)("p",{className:i,children:"We may update these Terms from time to time. Material changes will be communicated via email or through the Service at least 14 days before taking effect. Your continued use of the Service after changes become effective constitutes acceptance of the revised Terms."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"15. Governing Law and Dispute Resolution"}),(0,t.jsx)("h3",{className:r,children:"15.1 Governing Law"}),(0,t.jsx)("p",{className:i,children:"These Terms shall be governed by and construed in accordance with the laws of France, without regard to its conflict of law provisions."}),(0,t.jsx)("h3",{className:r,children:"15.2 Dispute Resolution"}),(0,t.jsx)("p",{className:i,children:"Any disputes arising out of or relating to these Terms or the Service shall first be attempted to be resolved through good-faith negotiation. If negotiation fails, disputes shall be resolved through binding arbitration in Paris, France, except that either party may seek injunctive relief in any court of competent jurisdiction."}),(0,t.jsx)("h3",{className:r,children:"15.3 Class Action Waiver"}),(0,t.jsx)("p",{className:i,children:"TO THE EXTENT PERMITTED BY LAW, YOU AGREE THAT ANY DISPUTE RESOLUTION PROCEEDINGS WILL BE CONDUCTED ONLY ON AN INDIVIDUAL BASIS AND NOT IN A CLASS, CONSOLIDATED, OR REPRESENTATIVE ACTION."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"16. General Provisions"}),(0,t.jsx)("h3",{className:r,children:"16.1 Entire Agreement"}),(0,t.jsx)("p",{className:i,children:"These Terms, together with our Privacy Policy, constitute the entire agreement between you and Ask Lee regarding the Service and supersede all prior agreements and understandings."}),(0,t.jsx)("h3",{className:r,children:"16.2 Severability"}),(0,t.jsx)("p",{className:i,children:"If any provision of these Terms is found to be unenforceable, that provision shall be modified to the minimum extent necessary to make it enforceable, and the remaining provisions shall continue in full force and effect."}),(0,t.jsx)("h3",{className:r,children:"16.3 Waiver"}),(0,t.jsx)("p",{className:i,children:"Our failure to enforce any right or provision of these Terms shall not constitute a waiver of such right or provision."}),(0,t.jsx)("h3",{className:r,children:"16.4 Assignment"}),(0,t.jsx)("p",{className:i,children:"You may not assign or transfer these Terms or your rights hereunder without our prior written consent. We may assign these Terms without restriction."}),(0,t.jsx)("h3",{className:r,children:"16.5 Force Majeure"}),(0,t.jsx)("p",{className:i,children:"We shall not be liable for any failure or delay in performance due to circumstances beyond our reasonable control, including but not limited to acts of God, natural disasters, war, terrorism, labor disputes, government actions, or failures of third-party services."}
1),(0,t.jsx)("h3",{className:r,children:"16.6 No Third-Party Beneficiaries"}),(0,t.jsx)("p",{className:i,children:"These Terms do not confer any rights, remedies, or benefits upon any person or entity other than you and Ask Lee, except as expressly provided herein."}),(0,t.jsx)("h3",{className:r,children:"16.7 Electronic Communications"}),(0,t.jsx)("p",{className:i,children:"By using the Service, you consent to receive communications from us electronically, including emails and notices posted within the Service. You agree that all agreements, notices, and other communications provided electronically satisfy any legal requirement that such communications be in writing."}),(0,t.jsx)("h3",{className:r,children:"16.8 Survival"}),(0,t.jsx)("p",{className:i,children:"The following sections shall survive termination of these Terms: Data Ownership and Privacy, Intellectual Property, Disclaimers, Limitation of Liability, Indemnification, Governing Law, and General Provisions."}),(0,t.jsx)("h3",{className:r,children:"16.9 Headings"}),(0,t.jsx)("p",{className:i,children:"Section headings are for convenience only and shall not affect the interpretation of these Terms."}),(0,t.jsx)("h3",{className:r,children:"16.10 Language"}),(0,t.jsx)("p",{className:i,children:"These Terms are drafted in English. If translated into another language, the English version shall control in the event of any conflict or inconsistency."}),(0,t.jsx)("h3",{className:r,children:"16.11 Beta Features"}),(0,t.jsx)("p",{className:i,children:'From time to time, we may offer beta, preview, or experimental features ("Beta Features"). Beta Features are provided "AS IS" without any warranties and may be modified or discontinued at any time without notice. Beta Features may contain bugs, errors, or other issues. Your use of Beta Features is at your sole risk, and we disclaim all liability for any harm arising from Beta Features.'}),(0,t.jsx)("h3",{className:r,children:"16.12 Rate Limiting and Fair Use"}),(0,t.jsx)("p",{className:i,children:"We reserve the right to implement rate limits, usage quotas, or other restrictions to ensure fair use and system stability. We may modify these limits at any time without prior notice. Excessive usage that impacts system performance may result in temporary or permanent restrictions on your account."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"17. Contact Information"}),(0,t.jsx)("p",{className:i,children:"If you have any questions about these Terms of Service, please contact us at:"}),(0,t.jsxs)("div",{className:`${i} mt-4`,children:[(0,t.jsx)("p",{className:"font-semibold text-warm-700",children:"AlphaOscar"}),(0,t.jsx)("p",{children:"6 RUE D'ARMAILLE"}),(0,t.jsx)("p",{children:"75017 PARIS, France"}),(0,t.jsx)("p",{children:"SIRET: 910288299"})]}),(0,t.jsxs)("p",{className:`${i} mt-4`,children:[(0,t.jsx)("strong",{children:"Legal inquiries:"})," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"text-brand-500 hover:text-brand-600",children:"[email protected]"})]}),(0,t.jsxs)("p",{className:`${i} mt-1`,children:[(0,t.jsx)("strong",{children:"General inquiries:"})," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"text-brand-500 hover:text-brand-600",children:"[email protected]"})]})]})]})}function d(e){let{compact:s=!1}=e,a=s?"text-lg font-semibold text-warm-800 mb-2":"text-2xl font-semibold text-warm-800 mb-4",r=s?"text-base font-semibold text-warm-700 mb-2 mt-4":"text-lg font-semibold text-warm-700 mb-2 mt-4",i=s?"text-warm-600 text-sm leading-relaxed":"text-warm-600 leading-relaxed";return(0,t.jsxs)("div",{className:s?"space-y-6":"space-y-8",children:[(0,t.jsx)("p",{className:s?"text-warm-500 text-sm":"text-warm-600 text-lg",children:"Last updated: February 1, 2026"}),(0,t.jsxs)("div",{className:`${s?"bg-brand-50/50 p-4 rounded-lg":"bg-brand-50 border border-brand-200 rounded-xl p-6"} my-4`,children:[(0,t.jsx)("h3",{className:`${s?"text-base":"text-lg"} font-semibold text-brand-800 mb-3`,children:"Privacy at a Glance"}),(0,t.jsxs)("ul",{className:"text-brand-700 space-y-2",children:[(0,t.jsxs)("li",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"text-brand-500 mt-1",children:"â"}),(0,t.jsxs)("span",{className:s?"text-sm":"",children:[(0,t.jsx)("strong",{children:"We do not read your chats."})," Your conversations pass through our system but we never access, store, or analyze the content."]})]}),(0,t.jsxs)("li",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"text-brand-500 mt-1",children:"â"}),(0,t.jsxs)("span",{className:s?"text-sm":"",children:[(0,t.jsx)("strong",{children:"We cannot see your API keys."})," They are encrypted and only decrypted in isolated environments when making requests."]})]}),(0,t.jsxs)("li",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"text-brand-500 mt-1",children:"â"}),(0,t.jsxs)("span",{className:s?"text-sm":"",children:[(0,t.jsx)("strong",{children:"Your data is never used for AI training."})," Not by us, not shared with AI providers for training purposes."]})]}),(0,t.jsxs)("li",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"text-brand-500 mt-1",children:"â"}),(0,t.jsxs)("span",{className:s?"text-sm":"",children:[(0,t.jsx)("strong",{children:"Delete everything anytime."})," One click removes all your data permanently. No questions asked."]})]})]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"1. Introduction"}),(0,t.jsx)("p",{className:i,children:'Ask Lee ("we," "us," or "our") operates Lee ("the Service"). This Privacy Policy explains how we
1collect, use, disclose, and protect your information when you use our Service. We are committed to protecting your privacy and being transparent about our data practices.'})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"2. Information We Do NOT Collect"}),(0,t.jsx)("h3",{className:r,children:"2.1 Your Conversations"}),(0,t.jsx)("p",{className:i,children:"We do not read, store, analyze, or have any access to the content of your conversations with the AI assistant. Messages pass through our infrastructure as encrypted data packets and are immediately forwarded to the AI provider for processing."}),(0,t.jsx)("h3",{className:r,children:"2.2 Your API Keys (in plaintext)"}),(0,t.jsx)("p",{className:i,children:"If you provide your own API keys (Starter plan), they are encrypted using AES-256 encryption before storage. Our staff, systems, and databases cannot view your plaintext API keys."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"3. Information We Collect"}),(0,t.jsx)("h3",{className:r,children:"3.1 Account Information"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"}`,children:[(0,t.jsx)("li",{children:"Email address (for authentication and communication)"}),(0,t.jsx)("li",{children:"Account creation date"}),(0,t.jsx)("li",{children:"Subscription plan and billing period"})]}),(0,t.jsx)("h3",{className:r,children:"3.2 Payment Information"}),(0,t.jsx)("p",{className:i,children:"Payment processing is handled entirely by Stripe. We never receive or store your full credit card number, CVV, or other sensitive payment details."})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"4. Data Security"}),(0,t.jsxs)("ul",{className:`list-disc list-inside text-warm-600 ${s?"text-sm space-y-1":"space-y-2"}`,children:[(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Encryption in Transit:"})," All data is transmitted over TLS 1.3"]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Encryption at Rest:"})," Sensitive data is encrypted using AES-256"]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Access Controls:"})," Strict role-based access with principle of least privilege"]})]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"5. Your Rights"}),(0,t.jsxs)("p",{className:i,children:["Depending on your location, you may have rights to access, correct, delete, or port your data. To exercise any rights, contact us at"," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"text-brand-500 hover:text-brand-600",children:"[email protected]"}),"."]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a,children:"6. Contact Us"}),(0,t.jsx)("p",{className:i,children:"For questions about this Privacy Policy, contact us at:"}),(0,t.jsxs)("div",{className:`${i} mt-4`,children:[(0,t.jsx)("p",{className:"font-semibold text-warm-700",children:"AlphaOscar"}),(0,t.jsx)("p",{children:"6 RUE D'ARMAILLE"}),(0,t.jsx)("p",{children:"75017 PARIS, France"}),(0,t.jsx)("p",{children:"SIRET: 910288299"})]}),(0,t.jsxs)("p",{className:`${i} mt-4`,children:[(0,t.jsx)("strong",{children:"Privacy inquiries:"})," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"text-brand-500 hover:text-brand-600",children:"[email protected]"})]}),(0,t.jsx)("p",{className:`${i} mt-2`,children:(0,t.jsx)("a",{href:"/privacy",className:"text-brand-500 hover:text-brand-600 underline",children:"Read the full Privacy Policy â"})})]})]})}var h=a(31118);function m(e){let{onGoogleLogin:s,loading:a,error:r,onSelectEmail:m,modalOpen:u,setModalOpen:p}=e,x=(0,l.c)("auth"),y=(0,l.c)("common"),g=(0,l.c)("legal"),f=(0,h.r)(null!==u),N=(0,i.useCallback)(()=>p(null),[p]),b=(0,i.useCallback)(e=>{"Escape"===e.key&&(e.stopPropagation(),N())},[N]),j=(0,i.useCallback)(e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),N())},[N]);return(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("div",{className:"mb-4 flex justify-center",children:(0,t.jsx)(n.A,{className:"w-12 h-12 text-brand-500","aria-hidden":"true"})}),(0,t.jsx)("h2",{className:"text-2xl font-bold text-warm-800 mb-2",children:x("welcome")}),(0,t.jsx)("p",{className:"text-warm-600 mb-8",children:x("setupDescription")}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("button",{onClick:s,disabled:a,className:"w-full flex items-center justify-center gap-3 px-6 py-4 bg-white hover:bg-warm-50 border border-warm-300 disabled:bg-warm-100 disabled:cursor-not-allowed text-warm-800 font-medium rounded-xl transition-colors shadow-sm",children:[a?(0,t.jsx)("div",{className:"animate-spin w-5 h-5 border-2 border-warm-600 border-t-transparent roun
1ded-full"}):(0,t.jsxs)("svg",{className:"w-5 h-5",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,t.jsx)("path",{fill:"#4285F4",d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"}),(0,t.jsx)("path",{fill:"#34A853",d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"}),(0,t.jsx)("path",{fill:"#FBBC05",d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"}),(0,t.jsx)("path",{fill:"#EA4335",d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"})]}),x(a?"signingIn":"continueWithGoogle")]}),(0,t.jsxs)("div",{className:"relative my-6",children:[(0,t.jsx)("div",{className:"absolute inset-0 flex items-center",children:(0,t.jsx)("div",{className:"w-full border-t border-warm-200"})}),(0,t.jsx)("div",{className:"relative flex justify-center text-sm",children:(0,t.jsx)("span",{className:"px-4 bg-warm-50 text-warm-500",children:y("or")})})]}),(0,t.jsxs)("button",{onClick:m,className:"w-full flex items-center justify-center gap-3 px-6 py-4 bg-warm-100 hover:bg-warm-200 text-warm-800 font-medium rounded-xl transition-colors",children:[(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}),x("continueWithEmail")]})]}),r&&(0,t.jsx)("p",{className:"text-red-500 text-sm mt-4",role:"alert",children:r}),(0,t.jsxs)("p",{className:"text-warm-500 text-sm mt-6",children:[x("agreementPrefix")," ",(0,t.jsx)("button",{onClick:()=>p("terms"),className:"text-warm-600 hover:text-warm-800 underline",children:g("termsOfService")})," ",x("and")," ",(0,t.jsx)("button",{onClick:()=>p("privacy"),className:"text-warm-600 hover:text-warm-800 underline",children:g("privacyPolicy")}),"."]}),u&&(0,t.jsxs)("div",{ref:f,role:"dialog","aria-modal":"true","aria-labelledby":"legal-modal-title",onKeyDown:b,className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:N,onKeyDown:j,role:"button",tabIndex:-1,"aria-label":"Close modal"}),(0,t.jsxs)("div",{className:"relative bg-white rounded-2xl shadow-xl max-w-2xl w-full max-h-[80vh] flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-warm-200",children:[(0,t.jsx)("h2",{id:"legal-modal-title",className:"text-xl font-semibold text-warm-800",children:g("terms"===u?"termsOfService":"privacyPolicy")}),(0,t.jsx)("button",{onClick:N,className:"p-2 hover:bg-warm-100 rounded-lg transition-colors","aria-label":"Close",children:(0,t.jsx)(o.A,{className:"w-5 h-5 text-warm-500"})})]}),(0,t.jsx)("div",{className:"overflow-y-auto p-6",children:"terms"===u?(0,t.jsx)(c,{compact:!0}):(0,t.jsx)(d,{compact:!0})}),(0,t.jsx)("div",{className:"p-4 border-t border-warm-200",children:(0,t.jsx)("button",{onClick:N,className:"w-full px-4 py-2 bg-warm-100 hover:bg-warm-200 text-warm-800 font-medium rounded-xl transition-colors",children:y("close")})})]})]})]})}var u=a(87573);let p=(0,u.A)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),x=(0,u.A)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var y=a(93560);function g(e){return{hasMinLength:e.length>=y.wz,hasMaxLength:e.length<=y.K9,hasUppercase:/[A-Z]/.test(e),hasLowercase:/[a-z]/.test(e),hasNumber:/\d/.test(e)}}function f(){let e=(0,l.c)("auth");return{validateEmail:s=>{let a=s.trim();return a?a.length>y.PO?e("validation.emailTooLong",{max:y.PO}):y.Xw.test(a)?null:e("validation.emailInvalid"):e("validation.emailRequired")},validatePassword:(s,a)=>
1{if(!s)return e("validation.passwordRequired");if(a){let a=g(s);if(!a.hasMinLength)return e("validation.passwordTooShort",{min:y.wz});if(!a.hasMaxLength)return e("validation.passwordTooLong",{max:y.K9});if(!a.hasUppercase)return e("validation.passwordNeedsUppercase");if(!a.hasLowercase)return e("validation.passwordNeedsLowercase");if(!a.hasNumber)return e("validation.passwordNeedsNumber")}return null}}}function N(e){let{onSubmit:s,loading:a,error:r,onSwitchToSignUp:n,onForgotPassword:o,onBack:c}=e,d=(0,l.c)("auth"),h=(0,l.c)("common"),{validateEmail:m,validatePassword:u}=f(),[g,N]=(0,i.useState)(""),[b,j]=(0,i.useState)(""),[v,w]=(0,i.useState)(!1),[A,I]=(0,i.useState)(null),T=A||r,S=async e=>{e.preventDefault(),I(null);let a=m(g);if(a)return void I(a);let t=u(b,!1);if(t)return void I(t);await s(g,b)};return(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-warm-800 mb-2",children:h("signIn")}),(0,t.jsx)("p",{className:"text-warm-600 mb-6",children:d("welcomeBack")}),(0,t.jsxs)("form",{onSubmit:S,className:"space-y-4",children:[(0,t.jsx)("label",{htmlFor:"signin-email",className:"sr-only",children:h("email")}),(0,t.jsx)("input",{id:"signin-email",type:"email",placeholder:h("email"),value:g,onChange:e=>N(e.target.value),required:!0,maxLength:y.PO,autoComplete:"email","aria-label":"Email address",className:"w-full px-4 py-3 border border-warm-300 rounded-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("label",{htmlFor:"signin-password",className:"sr-only",children:h("password")}),(0,t.jsx)("input",{id:"signin-password",type:v?"text":"password",placeholder:h("password"),value:b,onChange:e=>j(e.target.value),required:!0,autoComplete:"current-password","aria-label":"Password",className:"w-full px-4 py-3 pr-12 border border-warm-300 rounded-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500"}),(0,t.jsx)("button",{type:"button",onClick:()=>w(!v),className:"absolute right-3 top-1/2 -translate-y-1/2 text-warm-400 hover:text-warm-600","aria-label":v?"Hide password":"Show password",children:v?(0,t.jsx)(p,{className:"w-5 h-5"}):(0,t.jsx)(x,{className:"w-5 h-5"})})]}),T&&(0,t.jsx)("p",{className:"text-red-500 text-sm",role:"alert",children:T}),(0,t.jsx)("button",{type:"submit",disabled:a,className:"w-full px-6 py-3 bg-brand-600 hover:bg-brand-700 disabled:bg-warm-300 disabled:cursor-not-allowed text-white font-medium rounded-xl transition-colors",children:a?d("signingIn"):h("signIn")})]}),(0,t.jsxs)("p",{className:"text-warm-600 text-sm mt-4",children:[d("noAccount")," ",(0,t.jsx)("button",{onClick:n,className:"text-brand-500 hover:underline",children:d("signUp")})]}),(0,t.jsx)("button",{onClick:o,className:"text-warm-500 text-sm mt-2 hover:underline",children:d("forgotPassword")}),(0,t.jsx)("button",{onClick:c,className:"text-warm-500 text-sm mt-4 hover:underline block mx-auto",children:d("backToOptions")})]})}var b=a(46520);function j(e){let{onSubmit:s,loading:a,error:r,onSwitchToSignIn:n,onBack:c}=e,d=(0,l.c)("auth"),h=(0,l.c)("common"),{validateEmail:m,validatePassword:u}=f(),[N,j]=(0,i.useState)(""),[v,w]=(0,i.useState)(""),[A,I]=(0,i.useState)(""),[T,S]=(0,i.useState)(!1),[E,O]=(0,i.useState)(!1),[L,R]=(0,i.useState)(null),[C,k]=(0,i.useState)(null),P=L||r,U=async e=>{e.preventDefault(),R(null);let a=m(N);if(a)return void R(a);let t=u(v,!0);if(t)return void R(t);if(v!==A)return void R(d("validation.passwordMismatch"));let r=await s(N,v);r?R(r):k(d("checkEmailConfirmation"))};return(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-warm-800 mb-2",children:d("createAccount")}),(0,t.jsx)("p",{className:"text-warm-600 mb-6",children:d("setupDescription")}),C?(0,t.jsx)("div",{className:"bg-green-50 border border-green-200 rounded-xl p-4 text-green-700",children:C}):(0,t.jsxs)("form",{onSubmit:U,className:"space-y-4",children:[(0,t.jsx)("label",{htmlFor:"signup-email",className:"sr-only",children:h("email")}),(0,t.jsx)("input",{id:"signup-email",type:"email",placeholder:h("email"),value:N,onChange:e=>j(e.target.value),required:!0,maxLength:y.PO,autoComplete:"email","aria-label":"Email address",className:"w-full px-4 py-3 border border-warm-300 rounded-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("label",{htmlFor:"signup-password",className:"sr-only",children:h("password")}),(0,t.jsx)("input",{id:"signup-password",type:T?"text":"password",placeholder:d("passwordPlaceholder"),value:v,onCh
1ange:e=>w(e.target.value),required:!0,minLength:y.wz,maxLength:y.K9,autoComplete:"new-password","aria-label":"Password",className:"w-full px-4 py-3 pr-12 border border-warm-300 rounded-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500"}),(0,t.jsx)("button",{type:"button",onClick:()=>S(!T),className:"absolute right-3 top-1/2 -translate-y-1/2 text-warm-400 hover:text-warm-600","aria-label":T?"Hide password":"Show password",children:T?(0,t.jsx)(p,{className:"w-5 h-5"}):(0,t.jsx)(x,{className:"w-5 h-5"})})]}),v.length>0&&(()=>{let e=g(v),s=[{met:e.hasMinLength,label:d("validation.passwordTooShort",{min:y.wz})},{met:e.hasUppercase,label:d("validation.passwordNeedsUppercase")},{met:e.hasLowercase,label:d("validation.passwordNeedsLowercase")},{met:e.hasNumber,label:d("validation.passwordNeedsNumber")}];return(0,t.jsx)("ul",{className:"text-left space-y-1","aria-label":d("passwordRequirements"),children:s.map(e=>(0,t.jsxs)("li",{className:`flex items-center gap-2 text-xs ${e.met?"text-green-600":"text-warm-400"}`,children:[e.met?(0,t.jsx)(b.A,{className:"w-3.5 h-3.5 shrink-0","aria-hidden":"true"}):(0,t.jsx)(o.A,{className:"w-3.5 h-3.5 shrink-0","aria-hidden":"true"}),e.label]},e.label))})})(),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("label",{htmlFor:"signup-confirm-password",className:"sr-only",children:d("confirmPasswordPlaceholder")}),(0,t.jsx)("input",{id:"signup-confirm-password",type:E?"text":"password",placeholder:d("confirmPasswordPlaceholder"),value:A,onChange:e=>I(e.target.value),required:!0,autoComplete:"new-password","aria-label":"Confirm password",className:"w-full px-4 py-3 pr-12 border border-warm-300 rounded-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500"}),(0,t.jsx)("button",{type:"button",onClick:()=>O(!E),className:"absolute right-3 top-1/2 -translate-y-1/2 text-warm-400 hover:text-warm-600","aria-label":E?"Hide password":"Show password",children:E?(0,t.jsx)(p,{className:"w-5 h-5"}):(0,t.jsx)(x,{className:"w-5 h-5"})})]}),P&&(0,t.jsx)("p",{className:"text-red-500 text-sm",role:"alert",children:P}),(0,t.jsx)("button",{type:"submit",disabled:a,className:"w-full px-6 py-3 bg-brand-600 hover:bg-brand-700 disabled:bg-warm-300 disabled:cursor-not-allowed text-white font-medium rounded-xl transition-colors",children:a?d("creatingAccount"):d("createAccount")})]}),(0,t.jsxs)("p",{className:"text-warm-600 text-sm mt-4",children:[d("hasAccount")," ",(0,t.jsx)("button",{onClick:n,className:"text-brand-500 hover:underline",children:h("signIn")})]}),(0,t.jsx)("button",{onClick:c,className:"text-warm-500 text-sm mt-4 hover:underline",children:d("backToOptions")})]})}function v(e){let{onSubmit:s,loading:a,error:r,onBack:n}=e,o=(0,l.c)("auth"),c=(0,l.c)("common"),{validateEmail:d}=f(),[h,m]=(0,i.useState)(""),[u,p]=(0,i.useState)(null),[x,g]=(0,i.useState)(null),N=u||r,b=async e=>{e.preventDefault(),p(null);let a=d(h);if(a)return void p(a);let t=await s(h);t?p(t):g(o("checkEmailReset"))};return(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-warm-800 mb-2",children:o("resetPassword")}),(0,t.jsx)("p",{className:"text-warm-600 mb-6",children:o("resetPasswordDescription")}),x?(0,t.jsx)("div",{className:"bg-green-50 border border-green-200 rounded-xl p-4 text-green-700 mb-4",children:x}):(0,t.jsxs)("form",{onSubmit:b,className:"space-y-4",children:[(0,t.jsx)("label",{htmlFor:"reset-email",className:"sr-only",children:c("email")}),(0,t.jsx)("input",{id:"reset-email",type:"email",placeholder:c("email"),value:h,onChange:e=>m(e.target.value),required:!0,maxLength:y.PO,autoComplete:"email","aria-label":"Email address",className:"w-full px-4 py-3 border border-warm-300 rounded-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500"}),N&&(0,t.jsx)("p",{className:"text-red-500 text-sm",role:"alert",children:N}),(0,t.jsx)("button",{type:"submit",disabled:a,className:"w-full px-6 py-3 bg-brand-600 hover:bg-brand-700 disabled:bg-warm-300 disabled:cursor-not-allowed text-white font-medium rounded-xl transition-colors",children:a?o("sending"):o("sendResetLink")})]}),(0,t.jsx)("button",{onClick:n,className:"text-warm-500 text-sm mt-4 hover:underline",children:o("backToSignIn")})]})}function w(e){let{onNext:s}=e,[a,n]=(0,i.useState)(!1),[o,l]=(0,i.useState)(!0),[c,d]=(0,i.useState)("select"),[h,u]=(0,i.useState)(null),[p,x]=(0,i.useState)(null);(0,i.useEffect)(()=>{let e=(0,r.U)(),a=new URLSearchParams(window.location.search).get("ref");a&&(document.cookie=`referral_code=${a.toUpperCase()}; path=/; max-age=604800; SameSite=Lax`),e.auth.getUser().then(e=>{let{data:{user:a}}=e;a&&s(),l(!1)});let{data:{subscription:t}}=e.auth.onAuthStateChange((e,a)=>{if("SIGNED_IN"===e&&a?.user){fetch("/api/auth/ensure-user",{method:"POST"}).catch(()=>{});let e=document.cookie.split("; ").find(e=>e.startsWith("referral_code=")),a=e?.split("=")[1];a&&y(a),s()}});return()=>t.unsubscribe()},[s]);let y=async e=>{try{let s=await fetch("/api/referral/apply",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:e})});if(s.ok)console.log("[Referral] Applied referral code:",e),document.cookie="referral_code=; path=/; max-age=0";else{let e=await s.json();console.log("[Referral] Failed to apply code:",e.error),document.cookie="referral_code=; path=/; max-age=0"}}
1catch(e){console.error("[Referral] Error applying code:",e)}},g=async()=>{n(!0),u(null);let e=(0,r.U)();sessionStorage.setItem("authRedirectTo","/wizard");let s=`${window.location.origin}/auth/callback`;console.log("OAuth redirect URL:",s);let{error:a}=await e.auth.signInWithOAuth({provider:"google",options:{redirectTo:s}});a&&(u(a.message),n(!1))},f=async(e,s)=>{u(null),n(!0);let a=(0,r.U)(),{error:t}=await a.auth.signInWithPassword({email:e.trim().toLowerCase(),password:s});t&&(u(t.message),n(!1))},b=async(e,s)=>{u(null),n(!0);let a=(0,r.U)(),{error:t}=await a.auth.signUp({email:e.trim().toLowerCase(),password:s,options:{emailRedirectTo:`${window.location.origin}/auth/callback`}});return(n(!1),t)?t.message:null},w=async e=>{u(null),n(!0);try{let s=await fetch("/api/auth/request-password-reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e.trim().toLowerCase()})}),a=await s.json().catch(()=>({}));if(!s.ok)return n(!1),a.error||s.statusText||"Error";return n(!1),null}catch(e){return n(!1),e instanceof Error?e.message:"Error"}};return o?(0,t.jsx)("div",{className:"text-center py-8",children:(0,t.jsx)("div",{className:"animate-spin w-8 h-8 border-2 border-brand-500 border-t-transparent rounded-full mx-auto"})}):"email-signin"===c?(0,t.jsx)(N,{onSubmit:f,loading:a,error:h,onSwitchToSignUp:()=>{d("email-signup"),u(null)},onForgotPassword:()=>{d("reset-password"),u(null)},onBack:()=>{d("select"),u(null)}}):"email-signup"===c?(0,t.jsx)(j,{onSubmit:b,loading:a,error:h,onSwitchToSignIn:()=>{d("email-signin"),u(null)},onBack:()=>{d("select"),u(null)}}):"reset-password"===c?(0,t.jsx)(v,{onSubmit:w,loading:a,error:h,onBack:()=>{d("email-signin"),u(null)}}):(0,t.jsx)(m,{onGoogleLogin:g,loading:a,error:h,onSelectEmail:()=>d("email-signin"),modalOpen:p,setModalOpen:x})}},46520:(e,s,a)=>{a.d(s,{A:()=>t});let t=(0,a(87573).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},87131:(e,s,a)=>{a.d(s,{A:()=>t});let t=(0,a(87573).A)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}
1],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]])},87573:(e,s,a)=>{a.d(s,{A:()=>l});var t=a(54868);let r=function(){for(var e=arguments.length,s=Array(e),a=0;a<e;a++)s[a]=arguments[a];return s.filter((e,s,a)=>!!e&&""!==e.trim()&&a.indexOf(e)===s).join(" ").trim()},i=e=>{let s=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,s,a)=>a?a.toUpperCase():s.toLowerCase());return s.charAt(0).toUpperCase()+s.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let o=(0,t.forwardRef)((e,s)=>{let{color:a="currentColor",size:i=24,strokeWidth:o=2,absoluteStrokeWidth:l,className:c="",children:d,iconNode:h,...m}=e;return(0,t.createElement)("svg",{ref:s,...n,width:i,height:i,stroke:a,strokeWidth:l?24*Number(o)/Number(i):o,className:r("lucide",c),...!d&&!(e=>{for(let s in e)if(s.startsWith("aria-")||"role"===s||"title"===s)return!0;return!1})(m)&&{"aria-hidden":"true"},...m},[...h.map(e=>{let[s,a]=e;return(0,t.createElement)(s,a)}),...Array.isArray(d)?d:[d]])}),l=(e,s)=>{let a=(0,t.forwardRef)((a,n)=>{let{className:l,...c}=a;return(0,t.createElement)(o,{ref:n,iconNode:s,className:r(`lucide-${i(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,l),...c})});return a.displayName=i(e),a}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.