@mindexec/cli 0.2.377 → 0.2.378

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,11 +7,11 @@
7
7
  name="description"
8
8
  content="MindExec React is a fast AI execution canvas for solo builders, notes, assets, and task graphs."
9
9
  />
10
- <meta name="build-version" content="ai-input-model-list-minimal-2026-06-27" />
10
+ <meta name="build-version" content="auth-google-account-restore-2026-06-27" />
11
11
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
12
12
  <link rel="manifest" href="/manifest.webmanifest" />
13
13
  <title>MindExec React</title>
14
- <script type="module" crossorigin src="/assets/index-BK3iJDs0.js"></script>
14
+ <script type="module" crossorigin src="/assets/index-DLbrmSV7.js"></script>
15
15
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-BXzpOyCS.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/app-runtime-xD2Z3NdN.js">
17
17
  <link rel="stylesheet" crossorigin href="/assets/index-yNpEK-gp.css">
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/supabaseAuthAdapter-bSjZe3In.js","assets/productionAdapterConfig-C5jfk6oG.js","assets/canvas-runtime-CddXXjp9.js","assets/vendor-react-BXzpOyCS.js","assets/app-runtime-xD2Z3NdN.js","assets/vendor-icons-678PAT8P.js"])))=>i.map(i=>d[i]);
2
- import{g as E,A as N,a as m,_ as P,s as F,c as H}from"./index-BK3iJDs0.js";import{r as o,j as e,a as q}from"./vendor-react-BXzpOyCS.js";import{r as U}from"./productionAdapterConfig-C5jfk6oG.js";import{R as p}from"./app-runtime-xD2Z3NdN.js";import{b4 as V,aS as M,bb as Y,bc as f,as as K,aG as W,bd as J,a8 as Q,be as X,b0 as Z,ba as ee,b2 as ne,bf as se}from"./vendor-icons-678PAT8P.js";const ae=[{id:"/",label:"Home",description:"MindExec product surface",icon:W},{id:"/mindcanvas",label:"MindCanvas",description:"AI execution canvas",icon:J},{id:"/planmaster",label:"PlanMaster",description:"Execution planning board",icon:Q},{id:"/tools",label:"Tools",description:"Free browser utilities",icon:X},{id:"/youtube",label:"YouTube",description:"Video capture to canvas",icon:Z},{id:"/code",label:"Code",description:"CodeGraph workspace preview",icon:ee},{id:"/pricing",label:"Pricing",description:"USD paid path",icon:M},{id:"/company-core",label:"Company Core",description:"Business operating view",icon:ne},{id:"/login",label:"Login",description:"Google sign-in shell",icon:f}];function L(a){return typeof a=="number"?`${a.toLocaleString()}P`:"Pending"}function te(a){var d;const c=(a||"").trim();return c?(d=c[0])==null?void 0:d.toUpperCase():"M"}function ie(a){return a==="supabase-provider-session"?"Supabase OAuth":a==="supabase-callback-shell"?"OAuth callback shell":a==="manual-google-shell"?"Local Google shell":"Local shell"}function oe(a){return a?a.source==="manual-google-shell"?{availablePoints:0,reservedPoints:0,mode:"Local/BYOK",description:"Local shell, BYOK, and offline work stay outside managed cloud credits."}:{availablePoints:null,reservedPoints:null,mode:"Cloud wallet",description:"Credit wallet sync is reserved for the hosted paid adapter."}:{availablePoints:null,reservedPoints:null,mode:"Sign in required",description:"Sign in to sync managed AI credits for hosted workflows."}}function pe({route:a,navigate:c,canvasActions:d=[]}){const O=d.length>0,[s,g]=o.useState(()=>E()),[l,u]=o.useState(!1),[h,x]=o.useState(!1),j=o.useRef(null),w=o.useRef(null),b=o.useMemo(()=>oe(s),[s]);o.useEffect(()=>{const n=()=>g(E());return window.addEventListener(N,n),window.addEventListener("storage",n),()=>{window.removeEventListener(N,n),window.removeEventListener("storage",n)}},[]),o.useEffect(()=>{if((s==null?void 0:s.source)==="supabase-provider-session"||!U(m()).auth.canAttempt)return;let t=!1;return(async()=>{try{const{loadSupabaseAuthSession:r,syncSupabaseAuthSessionToLocalBridge:v}=await P(async()=>{const{loadSupabaseAuthSession:D,syncSupabaseAuthSessionToLocalBridge:G}=await import("./supabaseAuthAdapter-bSjZe3In.js");return{loadSupabaseAuthSession:D,syncSupabaseAuthSessionToLocalBridge:G}},__vite__mapDeps([0,1,2,3,4,5])),C=await r(m());if(t||!C.session)return;const z=F({...C.session,source:"supabase-provider-session"});g(z),await v(m(),"sidebar-provider-session-restore")}catch(r){p.emit("auth.accountMenu.providerRestore.warning",{message:r instanceof Error?r.message:String(r)})}})(),()=>{t=!0}},[s==null?void 0:s.source]),o.useEffect(()=>{if(!l)return;const n=i=>{var r,v;i.target instanceof Node&&((r=j.current)!=null&&r.contains(i.target)||(v=w.current)!=null&&v.contains(i.target)||u(!1))},t=i=>{i.key==="Escape"&&u(!1)};return window.addEventListener("pointerdown",n,!0),window.addEventListener("keydown",t),()=>{window.removeEventListener("pointerdown",n,!0),window.removeEventListener("keydown",t)}},[l]);const k=s?se:f,A=s?`Account: signed in as ${s.email}`:"Account: sign in with Google",_=a==="/login"||!!s,I=(s==null?void 0:s.email)??"Sign in required",R=s?ie(s.source):"Not connected",S=n=>{u(!1),c(n)},T=()=>{u(n=>{const t=!n;return p.emit("auth.accountMenu.toggled",{open:t,signedIn:!!s,source:(s==null?void 0:s.source)??"none"}),t})},B=s?e.jsxs("div",{className:"account-popover-credit","data-testid":"sidebar-account-credits",children:[e.jsxs("div",{className:"account-popover-credit-title",children:[e.jsx(V,{size:15}),e.jsx("span",{children:"AI Credits"})]}),e.jsx("strong",{"data-testid":"sidebar-account-credit-available",children:L(b.availablePoints)}),e.jsx("p",{children:b.description}),e.jsxs("div",{className:"account-popover-credit-grid",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Reserved"}),e.jsx("b",{"data-testid":"sidebar-account-credit-reserved",children:L(b.reservedPoints)})]}),e.jsxs("div",{children:[e.jsx("span",{children:"Mode"}),e.jsx("b",{children:b.mode})]})]})]}):null,$=async()=>{if(!h){x(!0),p.emit("auth.accountMenu.signOut.requested",{source:(s==null?void 0:s.source)??"none"});try{const{signOutSupabaseAuthSession:n}=await P(async()=>{const{signOutSupabaseAuthSession:t}=await import("./supabaseAuthAdapter-bSjZe3In.js");return{signOutSupabaseAuthSession:t}},__vite__mapDeps([0,1,2,3,4,5]));await n(m(),"sidebar-account-menu")}catch(n){p.emit("auth.accountMenu.signOut.warning",{message:n instanceof Error?n.message:String(n)})}H(),g(null),u(!1),x(!1),p.emit("auth.accountMenu.signOut.completed"),c("/")}},y=l?e.jsxs("div",{className:"sidebar-account-popover",role:"dialog","aria-label":"Account","data-testid":"sidebar-account-menu",ref:w,children:[e.jsxs("div",{className:"account-popover-head",children:[e.jsx("div",{className:"account-popover-avatar","aria-hidden":"true",children:te(s==null?void 0:s.email)}),e.jsxs("div",{className:"account-popover-title",children:[e.jsx("span",{children:"Account"}),e.jsx("strong",{"data-testid":"sidebar-account-email",children:I}),e.jsx("small",{children:R})]})]}),B,e.jsxs("div",{className:"account-popover-actions",children:[e.jsxs("button",{className:"account-popover-action",type:"button","data-testid":"sidebar-account-pricing",onClick:()=>S("/pricing"),children:[e.jsx(M,{size:16}),e.jsx("span",{children:"Credit plans"})]}),s?e.jsxs("button",{className:"account-popover-action account-popover-action--danger",type:"button","data-testid":"sidebar-account-sign-out",disabled:h,onClick:$,children:[e.jsx(Y,{size:16}),e.jsx("span",{children:h?"Signing out ...":"Sign out"})]}):e.jsxs("button",{className:"account-popover-action account-popover-action--primary",type:"button","data-testid":"sidebar-account-sign-in",onClick:()=>S("/login"),children:[e.jsx(f,{size:16}),e.jsx("span",{children:"Continue with Google"})]})]})]}):null;return e.jsxs("aside",{className:"app-sidebar","aria-label":"MindExec navigation",children:[e.jsx("button",{className:"sidebar-brand",type:"button",title:"Open MindCanvas","aria-label":"Open MindCanvas",onClick:()=>c("/mindcanvas"),children:e.jsx(K,{size:22})}),e.jsx("div",{className:"sidebar-divider"}),e.jsx("nav",{className:"sidebar-nav",children:ae.slice(1,8).map(n=>{const t=n.icon,i=n.id===a||n.id==="/mindcanvas"&&a==="/mindmap"||n.id==="/planmaster"&&a==="/planagent"||n.id==="/tools"&&a.startsWith("/tools/")||n.id==="/"&&a==="/";return e.jsx("button",{type:"button",className:`sidebar-icon ${i?"is-active":""}`,title:`${n.label}: ${n.description}`,"aria-label":n.label,"aria-current":i?"page":void 0,onClick:()=>c(n.id),children:e.jsx(t,{size:21})},n.id)})}),e.jsx("div",{className:"sidebar-spacer"}),O&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"sidebar-divider sidebar-divider--context"}),e.jsx("nav",{className:"sidebar-nav sidebar-nav--context","aria-label":"MindCanvas quick actions",children:d.map(n=>{const t=n.icon;return e.jsx("button",{type:"button",className:`sidebar-icon sidebar-icon--context ${n.active?"is-active":""}`,title:`${n.label}: ${n.description}`,"aria-label":n.label,"aria-pressed":n.active?"true":void 0,"data-testid":n.testId,onClick:n.onClick,children:e.jsx(t,{size:20})},n.id)})})]}),e.jsxs("div",{className:"sidebar-account-wrap",ref:j,children:[e.jsx("button",{className:`sidebar-icon ${_?"is-active":""}`,type:"button",title:A,"aria-label":A,"aria-haspopup":"dialog","aria-expanded":l,"data-testid":"sidebar-account","data-auth-session-active":s?"true":"false","data-auth-session-source":(s==null?void 0:s.source)??"none",onClick:T,children:e.jsx(k,{size:20})}),l&&(typeof document<"u"?q.createPortal(y,document.body):y)]})]})}export{pe as AppSidebar};
@@ -1 +0,0 @@
1
- import{r,j as e}from"./vendor-react-BXzpOyCS.js";import{g as C,a as w,s as q,b as K,p as U,c as R,d as G}from"./index-BK3iJDs0.js";import{p as L,P as F}from"./pricingCheckoutShell-O-DnwmbU.js";import{r as O}from"./productionAdapterConfig-C5jfk6oG.js";import{R as b}from"./app-runtime-xD2Z3NdN.js";import{syncSupabaseAuthSessionToLocalBridge as T,loadSupabaseAuthSession as _,buildSupabaseAuthRedirectUrl as I,startSupabaseGoogleOAuth as D,signOutSupabaseAuthSession as H,requestSupabasePasswordReset as Y,updateSupabasePassword as V}from"./supabaseAuthAdapter-bSjZe3In.js";import{X as W,ao as X,ag as J,aT as z,N as $,f as Q,aU as k,K as M,aV as Z,ac as ee}from"./vendor-icons-678PAT8P.js";import"./canvas-runtime-CddXXjp9.js";function te(o){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o.trim())}function S(){return O(w())}function N(o,a,c=!1){return o.source==="supabase-provider-session"?a?`Google sign-in is active for ${o.email}. Return to pricing to continue checkout.`:`Google sign-in is active for ${o.email}.`:c?a?"A local auth shell exists, but secure Google sign-in is required before checkout can continue.":"A local auth shell exists, but secure Google sign-in is required before MindCanvas can sync remote services.":a?"A local Google auth shell is active. Return to pricing to continue checkout.":"A local Google auth shell is already active for this browser."}function B(o,a){return a?`Local Google auth shell ready for ${o}. Return to pricing to continue the gated checkout.`:`Local Google auth shell ready for ${o}. Secure Supabase OAuth can replace this adapter later.`}function le({navigate:o}){const[a,c]=r.useState(!1),[t,d]=r.useState(()=>C()),[i]=r.useState(()=>L()),l=r.useMemo(()=>S(),[]),[x,u]=r.useState(()=>{const s=C(),n=L();return s?N(s,!!n,S().auth.canAttempt):n?"Sign in to continue MindCanvas Pro checkout. Payment remains gated until the secure adapter is connected.":"Use your Google account to sync cloud projects. No password to create or remember."});r.useEffect(()=>{if((t==null?void 0:t.source)==="supabase-provider-session"||!l.auth.canAttempt)return;let s=!1;return(async()=>{try{const p=await _(w());if(s||!p.session)return;const E=q({...p.session,source:"supabase-provider-session"});d(E),u(N(E,!!i,l.auth.canAttempt))}catch(p){b.emit("auth.supabase.sessionRestore.uiFailed",{message:p instanceof Error?p.message:String(p)})}})(),()=>{s=!0}},[i,l.auth.canAttempt,t==null?void 0:t.source]),r.useEffect(()=>{(t==null?void 0:t.source)!=="supabase-provider-session"||!l.auth.canAttempt||T(w(),"login-existing-session")},[l.auth.canAttempt,t==null?void 0:t.email,t==null?void 0:t.source]);const m=()=>{const s=C();if(s)return d(s),u(N(s,!!i,l.auth.canAttempt)),s;const n=G();return d(n),u(B(n.email,!!i)),n},g=async()=>{const s=m();s.source==="supabase-provider-session"&&await T(w(),"login-continue");const n={hasCheckoutIntent:!!i,signedIn:!!s,sessionSource:s.source};i?b.emit("auth.returnToPricing",n):b.emit("auth.continueMindCanvas",n),o(i?"/pricing":"/mindcanvas")},f=()=>{const s=G();d(s),u(B(s.email,!!i)),c(!1),window.setTimeout(()=>{g()},240)},h=async()=>{c(!0);const s=await U();if(O(s).auth.canAttempt)try{const p=I("/login",i?"/pricing":"/mindcanvas");u("Opening secure Google sign-in..."),(t==null?void 0:t.source)!=="supabase-provider-session"&&(R(),d(null)),await D(s,p);return}catch(p){u(`Secure Google sign-in failed: ${p instanceof Error?p.message:String(p)}`),c(!1);return}window.setTimeout(()=>{f()},550)},j=!!(t&&(!l.auth.canAttempt||t.source==="supabase-provider-session")),y=j?i?"Continue checkout":"Continue to MindCanvas":a?"Opening Google...":"Continue with Google",v=j?g:h,A=async()=>{c(!0),u("Signing out...");let s="";try{await H(w(),"login-sign-out")}catch(n){s=n instanceof Error?n.message:String(n),b.emit("auth.signOut.uiFailed",{message:s})}R(),d(null),u(s?`Signed out locally. Provider sign-out warning: ${s}`:i?"Signed out. Choose another Google account to continue checkout.":"Signed out. Choose another Google account to continue."),c(!1)};return e.jsxs(P,{page:"login",children:[e.jsx("button",{className:"auth-close",type:"button",title:"Close",onClick:()=>o("/mindcanvas"),"data-testid":"auth-close",children:e.jsx(W,{size:16})}),e.jsxs("div",{className:"auth-logo",children:[e.jsx(X,{size:24}),e.jsx("strong",{children:"MindExec"})]}),e.jsx("h1",{children:"Sign in with Google"}),e.jsx("p",{"data-testid":"auth-message",children:x}),e.jsxs("button",{className:"google-button",type:"button",disabled:a,onClick:v,"data-testid":"auth-google-shell",children:[e.jsx("span",{className:"google-g",children:"G"}),y]}),e.jsxs("div",{className:"auth-action-strip",children:[t&&i&&e.jsx("button",{type:"button",onClick:()=>void g(),"data-testid":"auth-return-pricing",children:"Return to pricing"}),t&&e.jsx("button",{type:"button",disabled:a,onClick:()=>void A(),"data-testid":"auth-sign-out",children:"Sign out"}),e.jsx("button",{type:"button",onClick:()=>o("/forgot-password"),"data-testid":"auth-forgot-password",children:"Forgot password"}),e.jsx("button",{type:"button",onClick:()=>o("/pricing"),"data-testid":"auth-view-pricing",children:"View pricing"})]}),e.jsx("p",{className:"auth-note",children:l.auth.canAttempt?"Secure Supabase OAuth is connected for this browser build.":"The React port keeps this as a local auth shell until the secure Supabase OAuth adapter is connected."})]})}function de({navigate:o}){const[a,c]=r.useState(""),[t,d]=r.useState(!1),[i,l]=r.useState(""),[x,u]=r.useState(!1),m=r.useMemo(()=>S(),[]),g=async f=>{if(f.preventDefault(),!te(a)){l("Enter a valid email address.");return}if(d(!0),l(""),m.passwordReset.canAttempt){try{const h=I("/reset-password","/login");await Y(w(),a,h),u(!0),d(!1),b.emit("auth.reset.requested",{emailDomain:a.split("@")[1]||"",provider:"supabase"})}catch(h){l(h instanceof Error?h.message:String(h)),d(!1)}return}window.setTimeout(()=>{u(!0),d(!1),b.emit("auth.reset.requested",{emailDomain:a.split("@")[1]||""})},450)};return e.jsxs(P,{page:"forgot-password",children:[e.jsxs("button",{className:"auth-back",type:"button",onClick:()=>o("/login"),"data-testid":"forgot-back-login",children:[e.jsx(J,{size:16}),"Sign in"]}),e.jsx("div",{className:"auth-mark auth-mark--amber",children:e.jsx(z,{size:28})}),e.jsx("h1",{children:"Forgot password?"}),e.jsx("p",{children:"No worries. Enter your email and the React auth shell will walk through the reset flow."}),i&&e.jsx("div",{className:"auth-inline-error","data-testid":"forgot-error",children:i}),x?e.jsxs("div",{className:"auth-success-panel","data-testid":"forgot-success",children:[e.jsx($,{size:32}),e.jsx("strong",{children:"Check your email"}),e.jsxs("span",{children:["Reset instructions were prepared for ",a,"."]}),e.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>o("/reset-password"),"data-testid":"forgot-continue-reset",children:"Continue to reset"})]}):e.jsxs("form",{className:"auth-form",onSubmit:g,"data-testid":"forgot-password-form",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Email Address"}),e.jsxs("div",{className:"auth-input-wrap",children:[e.jsx(z,{size:18}),e.jsx("input",{value:a,onChange:f=>c(f.target.value),type:"email",placeholder:"you@example.com","data-testid":"forgot-email"})]})]}),e.jsxs("button",{className:"btn btn-primary auth-submit",type:"submit",disabled:t,"data-testid":"forgot-submit",children:[e.jsx(Q,{size:16}),t?"Sending...":"Send Reset Link"]})]})]})}function he({navigate:o}){const[a,c]=r.useState(""),[t,d]=r.useState(""),[i,l]=r.useState(!1),[x,u]=r.useState(!1),[m,g]=r.useState(!1),[f,h]=r.useState(""),j=r.useMemo(()=>S(),[]),y=r.useMemo(()=>a.length>=6&&a===t,[t,a]),v=t.length>0&&t!==a,A=async s=>{if(s.preventDefault(),a.length<6){h("Password must be at least 6 characters.");return}if(a!==t){h("Passwords do not match.");return}if(u(!0),h(""),j.passwordReset.canAttempt){try{await V(w(),a),g(!0),u(!1),b.emit("auth.password.updated",{provider:"supabase"})}catch(n){h(n instanceof Error?n.message:String(n)),u(!1)}return}window.setTimeout(()=>{g(!0),u(!1),b.emit("auth.password.updated",{localShell:!0})},520)};return e.jsxs(P,{page:"reset-password",children:[e.jsx("div",{className:`auth-mark ${m?"auth-mark--success":""}`,children:m?e.jsx($,{size:30}):e.jsx(k,{size:30})}),e.jsx("h1",{children:m?"Password reset!":"Reset password"}),e.jsx("p",{"data-testid":"reset-message",children:m?"Your local auth shell accepted the new password state.":"Enter a new password and confirm it below."}),f&&e.jsx("div",{className:"auth-inline-error","data-testid":"reset-error",children:f}),m?e.jsxs("button",{className:"btn btn-primary auth-submit",type:"button",onClick:()=>o("/login"),"data-testid":"reset-login",children:[e.jsx(M,{size:16}),"Sign In"]}):e.jsxs("form",{className:"auth-form",onSubmit:A,"data-testid":"reset-password-form",children:[e.jsxs("label",{children:[e.jsx("span",{children:"New Password"}),e.jsxs("div",{className:"auth-input-wrap",children:[e.jsx(k,{size:18}),e.jsx("input",{value:a,onChange:s=>c(s.target.value),type:i?"text":"password",placeholder:"Enter new password","data-testid":"reset-password-input"}),e.jsx("button",{type:"button",className:"auth-icon-button",title:"Toggle password visibility",onClick:()=>l(s=>!s),"data-testid":"reset-toggle-visibility",children:i?e.jsx(Z,{size:17}):e.jsx(ee,{size:17})})]}),e.jsx("span",{className:`auth-requirement ${a.length>=6?"is-met":""}`,children:"At least 6 characters"})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Confirm Password"}),e.jsxs("div",{className:"auth-input-wrap",children:[e.jsx(k,{size:18}),e.jsx("input",{value:t,onChange:s=>d(s.target.value),type:"password",placeholder:"Confirm new password","data-testid":"reset-confirm-input"})]}),t&&e.jsx("span",{className:`auth-requirement ${v?"is-error":"is-met"}`,children:v?"Passwords do not match":"Passwords match"})]}),e.jsxs("button",{className:"btn btn-primary auth-submit",type:"submit",disabled:!y||x,"data-testid":"reset-submit",children:[e.jsx(M,{size:16}),x?"Updating...":"Update Password"]})]})]})}function P({children:o,page:a}){const c=S();return e.jsxs("div",{className:"auth-page","data-testid":"auth-shell","data-auth-page":a,"data-auth-storage-key":K,"data-pricing-checkout-intent-key":F,"data-production-adapter-state":c.overallState,"data-auth-provider-mode":c.auth.mode,"data-auth-provider-ready":c.auth.canAttempt?"true":"false","data-client-secret-blocked":c.forbiddenClientSecretKeys.length>0?"true":"false",children:[e.jsx("div",{className:"auth-scrim"}),e.jsx("section",{className:"auth-card",children:o})]})}export{de as ForgotPasswordPage,le as LoginPage,he as ResetPasswordPage};