@mindexec/cli 0.2.382 → 0.2.383
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.
- package/package.json +1 -1
- package/wwwroot/assets/{AdminDashboardPage-FNblYU8t.js → AdminDashboardPage-3VUPNjhD.js} +1 -1
- package/wwwroot/assets/{AppSidebar-BvftUzzb.js → AppSidebar-CiYpGRU4.js} +2 -2
- package/wwwroot/assets/{AuthPages-D8C-Ozrp.js → AuthPages-BmpDAK3N.js} +1 -1
- package/wwwroot/assets/{CodePage-BGATDRar.js → CodePage-BrqCtiA1.js} +1 -1
- package/wwwroot/assets/{CompanyCorePage-Di4pU7hi.js → CompanyCorePage-DZYu-7IF.js} +1 -1
- package/wwwroot/assets/{ExecutionModePage-DUD0ObAq.js → ExecutionModePage-AtB7HGoD.js} +1 -1
- package/wwwroot/assets/{MindCanvas-Bm3Wtjb6.js → MindCanvas-BW9vO7KM.js} +1 -1
- package/wwwroot/assets/{PlanMasterPage-FPAEsd3D.js → PlanMasterPage-DItAWGne.js} +1 -1
- package/wwwroot/assets/{PricingPage-GyyNbudR.js → PricingPage-CH6jDgJC.js} +1 -1
- package/wwwroot/assets/{ToolPages-Zm_oC47S.js → ToolPages-CmY0jdlo.js} +1 -1
- package/wwwroot/assets/{YouTubeSearchPage-GghzHObU.js → YouTubeSearchPage-CntpQkdZ.js} +1 -1
- package/wwwroot/assets/{canvas-runtime-CF8ukxQK.js → canvas-runtime-Bc1G-FZ_.js} +3 -3
- package/wwwroot/assets/{index-Dp7yFpgv.js → index-qITXeJUr.js} +2 -2
- package/wwwroot/assets/{storage-CcZMLcgs.js → storage-CbuZ97zN.js} +1 -1
- package/wwwroot/assets/{supabaseAuthAdapter-CjOxTXgI.js → supabaseAuthAdapter-4HB3Xzco.js} +1 -1
- package/wwwroot/index.html +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/supabaseAuthAdapter-
|
|
2
|
-
var q=Object.defineProperty;var G=(e,t,o)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var x=(e,t,o)=>G(e,typeof t!="symbol"?t+"":t,o);import{r as i,j as r,R as Y}from"./vendor-react-BXzpOyCS.js";import{R as h,i as X}from"./app-runtime-xD2Z3NdN.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const c of a)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&n(u)}).observe(document,{childList:!0,subtree:!0});function o(a){const c={};return a.integrity&&(c.integrity=a.integrity),a.referrerPolicy&&(c.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?c.credentials="include":a.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function n(a){if(a.ep)return;a.ep=!0;const c=o(a);fetch(a.href,c)}})();const J="modulepreload",Q=function(e){return"/"+e},U={},b=function(t,o,n){let a=Promise.resolve();if(o&&o.length>0){let u=function(p){return Promise.all(p.map(d=>Promise.resolve(d).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),m=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));a=u(o.map(p=>{if(p=Q(p),p in U)return;U[p]=!0;const d=p.endsWith(".css"),y=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${y}`))return;const g=document.createElement("link");if(g.rel=d?"stylesheet":J,d||(g.as="script"),g.crossOrigin="",g.href=p,m&&g.setAttribute("nonce",m),document.head.appendChild(g),d)return new Promise((f,k)=>{g.addEventListener("load",f),g.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${p}`)))})}))}function c(u){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=u,window.dispatchEvent(s),!s.defaultPrevented)throw u}return a.then(u=>{for(const s of u||[])s.status==="rejected"&&c(s.reason);return t().catch(c)})},L="mindexec-local-auth-shell-v2",Z="mindexec-react-auth-shell-session-changed",ee="supabase-callback@mindexec.local";function te(e){const t=e;return!!(t&&typeof t=="object"&&typeof t.userId=="string"&&typeof t.email=="string"&&t.provider==="Google"&&typeof t.signedInAt=="string")}function oe(e){const t=e.toLowerCase();return t.includes("access_token=")||t.includes("refresh_token=")||t.includes("provider_token=")||t.includes("provider_refresh_token=")||t.includes("expires_in=")||t.includes("token_type=")||t.includes("type=recovery")||t.includes("type=invite")||t.includes("error=")||t.includes("error_description=")||t.includes("code=")}function ae(e){const t=e.split("=",2)[0].toLowerCase();return t==="access_token"||t==="refresh_token"||t==="provider_token"||t==="provider_refresh_token"||t==="expires_in"||t==="expires_at"||t==="token_type"||t==="type"||t==="error"||t==="error_code"||t==="error_description"||t==="code"}function I(e){const t=e.trim().replace(/^[?#]/,"");return t?t.split("&").filter(Boolean).filter(n=>!ae(n)).join("&"):""}function ne(e){const t=(e||"").trim();if(!t||!t.startsWith("/")||t.startsWith("//")||t.includes("\\"))return"";try{const o=new URL(t,window.location.origin);return o.origin!==window.location.origin?"":`${o.pathname}${o.search}${o.hash}`}catch{return""}}function re(e){const t=new URL(e,window.location.origin),o=`${t.search}&${t.hash}`,n=oe(o);if(!n)return{hasAuthPayload:!1,cleanedPath:`${t.pathname}${t.search}${t.hash}`,shouldCreateLocalShell:!1,shouldRouteToMindCanvas:!1,hasError:!1,hasRecovery:!1,hasInvite:!1,hasCode:!1,hasToken:!1};const a=I(t.search),c=I(t.hash),u=/(?:^|[&#?])error=/i.test(o)||/(?:^|[&#?])error_description=/i.test(o),s=/(?:^|[&#?])type=recovery(?:&|$)/i.test(o),m=/(?:^|[&#?])type=invite(?:&|$)/i.test(o),p=/(?:^|[&#?])code=/i.test(o),d=/(?:^|[&#?])(?:access_token|refresh_token)=/i.test(o),y=ne(t.searchParams.get("next"));let g=`${t.pathname}${a?`?${a}`:""}${c?`#${c}`:""}`;const f=t.pathname==="/"||t.pathname==="",k=t.pathname==="/login",E=!u&&!s&&!m&&(p||d),l=E&&!y&&(f||k);if(y&&E)g=y;else if(l){const v=new URLSearchParams(a);v.delete("next");const S=v.toString();g=`/mindcanvas${S?`?${S}`:""}`}return{hasAuthPayload:n,cleanedPath:g,shouldCreateLocalShell:!u&&!s&&!m&&(p||d),shouldRouteToMindCanvas:l,hasError:u,hasRecovery:s,hasInvite:m,hasCode:p,hasToken:d}}function se(e){return`local-google-${e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-")||"user"}`}function O(e){try{window.dispatchEvent(new CustomEvent(Z,{detail:{signedIn:!!e,source:(e==null?void 0:e.source)??"cleared",hasEmail:!!(e!=null&&e.email)}}))}catch{}}function nt(){try{const e=window.localStorage.getItem(L);if(!e)return null;const t=JSON.parse(e);return te(t)?t:null}catch{return null}}function ie(e="builder@mindexec.local",t="manual-google-shell"){const o=e.trim().toLowerCase()||"builder@mindexec.local",n={userId:typeof crypto<"u"&&"randomUUID"in crypto?`local-google-${crypto.randomUUID()}`:se(o),email:o,provider:"Google",signedInAt:new Date().toISOString(),source:t};return B(n)}function B(e){try{window.localStorage.setItem(L,JSON.stringify(e))}catch{}return h.emit(e.source==="supabase-provider-session"?"auth.supabase.sessionShell":"auth.google.localShell",{provider:e.provider,hasEmail:!!e.email,source:e.source}),O(e),e}function rt(){try{window.localStorage.removeItem(L)}catch{}h.emit("auth.localShell.cleared"),O(null)}const le={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},ce="mindexec-production-adapter-runtime-env-loaded";function H(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function w(e,t){let o=e;for(const n of t){if(!H(o))return"";o=o[n]}return typeof o=="string"?o.trim():""}function de(e,t){let o=e;for(const n of t){if(!H(o)||!(n in o))return null;o=o[n]}if(typeof o=="boolean")return o;if(typeof o=="string"){const n=o.trim().toLowerCase();if(["1","true","yes","on"].includes(n))return!0;if(["0","false","no","off"].includes(n))return!1}return null}function A(e,t,o){o&&(e[t]=o)}function ue(e,t,o){o!==null&&(e[t]=String(o))}function pe(e){return de(e,["ProjectStorage","CloudProjectsEnabled"])}function me(e){const t=w(e,["Supabase","Url"]),o=w(e,["Supabase","PublishableKey"])||w(e,["Supabase","Key"])||w(e,["Supabase","AnonKey"]),n=w(e,["Supabase","ServiceRoleKey"]);return!!(t&&o&&!n)}function he(e){const t={},o=pe(e),n=me(e),a=w(e,["Supabase","Url"]),c=w(e,["Supabase","PublishableKey"])||w(e,["Supabase","Key"])||w(e,["Supabase","AnonKey"]),u=w(e,["CloudflareR2","PublicBaseUrl"])||w(e,["CloudStorage","PublicBaseUrl"])||w(e,["CloudStorage","PublicUrl"]);return ue(t,"VITE_MINDEXEC_CLOUD_PROJECTS_ENABLED",o),n&&(A(t,"VITE_MINDEXEC_SUPABASE_URL",a),A(t,"VITE_MINDEXEC_SUPABASE_PUBLISHABLE_KEY",c)),A(t,"VITE_MINDEXEC_CLOUD_STORAGE_PUBLIC_URL",u),t}function ge(){return le??{}}function K(){return typeof window>"u"?{}:window.__MINDEXEC_PRODUCTION_ADAPTER_RUNTIME_ENV__??{}}function fe(e){if(!(typeof window>"u")){window.__MINDEXEC_PRODUCTION_ADAPTER_RUNTIME_ENV__={...K(),...e};try{window.dispatchEvent(new CustomEvent(ce,{detail:{keys:Object.keys(e).sort()}}))}catch{}}}function _(){return{...K(),...ge()}}let T=null;async function $(e=typeof fetch=="function"?fetch.bind(globalThis):null){return typeof window>"u"||!e?_():T||(T=(async()=>{try{const t=await e("/appsettings.json",{cache:"no-store",credentials:"same-origin"});if(!t.ok)return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:`http-${t.status}`}),_();const o=t.headers.get("content-type")||"";if(o&&!o.toLowerCase().includes("json"))return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:"non-json-response"}),_();const n=await t.json(),a=he(n);return fe(a),h.emit("productionAdapter.runtimeConfig.loaded",{source:"appsettings.json",keys:Object.keys(a).sort()}),_()}catch(t){return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:t instanceof Error?t.message:String(t)}),_()}})(),T)}function be({onRouteReplaced:e}){const t=i.useRef(!1);return i.useEffect(()=>{if(t.current)return;t.current=!0,(async()=>{const n=window.location.href,a=re(n);if(!a.hasAuthPayload)return;const c=await $();let u={mode:"not-checked",canAttempt:!1},s=!1,m="",p=!1,d=null,y=null;if(!a.hasError&&!a.hasRecovery&&!a.hasInvite&&(a.hasCode||a.hasToken)){const{completeSupabaseAuthCallback:f,resolveSupabaseAuthAdapterState:k,syncSupabaseAuthSessionToLocalBridge:E}=await b(async()=>{const{completeSupabaseAuthCallback:l,resolveSupabaseAuthAdapterState:v,syncSupabaseAuthSessionToLocalBridge:S}=await import("./supabaseAuthAdapter-CjOxTXgI.js");return{completeSupabaseAuthCallback:l,resolveSupabaseAuthAdapterState:v,syncSupabaseAuthSessionToLocalBridge:S}},__vite__mapDeps([0,1,2,3,4,5]));u=k(c),p=u.canAttempt,d=f,y=E}if(p&&d)try{const f=await d(c,n);f.session&&(B({...f.session,source:"supabase-provider-session"}),s=!0,y&&await y(c,"auth-callback"))}catch(f){m=f instanceof Error?f.message:String(f)}else a.shouldCreateLocalShell&&ie(ee,"supabase-callback-shell");h.emit(a.hasError||m?"auth.callback.error":"auth.callback.cleaned",{cleanedPath:a.cleanedPath,shouldCreateLocalShell:!p&&a.shouldCreateLocalShell,shouldRouteToMindCanvas:a.shouldRouteToMindCanvas,hasCode:a.hasCode,hasToken:a.hasToken,hasRecovery:a.hasRecovery,hasInvite:a.hasInvite,providerMode:u.mode,providerAttempted:p,providerSessionCreated:s,providerError:m});const g=`${window.location.pathname}${window.location.search}${window.location.hash}`;a.cleanedPath!==g&&(window.history.replaceState({authCallbackCleaned:!0},"",a.cleanedPath),e("auth-callback-bootstrap"))})()},[e]),null}class ye extends i.Component{constructor(){super(...arguments);x(this,"state",{error:null});x(this,"retry",()=>{this.setState({error:null}),h.emit("runtime.errorBoundary.reset",{resetKey:this.props.resetKey,reason:"manual-retry"})})}static getDerivedStateFromError(o){return{error:o}}componentDidCatch(o,n){const a=(o==null?void 0:o.message)||"Unknown runtime error.";h.emit("runtime.errorBoundary.caught",{resetKey:this.props.resetKey,message:a,stack:(o==null?void 0:o.stack)||"",componentStack:n.componentStack}),console.error("[LoggingErrorBoundary] Unhandled React error.",o,n)}componentDidUpdate(o){o.resetKey!==this.props.resetKey&&this.state.error&&(this.setState({error:null}),h.emit("runtime.errorBoundary.reset",{from:o.resetKey,to:this.props.resetKey,reason:"route-change"}))}render(){const{error:o}=this.state;return o?r.jsx("div",{className:"page runtime-error-page","data-testid":"runtime-error-boundary","data-error-boundary-reset-key":this.props.resetKey,children:r.jsxs("section",{className:"execution-panel",children:[r.jsx("div",{className:"eyebrow",children:"Runtime Guard"}),r.jsx("h1",{children:"Something broke inside this React surface."}),r.jsx("p",{children:"The error was captured locally so the whole app shell can stay recoverable."}),r.jsxs("div",{className:"runtime-error-message","data-testid":"runtime-error-boundary-message",children:[r.jsx("span",{className:"runtime-error-symbol","aria-hidden":"true",children:"!"}),r.jsx("span",{children:o.message||"Unknown runtime error."})]}),r.jsxs("div",{className:"action-row",children:[r.jsx("button",{className:"btn btn-primary",type:"button",onClick:this.retry,"data-testid":"runtime-error-boundary-retry",children:"Retry"}),this.props.onNavigateHome&&r.jsx("button",{className:"btn btn-secondary",type:"button",onClick:this.props.onNavigateHome,"data-testid":"runtime-error-boundary-home",children:"MindCanvas"})]})]})}):this.props.children}}const we="main",ve="h1",R="data-route-focus-target",ke=30;function Pe({route:e,rootSelector:t=we,selector:o=ve}){return i.useEffect(()=>{let n=!1,a=0;const c=u=>{if(n)return;const s=document.querySelector(t),m=(s==null?void 0:s.querySelector(o))??document.querySelector(o);for(const p of document.querySelectorAll(`[${R}="true"]`))p.removeAttribute(R);if(!m){if(u<ke){a=window.requestAnimationFrame(()=>c(u+1));return}h.emit("route.focusOnNavigate.skipped",{route:e,selector:o,reason:"missing-target",attempts:u});return}m.hasAttribute("tabindex")||m.setAttribute("tabindex","-1"),m.setAttribute(R,"true"),m.focus({preventScroll:!1}),h.emit("route.focusOnNavigate.applied",{route:e,selector:o,tagName:m.tagName.toLowerCase(),text:(m.textContent||"").trim().slice(0,90),attempts:u})};return a=window.requestAnimationFrame(()=>c(1)),()=>{n=!0,window.cancelAnimationFrame(a)}},[e,t,o]),null}const Ee=[{key:"markdown-viewer",liveUrl:"https://mdview-die.pages.dev",hostnames:["mdview.pages.dev","mdview-die.pages.dev","mdview.mindexec.io","markdown-viewer.pages.dev","markdown-viewer.mindexec.io"],title:"Free Online Markdown Viewer",heroEyebrow:"Free online markdown viewer",heroTitle:"Preview Markdown instantly in your browser",heroSubtitle:"Paste or open a markdown file, review the rendered result, and move bigger writing work into MindCanvas when it needs structure.",privacyNote:"Runs locally in your browser. No upload required."},{key:"bulk-markdown-viewer",liveUrl:"https://bulkmd.pages.dev",hostnames:["bulkmd.pages.dev","bulkmd.mindexec.io","bulk-markdown-viewer.pages.dev","bulk-markdown-viewer.mindexec.io"],title:"Bulk Markdown Viewer",heroEyebrow:"Bulk markdown preview",heroTitle:"Review multiple markdown snippets at once",heroSubtitle:"Paste a stack of markdown entries and scan them locally before turning the useful pieces into a MindCanvas board.",privacyNote:"Local browser-only preview. No account and no upload step."},{key:"readme-previewer",liveUrl:"https://readme-1o4.pages.dev",hostnames:["readme.pages.dev","readme-1o4.pages.dev","readme-previewer.pages.dev","readme.mindexec.io","readme-previewer.mindexec.io"],title:"README Previewer",heroEyebrow:"README previewer",heroTitle:"Preview README markdown before you publish",heroSubtitle:"Check headings, tables, links, and launch notes quickly, then keep bigger documentation work organized in MindCanvas.",privacyNote:"Local preview for README text. No repository access required."},{key:"markdown-to-html",liveUrl:"https://md2html-4r7.pages.dev",hostnames:["md2html.pages.dev","md2html-4r7.pages.dev","md2html.mindexec.io","markdown-to-html.pages.dev","markdown-to-html.mindexec.io"],title:"Markdown to HTML Preview",heroEyebrow:"Markdown to HTML",heroTitle:"Turn markdown into clean HTML preview",heroSubtitle:"Render markdown locally, copy the HTML shape, and move reusable publishing notes into MindCanvas.",privacyNote:"Conversion runs in-browser and keeps your text local."},{key:"markdown-outline",liveUrl:"https://mdoutln.pages.dev",hostnames:["mdoutln.pages.dev","mdoutln.mindexec.io","markdown-outline.pages.dev","markdown-outline.mindexec.io"],title:"Markdown Outline Generator",heroEyebrow:"Markdown outline generator",heroTitle:"Extract a document outline from markdown",heroSubtitle:"Scan headings, section depth, and missing structure before your document becomes a larger project.",privacyNote:"Outline extraction runs locally in this browser."},{key:"markdown-table-formatter",liveUrl:"https://mdtable-3ik.pages.dev",hostnames:["mdtable.pages.dev","mdtable-3ik.pages.dev","mdtable.mindexec.io","markdown-table-formatter.pages.dev","markdown-table-formatter.mindexec.io"],title:"Markdown Table Formatter",heroEyebrow:"Markdown table formatter",heroTitle:"Clean up markdown tables locally",heroSubtitle:"Paste a rough markdown table and get a cleaner version for docs, READMEs, and launch notes.",privacyNote:"Table formatting happens locally with no upload."},{key:"markdown-link-checker",liveUrl:"https://markdown-link-checker.pages.dev",hostnames:["mdcheck.pages.dev","markdown-link-checker.pages.dev","mdcheck.mindexec.io","markdown-link-checker.mindexec.io"],title:"Markdown Link Checker",heroEyebrow:"Markdown link checker",heroTitle:"Catch risky markdown links before publishing",heroSubtitle:"Find empty, localhost, JavaScript, and suspicious links locally before a README or docs page goes live.",privacyNote:"Link checks run locally against the pasted markdown."},{key:"browser-notepad",liveUrl:"https://quickpad.pages.dev",hostnames:["quickpad.pages.dev","quickpad.mindexec.io","browser-notepad.pages.dev","browser-notepad.mindexec.io"],title:"Browser Notepad",heroEyebrow:"Browser notepad",heroTitle:"Write quick notes without a sign-in",heroSubtitle:"Capture rough thoughts locally, then move the notes worth keeping into MindCanvas.",privacyNote:"Notes are stored locally in this browser unless you copy them elsewhere."},{key:"clipboard-board",liveUrl:"https://clipbrd.pages.dev",hostnames:["clipbrd.pages.dev","clipbrd.mindexec.io","clipboard-board.pages.dev","clipboard-board.mindexec.io"],title:"Local Clipboard Board",heroEyebrow:"Local clipboard board",heroTitle:"Collect snippets into a small local board",heroSubtitle:"Paste short ideas, snippets, and fragments into one local surface before promoting the useful set to MindCanvas.",privacyNote:"Clipboard notes stay local to this browser session."}];function N(e){const t=e.toLowerCase().replace(/^www\./,"");return Ee.find(o=>o.hostnames.some(n=>n.toLowerCase()===t))}const Ce={enabled:!1,hideAppChrome:!0,allowMindCanvasRoute:!1,homeRoute:"/",toolKey:"",heroEyebrow:"Free local tool",heroTitle:"",heroSubtitle:"",primaryCtaText:"Open MindCanvas",primaryCtaHref:"https://mindexec.pages.dev/mindcanvas",secondaryCtaText:"",secondaryCtaHref:"",publicUrl:"",privacyNote:"Runs locally in your browser. No login. No database storage."},_e={enableAgentWorkspace:!0,enableCodeWorkspace:!0,enablePlanWorkspace:!0,enableCompanyCore:!0,enableExecutionTest:!0,enableTemplateStudio:!0,enableProjectPopup:!0,enablePromptDebugger:!0,enablePointBadge:!0,enableResetData:!0},P={variantKey:"platform",slug:"mindexec",brandName:"MindExec",productName:"MindCanvas",appTitle:"MindExec",workspaceNounSingular:"canvas",workspaceNounPlural:"canvases",signInTitle:"Welcome Back",signUpTitle:"Create Account",signInSubtitle:"Sign in to access your MindCanvas workspace.",signUpSubtitle:"Sign up to start organizing your ideas on a visual canvas.",primaryCheckoutProvider:"dodo",runtimeHost:"",canonicalHost:"mindexec.pages.dev",features:_e,marketingTool:Ce};function z(e){const t=j(e),o=N(t);return o?Ae(t,o):{...P,runtimeHost:t,canonicalHost:P.canonicalHost,features:{...P.features},marketingTool:{...P.marketingTool}}}function Se(e){return e.marketingTool.enabled?D(e.marketingTool.homeRoute):"/"}function F(e){return e.marketingTool.enabled&&e.marketingTool.toolKey?`/tools/${e.marketingTool.toolKey}`:Se(e)}function Te(e,t){const o=j(e.canonicalHost||e.runtimeHost);return o?`https://${o}${D(t)}`:""}function V(e,t){if(e.marketingTool.enabled&&!e.marketingTool.allowMindCanvasRoute&&(t==="/mindcanvas"||t==="/mindmap"))return!1;switch(t){case"/agent":return e.features.enableAgentWorkspace;case"/code":return e.features.enableCodeWorkspace;case"/planmaster":case"/planagent":return e.features.enablePlanWorkspace;case"/company-core":return e.features.enableCompanyCore;case"/execution-mode":return e.features.enableExecutionTest;default:return!0}}function xe(e,t){const o=V(e,t),n=F(e),a=o?t:n;return{route:t,enabled:o,fallbackRoute:n,canonicalUrl:Te(e,a),title:Re(e,a),description:Me(e,a)}}function j(e){const t=String(e??"").trim();if(!t)return"";try{return new URL(t).hostname.trim().toLowerCase().replace(/^www\./,"")}catch{return t.trim().replace(/^https?:\/\//i,"").replace(/^www\./,"").replace(/\/+$/,"").toLowerCase()}}function D(e){if(!e||!String(e).trim())return"/";let t=String(e).trim();return t.startsWith("/")||(t=`/${t}`),t.length>1&&(t=t.replace(/\/+$/,"")),t||"/"}function Ae(e,t){const o=j(t.liveUrl)||e;return{...P,variantKey:"mini-tool",slug:t.key,brandName:t.title,productName:t.title,appTitle:`${t.title} - Free local browser tool`,runtimeHost:e,canonicalHost:o,features:{...P.features,enableAgentWorkspace:!1,enableCodeWorkspace:!1,enablePlanWorkspace:!1,enableCompanyCore:!1,enableExecutionTest:!1,enableTemplateStudio:!1,enableProjectPopup:!1,enablePromptDebugger:!1,enablePointBadge:!1,enableResetData:!1},marketingTool:{...P.marketingTool,enabled:!0,hideAppChrome:!0,allowMindCanvasRoute:!1,homeRoute:"/",toolKey:t.key,heroEyebrow:t.heroEyebrow,heroTitle:t.heroTitle,heroSubtitle:t.heroSubtitle,primaryCtaText:"Open MindCanvas",primaryCtaHref:"https://mindexec.pages.dev/mindcanvas",secondaryCtaText:"More free tools",secondaryCtaHref:"https://mindexec.pages.dev/tools",publicUrl:t.liveUrl,privacyNote:t.privacyNote}}}function Re(e,t){if(e.marketingTool.enabled&&t.startsWith("/tools/"))return e.appTitle;switch(t){case"/mindcanvas":case"/mindmap":return"MindCanvas | MindExec";case"/planmaster":case"/planagent":return"PlanMaster | MindExec";case"/pricing":return"MindExec Pricing";case"/login":return e.signInTitle;case"/forgot-password":return"Reset your MindExec password";case"/reset-password":return"Set a new MindExec password";case"/tools":return"Free Browser Tools | MindExec";case"/youtube":return"YouTube Capture | MindExec";case"/code":return"CodeMaster | MindExec";case"/agent":return"Agent Workspace | MindExec";case"/execution-mode":return"Execution Mode | MindExec";case"/company-core":return"Company Core | MindExec";case"/admin/dashboard":return"Admin Dashboard | MindExec";case"/not-found":return"Content not found | MindExec";case"/":default:return e.appTitle}}function Me(e,t){if(e.marketingTool.enabled)return e.marketingTool.heroSubtitle||e.marketingTool.privacyNote;switch(t){case"/mindcanvas":case"/mindmap":return"MindCanvas keeps notes, assets, AI tasks, and execution evidence together on a local-first visual board.";case"/planmaster":case"/planagent":return"PlanMaster turns goals into practical plans, stages, and execution checklists.";case"/pricing":return"MindExec pricing for free local tools and paid MindCanvas project workflows.";case"/tools":return"Free local browser tools that feed larger MindExec and MindCanvas workflows.";case"/code":case"/agent":return"CodeMaster previews code workflows and adapter-gated agent execution for local projects.";case"/execution-mode":return"Execution Mode tests deterministic browser-local Concept IR before live adapters are connected.";case"/company-core":return"Company Core organizes SaaS blueprint, growth, approval, and publishing decisions.";default:return"MindExec is an AI execution canvas for solo builders, researchers, developers, and creators."}}const Le=i.lazy(()=>b(async()=>{const{MindCanvas:e}=await import("./MindCanvas-Bm3Wtjb6.js");return{MindCanvas:e}},__vite__mapDeps([6,3,7,2,4,5,8,9,1,0,10,11,12])).then(({MindCanvas:e})=>({default:e}))),Ne=i.lazy(()=>b(async()=>{const{PlanMasterPage:e}=await import("./PlanMasterPage-FPAEsd3D.js");return{PlanMasterPage:e}},__vite__mapDeps([13,3,7,2,4,5,8,14])).then(({PlanMasterPage:e})=>({default:e}))),je=i.lazy(()=>b(async()=>{const{PricingPage:e}=await import("./PricingPage-GyyNbudR.js");return{PricingPage:e}},__vite__mapDeps([15,3,16,4,5,17,18,1,0,2,19])).then(({PricingPage:e})=>({default:e}))),De=i.lazy(()=>b(async()=>{const{LoginPage:e}=await import("./AuthPages-D8C-Ozrp.js");return{LoginPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({LoginPage:e})=>({default:e}))),Ue=i.lazy(()=>b(async()=>{const{ForgotPasswordPage:e}=await import("./AuthPages-D8C-Ozrp.js");return{ForgotPasswordPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({ForgotPasswordPage:e})=>({default:e}))),Ie=i.lazy(()=>b(async()=>{const{ResetPasswordPage:e}=await import("./AuthPages-D8C-Ozrp.js");return{ResetPasswordPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({ResetPasswordPage:e})=>({default:e}))),Oe=i.lazy(()=>b(async()=>{const{ToolsDirectoryPage:e}=await import("./ToolPages-Zm_oC47S.js");return{ToolsDirectoryPage:e}},__vite__mapDeps([22,3,23,2,4,5,10,24])).then(({ToolsDirectoryPage:e})=>({default:e}))),Be=i.lazy(()=>b(async()=>{const{MarketingToolPage:e}=await import("./ToolPages-Zm_oC47S.js");return{MarketingToolPage:e}},__vite__mapDeps([22,3,23,2,4,5,10,24])).then(({MarketingToolPage:e})=>({default:e}))),He=i.lazy(()=>b(async()=>{const{YouTubeSearchPage:e}=await import("./YouTubeSearchPage-GghzHObU.js");return{YouTubeSearchPage:e}},__vite__mapDeps([25,3,2,4,5,10,26])).then(({YouTubeSearchPage:e})=>({default:e}))),Ke=i.lazy(()=>b(async()=>{const{CompanyCorePage:e}=await import("./CompanyCorePage-Di4pU7hi.js");return{CompanyCorePage:e}},__vite__mapDeps([27,3,2,4,5,28])).then(({CompanyCorePage:e})=>({default:e}))),$e=i.lazy(()=>b(async()=>{const{AdminDashboardPage:e}=await import("./AdminDashboardPage-FNblYU8t.js");return{AdminDashboardPage:e}},__vite__mapDeps([29,3,1,4,0,2,5,30])).then(({AdminDashboardPage:e})=>({default:e}))),ze=i.lazy(()=>b(async()=>{const{CodePage:e}=await import("./CodePage-BGATDRar.js");return{CodePage:e}},__vite__mapDeps([31,3,2,4,5,11,8,32,33])).then(({CodePage:e})=>({default:e}))),Fe=i.lazy(()=>b(async()=>{const{ExecutionModePage:e}=await import("./ExecutionModePage-DUD0ObAq.js");return{ExecutionModePage:e}},__vite__mapDeps([34,3,2,4,5,11,8,35])).then(({ExecutionModePage:e})=>({default:e}))),Ve=i.lazy(()=>b(async()=>{const{MarketingHome:e}=await import("./MarketingHome-BsyerRpe.js");return{MarketingHome:e}},__vite__mapDeps([36,3,16,4,5,17,23,37])).then(({MarketingHome:e})=>({default:e}))),We=i.lazy(()=>b(async()=>{const{AppSidebar:e}=await import("./AppSidebar-BvftUzzb.js");return{AppSidebar:e}},__vite__mapDeps([38,3,1,4,5])).then(({AppSidebar:e})=>({default:e}))),qe=new Set(["/","/mindcanvas","/planmaster","/tools","/youtube","/code","/pricing","/company-core","/login"]);function Ge(e,t=window.location.hostname){const o=N(t);if(o&&(e==="/"||e==="/tools"))return`/tools/${o.key}`;if(e==="/agent")return"/agent";if(e==="/forgot-password")return"/forgot-password";if(e==="/reset-password")return"/reset-password";let n="/not-found";return e==="/"?n="/":e==="/mindmap"?n="/mindmap":e==="/planagent"?n="/planagent":e==="/execution-mode"?n="/execution-mode":e==="/not-found"?n="/not-found":e.startsWith("/tools/")&&(n=e),qe.has(e)?n=e:e==="/admin/dashboard"&&(n="/admin/dashboard"),n}function Ye(e,t=window.location.hostname){const o=z(t),n=Ge(e,t);return V(o,n)?n:F(o)}function W(e,t=window.location.hostname){const o=Ye(e,t);return{route:o,stalePath:o==="/not-found"&&e!=="/not-found"?e:""}}function M(e){const t=window.location.pathname,{route:o,stalePath:n}=W(t,window.location.hostname);return o==="/not-found"&&t!=="/not-found"?(window.history.replaceState({stalePath:t},"","/not-found"),h.emit("route.notFound.normalize",{source:e,from:n||t,to:"/not-found"})):D(t)!==o&&!(t==="/"&&o.startsWith("/tools/"))&&!(t==="/tools"&&o.startsWith("/tools/"))&&(window.history.replaceState({stalePath:t},"",o),h.emit("productProfile.route.fallback",{source:e,from:t,to:o})),o}function C(e,t,o){if(o===void 0){delete e.dataset[t];return}e.dataset[t]=o}function Xe(){const e=i.useMemo(()=>z(window.location.hostname),[]),t=i.useMemo(()=>N(window.location.hostname),[]),[o,n]=i.useState(()=>W(window.location.pathname,window.location.hostname).route),a=o==="/mindcanvas"||o==="/mindmap",[c,u]=i.useState(()=>a),s=i.useMemo(()=>xe(e,o),[e,o]),[m,p]=i.useState([]);i.useEffect(()=>{n(M("initial"));const l=()=>n(M("popstate"));return window.addEventListener("popstate",l),()=>window.removeEventListener("popstate",l)},[]);const d=i.useCallback(l=>{window.history.pushState({},"",l),n(l)},[]),y=i.useCallback(l=>{n(M(l))},[]);i.useEffect(()=>{!a||c||(u(!0),h.emit("route.keepAlive.mindcanvas",{route:o,mounted:!0,source:"route-activate"}))},[a,c,o]);const g=o==="/planmaster"||o==="/planagent",f=o.startsWith("/tools/")?o.slice(7):null,k=e.marketingTool.enabled&&e.marketingTool.hideAppChrome,E=c||a;return i.useEffect(()=>{const l=document.documentElement,v={productProfile:l.dataset.productProfile,productVariant:l.dataset.productVariant,canonicalHost:l.dataset.canonicalHost,routeCanonical:l.dataset.routeCanonical,routeEnabled:l.dataset.routeEnabled,marketingToolKey:l.dataset.marketingToolKey};return l.dataset.productProfile=e.slug,l.dataset.productVariant=e.variantKey,l.dataset.canonicalHost=e.canonicalHost,l.dataset.routeCanonical=s.canonicalUrl,l.dataset.routeEnabled=s.enabled?"true":"false",e.marketingTool.toolKey?l.dataset.marketingToolKey=e.marketingTool.toolKey:delete l.dataset.marketingToolKey,h.emit("productProfile.route.applied",{route:o,variantKey:e.variantKey,slug:e.slug,canonicalHost:e.canonicalHost,canonicalUrl:s.canonicalUrl,routeEnabled:s.enabled,fallbackRoute:s.fallbackRoute,marketingToolKey:e.marketingTool.toolKey}),()=>{C(l,"productProfile",v.productProfile),C(l,"productVariant",v.productVariant),C(l,"canonicalHost",v.canonicalHost),C(l,"routeCanonical",v.routeCanonical),C(l,"routeEnabled",v.routeEnabled),C(l,"marketingToolKey",v.marketingToolKey)}},[e.canonicalHost,e.marketingTool.toolKey,e.slug,e.variantKey,o,s.canonicalUrl,s.enabled,s.fallbackRoute]),r.jsxs("div",{className:`${a?"app app--canvas":"app"} ${k?"app--mini-tool":""}`,"data-product-profile":e.slug,"data-product-variant":e.variantKey,"data-canonical-host":e.canonicalHost,"data-route-enabled":s.enabled?"true":"false","data-route-canonical":s.canonicalUrl,"data-marketing-tool-key":e.marketingTool.toolKey||void 0,children:[!k&&r.jsx(i.Suspense,{fallback:r.jsx(Qe,{}),children:r.jsx(We,{route:o,navigate:d,canvasActions:a?m:[]})}),r.jsxs("main",{className:"app-main",children:[r.jsx(be,{onRouteReplaced:y}),r.jsx(Pe,{route:o}),r.jsx(ye,{resetKey:o,onNavigateHome:()=>d("/mindcanvas"),children:r.jsxs(i.Suspense,{fallback:r.jsx(Je,{route:o}),children:[o==="/"&&r.jsx(Ve,{navigate:d}),E&&r.jsx("section",{className:"route-keepalive route-keepalive--mindcanvas","data-testid":"mindcanvas-keepalive-host","data-route-keepalive":"mindcanvas","data-route-active":a?"true":"false",hidden:!a,"aria-hidden":a?void 0:"true",children:r.jsx(Le,{navigate:d,onSidebarActionsChange:p})}),g&&r.jsx(Ne,{navigate:d}),o==="/pricing"&&r.jsx(je,{navigate:d}),o==="/login"&&r.jsx(De,{navigate:d}),o==="/forgot-password"&&r.jsx(Ue,{navigate:d}),o==="/reset-password"&&r.jsx(Ie,{navigate:d}),o==="/tools"&&r.jsx(Oe,{navigate:d}),f&&r.jsx(Be,{toolKey:f,navigate:d,miniHost:(t==null?void 0:t.key)===f}),o==="/youtube"&&r.jsx(He,{navigate:d}),(o==="/code"||o==="/agent")&&r.jsx(ze,{}),o==="/execution-mode"&&r.jsx(Fe,{}),o==="/not-found"&&r.jsx(Ze,{navigate:d}),o==="/company-core"&&r.jsx(Ke,{}),o==="/admin/dashboard"&&r.jsx($e,{})]})})]})]})}function Je({route:e}){return i.useEffect(()=>{h.emit("route.lazyFallback.rendered",{route:e})},[e]),r.jsxs("div",{className:"route-lazy-fallback","data-testid":"route-lazy-fallback","data-route":e,children:[r.jsx("span",{className:"route-lazy-spinner","aria-hidden":"true"}),r.jsx("span",{children:"Loading MindExec surface..."})]})}function Qe(){return r.jsxs("aside",{className:"app-sidebar app-sidebar--loading","aria-label":"MindExec navigation loading",children:[r.jsx("div",{className:"sidebar-brand sidebar-placeholder"}),r.jsx("div",{className:"sidebar-divider"}),r.jsx("nav",{className:"sidebar-nav",children:Array.from({length:8},(e,t)=>r.jsx("div",{className:"sidebar-icon sidebar-placeholder"},t))}),r.jsx("div",{className:"sidebar-spacer"}),r.jsx("div",{className:"sidebar-icon sidebar-placeholder"})]})}function Ze({navigate:e}){return r.jsx("div",{className:"page not-found-page",children:r.jsxs("section",{className:"execution-panel",children:[r.jsx("div",{className:"eyebrow",children:"Not Found"}),r.jsx("h1",{children:"Content not found."}),r.jsx("p",{children:"The route exists as a React shell so stale Blazor links land cleanly."}),r.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>e("/"),children:"Go home"})]})})}X();async function et(){await $(),Y.createRoot(document.getElementById("root")).render(r.jsx(Xe,{}))}et();export{Z as A,b as _,_ as a,L as b,rt as c,ie as d,nt as g,$ as p,B as s};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/supabaseAuthAdapter-4HB3Xzco.js","assets/productionAdapterConfig-C5jfk6oG.js","assets/canvas-runtime-Bc1G-FZ_.js","assets/vendor-react-BXzpOyCS.js","assets/app-runtime-xD2Z3NdN.js","assets/vendor-icons-DE3gIReG.js","assets/MindCanvas-BW9vO7KM.js","assets/storage-CbuZ97zN.js","assets/runtimeSettingsPersistenceProjection-BoNWmYjU.js","assets/vendor-msgpack-BE8aAsr3.js","assets/toolHandoff-D5e5f7t5.js","assets/executionModeSettings-NJqurj-o.js","assets/MindCanvas-DtqOZnoW.css","assets/PlanMasterPage-DItAWGne.js","assets/PlanMasterPage-CJ36rep-.css","assets/PricingPage-CH6jDgJC.js","assets/LaunchLeadCapture-Bx9LM0IX.js","assets/LaunchLeadCapture-CiRI1shz.css","assets/pricingCheckoutShell-O-DnwmbU.js","assets/PricingPage-Cg_0i_ZR.css","assets/AuthPages-BmpDAK3N.js","assets/AuthPages-BrH6kRcv.css","assets/ToolPages-CmY0jdlo.js","assets/marketingTools-DN_rnHeB.js","assets/ToolPages-DIB187pZ.css","assets/YouTubeSearchPage-CntpQkdZ.js","assets/YouTubeSearchPage-IPPa_BIH.css","assets/CompanyCorePage-DZYu-7IF.js","assets/CompanyCorePage-ChBnq1ve.css","assets/AdminDashboardPage-3VUPNjhD.js","assets/AdminDashboardPage-B2vz2Px9.css","assets/CodePage-BrqCtiA1.js","assets/code-agent-runtime-B5PPZd1t.js","assets/CodePage-Bncc352E.css","assets/ExecutionModePage-AtB7HGoD.js","assets/ExecutionModePage-TLuld9l3.css","assets/MarketingHome-BsyerRpe.js","assets/MarketingHome-DPzaYzA_.css","assets/AppSidebar-CiYpGRU4.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var q=Object.defineProperty;var G=(e,t,o)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var x=(e,t,o)=>G(e,typeof t!="symbol"?t+"":t,o);import{r as i,j as r,R as Y}from"./vendor-react-BXzpOyCS.js";import{R as h,i as X}from"./app-runtime-xD2Z3NdN.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const c of a)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&n(u)}).observe(document,{childList:!0,subtree:!0});function o(a){const c={};return a.integrity&&(c.integrity=a.integrity),a.referrerPolicy&&(c.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?c.credentials="include":a.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function n(a){if(a.ep)return;a.ep=!0;const c=o(a);fetch(a.href,c)}})();const J="modulepreload",Q=function(e){return"/"+e},U={},b=function(t,o,n){let a=Promise.resolve();if(o&&o.length>0){let u=function(p){return Promise.all(p.map(d=>Promise.resolve(d).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),m=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));a=u(o.map(p=>{if(p=Q(p),p in U)return;U[p]=!0;const d=p.endsWith(".css"),y=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${y}`))return;const g=document.createElement("link");if(g.rel=d?"stylesheet":J,d||(g.as="script"),g.crossOrigin="",g.href=p,m&&g.setAttribute("nonce",m),document.head.appendChild(g),d)return new Promise((f,k)=>{g.addEventListener("load",f),g.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${p}`)))})}))}function c(u){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=u,window.dispatchEvent(s),!s.defaultPrevented)throw u}return a.then(u=>{for(const s of u||[])s.status==="rejected"&&c(s.reason);return t().catch(c)})},L="mindexec-local-auth-shell-v2",Z="mindexec-react-auth-shell-session-changed",ee="supabase-callback@mindexec.local";function te(e){const t=e;return!!(t&&typeof t=="object"&&typeof t.userId=="string"&&typeof t.email=="string"&&t.provider==="Google"&&typeof t.signedInAt=="string")}function oe(e){const t=e.toLowerCase();return t.includes("access_token=")||t.includes("refresh_token=")||t.includes("provider_token=")||t.includes("provider_refresh_token=")||t.includes("expires_in=")||t.includes("token_type=")||t.includes("type=recovery")||t.includes("type=invite")||t.includes("error=")||t.includes("error_description=")||t.includes("code=")}function ae(e){const t=e.split("=",2)[0].toLowerCase();return t==="access_token"||t==="refresh_token"||t==="provider_token"||t==="provider_refresh_token"||t==="expires_in"||t==="expires_at"||t==="token_type"||t==="type"||t==="error"||t==="error_code"||t==="error_description"||t==="code"}function I(e){const t=e.trim().replace(/^[?#]/,"");return t?t.split("&").filter(Boolean).filter(n=>!ae(n)).join("&"):""}function ne(e){const t=(e||"").trim();if(!t||!t.startsWith("/")||t.startsWith("//")||t.includes("\\"))return"";try{const o=new URL(t,window.location.origin);return o.origin!==window.location.origin?"":`${o.pathname}${o.search}${o.hash}`}catch{return""}}function re(e){const t=new URL(e,window.location.origin),o=`${t.search}&${t.hash}`,n=oe(o);if(!n)return{hasAuthPayload:!1,cleanedPath:`${t.pathname}${t.search}${t.hash}`,shouldCreateLocalShell:!1,shouldRouteToMindCanvas:!1,hasError:!1,hasRecovery:!1,hasInvite:!1,hasCode:!1,hasToken:!1};const a=I(t.search),c=I(t.hash),u=/(?:^|[&#?])error=/i.test(o)||/(?:^|[&#?])error_description=/i.test(o),s=/(?:^|[&#?])type=recovery(?:&|$)/i.test(o),m=/(?:^|[&#?])type=invite(?:&|$)/i.test(o),p=/(?:^|[&#?])code=/i.test(o),d=/(?:^|[&#?])(?:access_token|refresh_token)=/i.test(o),y=ne(t.searchParams.get("next"));let g=`${t.pathname}${a?`?${a}`:""}${c?`#${c}`:""}`;const f=t.pathname==="/"||t.pathname==="",k=t.pathname==="/login",E=!u&&!s&&!m&&(p||d),l=E&&!y&&(f||k);if(y&&E)g=y;else if(l){const v=new URLSearchParams(a);v.delete("next");const S=v.toString();g=`/mindcanvas${S?`?${S}`:""}`}return{hasAuthPayload:n,cleanedPath:g,shouldCreateLocalShell:!u&&!s&&!m&&(p||d),shouldRouteToMindCanvas:l,hasError:u,hasRecovery:s,hasInvite:m,hasCode:p,hasToken:d}}function se(e){return`local-google-${e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-")||"user"}`}function O(e){try{window.dispatchEvent(new CustomEvent(Z,{detail:{signedIn:!!e,source:(e==null?void 0:e.source)??"cleared",hasEmail:!!(e!=null&&e.email)}}))}catch{}}function nt(){try{const e=window.localStorage.getItem(L);if(!e)return null;const t=JSON.parse(e);return te(t)?t:null}catch{return null}}function ie(e="builder@mindexec.local",t="manual-google-shell"){const o=e.trim().toLowerCase()||"builder@mindexec.local",n={userId:typeof crypto<"u"&&"randomUUID"in crypto?`local-google-${crypto.randomUUID()}`:se(o),email:o,provider:"Google",signedInAt:new Date().toISOString(),source:t};return B(n)}function B(e){try{window.localStorage.setItem(L,JSON.stringify(e))}catch{}return h.emit(e.source==="supabase-provider-session"?"auth.supabase.sessionShell":"auth.google.localShell",{provider:e.provider,hasEmail:!!e.email,source:e.source}),O(e),e}function rt(){try{window.localStorage.removeItem(L)}catch{}h.emit("auth.localShell.cleared"),O(null)}const le={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},ce="mindexec-production-adapter-runtime-env-loaded";function H(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function w(e,t){let o=e;for(const n of t){if(!H(o))return"";o=o[n]}return typeof o=="string"?o.trim():""}function de(e,t){let o=e;for(const n of t){if(!H(o)||!(n in o))return null;o=o[n]}if(typeof o=="boolean")return o;if(typeof o=="string"){const n=o.trim().toLowerCase();if(["1","true","yes","on"].includes(n))return!0;if(["0","false","no","off"].includes(n))return!1}return null}function A(e,t,o){o&&(e[t]=o)}function ue(e,t,o){o!==null&&(e[t]=String(o))}function pe(e){return de(e,["ProjectStorage","CloudProjectsEnabled"])}function me(e){const t=w(e,["Supabase","Url"]),o=w(e,["Supabase","PublishableKey"])||w(e,["Supabase","Key"])||w(e,["Supabase","AnonKey"]),n=w(e,["Supabase","ServiceRoleKey"]);return!!(t&&o&&!n)}function he(e){const t={},o=pe(e),n=me(e),a=w(e,["Supabase","Url"]),c=w(e,["Supabase","PublishableKey"])||w(e,["Supabase","Key"])||w(e,["Supabase","AnonKey"]),u=w(e,["CloudflareR2","PublicBaseUrl"])||w(e,["CloudStorage","PublicBaseUrl"])||w(e,["CloudStorage","PublicUrl"]);return ue(t,"VITE_MINDEXEC_CLOUD_PROJECTS_ENABLED",o),n&&(A(t,"VITE_MINDEXEC_SUPABASE_URL",a),A(t,"VITE_MINDEXEC_SUPABASE_PUBLISHABLE_KEY",c)),A(t,"VITE_MINDEXEC_CLOUD_STORAGE_PUBLIC_URL",u),t}function ge(){return le??{}}function K(){return typeof window>"u"?{}:window.__MINDEXEC_PRODUCTION_ADAPTER_RUNTIME_ENV__??{}}function fe(e){if(!(typeof window>"u")){window.__MINDEXEC_PRODUCTION_ADAPTER_RUNTIME_ENV__={...K(),...e};try{window.dispatchEvent(new CustomEvent(ce,{detail:{keys:Object.keys(e).sort()}}))}catch{}}}function _(){return{...K(),...ge()}}let T=null;async function $(e=typeof fetch=="function"?fetch.bind(globalThis):null){return typeof window>"u"||!e?_():T||(T=(async()=>{try{const t=await e("/appsettings.json",{cache:"no-store",credentials:"same-origin"});if(!t.ok)return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:`http-${t.status}`}),_();const o=t.headers.get("content-type")||"";if(o&&!o.toLowerCase().includes("json"))return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:"non-json-response"}),_();const n=await t.json(),a=he(n);return fe(a),h.emit("productionAdapter.runtimeConfig.loaded",{source:"appsettings.json",keys:Object.keys(a).sort()}),_()}catch(t){return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:t instanceof Error?t.message:String(t)}),_()}})(),T)}function be({onRouteReplaced:e}){const t=i.useRef(!1);return i.useEffect(()=>{if(t.current)return;t.current=!0,(async()=>{const n=window.location.href,a=re(n);if(!a.hasAuthPayload)return;const c=await $();let u={mode:"not-checked",canAttempt:!1},s=!1,m="",p=!1,d=null,y=null;if(!a.hasError&&!a.hasRecovery&&!a.hasInvite&&(a.hasCode||a.hasToken)){const{completeSupabaseAuthCallback:f,resolveSupabaseAuthAdapterState:k,syncSupabaseAuthSessionToLocalBridge:E}=await b(async()=>{const{completeSupabaseAuthCallback:l,resolveSupabaseAuthAdapterState:v,syncSupabaseAuthSessionToLocalBridge:S}=await import("./supabaseAuthAdapter-4HB3Xzco.js");return{completeSupabaseAuthCallback:l,resolveSupabaseAuthAdapterState:v,syncSupabaseAuthSessionToLocalBridge:S}},__vite__mapDeps([0,1,2,3,4,5]));u=k(c),p=u.canAttempt,d=f,y=E}if(p&&d)try{const f=await d(c,n);f.session&&(B({...f.session,source:"supabase-provider-session"}),s=!0,y&&await y(c,"auth-callback"))}catch(f){m=f instanceof Error?f.message:String(f)}else a.shouldCreateLocalShell&&ie(ee,"supabase-callback-shell");h.emit(a.hasError||m?"auth.callback.error":"auth.callback.cleaned",{cleanedPath:a.cleanedPath,shouldCreateLocalShell:!p&&a.shouldCreateLocalShell,shouldRouteToMindCanvas:a.shouldRouteToMindCanvas,hasCode:a.hasCode,hasToken:a.hasToken,hasRecovery:a.hasRecovery,hasInvite:a.hasInvite,providerMode:u.mode,providerAttempted:p,providerSessionCreated:s,providerError:m});const g=`${window.location.pathname}${window.location.search}${window.location.hash}`;a.cleanedPath!==g&&(window.history.replaceState({authCallbackCleaned:!0},"",a.cleanedPath),e("auth-callback-bootstrap"))})()},[e]),null}class ye extends i.Component{constructor(){super(...arguments);x(this,"state",{error:null});x(this,"retry",()=>{this.setState({error:null}),h.emit("runtime.errorBoundary.reset",{resetKey:this.props.resetKey,reason:"manual-retry"})})}static getDerivedStateFromError(o){return{error:o}}componentDidCatch(o,n){const a=(o==null?void 0:o.message)||"Unknown runtime error.";h.emit("runtime.errorBoundary.caught",{resetKey:this.props.resetKey,message:a,stack:(o==null?void 0:o.stack)||"",componentStack:n.componentStack}),console.error("[LoggingErrorBoundary] Unhandled React error.",o,n)}componentDidUpdate(o){o.resetKey!==this.props.resetKey&&this.state.error&&(this.setState({error:null}),h.emit("runtime.errorBoundary.reset",{from:o.resetKey,to:this.props.resetKey,reason:"route-change"}))}render(){const{error:o}=this.state;return o?r.jsx("div",{className:"page runtime-error-page","data-testid":"runtime-error-boundary","data-error-boundary-reset-key":this.props.resetKey,children:r.jsxs("section",{className:"execution-panel",children:[r.jsx("div",{className:"eyebrow",children:"Runtime Guard"}),r.jsx("h1",{children:"Something broke inside this React surface."}),r.jsx("p",{children:"The error was captured locally so the whole app shell can stay recoverable."}),r.jsxs("div",{className:"runtime-error-message","data-testid":"runtime-error-boundary-message",children:[r.jsx("span",{className:"runtime-error-symbol","aria-hidden":"true",children:"!"}),r.jsx("span",{children:o.message||"Unknown runtime error."})]}),r.jsxs("div",{className:"action-row",children:[r.jsx("button",{className:"btn btn-primary",type:"button",onClick:this.retry,"data-testid":"runtime-error-boundary-retry",children:"Retry"}),this.props.onNavigateHome&&r.jsx("button",{className:"btn btn-secondary",type:"button",onClick:this.props.onNavigateHome,"data-testid":"runtime-error-boundary-home",children:"MindCanvas"})]})]})}):this.props.children}}const we="main",ve="h1",R="data-route-focus-target",ke=30;function Pe({route:e,rootSelector:t=we,selector:o=ve}){return i.useEffect(()=>{let n=!1,a=0;const c=u=>{if(n)return;const s=document.querySelector(t),m=(s==null?void 0:s.querySelector(o))??document.querySelector(o);for(const p of document.querySelectorAll(`[${R}="true"]`))p.removeAttribute(R);if(!m){if(u<ke){a=window.requestAnimationFrame(()=>c(u+1));return}h.emit("route.focusOnNavigate.skipped",{route:e,selector:o,reason:"missing-target",attempts:u});return}m.hasAttribute("tabindex")||m.setAttribute("tabindex","-1"),m.setAttribute(R,"true"),m.focus({preventScroll:!1}),h.emit("route.focusOnNavigate.applied",{route:e,selector:o,tagName:m.tagName.toLowerCase(),text:(m.textContent||"").trim().slice(0,90),attempts:u})};return a=window.requestAnimationFrame(()=>c(1)),()=>{n=!0,window.cancelAnimationFrame(a)}},[e,t,o]),null}const Ee=[{key:"markdown-viewer",liveUrl:"https://mdview-die.pages.dev",hostnames:["mdview.pages.dev","mdview-die.pages.dev","mdview.mindexec.io","markdown-viewer.pages.dev","markdown-viewer.mindexec.io"],title:"Free Online Markdown Viewer",heroEyebrow:"Free online markdown viewer",heroTitle:"Preview Markdown instantly in your browser",heroSubtitle:"Paste or open a markdown file, review the rendered result, and move bigger writing work into MindCanvas when it needs structure.",privacyNote:"Runs locally in your browser. No upload required."},{key:"bulk-markdown-viewer",liveUrl:"https://bulkmd.pages.dev",hostnames:["bulkmd.pages.dev","bulkmd.mindexec.io","bulk-markdown-viewer.pages.dev","bulk-markdown-viewer.mindexec.io"],title:"Bulk Markdown Viewer",heroEyebrow:"Bulk markdown preview",heroTitle:"Review multiple markdown snippets at once",heroSubtitle:"Paste a stack of markdown entries and scan them locally before turning the useful pieces into a MindCanvas board.",privacyNote:"Local browser-only preview. No account and no upload step."},{key:"readme-previewer",liveUrl:"https://readme-1o4.pages.dev",hostnames:["readme.pages.dev","readme-1o4.pages.dev","readme-previewer.pages.dev","readme.mindexec.io","readme-previewer.mindexec.io"],title:"README Previewer",heroEyebrow:"README previewer",heroTitle:"Preview README markdown before you publish",heroSubtitle:"Check headings, tables, links, and launch notes quickly, then keep bigger documentation work organized in MindCanvas.",privacyNote:"Local preview for README text. No repository access required."},{key:"markdown-to-html",liveUrl:"https://md2html-4r7.pages.dev",hostnames:["md2html.pages.dev","md2html-4r7.pages.dev","md2html.mindexec.io","markdown-to-html.pages.dev","markdown-to-html.mindexec.io"],title:"Markdown to HTML Preview",heroEyebrow:"Markdown to HTML",heroTitle:"Turn markdown into clean HTML preview",heroSubtitle:"Render markdown locally, copy the HTML shape, and move reusable publishing notes into MindCanvas.",privacyNote:"Conversion runs in-browser and keeps your text local."},{key:"markdown-outline",liveUrl:"https://mdoutln.pages.dev",hostnames:["mdoutln.pages.dev","mdoutln.mindexec.io","markdown-outline.pages.dev","markdown-outline.mindexec.io"],title:"Markdown Outline Generator",heroEyebrow:"Markdown outline generator",heroTitle:"Extract a document outline from markdown",heroSubtitle:"Scan headings, section depth, and missing structure before your document becomes a larger project.",privacyNote:"Outline extraction runs locally in this browser."},{key:"markdown-table-formatter",liveUrl:"https://mdtable-3ik.pages.dev",hostnames:["mdtable.pages.dev","mdtable-3ik.pages.dev","mdtable.mindexec.io","markdown-table-formatter.pages.dev","markdown-table-formatter.mindexec.io"],title:"Markdown Table Formatter",heroEyebrow:"Markdown table formatter",heroTitle:"Clean up markdown tables locally",heroSubtitle:"Paste a rough markdown table and get a cleaner version for docs, READMEs, and launch notes.",privacyNote:"Table formatting happens locally with no upload."},{key:"markdown-link-checker",liveUrl:"https://markdown-link-checker.pages.dev",hostnames:["mdcheck.pages.dev","markdown-link-checker.pages.dev","mdcheck.mindexec.io","markdown-link-checker.mindexec.io"],title:"Markdown Link Checker",heroEyebrow:"Markdown link checker",heroTitle:"Catch risky markdown links before publishing",heroSubtitle:"Find empty, localhost, JavaScript, and suspicious links locally before a README or docs page goes live.",privacyNote:"Link checks run locally against the pasted markdown."},{key:"browser-notepad",liveUrl:"https://quickpad.pages.dev",hostnames:["quickpad.pages.dev","quickpad.mindexec.io","browser-notepad.pages.dev","browser-notepad.mindexec.io"],title:"Browser Notepad",heroEyebrow:"Browser notepad",heroTitle:"Write quick notes without a sign-in",heroSubtitle:"Capture rough thoughts locally, then move the notes worth keeping into MindCanvas.",privacyNote:"Notes are stored locally in this browser unless you copy them elsewhere."},{key:"clipboard-board",liveUrl:"https://clipbrd.pages.dev",hostnames:["clipbrd.pages.dev","clipbrd.mindexec.io","clipboard-board.pages.dev","clipboard-board.mindexec.io"],title:"Local Clipboard Board",heroEyebrow:"Local clipboard board",heroTitle:"Collect snippets into a small local board",heroSubtitle:"Paste short ideas, snippets, and fragments into one local surface before promoting the useful set to MindCanvas.",privacyNote:"Clipboard notes stay local to this browser session."}];function N(e){const t=e.toLowerCase().replace(/^www\./,"");return Ee.find(o=>o.hostnames.some(n=>n.toLowerCase()===t))}const Ce={enabled:!1,hideAppChrome:!0,allowMindCanvasRoute:!1,homeRoute:"/",toolKey:"",heroEyebrow:"Free local tool",heroTitle:"",heroSubtitle:"",primaryCtaText:"Open MindCanvas",primaryCtaHref:"https://mindexec.pages.dev/mindcanvas",secondaryCtaText:"",secondaryCtaHref:"",publicUrl:"",privacyNote:"Runs locally in your browser. No login. No database storage."},_e={enableAgentWorkspace:!0,enableCodeWorkspace:!0,enablePlanWorkspace:!0,enableCompanyCore:!0,enableExecutionTest:!0,enableTemplateStudio:!0,enableProjectPopup:!0,enablePromptDebugger:!0,enablePointBadge:!0,enableResetData:!0},P={variantKey:"platform",slug:"mindexec",brandName:"MindExec",productName:"MindCanvas",appTitle:"MindExec",workspaceNounSingular:"canvas",workspaceNounPlural:"canvases",signInTitle:"Welcome Back",signUpTitle:"Create Account",signInSubtitle:"Sign in to access your MindCanvas workspace.",signUpSubtitle:"Sign up to start organizing your ideas on a visual canvas.",primaryCheckoutProvider:"dodo",runtimeHost:"",canonicalHost:"mindexec.pages.dev",features:_e,marketingTool:Ce};function z(e){const t=j(e),o=N(t);return o?Ae(t,o):{...P,runtimeHost:t,canonicalHost:P.canonicalHost,features:{...P.features},marketingTool:{...P.marketingTool}}}function Se(e){return e.marketingTool.enabled?D(e.marketingTool.homeRoute):"/"}function F(e){return e.marketingTool.enabled&&e.marketingTool.toolKey?`/tools/${e.marketingTool.toolKey}`:Se(e)}function Te(e,t){const o=j(e.canonicalHost||e.runtimeHost);return o?`https://${o}${D(t)}`:""}function V(e,t){if(e.marketingTool.enabled&&!e.marketingTool.allowMindCanvasRoute&&(t==="/mindcanvas"||t==="/mindmap"))return!1;switch(t){case"/agent":return e.features.enableAgentWorkspace;case"/code":return e.features.enableCodeWorkspace;case"/planmaster":case"/planagent":return e.features.enablePlanWorkspace;case"/company-core":return e.features.enableCompanyCore;case"/execution-mode":return e.features.enableExecutionTest;default:return!0}}function xe(e,t){const o=V(e,t),n=F(e),a=o?t:n;return{route:t,enabled:o,fallbackRoute:n,canonicalUrl:Te(e,a),title:Re(e,a),description:Me(e,a)}}function j(e){const t=String(e??"").trim();if(!t)return"";try{return new URL(t).hostname.trim().toLowerCase().replace(/^www\./,"")}catch{return t.trim().replace(/^https?:\/\//i,"").replace(/^www\./,"").replace(/\/+$/,"").toLowerCase()}}function D(e){if(!e||!String(e).trim())return"/";let t=String(e).trim();return t.startsWith("/")||(t=`/${t}`),t.length>1&&(t=t.replace(/\/+$/,"")),t||"/"}function Ae(e,t){const o=j(t.liveUrl)||e;return{...P,variantKey:"mini-tool",slug:t.key,brandName:t.title,productName:t.title,appTitle:`${t.title} - Free local browser tool`,runtimeHost:e,canonicalHost:o,features:{...P.features,enableAgentWorkspace:!1,enableCodeWorkspace:!1,enablePlanWorkspace:!1,enableCompanyCore:!1,enableExecutionTest:!1,enableTemplateStudio:!1,enableProjectPopup:!1,enablePromptDebugger:!1,enablePointBadge:!1,enableResetData:!1},marketingTool:{...P.marketingTool,enabled:!0,hideAppChrome:!0,allowMindCanvasRoute:!1,homeRoute:"/",toolKey:t.key,heroEyebrow:t.heroEyebrow,heroTitle:t.heroTitle,heroSubtitle:t.heroSubtitle,primaryCtaText:"Open MindCanvas",primaryCtaHref:"https://mindexec.pages.dev/mindcanvas",secondaryCtaText:"More free tools",secondaryCtaHref:"https://mindexec.pages.dev/tools",publicUrl:t.liveUrl,privacyNote:t.privacyNote}}}function Re(e,t){if(e.marketingTool.enabled&&t.startsWith("/tools/"))return e.appTitle;switch(t){case"/mindcanvas":case"/mindmap":return"MindCanvas | MindExec";case"/planmaster":case"/planagent":return"PlanMaster | MindExec";case"/pricing":return"MindExec Pricing";case"/login":return e.signInTitle;case"/forgot-password":return"Reset your MindExec password";case"/reset-password":return"Set a new MindExec password";case"/tools":return"Free Browser Tools | MindExec";case"/youtube":return"YouTube Capture | MindExec";case"/code":return"CodeMaster | MindExec";case"/agent":return"Agent Workspace | MindExec";case"/execution-mode":return"Execution Mode | MindExec";case"/company-core":return"Company Core | MindExec";case"/admin/dashboard":return"Admin Dashboard | MindExec";case"/not-found":return"Content not found | MindExec";case"/":default:return e.appTitle}}function Me(e,t){if(e.marketingTool.enabled)return e.marketingTool.heroSubtitle||e.marketingTool.privacyNote;switch(t){case"/mindcanvas":case"/mindmap":return"MindCanvas keeps notes, assets, AI tasks, and execution evidence together on a local-first visual board.";case"/planmaster":case"/planagent":return"PlanMaster turns goals into practical plans, stages, and execution checklists.";case"/pricing":return"MindExec pricing for free local tools and paid MindCanvas project workflows.";case"/tools":return"Free local browser tools that feed larger MindExec and MindCanvas workflows.";case"/code":case"/agent":return"CodeMaster previews code workflows and adapter-gated agent execution for local projects.";case"/execution-mode":return"Execution Mode tests deterministic browser-local Concept IR before live adapters are connected.";case"/company-core":return"Company Core organizes SaaS blueprint, growth, approval, and publishing decisions.";default:return"MindExec is an AI execution canvas for solo builders, researchers, developers, and creators."}}const Le=i.lazy(()=>b(async()=>{const{MindCanvas:e}=await import("./MindCanvas-BW9vO7KM.js");return{MindCanvas:e}},__vite__mapDeps([6,3,7,2,4,5,8,9,1,0,10,11,12])).then(({MindCanvas:e})=>({default:e}))),Ne=i.lazy(()=>b(async()=>{const{PlanMasterPage:e}=await import("./PlanMasterPage-DItAWGne.js");return{PlanMasterPage:e}},__vite__mapDeps([13,3,7,2,4,5,8,14])).then(({PlanMasterPage:e})=>({default:e}))),je=i.lazy(()=>b(async()=>{const{PricingPage:e}=await import("./PricingPage-CH6jDgJC.js");return{PricingPage:e}},__vite__mapDeps([15,3,16,4,5,17,18,1,0,2,19])).then(({PricingPage:e})=>({default:e}))),De=i.lazy(()=>b(async()=>{const{LoginPage:e}=await import("./AuthPages-BmpDAK3N.js");return{LoginPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({LoginPage:e})=>({default:e}))),Ue=i.lazy(()=>b(async()=>{const{ForgotPasswordPage:e}=await import("./AuthPages-BmpDAK3N.js");return{ForgotPasswordPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({ForgotPasswordPage:e})=>({default:e}))),Ie=i.lazy(()=>b(async()=>{const{ResetPasswordPage:e}=await import("./AuthPages-BmpDAK3N.js");return{ResetPasswordPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({ResetPasswordPage:e})=>({default:e}))),Oe=i.lazy(()=>b(async()=>{const{ToolsDirectoryPage:e}=await import("./ToolPages-CmY0jdlo.js");return{ToolsDirectoryPage:e}},__vite__mapDeps([22,3,23,2,4,5,10,24])).then(({ToolsDirectoryPage:e})=>({default:e}))),Be=i.lazy(()=>b(async()=>{const{MarketingToolPage:e}=await import("./ToolPages-CmY0jdlo.js");return{MarketingToolPage:e}},__vite__mapDeps([22,3,23,2,4,5,10,24])).then(({MarketingToolPage:e})=>({default:e}))),He=i.lazy(()=>b(async()=>{const{YouTubeSearchPage:e}=await import("./YouTubeSearchPage-CntpQkdZ.js");return{YouTubeSearchPage:e}},__vite__mapDeps([25,3,2,4,5,10,26])).then(({YouTubeSearchPage:e})=>({default:e}))),Ke=i.lazy(()=>b(async()=>{const{CompanyCorePage:e}=await import("./CompanyCorePage-DZYu-7IF.js");return{CompanyCorePage:e}},__vite__mapDeps([27,3,2,4,5,28])).then(({CompanyCorePage:e})=>({default:e}))),$e=i.lazy(()=>b(async()=>{const{AdminDashboardPage:e}=await import("./AdminDashboardPage-3VUPNjhD.js");return{AdminDashboardPage:e}},__vite__mapDeps([29,3,1,4,0,2,5,30])).then(({AdminDashboardPage:e})=>({default:e}))),ze=i.lazy(()=>b(async()=>{const{CodePage:e}=await import("./CodePage-BrqCtiA1.js");return{CodePage:e}},__vite__mapDeps([31,3,2,4,5,11,8,32,33])).then(({CodePage:e})=>({default:e}))),Fe=i.lazy(()=>b(async()=>{const{ExecutionModePage:e}=await import("./ExecutionModePage-AtB7HGoD.js");return{ExecutionModePage:e}},__vite__mapDeps([34,3,2,4,5,11,8,35])).then(({ExecutionModePage:e})=>({default:e}))),Ve=i.lazy(()=>b(async()=>{const{MarketingHome:e}=await import("./MarketingHome-BsyerRpe.js");return{MarketingHome:e}},__vite__mapDeps([36,3,16,4,5,17,23,37])).then(({MarketingHome:e})=>({default:e}))),We=i.lazy(()=>b(async()=>{const{AppSidebar:e}=await import("./AppSidebar-CiYpGRU4.js");return{AppSidebar:e}},__vite__mapDeps([38,3,1,4,5])).then(({AppSidebar:e})=>({default:e}))),qe=new Set(["/","/mindcanvas","/planmaster","/tools","/youtube","/code","/pricing","/company-core","/login"]);function Ge(e,t=window.location.hostname){const o=N(t);if(o&&(e==="/"||e==="/tools"))return`/tools/${o.key}`;if(e==="/agent")return"/agent";if(e==="/forgot-password")return"/forgot-password";if(e==="/reset-password")return"/reset-password";let n="/not-found";return e==="/"?n="/":e==="/mindmap"?n="/mindmap":e==="/planagent"?n="/planagent":e==="/execution-mode"?n="/execution-mode":e==="/not-found"?n="/not-found":e.startsWith("/tools/")&&(n=e),qe.has(e)?n=e:e==="/admin/dashboard"&&(n="/admin/dashboard"),n}function Ye(e,t=window.location.hostname){const o=z(t),n=Ge(e,t);return V(o,n)?n:F(o)}function W(e,t=window.location.hostname){const o=Ye(e,t);return{route:o,stalePath:o==="/not-found"&&e!=="/not-found"?e:""}}function M(e){const t=window.location.pathname,{route:o,stalePath:n}=W(t,window.location.hostname);return o==="/not-found"&&t!=="/not-found"?(window.history.replaceState({stalePath:t},"","/not-found"),h.emit("route.notFound.normalize",{source:e,from:n||t,to:"/not-found"})):D(t)!==o&&!(t==="/"&&o.startsWith("/tools/"))&&!(t==="/tools"&&o.startsWith("/tools/"))&&(window.history.replaceState({stalePath:t},"",o),h.emit("productProfile.route.fallback",{source:e,from:t,to:o})),o}function C(e,t,o){if(o===void 0){delete e.dataset[t];return}e.dataset[t]=o}function Xe(){const e=i.useMemo(()=>z(window.location.hostname),[]),t=i.useMemo(()=>N(window.location.hostname),[]),[o,n]=i.useState(()=>W(window.location.pathname,window.location.hostname).route),a=o==="/mindcanvas"||o==="/mindmap",[c,u]=i.useState(()=>a),s=i.useMemo(()=>xe(e,o),[e,o]),[m,p]=i.useState([]);i.useEffect(()=>{n(M("initial"));const l=()=>n(M("popstate"));return window.addEventListener("popstate",l),()=>window.removeEventListener("popstate",l)},[]);const d=i.useCallback(l=>{window.history.pushState({},"",l),n(l)},[]),y=i.useCallback(l=>{n(M(l))},[]);i.useEffect(()=>{!a||c||(u(!0),h.emit("route.keepAlive.mindcanvas",{route:o,mounted:!0,source:"route-activate"}))},[a,c,o]);const g=o==="/planmaster"||o==="/planagent",f=o.startsWith("/tools/")?o.slice(7):null,k=e.marketingTool.enabled&&e.marketingTool.hideAppChrome,E=c||a;return i.useEffect(()=>{const l=document.documentElement,v={productProfile:l.dataset.productProfile,productVariant:l.dataset.productVariant,canonicalHost:l.dataset.canonicalHost,routeCanonical:l.dataset.routeCanonical,routeEnabled:l.dataset.routeEnabled,marketingToolKey:l.dataset.marketingToolKey};return l.dataset.productProfile=e.slug,l.dataset.productVariant=e.variantKey,l.dataset.canonicalHost=e.canonicalHost,l.dataset.routeCanonical=s.canonicalUrl,l.dataset.routeEnabled=s.enabled?"true":"false",e.marketingTool.toolKey?l.dataset.marketingToolKey=e.marketingTool.toolKey:delete l.dataset.marketingToolKey,h.emit("productProfile.route.applied",{route:o,variantKey:e.variantKey,slug:e.slug,canonicalHost:e.canonicalHost,canonicalUrl:s.canonicalUrl,routeEnabled:s.enabled,fallbackRoute:s.fallbackRoute,marketingToolKey:e.marketingTool.toolKey}),()=>{C(l,"productProfile",v.productProfile),C(l,"productVariant",v.productVariant),C(l,"canonicalHost",v.canonicalHost),C(l,"routeCanonical",v.routeCanonical),C(l,"routeEnabled",v.routeEnabled),C(l,"marketingToolKey",v.marketingToolKey)}},[e.canonicalHost,e.marketingTool.toolKey,e.slug,e.variantKey,o,s.canonicalUrl,s.enabled,s.fallbackRoute]),r.jsxs("div",{className:`${a?"app app--canvas":"app"} ${k?"app--mini-tool":""}`,"data-product-profile":e.slug,"data-product-variant":e.variantKey,"data-canonical-host":e.canonicalHost,"data-route-enabled":s.enabled?"true":"false","data-route-canonical":s.canonicalUrl,"data-marketing-tool-key":e.marketingTool.toolKey||void 0,children:[!k&&r.jsx(i.Suspense,{fallback:r.jsx(Qe,{}),children:r.jsx(We,{route:o,navigate:d,canvasActions:a?m:[]})}),r.jsxs("main",{className:"app-main",children:[r.jsx(be,{onRouteReplaced:y}),r.jsx(Pe,{route:o}),r.jsx(ye,{resetKey:o,onNavigateHome:()=>d("/mindcanvas"),children:r.jsxs(i.Suspense,{fallback:r.jsx(Je,{route:o}),children:[o==="/"&&r.jsx(Ve,{navigate:d}),E&&r.jsx("section",{className:"route-keepalive route-keepalive--mindcanvas","data-testid":"mindcanvas-keepalive-host","data-route-keepalive":"mindcanvas","data-route-active":a?"true":"false",hidden:!a,"aria-hidden":a?void 0:"true",children:r.jsx(Le,{navigate:d,onSidebarActionsChange:p})}),g&&r.jsx(Ne,{navigate:d}),o==="/pricing"&&r.jsx(je,{navigate:d}),o==="/login"&&r.jsx(De,{navigate:d}),o==="/forgot-password"&&r.jsx(Ue,{navigate:d}),o==="/reset-password"&&r.jsx(Ie,{navigate:d}),o==="/tools"&&r.jsx(Oe,{navigate:d}),f&&r.jsx(Be,{toolKey:f,navigate:d,miniHost:(t==null?void 0:t.key)===f}),o==="/youtube"&&r.jsx(He,{navigate:d}),(o==="/code"||o==="/agent")&&r.jsx(ze,{}),o==="/execution-mode"&&r.jsx(Fe,{}),o==="/not-found"&&r.jsx(Ze,{navigate:d}),o==="/company-core"&&r.jsx(Ke,{}),o==="/admin/dashboard"&&r.jsx($e,{})]})})]})]})}function Je({route:e}){return i.useEffect(()=>{h.emit("route.lazyFallback.rendered",{route:e})},[e]),r.jsxs("div",{className:"route-lazy-fallback","data-testid":"route-lazy-fallback","data-route":e,children:[r.jsx("span",{className:"route-lazy-spinner","aria-hidden":"true"}),r.jsx("span",{children:"Loading MindExec surface..."})]})}function Qe(){return r.jsxs("aside",{className:"app-sidebar app-sidebar--loading","aria-label":"MindExec navigation loading",children:[r.jsx("div",{className:"sidebar-brand sidebar-placeholder"}),r.jsx("div",{className:"sidebar-divider"}),r.jsx("nav",{className:"sidebar-nav",children:Array.from({length:8},(e,t)=>r.jsx("div",{className:"sidebar-icon sidebar-placeholder"},t))}),r.jsx("div",{className:"sidebar-spacer"}),r.jsx("div",{className:"sidebar-icon sidebar-placeholder"})]})}function Ze({navigate:e}){return r.jsx("div",{className:"page not-found-page",children:r.jsxs("section",{className:"execution-panel",children:[r.jsx("div",{className:"eyebrow",children:"Not Found"}),r.jsx("h1",{children:"Content not found."}),r.jsx("p",{children:"The route exists as a React shell so stale Blazor links land cleanly."}),r.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>e("/"),children:"Go home"})]})})}X();async function et(){await $(),Y.createRoot(document.getElementById("root")).render(r.jsx(Xe,{}))}et();export{Z as A,b as _,_ as a,L as b,rt as c,ie as d,nt as g,$ as p,B as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aj as b,ak as B,al as x,am as R,an as D}from"./canvas-runtime-
|
|
1
|
+
import{aj as b,ak as B,al as x,am as R,an as D}from"./canvas-runtime-Bc1G-FZ_.js";import{R as n}from"./app-runtime-xD2Z3NdN.js";import{l as T,b as f,c as O,d as _}from"./runtimeSettingsPersistenceProjection-BoNWmYjU.js";const L={id:"mindcanvas-main",name:"Global Launch Workspace",updatedAt:new Date().toISOString(),settings:{wheelMode:!1,cursorDirection:"right",inputMode:"Text",model:D,effort:"Normal",appLanguage:"auto",gridSnap:!0,gridType:"dot",cursorMode:"center",cameraTraceMode:"none",imageLoadSize:"default",aiNodeDefaultWidth:340,aiNodeDefaultHeight:196,showFullAiResponse:!1,minimapEnabled:!1,aiProvider:"OpenAI Codex",ollamaEndpoint:"http://localhost:11434",imageRouterEnabled:!1,imageRouterImageModel:R,imageRouterVideoModel:x,imageRouterImageAspectPresetId:B,imageRouterVideoAspectPresetId:b,codeMasterInsightBundlesEnabled:!0,codeMasterInsightBundleTimeoutMs:18e3,codeMasterInsightBundleRetryCount:2,codeMasterInsightBundleRetryCountDeep:3,executionMode:"Concept",directInstructionQueueMode:"Append"},nodes:[{id:"node-agent-command",kind:"ai-task",title:"AI Task",body:"Turn a rough global SaaS idea into a launchable work plan. Keep the result practical: offer, channel, first landing page, and 7-day execution steps.",result:"Drafted execution plan: validate one English-first offer, publish a narrow landing page, collect 20 founder leads, and turn repeated questions into MindCanvas templates.",status:"done",role:"Business operator",tags:["AI Task","Result"],x:180,y:170,width:330,height:196},{id:"node-context",kind:"note",title:"Context",body:"Target: global solo builders who need one place for notes, evidence, AI runs, assets, and task graphs. Price in USD. Avoid Korea-only positioning.",tags:["Context"],x:-270,y:90,width:320,height:180},{id:"node-pricing",kind:"memo",title:"Pricing memory",body:"Free local tools -> MindCanvas Pro $12/mo. The paid step appears after the work becomes worth keeping.",tags:["Pricing"],x:585,y:110,width:300,height:158},{id:"node-output",kind:"code",title:"Reusable output",body:"Ship React canvas first. Keep LocalBridge and cloud hooks adapter-based so the UI does not wait on Blazor or C# services.",tags:["React","Runtime"],x:190,y:455,width:370,height:166}],edges:[{id:"edge-context-task",from:"node-context",to:"node-agent-command",kind:"context"},{id:"edge-task-output",from:"node-agent-command",to:"node-output",kind:"result"}]},u="mindexec-react-board-v1",s="mindexec-react-current-board-v2",p="mindexec-react-board-index-v2",M="mindexec-react-board-v2:";function i(e){return`${M}${e}`}function l(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function g(e){const t=e;return!!(t&&typeof t=="object"&&typeof t.id=="string"&&Array.isArray(t.nodes)&&Array.isArray(t.edges)&&t.settings)}function v(e){var t,r;return{id:e.id,name:e.name||"Untitled",updatedAt:e.updatedAt||new Date().toISOString(),nodeCount:e.nodes.length,edgeCount:e.edges.length,sourceKind:(t=e.source)==null?void 0:t.kind,sourceBoardId:(r=e.source)==null?void 0:r.boardId}}function c(){const e=l(localStorage.getItem(p));return Array.isArray(e)?y(e.filter(t=>t&&typeof t.id=="string").sort(m)):[]}function S(e){const t=y(e);localStorage.setItem(p,JSON.stringify(t)),_(t.map(r=>({BoardId:r.id,Title:r.name||"Untitled"})))}function h(e){const t=c(),r=t.find(d=>d.id===e.id),a=[{...v(e),order:(r==null?void 0:r.order)??t.length},...t.filter(d=>d.id!==e.id)].sort(m);S(a)}function I(e,t){return typeof e.order=="number"&&Number.isFinite(e.order)?e.order:t}function m(e,t){const r=I(e,Number.MAX_SAFE_INTEGER)-I(t,Number.MAX_SAFE_INTEGER);return r!==0?r:String(t.updatedAt||"").localeCompare(String(e.updatedAt||""))}function y(e){const t=new Set;return e.filter(r=>!(r!=null&&r.id)||t.has(r.id)?!1:(t.add(r.id),!0)).sort(m).map((r,o)=>({...r,order:o}))}function E(e){localStorage.setItem(i(e.id),JSON.stringify(e)),h(e),localStorage.setItem(s,e.id),f(e.id),localStorage.setItem(u,JSON.stringify(e))}function A(){const e=l(localStorage.getItem(u));return g(e)?(E(e),e):null}function N(e){try{const t=localStorage.getItem(s)||T();if(t){const o=l(localStorage.getItem(i(t)));if(g(o))return localStorage.setItem(s,o.id),f(o.id),n.emit("board.restore",{source:"localStorage",boardId:o.id,nodes:o.nodes.length,edges:o.edges.length}),o}const r=A();return r?(n.emit("board.restore",{source:"legacyLocalStorage",boardId:r.id,nodes:r.nodes.length,edges:r.edges.length}),r):(n.emit("board.restore",{source:"fixture"}),e)}catch(t){return n.emit("board.restore",{source:"fixture",error:String(t)}),e}}function P(e){const t={...e,updatedAt:new Date().toISOString()};try{return E(t),n.emit("board.persist",{boardId:e.id,nodes:e.nodes.length,edges:e.edges.length}),!0}catch(r){return n.emit("board.persist.failed",{boardId:e.id,message:r instanceof Error?r.message:String(r)}),!1}}function F(){try{const e=c();return e.length>0?e:(A(),c())}catch{return[]}}function U(e){try{const t=l(localStorage.getItem(i(e)));return g(t)?(localStorage.setItem(s,t.id),f(t.id),n.emit("board.restore",{source:"localStorage",boardId:t.id,nodes:t.nodes.length,edges:t.edges.length}),t):null}catch(t){return n.emit("board.restore",{source:"localStorage",boardId:e,error:String(t)}),null}}function K(e,t){const r=t.trim().slice(0,90)||"Untitled Workspace";try{const o=l(localStorage.getItem(i(e)));if(!g(o))return!1;const a={...o,name:r,updatedAt:new Date().toISOString()};return localStorage.setItem(i(e),JSON.stringify(a)),h(a),localStorage.getItem(s)===e&&localStorage.setItem(u,JSON.stringify(a)),n.emit("board.rename",{boardId:e,source:"stored"}),!0}catch(o){return n.emit("board.rename.failed",{boardId:e,message:o instanceof Error?o.message:String(o)}),!1}}function G(e){try{const t=c(),r=new Map(e.map((a,d)=>[a,d])),o=t.map((a,d)=>({...a,order:r.has(a.id)?r.get(a.id):e.length+d})).sort(m).map((a,d)=>({...a,order:d}));return S(o),n.emit("board.tabs.reorder",{orderedIds:o.map(a=>a.id)}),o}catch(t){return n.emit("board.tabs.reorder.failed",{message:t instanceof Error?t.message:String(t)}),c()}}function J(e){try{localStorage.removeItem(i(e)),S(c().filter(t=>t.id!==e)),localStorage.getItem(s)===e&&localStorage.removeItem(s),n.emit("board.local.delete",{boardId:e})}catch(t){n.emit("board.local.delete.failed",{boardId:e,message:t instanceof Error?t.message:String(t)})}}function X(){const e=c().map(t=>t.id);for(const t of e)localStorage.removeItem(i(t));localStorage.removeItem(p),localStorage.removeItem(s),localStorage.removeItem(u),O()}export{F as a,U as b,K as c,J as d,X as e,L as i,N as l,G as r,P as s};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as F}from"./productionAdapterConfig-C5jfk6oG.js";import{aQ as Sr,aR as Er,y as Tr,A as Ar,aS as Rr}from"./canvas-runtime-
|
|
1
|
+
import{r as F}from"./productionAdapterConfig-C5jfk6oG.js";import{aQ as Sr,aR as Er,y as Tr,A as Ar,aS as Rr}from"./canvas-runtime-Bc1G-FZ_.js";import{R as S}from"./app-runtime-xD2Z3NdN.js";import"./vendor-react-BXzpOyCS.js";import"./vendor-icons-DE3gIReG.js";function ze(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,s=Object.getOwnPropertySymbols(t);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(r[s[n]]=t[s[n]]);return r}function Or(t,e,r,s){function n(i){return i instanceof r?i:new r(function(a){a(i)})}return new(r||(r=Promise))(function(i,a){function o(u){try{c(s.next(u))}catch(h){a(h)}}function l(u){try{c(s.throw(u))}catch(h){a(h)}}function c(u){u.done?i(u.value):n(u.value).then(o,l)}c((s=s.apply(t,e||[])).next())})}const Cr=t=>t?(...e)=>t(...e):(...e)=>fetch(...e);class mt extends Error{constructor(e,r="FunctionsError",s){super(e),this.name=r,this.context=s}toJSON(){return{name:this.name,message:this.message,context:this.context}}}class Pr extends mt{constructor(e){super("Failed to send a request to the Edge Function","FunctionsFetchError",e)}}class _t extends mt{constructor(e){super("Relay Error invoking the Edge Function","FunctionsRelayError",e)}}class bt extends mt{constructor(e){super("Edge Function returned a non-2xx status code","FunctionsHttpError",e)}}var it;(function(t){t.Any="any",t.ApNortheast1="ap-northeast-1",t.ApNortheast2="ap-northeast-2",t.ApSouth1="ap-south-1",t.ApSoutheast1="ap-southeast-1",t.ApSoutheast2="ap-southeast-2",t.CaCentral1="ca-central-1",t.EuCentral1="eu-central-1",t.EuWest1="eu-west-1",t.EuWest2="eu-west-2",t.EuWest3="eu-west-3",t.SaEast1="sa-east-1",t.UsEast1="us-east-1",t.UsWest1="us-west-1",t.UsWest2="us-west-2"})(it||(it={}));class jr{constructor(e,{headers:r={},customFetch:s,region:n=it.Any}={}){this.url=e,this.headers=r,this.region=n,this.fetch=Cr(s)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e){return Or(this,arguments,void 0,function*(r,s={}){var n;let i,a;try{const{headers:o,method:l,body:c,signal:u,timeout:h}=s;let d={},{region:f}=s;f||(f=this.region);const p=new URL(`${this.url}/${r}`);f&&f!=="any"&&(d["x-region"]=f,p.searchParams.set("forceFunctionRegion",f));let g;c&&(o&&!Object.prototype.hasOwnProperty.call(o,"Content-Type")||!o)?typeof Blob<"u"&&c instanceof Blob||c instanceof ArrayBuffer?(d["Content-Type"]="application/octet-stream",g=c):typeof c=="string"?(d["Content-Type"]="text/plain",g=c):typeof FormData<"u"&&c instanceof FormData?g=c:(d["Content-Type"]="application/json",g=JSON.stringify(c)):c&&typeof c!="string"&&!(typeof Blob<"u"&&c instanceof Blob)&&!(c instanceof ArrayBuffer)&&!(typeof FormData<"u"&&c instanceof FormData)?g=JSON.stringify(c):g=c;let _=u;h&&(a=new AbortController,i=setTimeout(()=>a.abort(),h),u?(_=a.signal,u.addEventListener("abort",()=>a.abort())):_=a.signal);const v=yield this.fetch(p.toString(),{method:l||"POST",headers:Object.assign(Object.assign(Object.assign({},d),this.headers),o),body:g,signal:_}).catch(x=>{throw new Pr(x)}),b=v.headers.get("x-relay-error");if(b&&b==="true")throw new _t(v);if(!v.ok)throw new bt(v);let y=((n=v.headers.get("Content-Type"))!==null&&n!==void 0?n:"text/plain").split(";")[0].trim(),E;return y==="application/json"?E=yield v.json():y==="application/octet-stream"||y==="application/pdf"?E=yield v.blob():y==="text/event-stream"?E=v:y==="multipart/form-data"?E=yield v.formData():E=yield v.text(),{data:E,error:null,response:v}}catch(o){return{data:null,error:o,response:o instanceof bt||o instanceof _t?o.context:void 0}}finally{i&&clearTimeout(i)}})}}const Zt=3,kt=t=>Math.min(1e3*2**t,3e4),Ir=[520,503],er=["GET","HEAD","OPTIONS"];var St=class extends Error{constructor(t){super(t.message),this.name="PostgrestError",this.details=t.details,this.hint=t.hint,this.code=t.code}toJSON(){return{name:this.name,message:this.message,details:this.details,hint:this.hint,code:this.code}}};function Et(t,e){return new Promise(r=>{if(e!=null&&e.aborted){r();return}const s=setTimeout(()=>{e==null||e.removeEventListener("abort",n),r()},t);function n(){clearTimeout(s),r()}e==null||e.addEventListener("abort",n)})}function $r(t,e,r,s){return!(!s||r>=Zt||!er.includes(t)||!Ir.includes(e))}var xr=class{constructor(t){var e,r,s,n,i;this.shouldThrowOnError=!1,this.retryEnabled=!0,this.method=t.method,this.url=t.url,this.headers=new Headers(t.headers),this.schema=t.schema,this.body=t.body,this.shouldThrowOnError=(e=t.shouldThrowOnError)!==null&&e!==void 0?e:!1,this.signal=t.signal,this.isMaybeSingle=(r=t.isMaybeSingle)!==null&&r!==void 0?r:!1,this.shouldStripNulls=(s=t.shouldStripNulls)!==null&&s!==void 0?s:!1,this.urlLengthLimit=(n=t.urlLengthLimit)!==null&&n!==void 0?n:8e3,this.retryEnabled=(i=t.retry)!==null&&i!==void 0?i:!0,t.fetch?this.fetch=t.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}stripNulls(){if(this.headers.get("Accept")==="text/csv")throw new Error("stripNulls() cannot be used with csv()");return this.shouldStripNulls=!0,this}setHeader(t,e){return this.headers=new Headers(this.headers),this.headers.set(t,e),this}retry(t){return this.retryEnabled=t,this}then(t,e){var r=this;if(this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json"),this.shouldStripNulls){const a=this.headers.get("Accept");a==="application/vnd.pgrst.object+json"?this.headers.set("Accept","application/vnd.pgrst.object+json;nulls=stripped"):(!a||a==="application/json")&&this.headers.set("Accept","application/vnd.pgrst.array+json;nulls=stripped")}const s=this.fetch;let i=(async()=>{let a=0;for(;;){const c={};r.headers.forEach((h,d)=>{c[d]=h}),a>0&&(c["X-Retry-Count"]=String(a));let u;try{u=await s(r.url.toString(),{method:r.method,headers:c,body:JSON.stringify(r.body,(h,d)=>typeof d=="bigint"?d.toString():d),signal:r.signal})}catch(h){if((h==null?void 0:h.name)==="AbortError"||(h==null?void 0:h.code)==="ABORT_ERR"||!er.includes(r.method))throw h;if(r.retryEnabled&&a<Zt){const d=kt(a);a++,await Et(d,r.signal);continue}throw h}if($r(r.method,u.status,a,r.retryEnabled)){var o,l;const h=(o=(l=u.headers)===null||l===void 0?void 0:l.get("Retry-After"))!==null&&o!==void 0?o:null,d=h!==null?Math.max(0,parseInt(h,10)||0)*1e3:kt(a);await u.text(),a++,await Et(d,r.signal);continue}return await r.processResponse(u)}})();return this.shouldThrowOnError||(i=i.catch(a=>{var o;let l="",c="",u="";const h=a==null?void 0:a.cause;if(h){var d,f,p,g;const b=(d=h==null?void 0:h.message)!==null&&d!==void 0?d:"",y=(f=h==null?void 0:h.code)!==null&&f!==void 0?f:"";l=`${(p=a==null?void 0:a.name)!==null&&p!==void 0?p:"FetchError"}: ${a==null?void 0:a.message}`,l+=`
|
|
2
2
|
|
|
3
3
|
Caused by: ${(g=h==null?void 0:h.name)!==null&&g!==void 0?g:"Error"}: ${b}`,y&&(l+=` (${y})`),h!=null&&h.stack&&(l+=`
|
|
4
4
|
${h.stack}`)}else{var _;l=(_=a==null?void 0:a.stack)!==null&&_!==void 0?_:""}const v=this.url.toString().length;return(a==null?void 0:a.name)==="AbortError"||(a==null?void 0:a.code)==="ABORT_ERR"?(u="",c="Request was aborted (timeout or manual cancellation)",v>this.urlLengthLimit&&(c+=`. Note: Your request URL is ${v} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):((h==null?void 0:h.name)==="HeadersOverflowError"||(h==null?void 0:h.code)==="UND_ERR_HEADERS_OVERFLOW")&&(u="",c="HTTP headers exceeded server limits (typically 16KB)",v>this.urlLengthLimit&&(c+=`. Your request URL is ${v} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{success:!1,error:{message:`${(o=a==null?void 0:a.name)!==null&&o!==void 0?o:"FetchError"}: ${a==null?void 0:a.message}`,details:l,hint:c,code:u},data:null,count:null,status:0,statusText:""}})),i.then(t,e)}async processResponse(t){var e=this;let r=null,s=null,n=null,i=t.status,a=t.statusText;if(t.ok){var o,l;if(e.method!=="HEAD"){var c;const d=await t.text();if(d!=="")if(e.headers.get("Accept")==="text/csv")s=d;else if(e.headers.get("Accept")&&(!((c=e.headers.get("Accept"))===null||c===void 0)&&c.includes("application/vnd.pgrst.plan+text")))s=d;else try{s=JSON.parse(d)}catch{if(r={message:d},s=null,e.shouldThrowOnError)throw new St({message:d,details:"",hint:"",code:""})}}const u=(o=e.headers.get("Prefer"))===null||o===void 0?void 0:o.match(/count=(exact|planned|estimated)/),h=(l=t.headers.get("content-range"))===null||l===void 0?void 0:l.split("/");u&&h&&h.length>1&&(n=parseInt(h[1])),e.isMaybeSingle&&Array.isArray(s)&&(s.length>1?(r={code:"PGRST116",details:`Results contain ${s.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},s=null,n=null,i=406,a="Not Acceptable"):s.length===1?s=s[0]:s=null)}else{const u=await t.text();try{r=JSON.parse(u),Array.isArray(r)&&t.status===404&&(s=[],r=null,i=200,a="OK")}catch{t.status===404&&u===""?(i=204,a="No Content"):r={message:u}}if(r&&e.shouldThrowOnError)throw new St(r)}return{success:r===null,error:r,data:s,count:n,status:i,statusText:a}}returns(){return this}overrideTypes(){return this}},Ur=class extends xr{throwOnError(){return super.throwOnError()}select(t){let e=!1;const r=(t??"*").split("").map(s=>/\s/.test(s)&&!e?"":(s==='"'&&(e=!e),s)).join("");return this.url.searchParams.set("select",r),this.headers.append("Prefer","return=representation"),this}order(t,{ascending:e=!0,nullsFirst:r,foreignTable:s,referencedTable:n=s}={}){const i=n?`${n}.order`:"order",a=this.url.searchParams.get(i);return this.url.searchParams.set(i,`${a?`${a},`:""}${t}.${e?"asc":"desc"}${r===void 0?"":r?".nullsfirst":".nullslast"}`),this}limit(t,{foreignTable:e,referencedTable:r=e}={}){const s=typeof r>"u"?"limit":`${r}.limit`;return this.url.searchParams.set(s,`${t}`),this}range(t,e,{foreignTable:r,referencedTable:s=r}={}){const n=typeof s>"u"?"offset":`${s}.offset`,i=typeof s>"u"?"limit":`${s}.limit`;return this.url.searchParams.set(n,`${t}`),this.url.searchParams.set(i,`${e-t+1}`),this}abortSignal(t){return this.signal=t,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:t=!1,verbose:e=!1,settings:r=!1,buffers:s=!1,wal:n=!1,format:i="text"}={}){var a;const o=[t?"analyze":null,e?"verbose":null,r?"settings":null,s?"buffers":null,n?"wal":null].filter(Boolean).join("|"),l=(a=this.headers.get("Accept"))!==null&&a!==void 0?a:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${i}; for="${l}"; options=${o};`),i==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(t){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${t}`),this}};const Tt=new RegExp("[,()]");var he=class extends Ur{throwOnError(){return super.throwOnError()}eq(t,e){return this.url.searchParams.append(t,`eq.${e}`),this}neq(t,e){return this.url.searchParams.append(t,`neq.${e}`),this}gt(t,e){return this.url.searchParams.append(t,`gt.${e}`),this}gte(t,e){return this.url.searchParams.append(t,`gte.${e}`),this}lt(t,e){return this.url.searchParams.append(t,`lt.${e}`),this}lte(t,e){return this.url.searchParams.append(t,`lte.${e}`),this}like(t,e){return this.url.searchParams.append(t,`like.${e}`),this}likeAllOf(t,e){return this.url.searchParams.append(t,`like(all).{${e.join(",")}}`),this}likeAnyOf(t,e){return this.url.searchParams.append(t,`like(any).{${e.join(",")}}`),this}ilike(t,e){return this.url.searchParams.append(t,`ilike.${e}`),this}ilikeAllOf(t,e){return this.url.searchParams.append(t,`ilike(all).{${e.join(",")}}`),this}ilikeAnyOf(t,e){return this.url.searchParams.append(t,`ilike(any).{${e.join(",")}}`),this}regexMatch(t,e){return this.url.searchParams.append(t,`match.${e}`),this}regexIMatch(t,e){return this.url.searchParams.append(t,`imatch.${e}`),this}is(t,e){return this.url.searchParams.append(t,`is.${e}`),this}isDistinct(t,e){return this.url.searchParams.append(t,`isdistinct.${e}`),this}in(t,e){const r=Array.from(new Set(e)).map(s=>typeof s=="string"&&Tt.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(t,`in.(${r})`),this}notIn(t,e){const r=Array.from(new Set(e)).map(s=>typeof s=="string"&&Tt.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(t,`not.in.(${r})`),this}contains(t,e){return typeof e=="string"?this.url.searchParams.append(t,`cs.${e}`):Array.isArray(e)?this.url.searchParams.append(t,`cs.{${e.join(",")}}`):this.url.searchParams.append(t,`cs.${JSON.stringify(e)}`),this}containedBy(t,e){return typeof e=="string"?this.url.searchParams.append(t,`cd.${e}`):Array.isArray(e)?this.url.searchParams.append(t,`cd.{${e.join(",")}}`):this.url.searchParams.append(t,`cd.${JSON.stringify(e)}`),this}rangeGt(t,e){return this.url.searchParams.append(t,`sr.${e}`),this}rangeGte(t,e){return this.url.searchParams.append(t,`nxl.${e}`),this}rangeLt(t,e){return this.url.searchParams.append(t,`sl.${e}`),this}rangeLte(t,e){return this.url.searchParams.append(t,`nxr.${e}`),this}rangeAdjacent(t,e){return this.url.searchParams.append(t,`adj.${e}`),this}overlaps(t,e){return typeof e=="string"?this.url.searchParams.append(t,`ov.${e}`):this.url.searchParams.append(t,`ov.{${e.join(",")}}`),this}textSearch(t,e,{config:r,type:s}={}){let n="";s==="plain"?n="pl":s==="phrase"?n="ph":s==="websearch"&&(n="w");const i=r===void 0?"":`(${r})`;return this.url.searchParams.append(t,`${n}fts${i}.${e}`),this}match(t){return Object.entries(t).filter(([e,r])=>r!==void 0).forEach(([e,r])=>{this.url.searchParams.append(e,`eq.${r}`)}),this}not(t,e,r){return this.url.searchParams.append(t,`not.${e}.${r}`),this}or(t,{foreignTable:e,referencedTable:r=e}={}){const s=r?`${r}.or`:"or";return this.url.searchParams.append(s,`(${t})`),this}filter(t,e,r){return this.url.searchParams.append(t,`${e}.${r}`),this}},Nr=class{constructor(t,{headers:e={},schema:r,fetch:s,urlLengthLimit:n=8e3,retry:i}){this.url=t,this.headers=new Headers(e),this.schema=r,this.fetch=s,this.urlLengthLimit=n,this.retry=i}cloneRequestState(){return{url:new URL(this.url.toString()),headers:new Headers(this.headers)}}select(t,e){const{head:r=!1,count:s}=e??{},n=r?"HEAD":"GET";let i=!1;const a=(t??"*").split("").map(c=>/\s/.test(c)&&!i?"":(c==='"'&&(i=!i),c)).join(""),{url:o,headers:l}=this.cloneRequestState();return o.searchParams.set("select",a),s&&l.append("Prefer",`count=${s}`),new he({method:n,url:o,headers:l,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}insert(t,{count:e,defaultToNull:r=!0}={}){var s;const n="POST",{url:i,headers:a}=this.cloneRequestState();if(e&&a.append("Prefer",`count=${e}`),r||a.append("Prefer","missing=default"),Array.isArray(t)){const o=t.reduce((l,c)=>l.concat(Object.keys(c)),[]);if(o.length>0){const l=[...new Set(o)].map(c=>`"${c}"`);i.searchParams.set("columns",l.join(","))}}return new he({method:n,url:i,headers:a,schema:this.schema,body:t,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}upsert(t,{onConflict:e,ignoreDuplicates:r=!1,count:s,defaultToNull:n=!0}={}){var i;const a="POST",{url:o,headers:l}=this.cloneRequestState();if(l.append("Prefer",`resolution=${r?"ignore":"merge"}-duplicates`),e!==void 0&&o.searchParams.set("on_conflict",e),s&&l.append("Prefer",`count=${s}`),n||l.append("Prefer","missing=default"),Array.isArray(t)){const c=t.reduce((u,h)=>u.concat(Object.keys(h)),[]);if(c.length>0){const u=[...new Set(c)].map(h=>`"${h}"`);o.searchParams.set("columns",u.join(","))}}return new he({method:a,url:o,headers:l,schema:this.schema,body:t,fetch:(i=this.fetch)!==null&&i!==void 0?i:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}update(t,{count:e}={}){var r;const s="PATCH",{url:n,headers:i}=this.cloneRequestState();return e&&i.append("Prefer",`count=${e}`),new he({method:s,url:n,headers:i,schema:this.schema,body:t,fetch:(r=this.fetch)!==null&&r!==void 0?r:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}delete({count:t}={}){var e;const r="DELETE",{url:s,headers:n}=this.cloneRequestState();return t&&n.append("Prefer",`count=${t}`),new he({method:r,url:s,headers:n,schema:this.schema,fetch:(e=this.fetch)!==null&&e!==void 0?e:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};function Ee(t){"@babel/helpers - typeof";return Ee=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ee(t)}function Lr(t,e){if(Ee(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var s=r.call(t,e);if(Ee(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Dr(t){var e=Lr(t,"string");return Ee(e)=="symbol"?e:e+""}function Br(t,e,r){return(e=Dr(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function At(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,s)}return r}function Ie(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?At(Object(r),!0).forEach(function(s){Br(t,s,r[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):At(Object(r)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(r,s))})}return t}var qr=class tr{constructor(e,{headers:r={},schema:s,fetch:n,timeout:i,urlLengthLimit:a=8e3,retry:o}={}){this.url=e,this.headers=new Headers(r),this.schemaName=s,this.urlLengthLimit=a;const l=n??globalThis.fetch;i!==void 0&&i>0?this.fetch=(c,u)=>{const h=new AbortController,d=setTimeout(()=>h.abort(),i),f=u==null?void 0:u.signal;if(f){if(f.aborted)return clearTimeout(d),l(c,u);const p=()=>{clearTimeout(d),h.abort()};return f.addEventListener("abort",p,{once:!0}),l(c,Ie(Ie({},u),{},{signal:h.signal})).finally(()=>{clearTimeout(d),f.removeEventListener("abort",p)})}return l(c,Ie(Ie({},u),{},{signal:h.signal})).finally(()=>clearTimeout(d))}:this.fetch=l,this.retry=o}from(e){if(!e||typeof e!="string"||e.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new Nr(new URL(`${this.url}/${e}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}schema(e){return new tr(this.url,{headers:this.headers,schema:e,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}rpc(e,r={},{head:s=!1,get:n=!1,count:i}={}){var a;let o;const l=new URL(`${this.url}/rpc/${e}`);let c;const u=f=>f!==null&&typeof f=="object"&&(!Array.isArray(f)||f.some(u)),h=s&&Object.values(r).some(u);h?(o="POST",c=r):s||n?(o=s?"HEAD":"GET",Object.entries(r).filter(([f,p])=>p!==void 0).map(([f,p])=>[f,Array.isArray(p)?`{${p.join(",")}}`:`${p}`]).forEach(([f,p])=>{l.searchParams.append(f,p)})):(o="POST",c=r);const d=new Headers(this.headers);return h?d.set("Prefer",i?`count=${i},return=minimal`:"return=minimal"):i&&d.set("Prefer",`count=${i}`),new he({method:o,url:l,headers:d,schema:this.schemaName,body:c,fetch:(a=this.fetch)!==null&&a!==void 0?a:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};class Hr{constructor(){}static detectEnvironment(){var e;if(typeof WebSocket<"u")return{type:"native",wsConstructor:WebSocket};const r=globalThis;if(typeof globalThis<"u"&&typeof r.WebSocket<"u")return{type:"native",wsConstructor:r.WebSocket};const s=typeof global<"u"?global:void 0;if(s&&typeof s.WebSocket<"u")return{type:"native",wsConstructor:s.WebSocket};if(typeof globalThis<"u"&&typeof r.WebSocketPair<"u"&&typeof globalThis.WebSocket>"u")return{type:"cloudflare",error:"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.",workaround:"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime."};if(typeof globalThis<"u"&&r.EdgeRuntime||typeof navigator<"u"&&(!((e=navigator.userAgent)===null||e===void 0)&&e.includes("Vercel-Edge")))return{type:"unsupported",error:"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.",workaround:"Use serverless functions or a different deployment target for WebSocket functionality."};const n=globalThis.process;if(n){const i=n.versions;if(i&&i.node){const a=i.node,o=parseInt(a.replace(/^v/,"").split(".")[0]);return o>=22?typeof globalThis.WebSocket<"u"?{type:"native",wsConstructor:globalThis.WebSocket}:{type:"unsupported",error:`Node.js ${o} detected but native WebSocket not found.`,workaround:"Provide a WebSocket implementation via the transport option."}:{type:"unsupported",error:`Node.js ${o} detected without native WebSocket support.`,workaround:`For Node.js < 22, install "ws" package and provide it via the transport option:
|
package/wwwroot/index.html
CHANGED
|
@@ -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="hosted-bridge-
|
|
10
|
+
<meta name="build-version" content="hosted-bridge-loopback-access-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-
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-qITXeJUr.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">
|