@mindexec/cli 0.2.366 → 0.2.368
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/scripts/setup-tree-sitter-grammars.mjs +26 -5
- package/wwwroot/assets/{AdminDashboardPage-3LcuAtsJ.js → AdminDashboardPage-Bc5kgL4X.js} +1 -1
- package/wwwroot/assets/AppSidebar-Bkjo3jvr.js +2 -0
- package/wwwroot/assets/{AuthPages-Dy6PF7Bt.js → AuthPages-BbAT5vsc.js} +1 -1
- package/wwwroot/assets/{CodePage-CYXq8GTo.js → CodePage-Do4K07Ge.js} +1 -1
- package/wwwroot/assets/{CompanyCorePage-C5XVok23.js → CompanyCorePage-iD32axX4.js} +1 -1
- package/wwwroot/assets/{ExecutionModePage-DIApda43.js → ExecutionModePage-BHn-i9eu.js} +1 -1
- package/wwwroot/assets/{LaunchLeadCapture-BBRvHVnf.js → LaunchLeadCapture-Btre_FaA.js} +1 -1
- package/wwwroot/assets/{MarketingHome-GDLBvBqb.js → MarketingHome-BJI2zEYK.js} +1 -1
- package/wwwroot/assets/{MindCanvas-DYMYQl1C.js → MindCanvas-BOScGIBX.js} +1 -1
- package/wwwroot/assets/{PlanMasterPage-DLMFSdXW.js → PlanMasterPage-B9XXbERQ.js} +1 -1
- package/wwwroot/assets/{PricingPage-B49awnso.js → PricingPage-D98P0gTI.js} +1 -1
- package/wwwroot/assets/{ToolPages-baTmOCPP.js → ToolPages-DLme_QLb.js} +1 -1
- package/wwwroot/assets/{YouTubeSearchPage-D5mKtwgV.js → YouTubeSearchPage-BSQIhWnY.js} +1 -1
- package/wwwroot/assets/{canvas-runtime-BT5B2knz.js → canvas-runtime-CcSvL_l6.js} +1 -1
- package/wwwroot/assets/{index-bMdZ9KL8.js → index-VWcOQuui.js} +2 -2
- package/wwwroot/assets/index-yNpEK-gp.css +1 -0
- package/wwwroot/assets/{storage-CWBhPPV8.js → storage-C8yTm9Oa.js} +1 -1
- package/wwwroot/assets/{supabaseAuthAdapter-DbmbdXn-.js → supabaseAuthAdapter-BRbhWFpi.js} +1 -1
- package/wwwroot/assets/{vendor-icons-Bt6FQ3FW.js → vendor-icons-678PAT8P.js} +1 -1
- package/wwwroot/index.html +3 -3
- package/wwwroot/assets/AppSidebar-DOM7tVOy.js +0 -2
- package/wwwroot/assets/index-C59PJe77.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as c,j as t}from"./vendor-react-BXzpOyCS.js";import{g as Ce,o as je,y as Me,aF as Qe,aG as ze,aH as Ge,aI as _e}from"./canvas-runtime-BT5B2knz.js";import{R as g}from"./app-runtime-xD2Z3NdN.js";import{l as Ve,s as Xe}from"./executionModeSettings-NJqurj-o.js";import{A as Ye,a8 as Ze,R as et,b9 as tt,b7 as nt}from"./vendor-icons-Bt6FQ3FW.js";import"./runtimeSettingsPersistenceProjection-BoNWmYjU.js";const Ee=["Concept.KernelHelp","Concept.Hash64","Concept.DefineComposite","Concept.Embed","Concept.Execute"],ot=0x0000000080000000n,F=11400714785074694791n,Z=14029467366897019727n,ve=1609587929392839161n,Ie=9650029242287828579n,we=2870177450012600261n;function m(e){return BigInt.asUintN(64,e)}function q(e,s){const o=BigInt(s);return m(m(e)<<o|m(e)>>64n-o)}function Y(e,s){let o=0n;for(let a=0;a<8;a+=1)o|=BigInt(e[s+a])<<BigInt(a*8);return m(o)}function st(e,s){return(e[s]|e[s+1]<<8|e[s+2]<<16|e[s+3]<<24)>>>0}function Q(e,s){let o=m(e+m(s*Z));return o=q(o,31),m(o*F)}function oe(e,s){let o=m(e^Q(0n,s));return o=m(o*F+Ie),o}function k(e){const s=e.trim();if(!s)throw new Error("signature is empty");const o=new TextEncoder().encode(s),a=o.length;let i=0,r;if(a>=32){let d=m(F+Z),w=m(Z),y=0n,N=m(-F);const u=a-32;for(;i<=u;)d=Q(d,Y(o,i)),i+=8,w=Q(w,Y(o,i)),i+=8,y=Q(y,Y(o,i)),i+=8,N=Q(N,Y(o,i)),i+=8;r=m(q(d,1)+q(w,7)+q(y,12)+q(N,18)),r=oe(r,d),r=oe(r,w),r=oe(r,y),r=oe(r,N)}else r=m(we);for(r=m(r+BigInt(a));i<=a-8;){const d=Q(0n,Y(o,i));r=m(r^d),r=m(q(r,27)*F+Ie),i+=8}for(i<=a-4&&(r=m(r^BigInt(st(o,i))*F),r=m(q(r,23)*Z+ve),i+=4);i<a;)r=m(r^BigInt(o[i])*we),r=m(q(r,11)*F),i+=1;return r=m(r^r>>33n),r=m(r*Z),r=m(r^r>>29n),r=m(r*ve),r=m(r^r>>32n),`0x${r.toString(16).padStart(16,"0")}`}const le=[{category:"Math.Double",signature:"MindExecution.Kernel.Add(System.Double,System.Double)",summary:"a+b",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Sub(System.Double,System.Double)",summary:"a-b",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Mul(System.Double,System.Double)",summary:"a*b",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Div(System.Double,System.Double)",summary:"a/b",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Min(System.Double,System.Double)",summary:"min(a,b)",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Max(System.Double,System.Double)",summary:"max(a,b)",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Round(System.Double)",summary:"round(x)",supported:!0},{category:"Math.Int64",signature:"MindExecution.Kernel.Add(System.Int64,System.Int64)",summary:"a+b",supported:!0},{category:"Math.Int64",signature:"MindExecution.Kernel.Sub(System.Int64,System.Int64)",summary:"a-b",supported:!0},{category:"Math.Int64",signature:"MindExecution.Kernel.Mul(System.Int64,System.Int64)",summary:"a*b",supported:!0},{category:"Compare.Double",signature:"MindExecution.Kernel.Gt(System.Double,System.Double)",summary:"a>b",supported:!0},{category:"Compare.Double",signature:"MindExecution.Kernel.Eq(System.Double,System.Double)",summary:"a==b",supported:!0},{category:"Logic",signature:"MindExecution.Kernel.IfElse(System.Boolean,System.Object,System.Object)",summary:"cond ? a : b",supported:!0},{category:"String",signature:"MindExecution.Kernel.Concat(System.String,System.String)",summary:"a+b",supported:!0},{category:"String",signature:"MindExecution.Kernel.Length(System.String)",summary:"len(s)",supported:!0},{category:"String",signature:"MindExecution.Kernel.ToString(System.Object)",summary:"x?.ToString()",supported:!0},{category:"Convert",signature:"MindExecution.Kernel.ToDouble(System.Object)",summary:"Convert.ToDouble",supported:!0},{category:"Convert",signature:"MindExecution.Kernel.ToInt64(System.Object)",summary:"Convert.ToInt64",supported:!0},{category:"Json",signature:"MindExecution.Kernel.Json.Parse(System.String)",summary:"parse JSON",supported:!0},{category:"Json",signature:"MindExecution.Kernel.Json.Stringify(System.Object)",summary:"serialize JSON",supported:!0},{category:"System",signature:"MindExecution.Kernel.System.GetManifest()",summary:"local manifest subset",supported:!0},{category:"System",signature:"MindExecution.Kernel.System.SignatureToId(System.String)",summary:"signature -> local 0x hash",supported:!0},{category:"Debug",signature:"MindExecution.Kernel.Print(System.Object)",summary:"ToString",supported:!0},{category:"Debug",signature:"MindExecution.Kernel.TypeOf(System.Object)",summary:"JavaScript type name",supported:!0},{category:"Time",signature:"MindExecution.Kernel.UtcNow()",summary:"UTC ISO timestamp",supported:!0},{category:"Hash",signature:"MindExecution.Kernel.Hash.Sha256(System.String)",summary:"adapter-gated in React shell",supported:!1}],Ke=new Map(le.map(e=>[k(e.signature),e]));function x(e){const s=typeof e=="number"?e:Number(e);if(!Number.isFinite(s))throw new Error(`Expected numeric value, got ${A(e)}.`);return s}function J(e){return Math.trunc(x(e))}function L(e,s){if(typeof e=="number"&&Number.isInteger(e)&&e>=0)return`0x${e.toString(16).padStart(16,"0")}`;if(typeof e!="string")throw new Error(`${s} must be a hex slot string or integer.`);const o=e.trim();if(/^0x[0-9a-f]{1,16}$/i.test(o))return`0x${o.slice(2).toLowerCase().padStart(16,"0")}`;if(/^\d+$/.test(o))return`0x${Number(o).toString(16).padStart(16,"0")}`;throw new Error(`${s} must be 0x[0-9a-f]{16}, short hex, or integer.`)}function rt(e){return`0x${(ot+BigInt(e)).toString(16).padStart(16,"0")}`}function Le(e){const s=JSON.parse(e),o=Array.isArray(s.literals)?s.literals:[],a=Array.isArray(s.instructions)?s.instructions:[];if(a.length===0)throw new Error("IR must include an instructions array.");return{literals:o,instructions:a}}function $e(e){var o;if(typeof e=="string"&&e.trim().startsWith("$")){const a=e.trim().slice(1).trim();if(!a)throw new Error("target signature cannot be empty.");return{id:k(a),signature:a}}const s=L(e,"target");return{id:s,signature:(o=Ke.get(s))==null?void 0:o.signature}}function A(e){if(e===void 0)return"<unset>";if(e===null)return"<null>";if(typeof e=="string")return JSON.stringify(e);if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function it(e){if(!e||typeof e!="object")throw new Error("Literal entries must be objects.");const s=e,o=L(s.id??s.slot,"literal.id"),a=String(s.type??"json").toLowerCase(),i=s.value;return a==="null"?{slot:o,value:null}:a==="bool"?{slot:o,value:!!i}:a==="int"?{slot:o,value:J(i)}:a==="double"?{slot:o,value:x(i)}:a==="string"?{slot:o,value:String(i??"")}:{slot:o,value:i}}const at={"MindExecution.Kernel.Add(System.Double,System.Double)":e=>x(e[0])+x(e[1]),"MindExecution.Kernel.Sub(System.Double,System.Double)":e=>x(e[0])-x(e[1]),"MindExecution.Kernel.Mul(System.Double,System.Double)":e=>x(e[0])*x(e[1]),"MindExecution.Kernel.Div(System.Double,System.Double)":e=>x(e[1])===0?Number.NaN:x(e[0])/x(e[1]),"MindExecution.Kernel.Min(System.Double,System.Double)":e=>Math.min(x(e[0]),x(e[1])),"MindExecution.Kernel.Max(System.Double,System.Double)":e=>Math.max(x(e[0]),x(e[1])),"MindExecution.Kernel.Round(System.Double)":e=>Math.round(x(e[0])),"MindExecution.Kernel.Add(System.Int64,System.Int64)":e=>J(e[0])+J(e[1]),"MindExecution.Kernel.Sub(System.Int64,System.Int64)":e=>J(e[0])-J(e[1]),"MindExecution.Kernel.Mul(System.Int64,System.Int64)":e=>J(e[0])*J(e[1]),"MindExecution.Kernel.Gt(System.Double,System.Double)":e=>x(e[0])>x(e[1]),"MindExecution.Kernel.Eq(System.Double,System.Double)":e=>x(e[0])===x(e[1]),"MindExecution.Kernel.IfElse(System.Boolean,System.Object,System.Object)":e=>e[0]?e[1]:e[2],"MindExecution.Kernel.Concat(System.String,System.String)":e=>`${e[0]??""}${e[1]??""}`,"MindExecution.Kernel.Length(System.String)":e=>String(e[0]??"").length,"MindExecution.Kernel.ToString(System.Object)":e=>e[0]==null?"":String(e[0]),"MindExecution.Kernel.ToDouble(System.Object)":e=>x(e[0]),"MindExecution.Kernel.ToInt64(System.Object)":e=>J(e[0]),"MindExecution.Kernel.Json.Parse(System.String)":e=>JSON.parse(String(e[0]??"null")),"MindExecution.Kernel.Json.Stringify(System.Object)":e=>JSON.stringify(e[0]),"MindExecution.Kernel.System.GetManifest()":()=>le.map(e=>({...e,id:k(e.signature)})),"MindExecution.Kernel.System.SignatureToId(System.String)":e=>k(String(e[0]??"")),"MindExecution.Kernel.Print(System.Object)":e=>A(e[0]),"MindExecution.Kernel.TypeOf(System.Object)":e=>e[0]===null?"null":Array.isArray(e[0])?"array":typeof e[0],"MindExecution.Kernel.UtcNow()":()=>new Date().toISOString()};function Oe(e){const s=e.trim();if(!s)return[];if(s.startsWith("[")){const o=JSON.parse(s);if(!Array.isArray(o))throw new Error("Watch JSON must be an array of slots.");return o.map(a=>L(a,"watch"))}return s.split(/[\s,]+/).filter(Boolean).map(o=>L(o,"watch"))}function Re(e,s,o,a,i,r=0){var N;if(r>8)throw new Error("FLOW recursion limit exceeded.");const d=new Map;for(const[u,l]of a.entries())d.set(u,l);for(const u of e){const{slot:l,value:$}=it(u);d.set(l,$),i.push(`${" ".repeat(r)}literal ${l} = ${A($)}`)}let w,y=!1;for(const[u,l]of s.entries()){const $=String(l.op??"").trim().toUpperCase();if($==="SET"){const f=L(l.dstSlot,`instructions[${u}].dstSlot`),C=L(l.srcSlot,`instructions[${u}].srcSlot`),O=d.get(C);d.set(f,O),i.push(`${" ".repeat(r)}${u}: SET ${f} = ${A(O)} from ${C}`);continue}if($==="CALL"){const f=$e(l.target??l.targetId),C=f.signature??((N=Ke.get(f.id))==null?void 0:N.signature),O=C?at[C]:void 0;if(!C||!O)throw new Error(`CALL target ${f.id} is not supported by the React local kernel.`);const U=(Array.isArray(l.args)?l.args.map(P=>L(P,`instructions[${u}].args`)):[]).map(P=>d.get(P)),I=O(U),R=l.dstSlot==null?null:L(l.dstSlot,`instructions[${u}].dstSlot`);R&&d.set(R,I),i.push(`${" ".repeat(r)}${u}: CALL ${C} -> ${R??"<no dst>"} = ${A(I)}`);continue}if($==="FLOW"){const f=$e(l.target??l.targetId),C=o.get(f.id);if(!C)throw new Error(`FLOW target ${f.id} is not registered in the React local composite registry.`);const O=Array.isArray(l.args)?l.args.map(R=>L(R,`instructions[${u}].args`)):[],j=new Map;for(const[R,P]of O.entries())j.set(rt(R),d.get(P));i.push(`${" ".repeat(r)}${u}: FLOW ${C.signature} (${f.id}) args=${O.length}`);const U=Re(C.literals,C.instructions,o,j,i,r+1),I=l.dstSlot==null?null:L(l.dstSlot,`instructions[${u}].dstSlot`);I&&U.didReturn&&d.set(I,U.returned),i.push(`${" ".repeat(r)}${u}: FLOW return -> ${I??"<no dst>"} = ${A(U.returned)}`);continue}if($==="RETURN"||$==="RET"){const f=l.srcSlot==null?null:L(l.srcSlot,`instructions[${u}].srcSlot`);w=f?d.get(f):void 0,y=!0,i.push(`${" ".repeat(r)}${u}: RETURN ${f??"<void>"} = ${A(w)}`);break}throw new Error(`Unknown op at instructions[${u}]: ${$||"<empty>"}`)}return{memory:d,returned:w,didReturn:y}}function ct(e,s,o=new Map){const{literals:a,instructions:i}=Le(e),r=[],{memory:d,returned:w}=Re(a,i,o,new Map,r),y=Oe(s),u=(y.length>0?y:Array.from(d.keys()).sort().slice(0,64)).map(l=>`- ${l} = ${A(d.get(l))}`);return[`OK: executed locally (atoms=${i.length}, literals=${a.length})`,`return: ${A(w)}`,"","trace:",...r,"",y.length>0?"watch:":"root user-space slots:",...u.length>0?u:["(none)"],"","adapter: local-react-shell"].join(`
|
|
1
|
+
import{r as c,j as t}from"./vendor-react-BXzpOyCS.js";import{g as Ce,o as je,y as Me,aF as Qe,aG as ze,aH as Ge,aI as _e}from"./canvas-runtime-CcSvL_l6.js";import{R as g}from"./app-runtime-xD2Z3NdN.js";import{l as Ve,s as Xe}from"./executionModeSettings-NJqurj-o.js";import{A as Ye,a8 as Ze,R as et,b9 as tt,b7 as nt}from"./vendor-icons-678PAT8P.js";import"./runtimeSettingsPersistenceProjection-BoNWmYjU.js";const Ee=["Concept.KernelHelp","Concept.Hash64","Concept.DefineComposite","Concept.Embed","Concept.Execute"],ot=0x0000000080000000n,F=11400714785074694791n,Z=14029467366897019727n,ve=1609587929392839161n,Ie=9650029242287828579n,we=2870177450012600261n;function m(e){return BigInt.asUintN(64,e)}function q(e,s){const o=BigInt(s);return m(m(e)<<o|m(e)>>64n-o)}function Y(e,s){let o=0n;for(let a=0;a<8;a+=1)o|=BigInt(e[s+a])<<BigInt(a*8);return m(o)}function st(e,s){return(e[s]|e[s+1]<<8|e[s+2]<<16|e[s+3]<<24)>>>0}function Q(e,s){let o=m(e+m(s*Z));return o=q(o,31),m(o*F)}function oe(e,s){let o=m(e^Q(0n,s));return o=m(o*F+Ie),o}function k(e){const s=e.trim();if(!s)throw new Error("signature is empty");const o=new TextEncoder().encode(s),a=o.length;let i=0,r;if(a>=32){let d=m(F+Z),w=m(Z),y=0n,N=m(-F);const u=a-32;for(;i<=u;)d=Q(d,Y(o,i)),i+=8,w=Q(w,Y(o,i)),i+=8,y=Q(y,Y(o,i)),i+=8,N=Q(N,Y(o,i)),i+=8;r=m(q(d,1)+q(w,7)+q(y,12)+q(N,18)),r=oe(r,d),r=oe(r,w),r=oe(r,y),r=oe(r,N)}else r=m(we);for(r=m(r+BigInt(a));i<=a-8;){const d=Q(0n,Y(o,i));r=m(r^d),r=m(q(r,27)*F+Ie),i+=8}for(i<=a-4&&(r=m(r^BigInt(st(o,i))*F),r=m(q(r,23)*Z+ve),i+=4);i<a;)r=m(r^BigInt(o[i])*we),r=m(q(r,11)*F),i+=1;return r=m(r^r>>33n),r=m(r*Z),r=m(r^r>>29n),r=m(r*ve),r=m(r^r>>32n),`0x${r.toString(16).padStart(16,"0")}`}const le=[{category:"Math.Double",signature:"MindExecution.Kernel.Add(System.Double,System.Double)",summary:"a+b",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Sub(System.Double,System.Double)",summary:"a-b",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Mul(System.Double,System.Double)",summary:"a*b",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Div(System.Double,System.Double)",summary:"a/b",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Min(System.Double,System.Double)",summary:"min(a,b)",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Max(System.Double,System.Double)",summary:"max(a,b)",supported:!0},{category:"Math.Double",signature:"MindExecution.Kernel.Round(System.Double)",summary:"round(x)",supported:!0},{category:"Math.Int64",signature:"MindExecution.Kernel.Add(System.Int64,System.Int64)",summary:"a+b",supported:!0},{category:"Math.Int64",signature:"MindExecution.Kernel.Sub(System.Int64,System.Int64)",summary:"a-b",supported:!0},{category:"Math.Int64",signature:"MindExecution.Kernel.Mul(System.Int64,System.Int64)",summary:"a*b",supported:!0},{category:"Compare.Double",signature:"MindExecution.Kernel.Gt(System.Double,System.Double)",summary:"a>b",supported:!0},{category:"Compare.Double",signature:"MindExecution.Kernel.Eq(System.Double,System.Double)",summary:"a==b",supported:!0},{category:"Logic",signature:"MindExecution.Kernel.IfElse(System.Boolean,System.Object,System.Object)",summary:"cond ? a : b",supported:!0},{category:"String",signature:"MindExecution.Kernel.Concat(System.String,System.String)",summary:"a+b",supported:!0},{category:"String",signature:"MindExecution.Kernel.Length(System.String)",summary:"len(s)",supported:!0},{category:"String",signature:"MindExecution.Kernel.ToString(System.Object)",summary:"x?.ToString()",supported:!0},{category:"Convert",signature:"MindExecution.Kernel.ToDouble(System.Object)",summary:"Convert.ToDouble",supported:!0},{category:"Convert",signature:"MindExecution.Kernel.ToInt64(System.Object)",summary:"Convert.ToInt64",supported:!0},{category:"Json",signature:"MindExecution.Kernel.Json.Parse(System.String)",summary:"parse JSON",supported:!0},{category:"Json",signature:"MindExecution.Kernel.Json.Stringify(System.Object)",summary:"serialize JSON",supported:!0},{category:"System",signature:"MindExecution.Kernel.System.GetManifest()",summary:"local manifest subset",supported:!0},{category:"System",signature:"MindExecution.Kernel.System.SignatureToId(System.String)",summary:"signature -> local 0x hash",supported:!0},{category:"Debug",signature:"MindExecution.Kernel.Print(System.Object)",summary:"ToString",supported:!0},{category:"Debug",signature:"MindExecution.Kernel.TypeOf(System.Object)",summary:"JavaScript type name",supported:!0},{category:"Time",signature:"MindExecution.Kernel.UtcNow()",summary:"UTC ISO timestamp",supported:!0},{category:"Hash",signature:"MindExecution.Kernel.Hash.Sha256(System.String)",summary:"adapter-gated in React shell",supported:!1}],Ke=new Map(le.map(e=>[k(e.signature),e]));function x(e){const s=typeof e=="number"?e:Number(e);if(!Number.isFinite(s))throw new Error(`Expected numeric value, got ${A(e)}.`);return s}function J(e){return Math.trunc(x(e))}function L(e,s){if(typeof e=="number"&&Number.isInteger(e)&&e>=0)return`0x${e.toString(16).padStart(16,"0")}`;if(typeof e!="string")throw new Error(`${s} must be a hex slot string or integer.`);const o=e.trim();if(/^0x[0-9a-f]{1,16}$/i.test(o))return`0x${o.slice(2).toLowerCase().padStart(16,"0")}`;if(/^\d+$/.test(o))return`0x${Number(o).toString(16).padStart(16,"0")}`;throw new Error(`${s} must be 0x[0-9a-f]{16}, short hex, or integer.`)}function rt(e){return`0x${(ot+BigInt(e)).toString(16).padStart(16,"0")}`}function Le(e){const s=JSON.parse(e),o=Array.isArray(s.literals)?s.literals:[],a=Array.isArray(s.instructions)?s.instructions:[];if(a.length===0)throw new Error("IR must include an instructions array.");return{literals:o,instructions:a}}function $e(e){var o;if(typeof e=="string"&&e.trim().startsWith("$")){const a=e.trim().slice(1).trim();if(!a)throw new Error("target signature cannot be empty.");return{id:k(a),signature:a}}const s=L(e,"target");return{id:s,signature:(o=Ke.get(s))==null?void 0:o.signature}}function A(e){if(e===void 0)return"<unset>";if(e===null)return"<null>";if(typeof e=="string")return JSON.stringify(e);if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function it(e){if(!e||typeof e!="object")throw new Error("Literal entries must be objects.");const s=e,o=L(s.id??s.slot,"literal.id"),a=String(s.type??"json").toLowerCase(),i=s.value;return a==="null"?{slot:o,value:null}:a==="bool"?{slot:o,value:!!i}:a==="int"?{slot:o,value:J(i)}:a==="double"?{slot:o,value:x(i)}:a==="string"?{slot:o,value:String(i??"")}:{slot:o,value:i}}const at={"MindExecution.Kernel.Add(System.Double,System.Double)":e=>x(e[0])+x(e[1]),"MindExecution.Kernel.Sub(System.Double,System.Double)":e=>x(e[0])-x(e[1]),"MindExecution.Kernel.Mul(System.Double,System.Double)":e=>x(e[0])*x(e[1]),"MindExecution.Kernel.Div(System.Double,System.Double)":e=>x(e[1])===0?Number.NaN:x(e[0])/x(e[1]),"MindExecution.Kernel.Min(System.Double,System.Double)":e=>Math.min(x(e[0]),x(e[1])),"MindExecution.Kernel.Max(System.Double,System.Double)":e=>Math.max(x(e[0]),x(e[1])),"MindExecution.Kernel.Round(System.Double)":e=>Math.round(x(e[0])),"MindExecution.Kernel.Add(System.Int64,System.Int64)":e=>J(e[0])+J(e[1]),"MindExecution.Kernel.Sub(System.Int64,System.Int64)":e=>J(e[0])-J(e[1]),"MindExecution.Kernel.Mul(System.Int64,System.Int64)":e=>J(e[0])*J(e[1]),"MindExecution.Kernel.Gt(System.Double,System.Double)":e=>x(e[0])>x(e[1]),"MindExecution.Kernel.Eq(System.Double,System.Double)":e=>x(e[0])===x(e[1]),"MindExecution.Kernel.IfElse(System.Boolean,System.Object,System.Object)":e=>e[0]?e[1]:e[2],"MindExecution.Kernel.Concat(System.String,System.String)":e=>`${e[0]??""}${e[1]??""}`,"MindExecution.Kernel.Length(System.String)":e=>String(e[0]??"").length,"MindExecution.Kernel.ToString(System.Object)":e=>e[0]==null?"":String(e[0]),"MindExecution.Kernel.ToDouble(System.Object)":e=>x(e[0]),"MindExecution.Kernel.ToInt64(System.Object)":e=>J(e[0]),"MindExecution.Kernel.Json.Parse(System.String)":e=>JSON.parse(String(e[0]??"null")),"MindExecution.Kernel.Json.Stringify(System.Object)":e=>JSON.stringify(e[0]),"MindExecution.Kernel.System.GetManifest()":()=>le.map(e=>({...e,id:k(e.signature)})),"MindExecution.Kernel.System.SignatureToId(System.String)":e=>k(String(e[0]??"")),"MindExecution.Kernel.Print(System.Object)":e=>A(e[0]),"MindExecution.Kernel.TypeOf(System.Object)":e=>e[0]===null?"null":Array.isArray(e[0])?"array":typeof e[0],"MindExecution.Kernel.UtcNow()":()=>new Date().toISOString()};function Oe(e){const s=e.trim();if(!s)return[];if(s.startsWith("[")){const o=JSON.parse(s);if(!Array.isArray(o))throw new Error("Watch JSON must be an array of slots.");return o.map(a=>L(a,"watch"))}return s.split(/[\s,]+/).filter(Boolean).map(o=>L(o,"watch"))}function Re(e,s,o,a,i,r=0){var N;if(r>8)throw new Error("FLOW recursion limit exceeded.");const d=new Map;for(const[u,l]of a.entries())d.set(u,l);for(const u of e){const{slot:l,value:$}=it(u);d.set(l,$),i.push(`${" ".repeat(r)}literal ${l} = ${A($)}`)}let w,y=!1;for(const[u,l]of s.entries()){const $=String(l.op??"").trim().toUpperCase();if($==="SET"){const f=L(l.dstSlot,`instructions[${u}].dstSlot`),C=L(l.srcSlot,`instructions[${u}].srcSlot`),O=d.get(C);d.set(f,O),i.push(`${" ".repeat(r)}${u}: SET ${f} = ${A(O)} from ${C}`);continue}if($==="CALL"){const f=$e(l.target??l.targetId),C=f.signature??((N=Ke.get(f.id))==null?void 0:N.signature),O=C?at[C]:void 0;if(!C||!O)throw new Error(`CALL target ${f.id} is not supported by the React local kernel.`);const U=(Array.isArray(l.args)?l.args.map(P=>L(P,`instructions[${u}].args`)):[]).map(P=>d.get(P)),I=O(U),R=l.dstSlot==null?null:L(l.dstSlot,`instructions[${u}].dstSlot`);R&&d.set(R,I),i.push(`${" ".repeat(r)}${u}: CALL ${C} -> ${R??"<no dst>"} = ${A(I)}`);continue}if($==="FLOW"){const f=$e(l.target??l.targetId),C=o.get(f.id);if(!C)throw new Error(`FLOW target ${f.id} is not registered in the React local composite registry.`);const O=Array.isArray(l.args)?l.args.map(R=>L(R,`instructions[${u}].args`)):[],j=new Map;for(const[R,P]of O.entries())j.set(rt(R),d.get(P));i.push(`${" ".repeat(r)}${u}: FLOW ${C.signature} (${f.id}) args=${O.length}`);const U=Re(C.literals,C.instructions,o,j,i,r+1),I=l.dstSlot==null?null:L(l.dstSlot,`instructions[${u}].dstSlot`);I&&U.didReturn&&d.set(I,U.returned),i.push(`${" ".repeat(r)}${u}: FLOW return -> ${I??"<no dst>"} = ${A(U.returned)}`);continue}if($==="RETURN"||$==="RET"){const f=l.srcSlot==null?null:L(l.srcSlot,`instructions[${u}].srcSlot`);w=f?d.get(f):void 0,y=!0,i.push(`${" ".repeat(r)}${u}: RETURN ${f??"<void>"} = ${A(w)}`);break}throw new Error(`Unknown op at instructions[${u}]: ${$||"<empty>"}`)}return{memory:d,returned:w,didReturn:y}}function ct(e,s,o=new Map){const{literals:a,instructions:i}=Le(e),r=[],{memory:d,returned:w}=Re(a,i,o,new Map,r),y=Oe(s),u=(y.length>0?y:Array.from(d.keys()).sort().slice(0,64)).map(l=>`- ${l} = ${A(d.get(l))}`);return[`OK: executed locally (atoms=${i.length}, literals=${a.length})`,`return: ${A(w)}`,"","trace:",...r,"",y.length>0?"watch:":"root user-space slots:",...u.length>0?u:["(none)"],"","adapter: local-react-shell"].join(`
|
|
2
2
|
`)}function lt(e,s,o=16){const a=`${e}
|
|
3
3
|
|
|
4
4
|
Description: ${s}`,i=Array.from({length:o},(d,w)=>{const y=BigInt(k(`${a}#${w}`)),N=Number(y&0xffffn)/32767.5-1;return Number(N.toFixed(6))}),r=a.trim().length===0?0:a.trim().split(/\s+/).length;return{input:a,vector:i,tokens:r}}const Ne=JSON.stringify({literals:[{id:"0x0000000000000000",type:"double",value:1},{id:"0x0000000000000001",type:"double",value:10}],instructions:[{op:"CALL",target:"$MindExecution.Kernel.Add(System.Double,System.Double)",args:["0x0000000000000000","0x0000000000000001"],dstSlot:"0x0000000000000002"},{op:"RETURN",srcSlot:"0x0000000000000002"}]},null,2),De=JSON.stringify({literals:[],instructions:[{op:"CALL",target:"$MindExecution.Kernel.Add(System.Double,System.Double)",args:["0x0000000080000000","0x0000000080000001"],dstSlot:"0x0000000000000000"},{op:"RETURN",srcSlot:"0x0000000000000000"}]},null,2);function dt(e,s){var a;const o=((a=e.latestRows)==null?void 0:a[0])||{};return{provider:e.provider||"LocalBridgeJsonConceptStore",adapterState:e.adapterState||"json-row-projection",nativeSqliteAdapterState:e.nativeSqliteAdapterState||"adapter-gated",paidEmbeddingAdapterState:e.paidEmbeddingAdapterState||"adapter-gated",originalTable:e.originalTable||"tbl_concepts",rowCount:Number(e.rowCount||0),indexPath:e.indexPath||"",latestRowId:(s==null?void 0:s.id)||o.id||"",latestRowSqlKey:(s==null?void 0:s.sqlKey)||o.sqlKey||"",latestRowSignature:(s==null?void 0:s.signature)||o.signature||"",sqliteReadyColumns:(e.sqliteReadyColumns||[]).slice(0,16)}}function ht(){const[e,s]=c.useState(Ne),[o,a]=c.useState(()=>Ve()),[i,r]=c.useState("MindExecution.Kernel.Add(System.Double,System.Double)"),[d,w]=c.useState("MindExecution.Dynamic.Sum(System.Double,System.Double)"),[y,N]=c.useState("Adds two double values through a browser-local FLOW composite."),[u,l]=c.useState(De),[$,f]=c.useState("MindExecution.Dynamic.Sum(System.Double,System.Double)"),[C,O]=c.useState("Adds two doubles through a Concept FLOW composite. Browser preview only."),[j,U]=c.useState([]),[I,R]=c.useState("0x0000000000000002"),[P,M]=c.useState(""),[z,de]=c.useState(!1),[H,se]=c.useState("idle"),[ue,pe]=c.useState(""),[Ae,me]=c.useState(""),[ke,ge]=c.useState(""),[h,xe]=c.useState(null),[p,Pe]=c.useState(null),[re,ie]=c.useState("idle"),[Se,he]=c.useState(""),G=c.useRef(0),_=c.useMemo(()=>le.map(n=>({...n,id:k(n.signature)})),[]),be=c.useMemo(()=>new Map(j.map(n=>[n.id,n])),[j]),T=o.executionMode,V=o.directInstructionQueueMode,ye=c.useCallback((n,S)=>{const v=Xe({...o,...n},S);a(v),g.emit("executionMode.settings.changed",{source:S,executionMode:v.executionMode,directInstructionQueueMode:v.directInstructionQueueMode})},[o]),Te=c.useCallback(()=>{de(!0),g.emit("executionMode.tool.run",{toolName:T==="PureLLM"?"PureLLM.AdapterGate":"Concept.Execute"}),g.emit("executionMode.run.local",{hasPrompt:!!e.trim(),mode:T,directInstructionQueueMode:V,adapterGated:T==="PureLLM"}),window.setTimeout(()=>{const n=e.trim();if(T==="PureLLM")M(["PureLLM mode selected.","","Live direct LLM execution is adapter-gated in this React shell.",`Queue mode: ${V}`,"","Use Concept mode for deterministic browser-local JSON IR testing until a verified Agent adapter is connected."].join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as s,j as e}from"./vendor-react-BXzpOyCS.js";import{R as b}from"./app-runtime-xD2Z3NdN.js";import{aT as A}from"./vendor-icons-
|
|
1
|
+
import{r as s,j as e}from"./vendor-react-BXzpOyCS.js";import{R as b}from"./app-runtime-xD2Z3NdN.js";import{aT as A}from"./vendor-icons-678PAT8P.js";const u="mindexec-react-launch-leads-v1";function O(){const t=window.localStorage.getItem(u);if(!t)return[];const i=JSON.parse(t);return Array.isArray(i)?i.filter(r=>typeof r=="object"&&r!==null):[]}function R(){return navigator.language||"en"}function $({productKey:t="mindexec",eyebrow:i="Launch list",headline:r="Get the launch notes.",body:w="Short English updates for the product launch, payment rollout, and practical workflow examples.",buttonText:y="Join list",sourceTag:a="unknown",compact:L=!1}){const h=s.useId(),[m,p]=s.useState(""),[o,E]=s.useState("solo-builder"),[l,x]=s.useState(!1),[f,c]=s.useState(""),[N,j]=s.useState(!1),k=n=>{if(n.preventDefault(),l)return;const d=m.trim().toLowerCase();if(c(""),j(!1),!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(d)){c("Enter a valid email address.");return}x(!0),window.setTimeout(()=>{const g=window.location.pathname,v=R();try{const C={email:d,productKey:t,sourcePath:g,sourceTag:a,intent:o,locale:v,metadata:{source_tag:a,host:window.location.host},capturedAt:new Date().toISOString()},I=O();window.localStorage.setItem(u,JSON.stringify([C,...I.filter(S=>S.email!==d||S.sourceTag!==a).slice(0,49)]))}catch{}b.emit("launchLead.captured",{productKey:t,sourcePath:g,sourceTag:a,intent:o,locale:v}),a==="pricing"&&b.emit("pricing.lead.captured",{intent:o,sourceTag:a}),x(!1),j(!0),c("You're on the launch list."),p("")},450)};return e.jsxs("section",{className:`launch-lead ${L?"launch-lead--compact":""}`,"data-testid":"launch-lead","data-lead-storage-key":u,"data-product-key":t,"data-source-tag":a,children:[e.jsxs("div",{className:"launch-lead-copy",children:[e.jsx("div",{className:"eyebrow",children:i}),e.jsx("h2",{children:r}),e.jsx("p",{children:w})]}),e.jsxs("form",{className:"launch-lead-form",onSubmit:k,"data-testid":"launch-lead-form",children:[e.jsx("label",{htmlFor:h,children:"Email"}),e.jsxs("div",{className:"launch-lead-controls",children:[e.jsxs("div",{className:"launch-lead-input",children:[e.jsx(A,{size:17}),e.jsx("input",{id:h,value:m,onChange:n=>p(n.target.value),type:"email",autoComplete:"email",placeholder:"you@example.com",disabled:l,"data-testid":"launch-lead-email"})]}),e.jsxs("select",{value:o,onChange:n=>E(n.target.value),"aria-label":"Launch interest",disabled:l,"data-testid":"launch-lead-intent",children:[e.jsx("option",{value:"solo-builder",children:"Solo builder"}),e.jsx("option",{value:"researcher",children:"Researcher"}),e.jsx("option",{value:"developer",children:"Developer"}),e.jsx("option",{value:"creator",children:"Creator"})]}),e.jsx("button",{type:"submit",disabled:l,"data-testid":"launch-lead-submit",children:l?"Saving...":y})]}),f&&e.jsx("p",{className:`launch-lead-status ${N?"is-ok":""}`,role:"status","data-testid":"launch-lead-status",children:f})]})]})}export{$ as L};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as f,j as e}from"./vendor-react-BXzpOyCS.js";import{L as v}from"./LaunchLeadCapture-
|
|
1
|
+
import{r as f,j as e}from"./vendor-react-BXzpOyCS.js";import{L as v}from"./LaunchLeadCapture-Btre_FaA.js";import{m as b}from"./marketingTools-DN_rnHeB.js";import{g as j}from"./vendor-icons-678PAT8P.js";import"./app-runtime-xD2Z3NdN.js";const w=b.slice(0,6),k=[["Researchers","Move from reading notes and loose fragments into a board that can hold context and structure."],["Writers","Preview docs and README content quickly, then collect the related work in one saved project."],["Developers","Use local-first utility pages without upload friction, then expand into a canvas when the work becomes multi-file or collaborative."]];function g(r){switch(r.key){case"markdown-viewer":return"Markdown";case"bulk-markdown-viewer":return"Bulk";case"markdown-outline":return"Outline";case"markdown-table-formatter":return"Tables";case"markdown-link-checker":return"Links";case"readme-previewer":return"README";case"markdown-to-html":return"HTML";case"browser-notepad":return"Notes";case"clipboard-board":return"Clipboard";default:return r.chip||"Tool"}}function l(r,t,o){const a=document.head.querySelector(r),s=a??t(),i=s.getAttribute("content"),c=!a;return c&&document.head.appendChild(s),s.setAttribute("content",o),()=>{c?s.remove():i===null?s.removeAttribute("content"):s.setAttribute("content",i)}}function y(r){const t=document.createElement("meta");return t.setAttribute("name",r),t}function d(r){const t=document.createElement("meta");return t.setAttribute("property",r),t}function N(){const r=document.title,t="MindExec | Run your ideas as AI task graphs",o="MindExec is an AI execution canvas for solo builders, researchers, developers, and creators. Start with free browser tools, then move serious work into saved MindCanvas projects.",a="https://mindexec.pages.dev/",s=document.head.querySelector('link[rel="canonical"]')??document.createElement("link"),i=!s.parentElement,c=s.getAttribute("href");s.setAttribute("rel","canonical"),s.setAttribute("href",a),i&&document.head.appendChild(s);const h={"@context":"https://schema.org","@type":"SoftwareApplication",name:"MindExec",applicationCategory:"ProductivityApplication",operatingSystem:"Web",description:"AI execution canvas for markdown, notes, research, and technical planning.",url:a,offers:{"@type":"Offer",price:"9",priceCurrency:"USD"}},n=document.head.querySelector("#platform-home-structured-data")??document.createElement("script"),p=!n.parentElement,u=n.textContent;n.id="platform-home-structured-data",n.type="application/ld+json",n.setAttribute("data-testid","platform-home-structured-data"),n.textContent=JSON.stringify(h),p&&document.head.appendChild(n),document.title=t;const m=[l('meta[name="description"]',()=>y("description"),o),l('meta[property="og:title"]',()=>d("og:title"),t),l('meta[property="og:description"]',()=>d("og:description"),"Use free markdown, notes, and clipboard tools instantly, then move larger work into MindCanvas for saved projects, AI task graphs, and visual organization."),l('meta[property="og:type"]',()=>d("og:type"),"website"),l('meta[property="og:url"]',()=>d("og:url"),a)];return()=>{document.title=r,m.forEach(x=>x()),i?s.remove():c===null?s.removeAttribute("href"):s.setAttribute("href",c),p?n.remove():n.textContent=u}}function I({navigate:r}){return f.useEffect(()=>N(),[]),e.jsxs("div",{className:"page platform-page","data-testid":"platform-home",children:[e.jsxs("section",{className:"platform-hero",children:[e.jsx("div",{className:"eyebrow",children:"AI business execution canvas"}),e.jsxs("div",{className:"platform-hero-grid",children:[e.jsxs("div",{className:"platform-copy",children:[e.jsx("h1",{children:"MindExec"}),e.jsx("p",{children:"Run your ideas as AI task graphs. Start with quick browser tools, then keep serious work in MindCanvas where notes, assets, AI runs, and execution evidence stay visible."}),e.jsxs("div",{className:"action-row",children:[e.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>r("/mindcanvas"),children:"Open MindCanvas"}),e.jsx("button",{className:"btn btn-secondary",type:"button",onClick:()=>r("/tools"),children:"Browse free tools"}),e.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>r("/pricing"),children:"See pricing"})]}),e.jsxs("div",{className:"trust-row",children:[e.jsx("span",{children:"English-first global launch"}),e.jsx("span",{children:"Local-first by default"}),e.jsx("span",{children:"USD paid path"}),e.jsx("span",{children:"Built for solo builders"})]})]}),e.jsxs("div",{className:"hero-product-panel","aria-label":"MindExec workflow preview",children:[e.jsxs("div",{className:"preview-toolbar",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]}),e.jsxs("div",{className:"preview-canvas",children:[e.jsxs("article",{className:"preview-node preview-node--note",children:[e.jsx("strong",{children:"Context"}),e.jsx("p",{children:"Audience, offer, proof, and reusable launch notes."})]}),e.jsxs("article",{className:"preview-node preview-node--task",children:[e.jsx(j,{size:16}),e.jsx("strong",{children:"AI Task"}),e.jsx("p",{children:"Create launch plan"})]}),e.jsx("svg",{className:"preview-edge",viewBox:"0 0 360 210","aria-hidden":"true",children:e.jsx("path",{d:"M130 92 C180 70 205 70 250 100"})})]})]})]})]}),e.jsx(v,{eyebrow:"Global launch list",headline:"Get the English launch notes before the paid rollout.",body:"Short product updates, practical MindCanvas examples, and launch pricing notices for builders who want a durable visual workspace.",sourceTag:"home"}),e.jsxs("section",{className:"page-section",children:[e.jsxs("div",{className:"section-head",children:[e.jsx("div",{className:"eyebrow",children:"How it fits"}),e.jsx("h2",{children:"Use the light tool first. Keep the bigger work in one place."}),e.jsx("p",{children:"The React port keeps MindExec canvas-first: fast utility work stays quick, and durable project work moves into a saved board."})]}),e.jsx("div",{className:"step-grid",children:[["01","Open a tool instantly","Markdown, notes, snippets, and quick review without login friction."],["02","Find the point where it matters","When work needs structure, compare, evidence, or repeatability."],["03","Continue in MindCanvas","Connect context, run AI tasks, and keep the output reusable."]].map(([t,o,a])=>e.jsxs("article",{className:"step-card",children:[e.jsx("span",{children:t}),e.jsx("h3",{children:o}),e.jsx("p",{children:a})]},t))})]}),e.jsxs("section",{className:"page-section","data-testid":"platform-featured-tools",children:[e.jsxs("div",{className:"section-head",children:[e.jsx("div",{className:"eyebrow",children:"Free entry points"}),e.jsx("h2",{children:"Start with the tool that matches the job"}),e.jsx("p",{children:"Each tool is meant to solve one narrow problem quickly, then hand larger work off to MindCanvas at the right moment."})]}),e.jsx("div",{className:"platform-tool-grid",children:w.map(t=>e.jsxs("article",{className:"platform-tool-card","data-testid":"platform-featured-tool-card","data-tool-key":t.key,children:[e.jsx("div",{className:"platform-tool-chip",children:g(t)}),e.jsx("h3",{children:t.title}),e.jsx("p",{children:t.description}),e.jsx("a",{href:t.liveUrl,target:"_blank",rel:"noreferrer","data-live-url":t.liveUrl,children:"Open tool"})]},t.key))}),e.jsx("div",{className:"platform-section-link",children:e.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>r("/tools"),children:"See the full tools directory"})})]}),e.jsxs("section",{className:"page-section","data-testid":"platform-audience",children:[e.jsxs("div",{className:"section-head",children:[e.jsx("div",{className:"eyebrow",children:"Best fit"}),e.jsx("h2",{children:"Built for researchers, writers, developers, and solo builders"}),e.jsx("p",{children:"If your work begins as markdown, snippets, notes, links, or loose planning artifacts, MindExec gives you a cleaner path into a persistent AI execution canvas."})]}),e.jsx("div",{className:"platform-audience-grid",children:k.map(([t,o])=>e.jsxs("article",{children:[e.jsx("h3",{children:t}),e.jsx("p",{children:o})]},t))})]}),e.jsxs("section",{className:"platform-closing","data-testid":"platform-closing",children:[e.jsxs("div",{children:[e.jsx("div",{className:"eyebrow",children:"Next step"}),e.jsx("h2",{children:"Start free. Upgrade when the work becomes worth keeping."}),e.jsx("p",{children:"Use the free entry points first, then keep the work that deserves persistence, cloud access, and AI support."})]}),e.jsxs("div",{className:"action-row",children:[e.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>r("/mindcanvas"),children:"Open MindCanvas"}),e.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>r("/pricing"),children:"See pricing"})]})]})]})}export{I as MarketingHome};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var qu=Object.defineProperty;var Ju=(e,t,o)=>t in e?qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var ld=(e,t,o)=>Ju(e,typeof t!="symbol"?t+"":t,o);import{j as n,r as g,a as Zu}from"./vendor-react-BXzpOyCS.js";import{l as Qu,a as ft,s as zt,b as em,d as tm,r as am,c as nm,e as om,i as cd}from"./storage-CWBhPPV8.js";import{r as Yr,g as xs,w as sm,a as Ks,d as ud,b as rm,t as Xr,p as vl,v as im,R as dm,c as lm,u as cm,e as um,f as md,s as bt,i as an,l as qs,h as Gn,j as Uo,k as Kn,m as qn,n as Ho,o as Aa,q as pd,x as mm,y as Jn,z as pm,A as gm,B as hm,C as fm,D as jl,E as bm,F as ym,G as oo,H as Sr,I as xm,J as Cm,K as gd,L as kr,M as wr,N as Il,O as Wo,P as ts,Q as so,S as hd,T as U,U as Js,V as ro,W as Sm,X as km,Y as wm,Z as fd,_ as Zs,$ as vm,a0 as jm,a1 as Im,a2 as Nm,a3 as vr,a4 as Am,a5 as Mm,a6 as Tm,a7 as Rm,a8 as bd}from"./canvas-runtime-BT5B2knz.js";import{e as Lm,d as Em}from"./vendor-msgpack-BE8aAsr3.js";import{R as f}from"./app-runtime-xD2Z3NdN.js";import{g as Qs,A as yd,a as as}from"./index-bMdZ9KL8.js";import{g as Cs,r as Nl}from"./supabaseAuthAdapter-DbmbdXn-.js";import{c as Pm,a as _m,r as xd}from"./toolHandoff-D5e5f7t5.js";import{a as Cd,s as Dm}from"./executionModeSettings-NJqurj-o.js";import{a as Sd,p as Bm}from"./runtimeSettingsPersistenceProjection-BoNWmYjU.js";import{A as Ut,W as Om,c as Al,D as Fm,E as Gr,R as cn,J as Kr,X as yt,N as jr,O as $m,Q as un,w as mn,I as pn,V as gn,l as us,F as xt,Y as zm,Z as Ir,_ as ms,$ as hn,a0 as Ml,a1 as Um,a2 as Tl,a3 as Hm,i as co,a4 as Rl,a5 as Wm,a6 as kd,a7 as Vm,a8 as ia,a9 as wd,T as ps,aa as vd,ab as po,ac as Ym,ad as ns,ae as Ll,af as Nr,ag as Xm,ah as Gm,f as Km,ai as qm,h as io,x as Jm,aj as Zm,ak as Qm,al as jd,am as Id,an as Nd,g as Ad,ao as Vo,H as Zn,ap as Yo,s as er,aq as Md,ar as ep,as as tr,at as Td,au as Xo,av as ar,aw as Rd,ax as Ld,ay as Ed,az as tp,aA as ap,aB as np,aC as op,n as sp,o as Qn,aD as rp,aE as ip,aF as dp,aG as lp,aH as cp,aI as up,aJ as mp,aK as pp}from"./vendor-icons-Bt6FQ3FW.js";const gp=1200,Pa="LocalBridgeOriginalNodeId";function Ct(e){return typeof e=="object"&&e!==null}function sa(e,t){const o=Number(e);return Number.isFinite(o)?o:t}function W(e){return typeof e=="string"?e:""}function El(){return typeof window<"u"?{width:window.innerWidth||1280,height:window.innerHeight||720}:{width:1280,height:720}}function Ar(e,t,o){const r=Number(e),l=Number(t),m=Number(o);if(!Number.isFinite(r)||!Number.isFinite(l)||!Number.isFinite(m)||m<=0)return null;const p=1400/m,b=El();return{x:b.width/2-r*p,y:b.height/2-l*p,scale:p}}function hp(e){return Ct(e)?Ar(e.x??e.X,e.y??e.Y,e.z??e.Z):null}function fp(e){if(!Ct(e))return null;const t=Number(e.x),o=Number(e.y),r=Number(e.scale);if(!Number.isFinite(t)||!Number.isFinite(o)||!Number.isFinite(r)||r<=0)return null;const l=El();return{x:(l.width/2-t)/r,y:(l.height/2-o)/r,z:1400/r}}function bp(e){const t=String(e||"").trim();if(t)try{const o=JSON.parse(t);if(!Ct(o))return;const r={};for(const[l,m]of Object.entries(o)){const p=hp(m);p&&(r[l]=p)}return Object.keys(r).length>0?r:void 0}catch{return}}function yp(e){if(!e||Object.keys(e).length===0)return null;const t={};for(const[o,r]of Object.entries(e)){const l=fp(r);l&&(t[o]=l)}return Object.keys(t).length>0?JSON.stringify(t):null}function gs(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function Ss(){return crypto.randomUUID()}function qr(e){return Ct(e)?"ContentType"in e||"Prompt"in e||"Response"in e||"PositionX"in e||"PositionY"in e||"SourceFilePath"in e||"ImageStack"in e:!1}function Pd(e){const t=W(e).trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}function Mr(e){if(Array.isArray(e))return e;if(!Ct(e))return[];for(const t of["Nodes","nodes","Items","items","Content","content","Upserts","upserts"])if(t in e){const o=e[t];if(Array.isArray(o))return o;const r=Pd(o);if(r)return Mr(r)}for(const t of["ContentJson","contentJson","content_json"])if(t in e){const o=Pd(e[t]);if(o)return Mr(o)}return qr(e)?[e]:[]}function Jr(e){return Ct(e)?"BoardId"in e&&("Upserts"in e||"upserts"in e||"Deletes"in e||"deletes"in e):!1}function Pl(e){if(!Ct(e))return 0;for(const t of["Deletes","deletes"]){const o=e[t];if(Array.isArray(o))return o.length}return 0}function hs(e){return Mr(e).filter(qr)}function _l(e){return hs(e).length}function xp(e,t){var m;const o=[...hs(e)];if(!Jr(t))return o;const r=new Set;for(const p of["Deletes","deletes"]){const b=t[p];if(Array.isArray(b))for(const c of b){const y=W(c).trim();y&&r.add(y)}}if(r.size>0)for(let p=o.length-1;p>=0;p-=1){const b=W((m=o[p])==null?void 0:m.Id).trim();b&&r.has(b)&&o.splice(p,1)}const l=new Map;o.forEach((p,b)=>{const c=W(p.Id).trim();c&&l.set(c,b)});for(const p of hs(t)){const b=W(p.Id).trim(),c=b?l.get(b):void 0;if(c!==void 0){o[c]=p;continue}b&&l.set(b,o.length),o.push(p)}return o}function Dl(e){const t=Array.isArray(e)?e.filter(Ct):[];return new Map(t.filter(o=>o.NodeId).map(o=>[String(o.NodeId),o]))}async function Tr(e,t){for(const o of e)try{const r=await Yr(o,t);return{payload:JSON.parse(r.content),path:o}}catch{}return null}async function Cp(e,t){const o=`.mindexec/boards/${e}.msgpack`,r=`boards/${e}.msgpack`;for(const b of[o,r])try{const c=await rm(b,t);return{payload:Em(c),format:b===o?"msgpack":"legacy-msgpack",path:b}}catch{}const l=`.mindexec/boards/${e}.json`,m=`boards/${e}.json`,p=await Tr([l,m],t);if(p)return{payload:p.payload,format:p.path===l?"json":"legacy-json",path:p.path};throw new Error(`LocalBridge board file not found: ${o}, ${r}, ${l}, ${m}`)}function Rr(e){const t=W(e.Id).trim()||W(e.BoardId).trim();return t?{Id:t,Title:W(e.Title)||null,Description:W(e.Description)||null,ThumbnailUrl:W(e.ThumbnailUrl)||null,CreatedAt:W(e.CreatedAt)||null,UpdatedAt:W(e.UpdatedAt)||null,LastCameraX:Number.isFinite(Number(e.LastCameraX))?Number(e.LastCameraX):null,LastCameraY:Number.isFinite(Number(e.LastCameraY))?Number(e.LastCameraY):null,LastCameraZ:Number.isFinite(Number(e.LastCameraZ))?Number(e.LastCameraZ):null,LastCursorX:Number.isFinite(Number(e.LastCursorX))?Number(e.LastCursorX):null,LastCursorY:Number.isFinite(Number(e.LastCursorY))?Number(e.LastCursorY):null,CameraBookmarks:W(e.CameraBookmarks)||null}:null}function _d(e){return!Ct(e)||qr(e)?!1:"Title"in e||"Description"in e||"ThumbnailUrl"in e||"IsPublic"in e||"LastCameraX"in e||"LastCameraY"in e||"LastCameraZ"in e||"CameraBookmarks"in e||"BoardId"in e||"Upserts"in e||"upserts"in e||"Deletes"in e||"deletes"in e||"ContentJson"in e||"content_json"in e}function Zr(e){if(Array.isArray(e))return e.filter(_d).map(t=>Rr(t)).filter(t=>!!t);if(_d(e)){const t=Rr(e);return t?[t]:[]}return[]}function Sp(e){const t=e.toLowerCase();return kp(t)?"remote-control":wp(t)?"remote-monitor":t==="templatelauncher"||t==="template-launcher"||t.includes("template launcher")?"template-launcher":t.includes("directory")?"directory":t.includes("pdf")?"pdf":t.includes("file")?"file":t.includes("mask")?"mask":t.includes("image")?"image":t.includes("video")?"video":t.includes("embed")?"embed":t==="csv-table"||t.includes("csv-table")||t.includes("csv table")?"csv-table":t.includes("markdown")?"markdown":t.includes("code")?"code":t==="text"||t==="text/plain"||t.includes("plain-text")||t.includes("plain text")?"text":t.includes("ai")||t.includes("task")?"ai-task":t.includes("memo")?"memo":"note"}function kp(e){const t=e.trim().toLowerCase();if(!t)return!1;if(["remote-control","remote.control","remotecontrol","remote-device","remote.device","remotedevice","remote-fleet-device","remotefleet.device"].includes(t))return!0;const o=t.replace(/[^a-z0-9]+/g,"");return o.includes("remotecontrol")||o.includes("remotedevice")||o.includes("remotefleetdevice")}function wp(e){const t=e.trim().toLowerCase();if(!t)return!1;if(["remote-monitor","remote.monitor","remotemonitor","remote-hub-monitor","remotehub.monitor","remotehub-monitor","multi-desktop-monitor","multidesktop.monitor","smartview.monitor"].includes(t))return!0;const o=t.replace(/[^a-z0-9]+/g,"");return o.includes("remotemonitor")||o.includes("remotehubmonitor")||o.includes("multidesktopmonitor")||o.includes("smartviewmonitor")}function vp(e,t){const o=e.Metadata||{},r=o.ThumbnailUrl,l=o.OriginalUrl,m=o.OriginalPath;return Xr(W(r)||W(l)||W(m)||W(e.Response),t)}function jp(e,t,o){const r=e.ImageStack,l=Array.isArray(r==null?void 0:r.Variants)?r.Variants:[];if(l.length===0)return;const m=l.map((b,c)=>{const y=W(b.AssetId).trim(),w=Xr(y,o)||t;return w?{variantId:W(b.VariantId)||`variant-${W(e.Id)||c}`,imageUrl:w,assetId:y||void 0,caption:W(b.Caption)||void 0,sourceNodeId:W(e.Id)||void 0,createdAtUtc:W(b.CreatedAtUtc)||void 0}:null}).filter(b=>!!b);if(m.length===0)return;const p=W(r==null?void 0:r.ActiveVariantId);return{activeVariantId:m.some(b=>b.variantId===p)?p:m[0].variantId,variants:m,kind:W(r==null?void 0:r.Kind)||"versions",title:W(r==null?void 0:r.Title)||void 0,updatedAtUtc:W(r==null?void 0:r.UpdatedAtUtc)||void 0}}function Ip(e,t){return!e||e.variants.length===0?t:(e.variants.find(r=>r.variantId===e.activeVariantId)??e.variants[0]).imageUrl||t}function Np(e,t,o){var p,b,c,y,w,L;const r=(b=(p=e.imageStack)==null?void 0:p.variants)!=null&&b.length?e.imageStack.variants:e.imageUrl?[{variantId:`${e.id}:image`,imageUrl:e.imageUrl,assetId:go(e.imageUrl,t)||e.imageUrl,title:e.title,sourceNodeId:e.id,createdAtUtc:o}]:[];if(r.length===0)return null;const l=r.map(I=>({VariantId:I.variantId||Ss(),AssetId:I.assetId||go(I.imageUrl,t)||I.imageUrl,CreatedAtUtc:I.createdAtUtc||o,Caption:I.caption||I.title||null}));return{ActiveVariantId:(c=e.imageStack)!=null&&c.activeVariantId&&l.some(I=>{var D;return I.VariantId===((D=e.imageStack)==null?void 0:D.activeVariantId)})?e.imageStack.activeVariantId:l[0].VariantId||"",Variants:l,Kind:((y=e.imageStack)==null?void 0:y.kind)||(l.length>1?"pile":"versions"),Title:((w=e.imageStack)==null?void 0:w.title)||e.title||null,UpdatedAtUtc:((L=e.imageStack)==null?void 0:L.updatedAtUtc)||o}}function Ap(e,t){const o=e.Metadata||{};return Xr(W(o.OriginalUrl)||W(o.OriginalPath)||W(o.SourceFilePath)||W(e.SourceFilePath)||W(e.Response),t)}function Mp(e){const t={};for(const[o,r]of Object.entries(e??{}))typeof r=="string"?t[o]=r:r!=null&&(t[o]=String(r));return t}function Tp(e){switch(e){case"remote-monitor":return"remote-monitor";case"remote-control":return"remote-control";case"template-launcher":return"templateLauncher";case"directory":return"directory";case"pdf":return"pdf";case"file":return"file";case"image":return"image";case"mask":return"mask";case"video":return"video";case"embed":return"embed";case"code":return"code";case"markdown":return"markdown";case"csv-table":return"csv-table";case"memo":return"memo";case"text":return"text";case"ai-task":return"note";default:return"note"}}function go(e,t){const o=String(e||"").trim();if(!o)return"";const r=t.replace(/\/+$/,"");return o.startsWith(`${r}/`)?o.slice(r.length+1):o.replace(/^\/+/,"")}function Rp(e,t){const o=new Map;for(const r of e){const l=t.get(r.from),m=t.get(r.to);!l||!m||o.has(m)||o.set(m,l)}return o}function Lp(e){const t=new Set;return e.map(o=>{var c,y;const r=((c=o.metadata)==null?void 0:c[Pa])||"",l=gs(r)?r:gs(o.id)?o.id:"",m=!!(l&&t.has(l)),p=l&&!m?l:Ss(),b=((y=o.metadata)==null?void 0:y[Pa])!==p;return t.add(p),{node:b?{...o,metadata:{...o.metadata??{},[Pa]:p}}:o,originalId:p,assignedNodeId:!l||m,metadataStamped:b,duplicateOriginalId:m}})}function Ep(e,t,o,r,l){var y,w,L;const m=Tp(e.kind),p=m==="image"||m==="mask"?go(e.imageUrl,l):"",b=["video","pdf","file","directory","embed"].includes(m)?go(e.assetUrl||e.sourceFilePath||e.body,l):"",c={...e.metadata??{},[Pa]:t,ReactNodeId:e.id,ReactKind:e.kind};if(e.kind==="remote-monitor"&&(c.RemoteHub??(c.RemoteHub="Gated"),c.RemoteRoute??(c.RemoteRoute="Gated"),c.RemoteConnected??(c.RemoteConnected="0"),c.RemoteTotal??(c.RemoteTotal="30"),c.RemotePage??(c.RemotePage="1/1"),c.AdapterState??(c.AdapterState="adapter-gated")),e.kind==="remote-control"&&(c.SemanticType??(c.SemanticType="RemoteFleetDevice"),c.RemoteFleetSchemaVersion??(c.RemoteFleetSchemaVersion="remote-fleet-device@1"),c.RemoteRoute??(c.RemoteRoute="Gated"),c.RemoteInput??(c.RemoteInput="Off"),c.AdapterState??(c.AdapterState="adapter-gated")),e.kind==="mask"&&(c.ImageRouterMask??(c.ImageRouterMask="true"),c.SemanticType??(c.SemanticType="ImageEditMask")),e.kind==="embed"){const I=e.assetUrl||e.body||e.sourceFilePath||"";c.source??(c.source="embed"),c.renderMode??(c.renderMode="card"),c.provider??(c.provider="web"),c.sourceUrl??(c.sourceUrl=I),c.url??(c.url=I),c.AdapterState??(c.AdapterState="local-reference")}return e.kind==="video"&&(c.assetKind??(c.assetKind="video"),c.videoMode??(c.videoMode=(y=e.assetUrl)!=null&&y.startsWith(l)?"local_bridge":"local_reference"),c.AdapterState??(c.AdapterState=((w=e.metadata)==null?void 0:w.PromptOnly)==="true"?"adapter-gated":"local-reference")),(L=e.tags)!=null&&L.length&&(c.ReactTags=JSON.stringify(e.tags)),p&&(c.OriginalUrl=p,c.ThumbnailUrl=p),b&&(c.OriginalPath=b,c.SourceFilePath=b),{Id:t,ContentType:m,Prompt:e.title||m,Response:m==="image"||m==="mask"?p||e.body||null:m==="remote-monitor"?e.body||"RemoteHub monitor node. Frames and input stay adapter-gated until LocalBridge is connected.":m==="remote-control"?e.body||"Remote device control node. Frames and input stay adapter-gated until LocalBridge is connected.":b||e.body||null,PositionX:e.x,PositionY:e.y,PositionZ:0,IsLoading:e.status==="running",Width:Math.round(e.width),Height:Math.round(e.height),Children:[],ParentId:o||null,IsExpanded:!!e.isExpanded,OriginalHeight:Math.round(e.originalHeight??0),IsAiEnabled:e.aiEnabled!==!1,IsChunkedText:!!e.isChunkedText,TotalLineCount:Math.round(e.totalLineCount??0),SourceFilePath:e.sourceFilePath||b||null,ScrollOffset:e.scrollOffset??0,MaxScroll:e.maxScroll??0,CreatedAt:r,UpdatedAt:r,IsWordWrap:e.wordWrap??e.kind!=="code",Metadata:c,ImageStack:m==="image"?Np(e,l,r):null}}function Pp(e,t){return{NodeId:t,PositionX:e.x,PositionY:e.y,PositionZ:0,Width:Math.round(e.width),Height:Math.round(e.height),IsExpanded:!!e.isExpanded,OriginalHeight:Math.round(e.originalHeight??0)}}function _p(e,t,o){const r=W(e.ContentType)||"note",l=W(e.Prompt).trim(),m=W(e.Response).trim(),p=Mp(e.Metadata),b=W(e.Id).trim();b&&(p[Pa]??(p[Pa]=b));const y=["true","1","yes"].includes(String(p.ImageRouterMask||p.IsMask||"").trim().toLowerCase())?"mask":Sp(r),w=y==="memo"&&["mindcanvasagent","agentcommand"].includes(String(p.SemanticType||p.semanticType||"").trim().toLowerCase()),L=y==="memo"&&["codenote","code-note"].includes(String(p.SemanticType||p.semanticType||"").trim().toLowerCase()),I=W(e.SourceFilePath)||p.OriginalPath||p.SourceFilePath||"",D=y==="video"||y==="pdf"||y==="file"||y==="directory"||y==="embed"?Ap(e,o):void 0,J=l||e.SourceFilePath||r||"LocalBridge node",$=y==="image"?m||l||"Image asset":y==="mask"?m||l||"Image mask asset":y==="remote-monitor"?m||l||"RemoteHub monitor node. Frames and input stay adapter-gated until LocalBridge is connected.":y==="remote-control"?m||l||I||"Remote device control node. Frames and input stay adapter-gated until LocalBridge is connected.":y==="pdf"||y==="file"||y==="directory"||y==="embed"?m||I||l||r:m||l||I||"",O=w?500:L?400:y==="remote-monitor"?860:y==="remote-control"||y==="template-launcher"?560:y==="csv-table"?720:y==="embed"?460:y==="video"?420:y==="markdown"?380:y==="text"||y==="image"||y==="mask"?360:320,K=w||L?300:y==="remote-monitor"?640:y==="remote-control"?390:y==="template-launcher"?620:y==="csv-table"?420:y==="embed"?260:y==="video"?236:y==="markdown"?240:y==="text"?210:y==="image"||y==="mask"?260:180,V=y==="image"||y==="mask"?vp(e,o):void 0,se=y==="image"?jp(e,V,o):void 0,oe=!!(e.IsChunkedText||p.IsChunkedText==="true"),Ae=sa(e.TotalLineCount??p.TotalLineCount,0),be=sa(e.ScrollOffset,0),Ue=sa(e.MaxScroll,0);return{id:String(e.Id||crypto.randomUUID()),kind:y,title:y==="remote-monitor"?l||"Multi Desktop Monitor":y==="remote-control"?l||p.RemoteFleetDeviceName||"Remote Device":y==="template-launcher"?l||"Template Launcher":J,body:$,x:sa((t==null?void 0:t.PositionX)??e.PositionX,0),y:sa((t==null?void 0:t.PositionY)??e.PositionY,0),width:Math.max(160,Math.min(900,sa((t==null?void 0:t.Width)??e.Width,O))),height:Math.max(120,Math.min(900,sa((t==null?void 0:t.Height)??e.Height,K))),status:e.IsLoading?"running":y==="ai-task"?"idle":void 0,imageUrl:Ip(se,V),imageStack:se,assetUrl:D,sourceFilePath:I||void 0,isChunkedText:oe||void 0,totalLineCount:oe?Ae:void 0,scrollOffset:oe?be:void 0,maxScroll:oe?Ue:void 0,isExpanded:typeof e.IsExpanded=="boolean"?e.IsExpanded:void 0,originalHeight:sa(e.OriginalHeight,0)||void 0,tags:w?["Agent Command",p.AgentCommandRequestedRole||"Researcher",p.AgentCommandStatus||"Draft"]:L?["Code Note",p.CodeNoteStatus||"Draft",p.CodeNoteSyncState||"Unlinked"]:y==="remote-monitor"?["Remote","Monitor","LocalBridge"]:y==="remote-control"?["Remote","Control","LocalBridge"]:["LocalBridge",r],metadata:y==="remote-monitor"?Dp(p):y==="remote-control"?Bp(p):p,role:e.IsAiEnabled?"ai-enabled":void 0,aiEnabled:typeof e.IsAiEnabled=="boolean"?e.IsAiEnabled:void 0,wordWrap:typeof e.IsWordWrap=="boolean"?e.IsWordWrap:void 0}}function Dp(e){return{RemoteHub:"Gated",RemoteRoute:"Gated",RemoteConnected:"0",RemoteTotal:"30",RemotePage:"1/1",AdapterState:"adapter-gated",...e}}function Bp(e){return{SemanticType:"RemoteFleetDevice",RemoteFleetSchemaVersion:"remote-fleet-device@1",RemoteFleetDeviceId:"",RemoteFleetDeviceName:"Remote Device",RemoteFleetDevicePlatform:"unknown",RemoteFleetDeviceConnected:"false",RemoteInput:"Off",RemoteHub:"Gated",RemoteRoute:"Gated",RemoteBaseUrl:"http://127.0.0.1:5147",AdapterState:"adapter-gated",...e}}function Op(e,t){const o=[];for(const r of e){const l=String(r.Id||""),m=String(r.ParentId||"");!l||!m||!t.has(l)||!t.has(m)||o.push({id:`edge-local-${m}-${l}`,from:m,to:l,kind:"context"})}return o}async function Fp(e=xs()){const t=await Yr(".mindexec/boards/_metadata.json",e),o=JSON.parse(t.content);return(Array.isArray(o)?o.filter(Ct):[]).map(m=>Rr(m)).filter(m=>!!m).sort((m,p)=>String(p.UpdatedAt||"").localeCompare(String(m.UpdatedAt||"")))}async function $p(e){try{const t=await Yr(".mindexec/boards/_metadata.json",e),o=JSON.parse(t.content);return Array.isArray(o)?o.filter(Ct):[]}catch{return[]}}async function zp(e,t,o,r=xs(),l=null){var lt,Me,le,Tt,me,He;if((lt=e.source)!=null&<.partialImport)throw new Error("This board was imported from a partial original payload. Export is blocked to avoid data loss.");if((Me=e.source)!=null&&Me.truncated)throw new Error("This board was truncated during import. Export is blocked to avoid data loss.");const m=(le=e.source)!=null&&le.exportedByReact?String(e.source.boardId||""):"",p=gs(m),b=gs(m)?m:Ss(),c=new Date().toISOString(),y=Lp(e.nodes),w=y.map(ee=>ee.node),L=new Map(y.map(ee=>[ee.node.id,ee.originalId])),I=Rp(e.edges,L),D=y.map(({node:ee,originalId:ct})=>Ep(ee,ct,I.get(ct),c,r)),J=y.map(({node:ee,originalId:ct})=>Pp(ee,ct)),$=t.scale>0?t.scale:1,O=(window.innerWidth/2-t.x)/$,K=(window.innerHeight/2-t.y)/$,V=1400/$,se=Number((l==null?void 0:l.x)??((Tt=e.viewState)==null?void 0:Tt.cursorX)??0),oe=Number((l==null?void 0:l.y)??((me=e.viewState)==null?void 0:me.cursorY)??0),Ae=(He=e.nodes.find(ee=>ee.kind==="image"&&ee.imageUrl))==null?void 0:He.imageUrl,be={Id:b,UserId:"00000000-0000-0000-0000-000000000000",Title:e.name||"Untitled Board",Description:"Exported from MindExec React",ThumbnailUrl:go(Ae,r)||"",IsPublic:!1,CreatedAt:c,SyncedCloudBoardId:null,LastSyncedAt:null,LastCloudCopyStatus:null,UpdatedAt:c,LastCameraX:O,LastCameraY:K,LastCameraZ:V,LastCursorX:Number.isFinite(se)?se:0,LastCursorY:Number.isFinite(oe)?oe:0,CameraBookmarks:yp(e.settings.cameraBookmarks)},Ue=`.mindexec/boards/${b}.msgpack`,et=`.mindexec/boards/${b}.json`,tt=`.mindexec/boards/${b}.layout.json`,he=`.mindexec/boards/${b}.delta.json`,Z=`boards/${b}.delta.json`,ie=await $p(r),re=[be,...ie.filter(ee=>W(ee.Id)!==b)],St=Lm(D);await sm(Ue,St,o,r),await Ks(et,JSON.stringify(D,null,2),o,r),await Ks(tt,JSON.stringify(J,null,2),o,r),await Ks(".mindexec/boards/_metadata.json",JSON.stringify(re,null,2),o,r);const F=await Promise.allSettled([ud(he,o,r),ud(Z,o,r)]);return f.emit("localBridge.board.exported",{boardId:b,nodes:D.length,edges:e.edges.length,snapshotFormat:"msgpack",msgpackBytes:St.byteLength,jsonMirror:!0,deltaCleared:F.some(ee=>ee.status==="fulfilled"&&ee.value.success),reusedBoardId:p,stableNodeIds:y.length,assignedNodeIds:y.filter(ee=>ee.assignedNodeId).length,metadataStampedNodeIds:y.filter(ee=>ee.metadataStamped).length,duplicateOriginalNodeIds:y.filter(ee=>ee.duplicateOriginalId).length}),{metadata:be,source:{kind:"localBridge",boardId:b,loadedAt:c,originalNodeCount:D.length,renderedNodeCount:D.length,truncated:!1,exportedByReact:!0,snapshotFormat:"msgpack"},nodes:w,msgpackPath:Ue,boardPath:et,layoutPath:tt}}async function Up(e,t,o=xs()){const r=await Cp(e.Id,o);let l=new Map;const m=await Tr([`.mindexec/boards/${e.Id}.layout.json`,`boards/${e.Id}.layout.json`],o);m&&(l=Dl(m.payload));let p=null;const b=await Tr([`.mindexec/boards/${e.Id}.delta.json`,`boards/${e.Id}.delta.json`],o);b&&(p=b.payload);const c=p?Zr(p)[0]:null,y=!!(p&&Jr(p)),w=y?xp(r.payload,p):r.payload;return Bl(w,t,{boardId:(c==null?void 0:c.Id)??e.Id,title:(c==null?void 0:c.Title)||e.Title||"LocalBridge Board",updatedAt:(c==null?void 0:c.UpdatedAt)??e.UpdatedAt,layoutPayload:Array.from(l.values()),baseUrl:o,cameraBookmarks:(c==null?void 0:c.CameraBookmarks)??e.CameraBookmarks,lastCursorX:(c==null?void 0:c.LastCursorX)??e.LastCursorX,lastCursorY:(c==null?void 0:c.LastCursorY)??e.LastCursorY,deltaApplied:y,deltaUpserts:p?_l(p):0,deltaDeletes:p?Pl(p):0,snapshotFormat:r.format})}function Bl(e,t,o={}){const r=hs(e),l=Jr(e),m=o.deltaUpserts??(l?r.length:0),p=o.deltaDeletes??(l?Pl(e):0),b=o.layoutPayload?Dl(o.layoutPayload):new Map,c=r.slice(0,gp),y=c.map(oe=>_p(oe,b.get(String(oe.Id||"")),o.baseUrl??xs())),w=new Set(y.map(oe=>oe.id)),L=Op(c,w),I=r.length>y.length,D=l,J=o.deltaApplied===!0,$=o.boardId||Ss(),O=o.updatedAt||new Date().toISOString(),K=Number(o.lastCursorX),V=Number(o.lastCursorY),se=Number.isFinite(K)&&Number.isFinite(V);return f.emit("localBridge.board.loaded",{boardId:$,nodes:y.length,originalNodes:r.length,truncated:I,snapshotFormat:o.snapshotFormat,partialImport:D,deltaImport:l,deltaApplied:J,deltaUpserts:m,deltaDeletes:p}),{id:`localBridge:${$}`,name:o.title||"LocalBridge Board",nodes:y,edges:L,settings:{...t,cameraBookmarks:bp(o.cameraBookmarks)},viewState:se?{cursorX:K,cursorY:V}:void 0,updatedAt:O,source:{kind:"localBridge",boardId:$,loadedAt:new Date().toISOString(),snapshotFormat:o.snapshotFormat,originalNodeCount:r.length,renderedNodeCount:y.length,truncated:I,partialImport:D,deltaImport:l,deltaApplied:J}}}const Qr=["id","user_id","title","description","content_json","thumbnail_url","is_public","created_at","updated_at","last_camera_x","last_camera_y","last_camera_z","last_cursor_x","last_cursor_y","camera_bookmarks"].join(","),Hp=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Wp(e){if(Hp.test(e))return e;if(typeof crypto<"u"&&"randomUUID"in crypto)return crypto.randomUUID();throw new Error("A browser crypto.randomUUID implementation is required to create cloud boards.")}function Ol(e){if(!e)return{};if(Array.isArray(e))return{nodes:e};if(typeof e=="object")return e;if(typeof e!="string"||!e.trim())return{};try{const t=JSON.parse(e);if(Array.isArray(t))return{nodes:t};if(t&&typeof t=="object")return t}catch{return{}}return{}}function Vp(e){return JSON.stringify({id:e.id,name:e.name,nodes:e.nodes,edges:e.edges,settings:e.settings,viewState:e.viewState,updatedAt:e.updatedAt})}function Lr(e,t=new Date().toISOString()){return e&&!Number.isNaN(Date.parse(e))?e:t}function ei(e){return(e==null?void 0:e.trim().slice(0,90))||"Untitled Board"}function Fl(e){const t=Ol(e.content_json),o=Lr(e.updated_at??t.updatedAt);return{id:e.id,name:ei(e.title??t.name),updatedAt:o,createdAt:Lr(e.created_at,o),nodeCount:Array.isArray(t.nodes)?t.nodes.length:0,edgeCount:Array.isArray(t.edges)?t.edges.length:0,sourceKind:"cloud"}}function Yp(e,t){var w,L;const o=Ol(e.content_json),r=Lr(e.updated_at??o.updatedAt),l=Number((w=o.viewState)==null?void 0:w.cursorX),m=Number((L=o.viewState)==null?void 0:L.cursorY),p=Number(e.last_cursor_x),b=Number(e.last_cursor_y),c=Number.isFinite(l)&&Number.isFinite(m),y=Number.isFinite(p)&&Number.isFinite(b);return{id:e.id,name:ei(e.title??o.name),nodes:Array.isArray(o.nodes)?o.nodes:[],edges:Array.isArray(o.edges)?o.edges:[],settings:o.settings??t,viewState:c?{cursorX:l,cursorY:m}:y?{cursorX:p,cursorY:b}:void 0,updatedAt:r,source:{kind:"cloud",boardId:e.id,loadedAt:new Date().toISOString(),snapshotFormat:"supabase.boards.content_json",originalNodeCount:Array.isArray(o.nodes)?o.nodes.length:0,renderedNodeCount:Array.isArray(o.nodes)?o.nodes.length:0}}}async function ti(e){var c;const t=Nl(e);if(!t.cloudBoards.canAttempt)return f.emit("projectStorage.cloud.provider.skipped",{mode:t.cloudBoards.mode}),{userId:null,config:t,reason:t.cloudBoards.mode};const o=Cs(e);if(!o)return f.emit("projectStorage.cloud.provider.skipped",{mode:"config-missing"}),{userId:null,config:t,reason:"missing-client"};const{data:r,error:l}=await o.auth.getSession();if(l||!r.session)return f.emit("projectStorage.cloud.provider.sessionMissing",{message:(l==null?void 0:l.message)??"missing-session"}),{userId:null,config:t,reason:"missing-session"};const{data:m,error:p}=await o.auth.getUser(),b=((c=m.user)==null?void 0:c.id)??null;return p||!b?(f.emit("projectStorage.cloud.provider.sessionMissing",{message:(p==null?void 0:p.message)??"missing-user"}),{userId:null,config:t,reason:"missing-user"}):{userId:b,config:t,reason:"provider-ready"}}async function Xp(e){const t=await ti(e);if(!t.userId)return[];const o=Cs(e);if(!o)return[];f.emit("projectStorage.cloud.list.requested");const{data:r,error:l}=await o.from("boards").select(Qr).eq("user_id",t.userId).order("updated_at",{ascending:!1}).limit(50);if(l)throw f.emit("projectStorage.cloud.provider.failed",{operation:"list",message:l.message}),l;const m=(r??[]).map(Fl);return f.emit("projectStorage.cloud.list.loaded",{count:m.length}),m}async function Gp(e,t,o){const r=await ti(e);if(!r.userId)return null;const l=Cs(e);if(!l)return null;f.emit("projectStorage.cloud.load.requested",{boardId:t});const{data:m,error:p}=await l.from("boards").select(Qr).eq("user_id",r.userId).eq("id",t).maybeSingle();if(p)throw f.emit("projectStorage.cloud.provider.failed",{operation:"load",boardId:t,message:p.message}),p;if(!m)return null;const b=Yp(m,o);return f.emit("projectStorage.cloud.load.loaded",{boardId:t,nodes:b.nodes.length,edges:b.edges.length}),b}async function Kp(e,t,o,r=null){var se,oe;const l=await ti(e);if(!l.userId)return null;const m=Cs(e);if(!m)return null;const p=Wp(t.id),b=new Date().toISOString(),c=ei(t.name),y=Number((r==null?void 0:r.x)??((se=t.viewState)==null?void 0:se.cursorX)??0),w=Number((r==null?void 0:r.y)??((oe=t.viewState)==null?void 0:oe.cursorY)??0),L={...t.viewState??{},cursorX:Number.isFinite(y)?y:0,cursorY:Number.isFinite(w)?w:0},I={...t,id:p,name:c,viewState:L,updatedAt:b},D={p_board_id:p,p_title:c,p_description:null,p_thumbnail_url:null,p_is_public:!1,p_created_at:null,p_updated_at:b,p_last_camera_x:o.x,p_last_camera_y:o.y,p_last_camera_z:o.scale,p_last_cursor_x:L.cursorX,p_last_cursor_y:L.cursorY,p_camera_bookmarks:JSON.stringify(t.settings.cameraBookmarks??{}),p_nodes:[],p_include_json_mirror:!0};f.emit("projectStorage.cloud.save.requested",{boardId:p,sourceBoardId:t.id,nodes:t.nodes.length,edges:t.edges.length});const{error:J}=await m.rpc("save_board_snapshot",D);if(J)throw f.emit("projectStorage.cloud.provider.failed",{operation:"save-rpc",boardId:p,message:J.message}),J;const $={content_json:Vp(I),updated_at:b},{data:O,error:K}=await m.from("boards").update($).eq("id",p).eq("user_id",l.userId).select(Qr).maybeSingle();if(K)throw f.emit("projectStorage.cloud.provider.failed",{operation:"save-json-mirror",boardId:p,message:K.message}),K;const V=O?Fl(O):{id:p,name:c,updatedAt:b,createdAt:b,nodeCount:t.nodes.length,edgeCount:t.edges.length,sourceKind:"cloud"};return f.emit("projectStorage.cloud.save.saved",{boardId:V.id,nodes:V.nodeCount,edges:V.edgeCount}),V}function Er(e){return e.length===0?{minX:0,minY:0,maxX:0,maxY:0}:e.reduce((t,o)=>({minX:Math.min(t.minX,o.x),minY:Math.min(t.minY,o.y),maxX:Math.max(t.maxX,o.x+o.width),maxY:Math.max(t.maxY,o.y+o.height)}),{minX:Number.POSITIVE_INFINITY,minY:Number.POSITIVE_INFINITY,maxX:Number.NEGATIVE_INFINITY,maxY:Number.NEGATIVE_INFINITY})}function qp(e,t={},o=Er(e),r){if(e.length===0)return{after:new Map,boundsAfter:o};const l=pg(t.mode),m=gg(t.order),p=hg(t.anchor),b=fg(t.sizeMode),c=Math.max(0,t.gapX??24),y=Math.max(0,t.gapY??24),w=Math.max(1,t.maxColumns??12),L=Pr(t.quantile??.75,.05,.95),I=e.map(Jp),D=dg(I,m),J=D.map(be=>be.width),$=D.map(be=>be.height),O=Math.max(1,t.cellWidth??Bd(J,L)),K=Math.max(1,t.cellHeight??Bd($,L)),V=Math.max(1,t.targetWidth??O),se=Math.max(1,t.targetHeight??K),oe=ig(p,o);if(l==="grid"){ng(D,b,V,se,O,K);const be=Dd(t.columns,w,o.maxX-o.minX,O,c);Qp(D,oe.x,oe.y,be,O,K,c,y)}else if(l==="masonry"){og(D,b==="preserve"?"uniformWidth":b,V);const Ue=Dd(t.columns,w,o.maxX-o.minX,V,c);eg(D,oe.x,oe.y,Ue,V,c,y)}else l==="stripHorizontal"?(sg(D,b==="preserve"?"uniformHeight":b,se),tg(D,oe.x,oe.y,c,se)):(rg(D,b==="preserve"?"uniformWidth":b,V),ag(D,oe.x,oe.y,y,V));let Ae=new Map(D.map(be=>[be.id,Zp(be)]));return p==="selectionBoundsCenter"&&(Ae=cg(o,Ae)),t.snapToGrid&&(Ae=ug(Ae,Math.max(1,t.gridSize??8))),{after:Ae,boundsAfter:Er(Array.from(Ae.values()))}}function Jp(e){return{...e,width:Math.max(1,e.width),height:Math.max(1,e.height)}}function Zp(e){return{x:e.x,y:e.y,width:Math.max(1,e.width),height:Math.max(1,e.height)}}function Qp(e,t,o,r,l,m,p,b){e.forEach((c,y)=>{const w=Math.floor(y/r),L=y%r,I=t+L*(l+p),D=o+w*(m+b);c.x=I+(l-c.width)/2,c.y=D+(m-c.height)/2})}function eg(e,t,o,r,l,m,p){const b=Array.from({length:r},()=>0);for(const c of e){const y=mg(b),w=t+y*(l+m);c.x=w+(l-c.width)/2,c.y=o+b[y],b[y]+=c.height+p}}function tg(e,t,o,r,l){let m=t;for(const p of e)p.x=m,p.y=o+(l-p.height)/2,m+=p.width+r}function ag(e,t,o,r,l){let m=o;for(const p of e)p.x=t+(l-p.width)/2,p.y=m,m+=p.height+r}function ng(e,t,o,r,l,m){if(t==="fitCellDownOnly")for(const p of e){const b=Math.min(1,l/p.width,m/p.height);p.width*=b,p.height*=b}else t==="uniformWidth"?ai(e,o):t==="uniformHeight"&&$l(e,r)}function og(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const l=Math.min(1,o/r.width);r.width*=l,r.height*=l}return}ai(e,o)}function sg(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const l=Math.min(1,o/r.height);r.width*=l,r.height*=l}return}$l(e,o)}function rg(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const l=Math.min(1,o/r.width);r.width*=l,r.height*=l}return}ai(e,o)}function ai(e,t){for(const o of e){if(o.width<=0)continue;const r=t/o.width;o.width=t,o.height=Math.max(1,o.height*r)}}function $l(e,t){for(const o of e){if(o.height<=0)continue;const r=t/o.height;o.height=t,o.width=Math.max(1,o.width*r)}}function Dd(e,t,o,r,l){if(typeof e=="number"&&e>0)return Math.round(Pr(e,1,t));if(o<=1||r<=1)return 1;const m=Math.floor((o+l)/(r+l));return!Number.isFinite(m)||m<1?1:Math.round(Pr(m,1,t))}function ig(e,t,o){return{x:t.minX,y:t.minY}}function dg(e,t){return t==="selectionOrder"?[...e].sort((o,r)=>o.selectionIndex-r.selectionIndex):lg(e)}function lg(e){const t=[...e].sort((c,y)=>c.y-y.y||c.x-y.x);if(t.length<=2)return t;const o=t.map(c=>c.height).sort((c,y)=>c-y),r=o[Math.floor(o.length/2)]??1,l=Math.max(16,r*.35),m=[];let p=[],b=Number.NaN;for(const c of t)p.length===0?(p=[c],b=c.y):Math.abs(c.y-b)<=l?(p.push(c),b=(b*(p.length-1)+c.y)/p.length):(m.push([...p].sort((y,w)=>y.x-w.x)),p=[c],b=c.y);return p.length>0&&m.push([...p].sort((c,y)=>c.x-y.x)),m.flat()}function cg(e,t){if(t.size===0)return t;const o=Er(Array.from(t.values())),r=e.minX+(e.maxX-e.minX)/2,l=e.minY+(e.maxY-e.minY)/2,m=o.minX+(o.maxX-o.minX)/2,p=o.minY+(o.maxY-o.minY)/2,b=r-m,c=l-p;return new Map(Array.from(t.entries()).map(([y,w])=>[y,{...w,x:w.x+b,y:w.y+c}]))}function ug(e,t){return new Map(Array.from(e.entries()).map(([o,r])=>[o,{...r,x:Od(r.x,t),y:Od(r.y,t)}]))}function Bd(e,t){if(e.length===0)return 1;const o=[...e].sort((b,c)=>b-c),r=(o.length-1)*t,l=Math.floor(r),m=Math.min(o.length-1,l+1),p=r-l;return o[l]*(1-p)+o[m]*p}function mg(e){let t=0;for(let o=1;o<e.length;o+=1)e[o]<e[t]&&(t=o);return t}function Od(e,t){return Math.round(e/t)*t}function pg(e){const t=ks(e);return t==="grid"?"grid":t==="striphorizontal"||t==="striph"?"stripHorizontal":t==="stripvertical"||t==="stripv"?"stripVertical":"masonry"}function gg(e){return ks(e)==="selectionorder"?"selectionOrder":"spatialReading"}function hg(e){const t=ks(e);return t==="selectionboundscenter"?"selectionBoundsCenter":t==="viewporttopleft"?"viewportTopLeft":"selectionBoundsTopLeft"}function fg(e){const t=ks(e);return t==="fitcelldownonly"?"fitCellDownOnly":t==="uniformwidth"?"uniformWidth":t==="uniformheight"?"uniformHeight":"preserve"}function ks(e){return String(e??"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")}function Pr(e,t,o){return Math.min(o,Math.max(t,e))}const zl=300,Ul=50*1024*1024,bg=800;function ke(e){return typeof e=="string"?e.length*2:0}function yg(e){let t=256;if(t+=ke(e.id),t+=ke(e.kind),t+=ke(e.title),t+=ke(e.body),t+=ke(e.result),t+=ke(e.imageUrl),t+=ke(e.assetUrl),t+=ke(e.sourceFilePath),t+=(e.tags??[]).reduce((o,r)=>o+ke(r),0),e.metadata)for(const[o,r]of Object.entries(e.metadata))t+=ke(o)+ke(r);return e.imageStack&&(t+=128+ke(e.imageStack.title),t+=e.imageStack.variants.reduce((o,r)=>o+96+ke(r.variantId)+ke(r.imageUrl)+ke(r.assetId)+ke(r.title)+ke(r.caption),0)),t}function xg(e){let t=1024+ke(e.id)+ke(e.name)+ke(e.updatedAt);return t+=e.nodes.reduce((o,r)=>o+yg(r),0),t+=e.edges.length*128,t+=Object.entries(e.settings).reduce((o,[r,l])=>o+ke(r)+ke(typeof l=="string"?l:JSON.stringify(l)),0),t}function Hl(e,t={}){var o,r;return{board:e,description:((o=t.description)==null?void 0:o.trim())||"Board change",mergeKey:((r=t.mergeKey)==null?void 0:r.trim())||null,timestampMs:t.timestampMs??Date.now(),estimatedBytes:xg(e)}}function Fd(e,t={}){const o=t.maxEntries??zl,r=t.maxBytes??Ul;let l=e.slice(Math.max(0,e.length-o)),m=l.reduce((p,b)=>p+b.estimatedBytes,0);for(;l.length>1&&m>r;){const[p,...b]=l;m-=(p==null?void 0:p.estimatedBytes)??0,l=b}return l}function Ma(e,t,o={}){const r=Hl(t,o),l=o.mergeWindowMs??bg,m=e.slice(),p=m.at(-1);return p&&r.mergeKey&&p.mergeKey===r.mergeKey&&r.timestampMs-p.timestampMs<l?(m[m.length-1]={...p,description:r.description,timestampMs:r.timestampMs,estimatedBytes:Math.max(p.estimatedBytes,r.estimatedBytes)},Fd(m,o)):(m.push(r),Fd(m,o))}function Cg(e,t,o={}){const r=Hl(t,o),l=o.maxEntries??zl,m=o.maxBytes??Ul;let p=[r,...e].slice(0,l),b=p.reduce((c,y)=>c+y.estimatedBytes,0);for(;p.length>1&&b>m;){const c=p.at(-1);b-=(c==null?void 0:c.estimatedBytes)??0,p=p.slice(0,-1)}return p}function ws(e,...t){const o=e==null?void 0:e.metadata;if(!o)return"";for(const r of t){const l=o[r];if(typeof l=="string"&&l.trim())return l.trim()}return""}function eo(e,t){return!!ws(e,t)}function Wl(e){if(!e||!e.trim())return!1;const t=e.trim();return/^(https?:|blob:|data:|file:)/i.test(t)}function Vl(e){if(!e)return"";const t=ws(e,"OriginalPath");if(t)return t;const o=String(e.body||"").trim();return Wl(o)?"":o}function Yl(e){return e?Vl(e)||String(e.sourceFilePath||"").trim()||String(e.assetUrl||"").trim()||String(e.imageUrl||"").trim()||String(e.body||"").trim():""}function Xl(e){return ws(e,"ThumbnailUrl","thumbnailUrl")}function Sg(e){if(!e||e.kind!=="image")return!1;if(eo(e,"ImageGenerationProvider")||eo(e,"GeneratedImageSourceWidth")||eo(e,"GeneratedImageSourceHeight")||eo(e,"CodexImageQuality")||eo(e,"ImageRouterRevisedPrompt"))return!0;const t=ws(e,"RequestedMediaOperation");return["text2image","image2image","inpaint"].includes(t.toLowerCase())}function ni(e){if(!e)return"";if(e.kind==="image"||e.kind==="mask"){const t=Sg(e)?Vl(e):"",o=Xl(e),r=String(e.body||"").trim();return t||o||String(e.imageUrl||"").trim()||String(e.assetUrl||"").trim()||String(e.sourceFilePath||"").trim()||(Wl(r)?r:"")}return Yl(e)||String(e.assetUrl||"").trim()||String(e.sourceFilePath||"").trim()}function Gl(e){if(!e)return"";const t=Yl(e)||e.title||e.kind;return String(t||"").replace(/\\/g,"/").replace(/\/+$/,"").split("/").filter(Boolean).pop()||e.title||e.kind}const kg=2048,wg=16e3,nr=1024,or=64,vg=2048,sr=3,jg=16,Ig=256,Ng=new Set(["text","note","memo","markdown","code","directory"]),Ag=/[\p{L}\p{M}\p{N}]{2,}/gu,$d=4,Mg=8,zd=1.35;function Tg(e){return Ng.has(String(e||"").trim().toLowerCase())}function Rg(e){const t=e.map(Eg),o=new Map,r=new Map,l=new Map,m=new Map;for(const p of t){o.set(p.id,p);for(const b of p.tokens)rr(r,b,p.id);for(const b of p.prefixes)rr(l,b,p.id);for(const b of p.ngrams)rr(m,b,p.id)}return{documents:t,documentById:o,tokenIndex:r,prefixIndex:l,ngramIndex:m}}function Lg(e,t,o={}){const r=Math.max(1,Math.trunc(Number(o.limit||30))),l=rn(t),m=Ud(e,0,0,o.viewport,0);if(!l)return{hits:[],profile:m};const p=Array.from(Kl(l)),b=Array.from(ql(p)),c=Zl(l),y=Array.from(Jl(c)),w=new Map;for(const $ of p)ir(e.tokenIndex,$,w,8);for(const $ of b)ir(e.prefixIndex,$,w,$.length<=3?4:2);for(const $ of y)ir(e.ngramIndex,$,w,1.15);const L=Bg(e,w,r),I=Og(o.allowedContentTypes),D=[];for(const $ of L){const O=e.documentById.get($);if(!O||I&&!I.has(O.contentType))continue;const K=_g(O,l,p,y);if(K<=0)continue;const V=Dg(O,o.viewport??null);D.push({nodeId:O.id,score:K+V,textScore:K,viewportBoost:V})}D.sort(($,O)=>O.score-$.score||$.nodeId.localeCompare(O.nodeId));const J=D.slice(0,r);return{hits:J,profile:Ud(e,L.length,J.length,o.viewport,J.filter($=>$.viewportBoost>0).length)}}function rn(e){const t=String(e??"");if(!t.trim())return"";let o=t;try{o=t.normalize("NFKC")}catch{o=t}o=o.toLowerCase();let r="",l=!1;for(const m of o){if(/\s/u.test(m)){l||(r+=" ",l=!0);continue}Fg(m)||(r+=m,l=!1)}return r.trim()}function Kl(e){return new Set(e.match(Ag)??[])}function ql(e){const t=new Set;for(const o of e){if(!o.trim())continue;const r=Math.min(8,o.length);for(let l=2;l<=r;l+=1)t.add(o.slice(0,l))}return t}function Jl(e){const t=new Set;if(!e.trim())return t;if(e.length<=sr)return t.add(e),t;for(let o=0;o<=e.length-sr;o+=1)t.add(e.slice(o,o+sr));return t}function Eg(e){const t=String(e.kind??"").trim().toLowerCase(),o=La(e.prompt??e.title,kg),r=Tg(t)?La(e.response??e.body,wg):"",l=Pg(e.metadata,e.tags,e.metadataText),m=La(e.sourceFilePath||e.assetUrl,vg),p=rn(o),b=rn(r),c=rn(l),y=rn(m),w=rn(t),L=[p,c,y,b,w].filter(Boolean).join(" "),I=Kl(L);return{id:String(e.id),contentType:t,normalizedPrompt:p,normalizedResponse:b,normalizedMetadata:c,normalizedSourcePath:y,normalizedContentType:w,tokens:I,prefixes:ql(I),ngrams:Jl(Zl(L)),x:Number.isFinite(e.x)?e.x:0,y:Number.isFinite(e.y)?e.y:0,width:Number.isFinite(e.width)?e.width:1,height:Number.isFinite(e.height)?e.height:1}}function Pg(e,t,o){const r=[];let l=0;if(e)for(const[m,p]of Object.entries(e)){if(l>=or)break;!String(m??"").trim()&&!String(p??"").trim()||(r.push(La(m,128)),String(p??"").trim()&&r.push(La(p,nr)),l+=1)}return l<or&&(t!=null&&t.length)&&(r.push("tags",La(t.join(" "),nr)),l+=1),l<or&&(o!=null&&o.trim())&&r.push("metadata",La(o,nr)),r.join(" ")}function _g(e,t,o,r){let l=0;e.normalizedPrompt===t?l+=120:to(e.normalizedPrompt,t)&&(l+=54),to(e.normalizedMetadata,t)&&(l+=26),to(e.normalizedSourcePath,t)&&(l+=18),to(e.normalizedResponse,t)&&(l+=14),to(e.normalizedContentType,t)&&(l+=8);for(const m of o)e.tokens.has(m)&&(l+=7),e.normalizedPrompt.startsWith(m)&&(l+=10);for(const m of r)e.ngrams.has(m)&&(l+=.85);return l}function Dg(e,t){if(!t)return 0;const o=e.x+Math.max(1,e.width)/2,r=e.y+Math.max(1,e.height)/2,l=Math.abs(o-t.centerX)/Math.max(1,t.halfWidth),m=Math.abs(r-t.centerY)/Math.max(1,t.halfHeight),p=Math.sqrt(l*l+m*m);if(p<=1)return $d+(1-p)*Mg;if(p<=zd){const b=1-(p-1)/Math.max(.001,zd-1);return Math.max(0,b)*($d*.75)}return 0}function Bg(e,t,o){return t.size===0?e.documents.map(r=>r.id):Array.from(t.entries()).sort((r,l)=>l[1]-r[1]||r[0].localeCompare(l[0])).slice(0,Math.max(o*jg,Ig)).map(([r])=>r)}function Og(e){if(!e)return null;const t=new Set(Array.from(e,o=>String(o||"").trim().toLowerCase()).filter(Boolean));return t.size>0?t:null}function Ud(e,t,o,r,l){return{documentCount:e.documents.length,candidateCount:t,rankedCount:o,viewportBoosted:!!r,boostedCount:l,indexedTokenCount:e.tokenIndex.size,indexedPrefixCount:e.prefixIndex.size,indexedNGramCount:e.ngramIndex.size}}function rr(e,t,o){const r=e.get(t);if(r){r.add(o);return}e.set(t,new Set([o]))}function ir(e,t,o,r){const l=e.get(t);if(l)for(const m of l)o.set(m,(o.get(m)??0)+r)}function Zl(e){let t="";for(const o of e)/\s/u.test(o)||(t+=o);return t}function La(e,t){const o=String(e??"");return o.length<=t?o:o.slice(0,t)}function to(e,t){return!!(e&&t&&e.includes(t))}function Fg(e){const t=e.codePointAt(0)??0;return t<=31||t>=127&&t<=159}const $g=2147483647,zg="LocalBridge access is enabled, but the bridge is not reachable. Restart LocalBridge, allow Chrome local-network access, then reload MindCanvas.",Ug="Local storage is unavailable in the hosted app until browser local storage or LocalBridge access is available.",Hg="Local storage is unavailable. Check the browser-local storage state or LocalBridge connection.",Wg="Cloud projects are unavailable until Supabase and Cloudflare R2 are configured.",Vg="Login is required before cloud projects can be used.",Yg="Cloud projects are unavailable.";function Xg(e){return e.bridgeProviderConfigured||e.browserProviderConfigured||e.embeddedProviderConfigured}function _r(e,t=!0){const o={isAvailable:!1,bridgeReachable:!1,browserLocalAvailable:!1,embeddedLocalAvailable:!1,providerKind:"none",canBrowseWorkspace:!1};return e.bridgeProviderConfigured&&e.bridgeReachable?{...o,isAvailable:!0,bridgeReachable:!0,providerKind:"bridge",canBrowseWorkspace:!0}:e.hostedWebApp&&e.hostedLocalBridgeAccessEnabled&&e.bridgeProviderConfigured?{...o,providerKind:"bridge"}:e.browserProviderConfigured&&(e.browserLocalAvailable||t&&e.browserLocalAvailableWhenEmpty===!0)?{...o,isAvailable:!0,browserLocalAvailable:!0,providerKind:"browser"}:e.embeddedProviderConfigured&&e.supportsEmbeddedLocal?{...o,isAvailable:!0,embeddedLocalAvailable:!0,providerKind:"embedded"}:o}function Gg(e){return _r(e,!1).isAvailable?"local":oi(e)?"cloud":_r(e,!0).isAvailable?"local":e.cloudConfigured?"cloud":"local"}function oi(e){return e.cloudConfigured&&e.cloudSessionAvailable}function Kg(e,t){return t.providerKind==="bridge"&&!t.bridgeReachable?zg:e.hostedWebApp?Ug:Hg}function qg(e){return e.cloudConfigured?oi(e)?Yg:Vg:Wg}function Jg(e){var w,L,I;const t=oi(e),o=_r(e,!0),r=Xg(e),l=e.cloudConfigured,m=o.isAvailable,p=t;let b=e.storedMode??Gg(e);b==="cloud"&&(!l||!p&&m)?b=m?"local":"cloud":b==="local"&&(!r&&l||!m&&p)&&(b="cloud");const c=e.cloudAccess,y=((w=c==null?void 0:c.denialReason)==null?void 0:w.trim())||void 0;return{currentMode:b,showLocalTab:r,showCloudTab:l,isLocalAvailable:o.isAvailable,isCloudAvailable:t,requiresCloudSignIn:e.cloudConfigured&&!t,canUseLocalProjects:m,canBrowseLocalWorkspace:o.canBrowseWorkspace,localProviderKind:o.providerKind,canUseCloudProjects:p,canSyncLocalToCloud:m&&p,cloudPlanKey:((L=c==null?void 0:c.planKey)==null?void 0:L.trim())||"free",cloudEntitlementStatus:((I=c==null?void 0:c.entitlementStatus)==null?void 0:I.trim())||(c?"active":"inactive"),currentCloudBoardCount:(c==null?void 0:c.currentBoardCount)??0,cloudBoardLimit:(c==null?void 0:c.cloudBoardLimit)??$g,lockedCloudBoardCount:(c==null?void 0:c.lockedBoardCount)??0,canCreateCloudBoards:(c==null?void 0:c.canCreateBoard)??p,canUseManagedAi:(c==null?void 0:c.canUseManagedAi)??!1,canGenerateImage:(c==null?void 0:c.canGenerateImage)??!1,canUseContextPack:(c==null?void 0:c.canUseContextPack)??!1,cloudLimitMessage:y,localStatusMessage:o.isAvailable?void 0:Kg(e,o),cloudStatusMessage:p?void 0:qg(e)}}function Zg(){const e=new Error("Queued operation was cancelled before it started.");return e.name="AbortError",e}class Qg{constructor(){ld(this,"tails",new Map)}isBusy(t){return this.tails.has(t)}enqueue(t,o,r){if(typeof o!="function")throw new TypeError("KeyedAsyncQueue operation is required.");const l=this.tails.get(t)??Promise.resolve();let m;return m=(async()=>{try{try{await l}catch{}if(r!=null&&r.aborted)throw Zg();return await o(r)}finally{this.tails.get(t)===m&&this.tails.delete(t)}})(),this.tails.set(t,m),m}clear(t){if(typeof t>"u"){this.tails.clear();return}this.tails.delete(t)}}const Dr="mindexec-local-mode-warning-dismissed-v1";function eh(){try{return window.localStorage.getItem(Dr)==="true"}catch{return!1}}function Ql(e,t){var o,r;if(e==="checking")return"Checking bridge";if(e==="connected"){const l=(r=(o=t==null?void 0:t.exec)==null?void 0:o.model)==null?void 0:r.trim();return l?`Bridge / ${l}`:"Bridge connected"}return e==="blocked"?"Bridge gated":e==="unavailable"?"Bridge unavailable":"Bridge idle"}function th(e,t,o){var l,m,p,b,c;if(e!=="connected")return t||Ql(e,o);const r=[o!=null&&o.version?`version ${o.version}`:null,(l=o==null?void 0:o.exec)!=null&&l.model?`model ${o.exec.model}`:null,(m=o==null?void 0:o.exec)!=null&&m.reasoningEffort?`reasoning ${o.exec.reasoningEffort}`:null,(p=o==null?void 0:o.exec)!=null&&p.serviceTier?`tier ${o.exec.serviceTier}`:null,(b=o==null?void 0:o.exec)!=null&&b.preferredProviderKind?`codex ${o.exec.preferredProviderKind}`:null,(c=o==null?void 0:o.project)!=null&&c.isOpen?"project open":null].filter(Boolean);return r.length>0?`LocalBridge connected. ${r.join(" / ")}`:"LocalBridge connected."}function ah({state:e,message:t,status:o,hostedBridgeAccessEnabled:r,onRefresh:l,onEnableHostedBridge:m}){const p=g.useMemo(()=>e==="checking"?n.jsx(Ut,{size:14,className:"spin-icon"}):e==="connected"?n.jsx(Om,{size:14}):e==="blocked"?n.jsx(Al,{size:14}):e==="unavailable"?n.jsx(Fm,{size:14}):n.jsx(Gr,{size:14}),[e]);return n.jsxs("div",{className:`runtime-status-pill runtime-status-pill--${e}`,title:th(e,t,o),"data-testid":"bridge-status-pill","data-bridge-state":e,"data-bridge-access":r?"enabled":"gated",children:[n.jsx("span",{className:"runtime-status-pill__icon","aria-hidden":"true",children:p}),n.jsx("span",{children:Ql(e,o)}),e==="blocked"&&!r&&n.jsx("button",{type:"button",className:"runtime-status-pill__action",onClick:m,children:"Enable"}),n.jsx("button",{type:"button",className:"runtime-status-pill__button",title:"Refresh LocalBridge","data-testid":"bridge-status-refresh",onClick:()=>void l(),disabled:e==="checking",children:n.jsx(cn,{size:13})})]})}function nh({status:e,message:t}){const r={ready:{icon:n.jsx(jr,{size:14}),label:"Saved locally",title:"Board state is saved in this browser."},syncing:{icon:n.jsx(Ut,{size:14,className:"spin-icon"}),label:"Saving",title:"Saving board state to this browser."},error:{icon:n.jsx(Kr,{size:14}),label:"Save error",title:"Board state could not be saved locally."},offline:{icon:n.jsx(Gr,{size:14}),label:"Offline",title:"No sync adapter is connected."}}[e];return n.jsxs("div",{className:`runtime-status-pill runtime-status-pill--sync-${e}`,title:t||r.title,"data-testid":"sync-status-indicator","data-sync-status":e,children:[n.jsx("span",{className:"runtime-status-pill__icon","aria-hidden":"true",children:r.icon}),n.jsx("span",{children:r.label})]})}function oh({visible:e}){const[t,o]=g.useState(eh);if(!e||t)return null;const r=()=>{o(!0);try{window.localStorage.setItem(Dr,"true")}catch{}f.emit("runtimeStatus.localMode.dismissed")};return n.jsxs("section",{className:"runtime-local-warning",role:"status","data-testid":"local-mode-warning","data-local-mode-dismissed-key":Dr,children:[n.jsx("div",{className:"runtime-local-warning__icon","aria-hidden":"true",children:n.jsx(Kr,{size:16})}),n.jsxs("div",{className:"runtime-local-warning__copy",children:[n.jsx("strong",{children:"Local Mode"}),n.jsx("span",{children:"Boards are saved in this browser. LocalBridge export creates a file-backed copy."})]}),n.jsx("button",{type:"button",title:"Dismiss local mode warning","data-testid":"local-mode-dismiss",onClick:r,children:n.jsx(yt,{size:14})})]})}function sh({bridgeState:e,bridgeMessage:t,bridgeStatus:o,syncStatus:r,syncMessage:l,hostedBridgeAccessEnabled:m,onRefreshBridge:p,onEnableHostedBridge:b,showLocalModeWarning:c=!0}){return n.jsxs("aside",{className:"runtime-status-cluster","aria-label":"Runtime status","data-testid":"runtime-status-cluster","data-local-mode-visible":c?"true":"false",children:[n.jsxs("div",{className:"runtime-status-row",children:[n.jsx(ah,{state:e,message:t,status:o,hostedBridgeAccessEnabled:m,onRefresh:p,onEnableHostedBridge:b}),n.jsx(nh,{status:r,message:l})]}),n.jsx(oh,{visible:c})]})}const rh=/^data:image\//i;function ih(e){const t=String(e||"").trim();if(!t)return{src:null,reason:"empty",urlKind:"empty"};const o=t.toLowerCase();return rh.test(t)?{src:t,reason:null,urlKind:"data"}:o.startsWith("blob:")?{src:t,reason:null,urlKind:"blob"}:o.startsWith("https://")?{src:t,reason:null,urlKind:"https"}:o.startsWith("http://")?{src:t,reason:null,urlKind:"http"}:t.startsWith("//")?{src:t,reason:null,urlKind:"protocol-relative"}:t.startsWith("/")||t.startsWith("./")||t.startsWith("../")?{src:t,reason:null,urlKind:"relative"}:/^[a-z][a-z0-9+.-]*:/i.test(t)?{src:null,reason:"unsupported-protocol",urlKind:t.split(":",1)[0].toLowerCase()}:{src:t,reason:null,urlKind:"relative"}}function dr({src:e,alt:t="",className:o="",testId:r="secure-image",traceId:l,kind:m="image",title:p}){const b=g.useMemo(()=>ih(e),[e]),[c,y]=g.useState(b.src?"loading":"blocked");g.useEffect(()=>{const D=b.src?"loading":"blocked";y(D),b.src||f.emit("secureImage.blocked",{id:l,kind:m,reason:b.reason,urlKind:b.urlKind})},[m,b.reason,b.src,b.urlKind,l]);const w=()=>{y("loaded"),f.emit("secureImage.loaded",{id:l,kind:m,urlKind:b.urlKind})},L=()=>{y("error"),f.emit("secureImage.error",{id:l,kind:m,urlKind:b.urlKind})},I=c==="blocked"?`Image blocked: ${b.reason||"unsupported source"}`:"Image failed to load";return n.jsxs("div",{className:`secure-image secure-image--${c} ${o}`.trim(),"data-testid":r,"data-secure-image-state":c,"data-secure-image-kind":m,title:c==="loaded"?p:I,children:[b.src&&n.jsx("img",{src:b.src,alt:t,loading:"lazy",decoding:"async",draggable:!1,onLoad:w,onError:L}),c==="loading"&&n.jsx("span",{className:"secure-image__loading","aria-hidden":"true",children:n.jsx("span",{})}),(c==="blocked"||c==="error")&&n.jsx("span",{className:"secure-image__fallback",role:"img","aria-label":I,children:c==="blocked"?n.jsx($m,{size:18}):n.jsx(Kr,{size:18})})]})}const dh={note:ms,text:xt,"ai-task":un,image:pn,mask:pn,video:gn,embed:hn,code:mn,markdown:xt,"csv-table":xt,memo:ms,pdf:xt,file:Ir,directory:zm,"template-launcher":xt,"remote-monitor":us,"remote-control":us},lr=[{key:"Auto",label:"Auto Detect",description:"Infer whether this note is growth, revenue, build, or research work."},{key:"GeneralCompany",label:"General AI Company",description:"Balanced planning, practical work, and artifact production."},{key:"GrowthValidation",label:"Growth Validation",description:"Marketing loops, signals, messaging, distribution, and experiments."},{key:"RevenueAffiliate",label:"Revenue / Affiliate",description:"Affiliate discovery, keywords, content assets, and revenue experiments."},{key:"ProductBuild",label:"Product Build",description:"Specs, implementation-oriented work, artifacts, and approval gates."},{key:"ResearchOnly",label:"Research Only",description:"Evidence gathering, risks, synthesis, and recommendations."}],Hd=500,lh=48,ch=new Set(["mindcanvasagent","agentcommand"]),uh=new Set(["codenote","code-note"]),mh=["multidesktopmonitor","remotehubmonitor","remotefleetmonitor","smartviewmonitor"],ph=["remotedevice","remotefleetdevice","remotecontrol"];function gh(e){const t=fn(e,"SemanticType","semanticType","RemoteFleetSemanticType").trim().toLowerCase(),o=fn(e,"RemoteFleetNodeRole","remoteFleetNodeRole").trim().toLowerCase(),r=fn(e,"RemoteFleetSchemaVersion","remoteFleetSchemaVersion").trim().toLowerCase();return e.kind==="remote-monitor"||t==="remotefleetmonitor"||o==="fleet-monitor"||r==="remote-fleet@1"||tc(e,["RemoteFleetViewMode","RemoteFleetHubStatus","RemoteFleetDevicesJson","RemoteFleetDeviceCount","RemoteFleetConnectedDeviceCount","RemoteFleetProjectionMode","RemoteFleetCanvasPagination","RemoteHub","RemoteRoute","RemotePage","RemoteVisibleBudget"])||ec(e,mh,["remote","monitor"])}function hh(e){const t=fn(e,"SemanticType","semanticType","RemoteFleetSemanticType").trim().toLowerCase(),o=fn(e,"RemoteFleetNodeRole","remoteFleetNodeRole").trim().toLowerCase(),r=fn(e,"RemoteFleetSchemaVersion","remoteFleetSchemaVersion").trim().toLowerCase();return e.kind==="remote-control"||t==="remotefleetdevice"||o==="fleet-device"||r==="remote-fleet-device@1"||tc(e,["RemoteFleetDeviceId","RemoteFleetDeviceName","RemoteFleetDevicePlatform","RemoteFleetDeviceConnected","RemoteFleetDeviceCanControl","RemoteFleetSourceMonitorNodeId"])||ec(e,ph,["remote","control"])}function ec(e,t,o){const r=(e.tags??[]).map(b=>b.trim().toLowerCase()).filter(Boolean),l=o.every(b=>r.includes(b)),p=[e.title,e.body,e.sourceFilePath,e.assetUrl,...r].join(" ").toLowerCase().replace(/[^a-z0-9]+/g,"");return l||t.some(b=>p.includes(b))}function fn(e,...t){const o=e.metadata??{};for(const l of t){const m=o[l];if(m!=null)return String(m)}const r=new Set(t.map(l=>l.toLowerCase()));for(const[l,m]of Object.entries(o))if(r.has(l.toLowerCase())&&m!==void 0&&m!==null)return String(m);return""}function tc(e,t){const o=e.metadata??{},r=new Set(t.map(l=>l.toLowerCase()));return Object.entries(o).some(([l,m])=>r.has(l.toLowerCase())&&m!==void 0&&m!==null&&String(m).trim()!=="")}const Br=[{key:"coral",label:"Coral",swatch:"#ff8052",ring:"rgba(255, 128, 82, 0.22)",surface:"#fff2eb",border:"rgba(255, 128, 82, 0.42)",ink:"#7c2d12"},{key:"amber",label:"Amber",swatch:"#f59e0b",ring:"rgba(245, 158, 11, 0.22)",surface:"#fffbeb",border:"rgba(245, 158, 11, 0.42)",ink:"#78350f"},{key:"sun",label:"Sun",swatch:"#ca8a04",ring:"rgba(202, 138, 4, 0.22)",surface:"#fef9c3",border:"rgba(202, 138, 4, 0.38)",ink:"#713f12"},{key:"sage",label:"Sage",swatch:"#65a30d",ring:"rgba(101, 163, 13, 0.22)",surface:"#f7fee7",border:"rgba(101, 163, 13, 0.38)",ink:"#365314"},{key:"mint",label:"Mint",swatch:"#10b981",ring:"rgba(16, 185, 129, 0.22)",surface:"#ecfdf5",border:"rgba(16, 185, 129, 0.36)",ink:"#064e3b"},{key:"sky",label:"Sky",swatch:"#3b82f6",ring:"rgba(59, 130, 246, 0.22)",surface:"#eff6ff",border:"rgba(59, 130, 246, 0.36)",ink:"#1e3a8a"},{key:"indigo",label:"Indigo",swatch:"#6366f1",ring:"rgba(99, 102, 241, 0.22)",surface:"#eef2ff",border:"rgba(99, 102, 241, 0.36)",ink:"#312e81"},{key:"violet",label:"Violet",swatch:"#8b5cf6",ring:"rgba(139, 92, 246, 0.22)",surface:"#f5f3ff",border:"rgba(139, 92, 246, 0.36)",ink:"#4c1d95"},{key:"rose",label:"Rose",swatch:"#f43f5e",ring:"rgba(244, 63, 94, 0.22)",surface:"#fff1f2",border:"rgba(244, 63, 94, 0.36)",ink:"#881337"},{key:"gray",label:"Gray",swatch:"#6b7280",ring:"rgba(107, 114, 128, 0.22)",surface:"#f9fafb",border:"rgba(107, 114, 128, 0.32)",ink:"#374151"},{key:"slate",label:"Slate",swatch:"#64748b",ring:"rgba(100, 116, 139, 0.22)",surface:"#f8fafc",border:"rgba(100, 116, 139, 0.32)",ink:"#334155"}],fh=g.memo(function({node:t,selected:o,pulsing:r,connectionDraft:l,onSelect:m,onDragStart:p,onResizeStart:b,onPatch:c,onDelete:y,onDuplicate:w,onRun:L,onPin:I,onOpenResult:D,onToggleAiReference:J,onCopyNode:$,onCopyEmbedReference:O,onFitNodeHeight:K,onToggleNodeExpanded:V,onToggleWordWrap:se,onStageCompany:oe,onOpenCompanyGraph:Ae,onSyncCompanyGoal:be,onRefreshCompany:Ue,onSetCompanyStatus:et,onRemoveCompany:tt,onOpenAsset:he,onOpenDirectorySettings:Z,onScanDirectory:ie,onCreateRemoteControl:re,onGenerateTemplateCard:St}){var Tn,wo,rt,Bt,ya,Va,Qt,Ya,te,Ye,Xa,Rn,v,Y,ae,Xe,Ln,Ot,Ga,Ka,En,Pn,qa,_n,xa,Dn,Ja,Ca,ea,De,Pe,Za,Bn,vo,Sa;const F=String(((Tn=t.metadata)==null?void 0:Tn.AutomationNodeKind)||((wo=t.metadata)==null?void 0:wo.AutomationTemplateKey)||((rt=t.metadata)==null?void 0:rt.AutomationInferredKind)||"").trim().toLowerCase(),lt=String(((Bt=t.metadata)==null?void 0:Bt.SemanticType)||((ya=t.metadata)==null?void 0:ya.semanticType)||"").trim().toLowerCase(),Me=t.kind==="memo"&&ch.has(lt),le=t.kind==="memo"&&uh.has(lt),Tt=String(((Va=t.metadata)==null?void 0:Va.AgentCommandStatus)||"Draft"),me=String(((Qt=t.metadata)==null?void 0:Qt.AgentCommandMode)||"Task"),He=String(((Ya=t.metadata)==null?void 0:Ya.AgentCommandRequestedRole)||"Researcher"),ee=String(((te=t.metadata)==null?void 0:te.CodeNoteStatus)||"Draft"),ct=String(((Ye=t.metadata)==null?void 0:Ye.CodeNoteSyncState)||"Unlinked"),Wt=String(((Xa=t.metadata)==null?void 0:Xa.CodeNoteKind)||"Feature"),_a=Me?un:le?mn:F==="image-generate"?pn:F==="video-generate"?gn:dh[t.kind],Cn=l&&l.from!==t.id,ho=t.kind==="ai-task",Re=t.kind==="pdf"||t.kind==="file"||t.kind==="directory",Da=gh(t),Vt=hh(t),Oe=Da||Vt,Te=Da?"monitor":Vt?"control":"",ce=t.kind==="template-launcher"||String(((Rn=t.metadata)==null?void 0:Rn.semanticType)||((v=t.metadata)==null?void 0:v.SemanticType)||"").toLowerCase()==="templatelauncher",kt=t.kind==="video",we=t.kind==="embed",wt=t.kind==="mask",ye=t.kind==="memo",at=t.kind==="markdown",nt=t.kind==="csv-table",Fe=ye?jh(t):null,pe=g.useRef(null),Sn=kt?ac(t):"",qe=kt?Nh(t):"",$e=we?Ah(t):"",vt=we?Mh(t):"",fo=we?Th(t,$e):"",_e=we?Rh(t):"",Le=(((Y=t.imageStack)==null?void 0:Y.variants)??[]).filter(x=>!!x.imageUrl),ut=Le.find(x=>{var _;return x.variantId===((_=t.imageStack)==null?void 0:_.activeVariantId)})??Le[0]??null,Rt=t.kind==="image"||wt?(ut==null?void 0:ut.imageUrl)||ni(t):"",la=ut?Le.findIndex(x=>x.variantId===ut.variantId):-1,Ba=!Rt&&!Re&&!Oe&&!ce&&!kt&&!we,bo=Ba&&!ye,Yt=t.isExpanded===!1&&Number(t.originalHeight??0)>t.height+1,kn=!Oe&&!["image","mask","video","embed","pdf","file","directory","template-launcher","remote-monitor","remote-control"].includes(t.kind),ot=t.aiEnabled!==!1,We=Ih(t),Je=!!(t.isChunkedText||((ae=t.metadata)==null?void 0:ae.IsChunkedText)==="true"),ca=Number(t.totalLineCount??((Xe=t.metadata)==null?void 0:Xe.TotalLineCount)??0),yo=t.sourceFilePath||((Ln=t.metadata)==null?void 0:Ln.FileName)||t.title,xe=Je?n.jsxs("div",{className:"node-chunked-text-state","data-testid":"node-chunked-text-state",title:yo,children:[n.jsx(xt,{size:12}),n.jsx("strong",{children:"Chunked text"}),Number.isFinite(ca)&&ca>0&&n.jsxs("span",{children:[ca.toLocaleString()," lines"]})]}):null,Xt=t.kind==="directory"?(Ot=t.metadata)==null?void 0:Ot.Include:null,Oa=t.kind==="directory"?(Ga=t.metadata)==null?void 0:Ga.Exclude:null,wn=t.kind==="directory"?(Ka=t.metadata)==null?void 0:Ka.DirectoryFileCount:null,Ee=t.kind==="directory"?(En=t.metadata)==null?void 0:En.DirectoryDirCount:null,jt=t.kind==="directory"?(Pn=t.metadata)==null?void 0:Pn.DirectoryLastScanUtc:null,[Fa,$a]=g.useState(!1),[za,Ve]=g.useState(null),[vs,vn]=g.useState(((qa=t.metadata)==null?void 0:qa.CompanyExecutionMode)||"Auto"),[ua,Ua]=g.useState(((_n=t.metadata)==null?void 0:_n.CompanySubAgents)!=="false"),[Gt,ma]=g.useState(!1),[It,Ha]=g.useState(null),pa=g.useMemo(()=>nt?Ch(t.body,It):null,[It,nt,t.body]),de=g.useMemo(()=>ce?vl(t.body):null,[ce,t.body]),mt=(de==null?void 0:de.options.find(x=>x.id===de.selectedOptionId))??(de==null?void 0:de.options[0])??null,Kt=im(de),Lt=lr.find(x=>x.key===vs)||lr[0],Et=String(((xa=t.metadata)==null?void 0:xa.CompanyStatus)||(t.companyMode?"Staged":"")).trim(),Pt=Et.toLowerCase(),qt=Pt==="paused",pt=Pt==="archived",js=x=>{x.stopPropagation();const _=x.currentTarget.getBoundingClientRect();Ve(yh(_)),$a(ne=>!ne)},Is=x=>{x.stopPropagation(),oe(t.id,{executionMode:Lt.key,enableSubAgents:ua}),$a(!1)},xo=x=>{x.stopPropagation(),Ae(t.id)},ga=(x,_)=>{_.stopPropagation();const ne=Le.find(ht=>ht.variantId===x);!ne||!t.imageStack||ne.variantId===t.imageStack.activeVariantId||(f.emit("node.imageStack.variant",{nodeId:t.id,variantId:ne.variantId,variantCount:Le.length}),c(t.id,{imageUrl:ne.imageUrl,imageStack:{...t.imageStack,activeVariantId:ne.variantId,variants:Le,updatedAtUtc:new Date().toISOString()},metadata:{...t.metadata??{},ImageStackActiveVariantId:ne.variantId}}))},Ns=(x,_)=>{if(_.stopPropagation(),!!ye){if((Fe==null?void 0:Fe.key)===x){ma(!1);return}f.emit("node.memoColor.changed",{id:t.id,colorKey:x}),c(t.id,{metadata:{...t.metadata??{},memoColor:x,memoColorIsCustom:"true"}}),ma(!1)}},jn=x=>{var Be,jo;if(x.stopPropagation(),!Me)return;const _=(t.body||t.title||"Agent command objective").trim(),ne=["Clarify the objective and constraints.","Collect linked canvas context or code notes.","Draft an execution plan before external adapter use."],ht=["canvas-context","agent-command-planning","adapter-gated-execution"],ze=["Canvas.ListAgentCommands","Canvas.UpdateAgentCommand","Canvas.PlanAgentCommand","Canvas.SetAgentCommandState"],Nt=["MindCanvasAgent",me,He],z=["Local React plan staged for this Agent Command.",`Role: ${He}`,`Mode: ${me}`,`Objective: ${_.slice(0,220)}`,"External execution remains adapter-gated until LocalBridge/agent runtime is available."].join(`
|
|
1
|
+
var qu=Object.defineProperty;var Ju=(e,t,o)=>t in e?qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var ld=(e,t,o)=>Ju(e,typeof t!="symbol"?t+"":t,o);import{j as n,r as g,a as Zu}from"./vendor-react-BXzpOyCS.js";import{l as Qu,a as ft,s as zt,b as em,d as tm,r as am,c as nm,e as om,i as cd}from"./storage-C8yTm9Oa.js";import{r as Yr,g as xs,w as sm,a as Ks,d as ud,b as rm,t as Xr,p as vl,v as im,R as dm,c as lm,u as cm,e as um,f as md,s as bt,i as an,l as qs,h as Gn,j as Uo,k as Kn,m as qn,n as Ho,o as Aa,q as pd,x as mm,y as Jn,z as pm,A as gm,B as hm,C as fm,D as jl,E as bm,F as ym,G as oo,H as Sr,I as xm,J as Cm,K as gd,L as kr,M as wr,N as Il,O as Wo,P as ts,Q as so,S as hd,T as U,U as Js,V as ro,W as Sm,X as km,Y as wm,Z as fd,_ as Zs,$ as vm,a0 as jm,a1 as Im,a2 as Nm,a3 as vr,a4 as Am,a5 as Mm,a6 as Tm,a7 as Rm,a8 as bd}from"./canvas-runtime-CcSvL_l6.js";import{e as Lm,d as Em}from"./vendor-msgpack-BE8aAsr3.js";import{R as f}from"./app-runtime-xD2Z3NdN.js";import{g as Qs,A as yd,a as as}from"./index-VWcOQuui.js";import{g as Cs,r as Nl}from"./supabaseAuthAdapter-BRbhWFpi.js";import{c as Pm,a as _m,r as xd}from"./toolHandoff-D5e5f7t5.js";import{a as Cd,s as Dm}from"./executionModeSettings-NJqurj-o.js";import{a as Sd,p as Bm}from"./runtimeSettingsPersistenceProjection-BoNWmYjU.js";import{A as Ut,W as Om,c as Al,D as Fm,E as Gr,R as cn,J as Kr,X as yt,N as jr,O as $m,Q as un,w as mn,I as pn,V as gn,l as us,F as xt,Y as zm,Z as Ir,_ as ms,$ as hn,a0 as Ml,a1 as Um,a2 as Tl,a3 as Hm,i as co,a4 as Rl,a5 as Wm,a6 as kd,a7 as Vm,a8 as ia,a9 as wd,T as ps,aa as vd,ab as po,ac as Ym,ad as ns,ae as Ll,af as Nr,ag as Xm,ah as Gm,f as Km,ai as qm,h as io,x as Jm,aj as Zm,ak as Qm,al as jd,am as Id,an as Nd,g as Ad,ao as Vo,H as Zn,ap as Yo,s as er,aq as Md,ar as ep,as as tr,at as Td,au as Xo,av as ar,aw as Rd,ax as Ld,ay as Ed,az as tp,aA as ap,aB as np,aC as op,n as sp,o as Qn,aD as rp,aE as ip,aF as dp,aG as lp,aH as cp,aI as up,aJ as mp,aK as pp}from"./vendor-icons-678PAT8P.js";const gp=1200,Pa="LocalBridgeOriginalNodeId";function Ct(e){return typeof e=="object"&&e!==null}function sa(e,t){const o=Number(e);return Number.isFinite(o)?o:t}function W(e){return typeof e=="string"?e:""}function El(){return typeof window<"u"?{width:window.innerWidth||1280,height:window.innerHeight||720}:{width:1280,height:720}}function Ar(e,t,o){const r=Number(e),l=Number(t),m=Number(o);if(!Number.isFinite(r)||!Number.isFinite(l)||!Number.isFinite(m)||m<=0)return null;const p=1400/m,b=El();return{x:b.width/2-r*p,y:b.height/2-l*p,scale:p}}function hp(e){return Ct(e)?Ar(e.x??e.X,e.y??e.Y,e.z??e.Z):null}function fp(e){if(!Ct(e))return null;const t=Number(e.x),o=Number(e.y),r=Number(e.scale);if(!Number.isFinite(t)||!Number.isFinite(o)||!Number.isFinite(r)||r<=0)return null;const l=El();return{x:(l.width/2-t)/r,y:(l.height/2-o)/r,z:1400/r}}function bp(e){const t=String(e||"").trim();if(t)try{const o=JSON.parse(t);if(!Ct(o))return;const r={};for(const[l,m]of Object.entries(o)){const p=hp(m);p&&(r[l]=p)}return Object.keys(r).length>0?r:void 0}catch{return}}function yp(e){if(!e||Object.keys(e).length===0)return null;const t={};for(const[o,r]of Object.entries(e)){const l=fp(r);l&&(t[o]=l)}return Object.keys(t).length>0?JSON.stringify(t):null}function gs(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function Ss(){return crypto.randomUUID()}function qr(e){return Ct(e)?"ContentType"in e||"Prompt"in e||"Response"in e||"PositionX"in e||"PositionY"in e||"SourceFilePath"in e||"ImageStack"in e:!1}function Pd(e){const t=W(e).trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}function Mr(e){if(Array.isArray(e))return e;if(!Ct(e))return[];for(const t of["Nodes","nodes","Items","items","Content","content","Upserts","upserts"])if(t in e){const o=e[t];if(Array.isArray(o))return o;const r=Pd(o);if(r)return Mr(r)}for(const t of["ContentJson","contentJson","content_json"])if(t in e){const o=Pd(e[t]);if(o)return Mr(o)}return qr(e)?[e]:[]}function Jr(e){return Ct(e)?"BoardId"in e&&("Upserts"in e||"upserts"in e||"Deletes"in e||"deletes"in e):!1}function Pl(e){if(!Ct(e))return 0;for(const t of["Deletes","deletes"]){const o=e[t];if(Array.isArray(o))return o.length}return 0}function hs(e){return Mr(e).filter(qr)}function _l(e){return hs(e).length}function xp(e,t){var m;const o=[...hs(e)];if(!Jr(t))return o;const r=new Set;for(const p of["Deletes","deletes"]){const b=t[p];if(Array.isArray(b))for(const c of b){const y=W(c).trim();y&&r.add(y)}}if(r.size>0)for(let p=o.length-1;p>=0;p-=1){const b=W((m=o[p])==null?void 0:m.Id).trim();b&&r.has(b)&&o.splice(p,1)}const l=new Map;o.forEach((p,b)=>{const c=W(p.Id).trim();c&&l.set(c,b)});for(const p of hs(t)){const b=W(p.Id).trim(),c=b?l.get(b):void 0;if(c!==void 0){o[c]=p;continue}b&&l.set(b,o.length),o.push(p)}return o}function Dl(e){const t=Array.isArray(e)?e.filter(Ct):[];return new Map(t.filter(o=>o.NodeId).map(o=>[String(o.NodeId),o]))}async function Tr(e,t){for(const o of e)try{const r=await Yr(o,t);return{payload:JSON.parse(r.content),path:o}}catch{}return null}async function Cp(e,t){const o=`.mindexec/boards/${e}.msgpack`,r=`boards/${e}.msgpack`;for(const b of[o,r])try{const c=await rm(b,t);return{payload:Em(c),format:b===o?"msgpack":"legacy-msgpack",path:b}}catch{}const l=`.mindexec/boards/${e}.json`,m=`boards/${e}.json`,p=await Tr([l,m],t);if(p)return{payload:p.payload,format:p.path===l?"json":"legacy-json",path:p.path};throw new Error(`LocalBridge board file not found: ${o}, ${r}, ${l}, ${m}`)}function Rr(e){const t=W(e.Id).trim()||W(e.BoardId).trim();return t?{Id:t,Title:W(e.Title)||null,Description:W(e.Description)||null,ThumbnailUrl:W(e.ThumbnailUrl)||null,CreatedAt:W(e.CreatedAt)||null,UpdatedAt:W(e.UpdatedAt)||null,LastCameraX:Number.isFinite(Number(e.LastCameraX))?Number(e.LastCameraX):null,LastCameraY:Number.isFinite(Number(e.LastCameraY))?Number(e.LastCameraY):null,LastCameraZ:Number.isFinite(Number(e.LastCameraZ))?Number(e.LastCameraZ):null,LastCursorX:Number.isFinite(Number(e.LastCursorX))?Number(e.LastCursorX):null,LastCursorY:Number.isFinite(Number(e.LastCursorY))?Number(e.LastCursorY):null,CameraBookmarks:W(e.CameraBookmarks)||null}:null}function _d(e){return!Ct(e)||qr(e)?!1:"Title"in e||"Description"in e||"ThumbnailUrl"in e||"IsPublic"in e||"LastCameraX"in e||"LastCameraY"in e||"LastCameraZ"in e||"CameraBookmarks"in e||"BoardId"in e||"Upserts"in e||"upserts"in e||"Deletes"in e||"deletes"in e||"ContentJson"in e||"content_json"in e}function Zr(e){if(Array.isArray(e))return e.filter(_d).map(t=>Rr(t)).filter(t=>!!t);if(_d(e)){const t=Rr(e);return t?[t]:[]}return[]}function Sp(e){const t=e.toLowerCase();return kp(t)?"remote-control":wp(t)?"remote-monitor":t==="templatelauncher"||t==="template-launcher"||t.includes("template launcher")?"template-launcher":t.includes("directory")?"directory":t.includes("pdf")?"pdf":t.includes("file")?"file":t.includes("mask")?"mask":t.includes("image")?"image":t.includes("video")?"video":t.includes("embed")?"embed":t==="csv-table"||t.includes("csv-table")||t.includes("csv table")?"csv-table":t.includes("markdown")?"markdown":t.includes("code")?"code":t==="text"||t==="text/plain"||t.includes("plain-text")||t.includes("plain text")?"text":t.includes("ai")||t.includes("task")?"ai-task":t.includes("memo")?"memo":"note"}function kp(e){const t=e.trim().toLowerCase();if(!t)return!1;if(["remote-control","remote.control","remotecontrol","remote-device","remote.device","remotedevice","remote-fleet-device","remotefleet.device"].includes(t))return!0;const o=t.replace(/[^a-z0-9]+/g,"");return o.includes("remotecontrol")||o.includes("remotedevice")||o.includes("remotefleetdevice")}function wp(e){const t=e.trim().toLowerCase();if(!t)return!1;if(["remote-monitor","remote.monitor","remotemonitor","remote-hub-monitor","remotehub.monitor","remotehub-monitor","multi-desktop-monitor","multidesktop.monitor","smartview.monitor"].includes(t))return!0;const o=t.replace(/[^a-z0-9]+/g,"");return o.includes("remotemonitor")||o.includes("remotehubmonitor")||o.includes("multidesktopmonitor")||o.includes("smartviewmonitor")}function vp(e,t){const o=e.Metadata||{},r=o.ThumbnailUrl,l=o.OriginalUrl,m=o.OriginalPath;return Xr(W(r)||W(l)||W(m)||W(e.Response),t)}function jp(e,t,o){const r=e.ImageStack,l=Array.isArray(r==null?void 0:r.Variants)?r.Variants:[];if(l.length===0)return;const m=l.map((b,c)=>{const y=W(b.AssetId).trim(),w=Xr(y,o)||t;return w?{variantId:W(b.VariantId)||`variant-${W(e.Id)||c}`,imageUrl:w,assetId:y||void 0,caption:W(b.Caption)||void 0,sourceNodeId:W(e.Id)||void 0,createdAtUtc:W(b.CreatedAtUtc)||void 0}:null}).filter(b=>!!b);if(m.length===0)return;const p=W(r==null?void 0:r.ActiveVariantId);return{activeVariantId:m.some(b=>b.variantId===p)?p:m[0].variantId,variants:m,kind:W(r==null?void 0:r.Kind)||"versions",title:W(r==null?void 0:r.Title)||void 0,updatedAtUtc:W(r==null?void 0:r.UpdatedAtUtc)||void 0}}function Ip(e,t){return!e||e.variants.length===0?t:(e.variants.find(r=>r.variantId===e.activeVariantId)??e.variants[0]).imageUrl||t}function Np(e,t,o){var p,b,c,y,w,L;const r=(b=(p=e.imageStack)==null?void 0:p.variants)!=null&&b.length?e.imageStack.variants:e.imageUrl?[{variantId:`${e.id}:image`,imageUrl:e.imageUrl,assetId:go(e.imageUrl,t)||e.imageUrl,title:e.title,sourceNodeId:e.id,createdAtUtc:o}]:[];if(r.length===0)return null;const l=r.map(I=>({VariantId:I.variantId||Ss(),AssetId:I.assetId||go(I.imageUrl,t)||I.imageUrl,CreatedAtUtc:I.createdAtUtc||o,Caption:I.caption||I.title||null}));return{ActiveVariantId:(c=e.imageStack)!=null&&c.activeVariantId&&l.some(I=>{var D;return I.VariantId===((D=e.imageStack)==null?void 0:D.activeVariantId)})?e.imageStack.activeVariantId:l[0].VariantId||"",Variants:l,Kind:((y=e.imageStack)==null?void 0:y.kind)||(l.length>1?"pile":"versions"),Title:((w=e.imageStack)==null?void 0:w.title)||e.title||null,UpdatedAtUtc:((L=e.imageStack)==null?void 0:L.updatedAtUtc)||o}}function Ap(e,t){const o=e.Metadata||{};return Xr(W(o.OriginalUrl)||W(o.OriginalPath)||W(o.SourceFilePath)||W(e.SourceFilePath)||W(e.Response),t)}function Mp(e){const t={};for(const[o,r]of Object.entries(e??{}))typeof r=="string"?t[o]=r:r!=null&&(t[o]=String(r));return t}function Tp(e){switch(e){case"remote-monitor":return"remote-monitor";case"remote-control":return"remote-control";case"template-launcher":return"templateLauncher";case"directory":return"directory";case"pdf":return"pdf";case"file":return"file";case"image":return"image";case"mask":return"mask";case"video":return"video";case"embed":return"embed";case"code":return"code";case"markdown":return"markdown";case"csv-table":return"csv-table";case"memo":return"memo";case"text":return"text";case"ai-task":return"note";default:return"note"}}function go(e,t){const o=String(e||"").trim();if(!o)return"";const r=t.replace(/\/+$/,"");return o.startsWith(`${r}/`)?o.slice(r.length+1):o.replace(/^\/+/,"")}function Rp(e,t){const o=new Map;for(const r of e){const l=t.get(r.from),m=t.get(r.to);!l||!m||o.has(m)||o.set(m,l)}return o}function Lp(e){const t=new Set;return e.map(o=>{var c,y;const r=((c=o.metadata)==null?void 0:c[Pa])||"",l=gs(r)?r:gs(o.id)?o.id:"",m=!!(l&&t.has(l)),p=l&&!m?l:Ss(),b=((y=o.metadata)==null?void 0:y[Pa])!==p;return t.add(p),{node:b?{...o,metadata:{...o.metadata??{},[Pa]:p}}:o,originalId:p,assignedNodeId:!l||m,metadataStamped:b,duplicateOriginalId:m}})}function Ep(e,t,o,r,l){var y,w,L;const m=Tp(e.kind),p=m==="image"||m==="mask"?go(e.imageUrl,l):"",b=["video","pdf","file","directory","embed"].includes(m)?go(e.assetUrl||e.sourceFilePath||e.body,l):"",c={...e.metadata??{},[Pa]:t,ReactNodeId:e.id,ReactKind:e.kind};if(e.kind==="remote-monitor"&&(c.RemoteHub??(c.RemoteHub="Gated"),c.RemoteRoute??(c.RemoteRoute="Gated"),c.RemoteConnected??(c.RemoteConnected="0"),c.RemoteTotal??(c.RemoteTotal="30"),c.RemotePage??(c.RemotePage="1/1"),c.AdapterState??(c.AdapterState="adapter-gated")),e.kind==="remote-control"&&(c.SemanticType??(c.SemanticType="RemoteFleetDevice"),c.RemoteFleetSchemaVersion??(c.RemoteFleetSchemaVersion="remote-fleet-device@1"),c.RemoteRoute??(c.RemoteRoute="Gated"),c.RemoteInput??(c.RemoteInput="Off"),c.AdapterState??(c.AdapterState="adapter-gated")),e.kind==="mask"&&(c.ImageRouterMask??(c.ImageRouterMask="true"),c.SemanticType??(c.SemanticType="ImageEditMask")),e.kind==="embed"){const I=e.assetUrl||e.body||e.sourceFilePath||"";c.source??(c.source="embed"),c.renderMode??(c.renderMode="card"),c.provider??(c.provider="web"),c.sourceUrl??(c.sourceUrl=I),c.url??(c.url=I),c.AdapterState??(c.AdapterState="local-reference")}return e.kind==="video"&&(c.assetKind??(c.assetKind="video"),c.videoMode??(c.videoMode=(y=e.assetUrl)!=null&&y.startsWith(l)?"local_bridge":"local_reference"),c.AdapterState??(c.AdapterState=((w=e.metadata)==null?void 0:w.PromptOnly)==="true"?"adapter-gated":"local-reference")),(L=e.tags)!=null&&L.length&&(c.ReactTags=JSON.stringify(e.tags)),p&&(c.OriginalUrl=p,c.ThumbnailUrl=p),b&&(c.OriginalPath=b,c.SourceFilePath=b),{Id:t,ContentType:m,Prompt:e.title||m,Response:m==="image"||m==="mask"?p||e.body||null:m==="remote-monitor"?e.body||"RemoteHub monitor node. Frames and input stay adapter-gated until LocalBridge is connected.":m==="remote-control"?e.body||"Remote device control node. Frames and input stay adapter-gated until LocalBridge is connected.":b||e.body||null,PositionX:e.x,PositionY:e.y,PositionZ:0,IsLoading:e.status==="running",Width:Math.round(e.width),Height:Math.round(e.height),Children:[],ParentId:o||null,IsExpanded:!!e.isExpanded,OriginalHeight:Math.round(e.originalHeight??0),IsAiEnabled:e.aiEnabled!==!1,IsChunkedText:!!e.isChunkedText,TotalLineCount:Math.round(e.totalLineCount??0),SourceFilePath:e.sourceFilePath||b||null,ScrollOffset:e.scrollOffset??0,MaxScroll:e.maxScroll??0,CreatedAt:r,UpdatedAt:r,IsWordWrap:e.wordWrap??e.kind!=="code",Metadata:c,ImageStack:m==="image"?Np(e,l,r):null}}function Pp(e,t){return{NodeId:t,PositionX:e.x,PositionY:e.y,PositionZ:0,Width:Math.round(e.width),Height:Math.round(e.height),IsExpanded:!!e.isExpanded,OriginalHeight:Math.round(e.originalHeight??0)}}function _p(e,t,o){const r=W(e.ContentType)||"note",l=W(e.Prompt).trim(),m=W(e.Response).trim(),p=Mp(e.Metadata),b=W(e.Id).trim();b&&(p[Pa]??(p[Pa]=b));const y=["true","1","yes"].includes(String(p.ImageRouterMask||p.IsMask||"").trim().toLowerCase())?"mask":Sp(r),w=y==="memo"&&["mindcanvasagent","agentcommand"].includes(String(p.SemanticType||p.semanticType||"").trim().toLowerCase()),L=y==="memo"&&["codenote","code-note"].includes(String(p.SemanticType||p.semanticType||"").trim().toLowerCase()),I=W(e.SourceFilePath)||p.OriginalPath||p.SourceFilePath||"",D=y==="video"||y==="pdf"||y==="file"||y==="directory"||y==="embed"?Ap(e,o):void 0,J=l||e.SourceFilePath||r||"LocalBridge node",$=y==="image"?m||l||"Image asset":y==="mask"?m||l||"Image mask asset":y==="remote-monitor"?m||l||"RemoteHub monitor node. Frames and input stay adapter-gated until LocalBridge is connected.":y==="remote-control"?m||l||I||"Remote device control node. Frames and input stay adapter-gated until LocalBridge is connected.":y==="pdf"||y==="file"||y==="directory"||y==="embed"?m||I||l||r:m||l||I||"",O=w?500:L?400:y==="remote-monitor"?860:y==="remote-control"||y==="template-launcher"?560:y==="csv-table"?720:y==="embed"?460:y==="video"?420:y==="markdown"?380:y==="text"||y==="image"||y==="mask"?360:320,K=w||L?300:y==="remote-monitor"?640:y==="remote-control"?390:y==="template-launcher"?620:y==="csv-table"?420:y==="embed"?260:y==="video"?236:y==="markdown"?240:y==="text"?210:y==="image"||y==="mask"?260:180,V=y==="image"||y==="mask"?vp(e,o):void 0,se=y==="image"?jp(e,V,o):void 0,oe=!!(e.IsChunkedText||p.IsChunkedText==="true"),Ae=sa(e.TotalLineCount??p.TotalLineCount,0),be=sa(e.ScrollOffset,0),Ue=sa(e.MaxScroll,0);return{id:String(e.Id||crypto.randomUUID()),kind:y,title:y==="remote-monitor"?l||"Multi Desktop Monitor":y==="remote-control"?l||p.RemoteFleetDeviceName||"Remote Device":y==="template-launcher"?l||"Template Launcher":J,body:$,x:sa((t==null?void 0:t.PositionX)??e.PositionX,0),y:sa((t==null?void 0:t.PositionY)??e.PositionY,0),width:Math.max(160,Math.min(900,sa((t==null?void 0:t.Width)??e.Width,O))),height:Math.max(120,Math.min(900,sa((t==null?void 0:t.Height)??e.Height,K))),status:e.IsLoading?"running":y==="ai-task"?"idle":void 0,imageUrl:Ip(se,V),imageStack:se,assetUrl:D,sourceFilePath:I||void 0,isChunkedText:oe||void 0,totalLineCount:oe?Ae:void 0,scrollOffset:oe?be:void 0,maxScroll:oe?Ue:void 0,isExpanded:typeof e.IsExpanded=="boolean"?e.IsExpanded:void 0,originalHeight:sa(e.OriginalHeight,0)||void 0,tags:w?["Agent Command",p.AgentCommandRequestedRole||"Researcher",p.AgentCommandStatus||"Draft"]:L?["Code Note",p.CodeNoteStatus||"Draft",p.CodeNoteSyncState||"Unlinked"]:y==="remote-monitor"?["Remote","Monitor","LocalBridge"]:y==="remote-control"?["Remote","Control","LocalBridge"]:["LocalBridge",r],metadata:y==="remote-monitor"?Dp(p):y==="remote-control"?Bp(p):p,role:e.IsAiEnabled?"ai-enabled":void 0,aiEnabled:typeof e.IsAiEnabled=="boolean"?e.IsAiEnabled:void 0,wordWrap:typeof e.IsWordWrap=="boolean"?e.IsWordWrap:void 0}}function Dp(e){return{RemoteHub:"Gated",RemoteRoute:"Gated",RemoteConnected:"0",RemoteTotal:"30",RemotePage:"1/1",AdapterState:"adapter-gated",...e}}function Bp(e){return{SemanticType:"RemoteFleetDevice",RemoteFleetSchemaVersion:"remote-fleet-device@1",RemoteFleetDeviceId:"",RemoteFleetDeviceName:"Remote Device",RemoteFleetDevicePlatform:"unknown",RemoteFleetDeviceConnected:"false",RemoteInput:"Off",RemoteHub:"Gated",RemoteRoute:"Gated",RemoteBaseUrl:"http://127.0.0.1:5147",AdapterState:"adapter-gated",...e}}function Op(e,t){const o=[];for(const r of e){const l=String(r.Id||""),m=String(r.ParentId||"");!l||!m||!t.has(l)||!t.has(m)||o.push({id:`edge-local-${m}-${l}`,from:m,to:l,kind:"context"})}return o}async function Fp(e=xs()){const t=await Yr(".mindexec/boards/_metadata.json",e),o=JSON.parse(t.content);return(Array.isArray(o)?o.filter(Ct):[]).map(m=>Rr(m)).filter(m=>!!m).sort((m,p)=>String(p.UpdatedAt||"").localeCompare(String(m.UpdatedAt||"")))}async function $p(e){try{const t=await Yr(".mindexec/boards/_metadata.json",e),o=JSON.parse(t.content);return Array.isArray(o)?o.filter(Ct):[]}catch{return[]}}async function zp(e,t,o,r=xs(),l=null){var lt,Me,le,Tt,me,He;if((lt=e.source)!=null&<.partialImport)throw new Error("This board was imported from a partial original payload. Export is blocked to avoid data loss.");if((Me=e.source)!=null&&Me.truncated)throw new Error("This board was truncated during import. Export is blocked to avoid data loss.");const m=(le=e.source)!=null&&le.exportedByReact?String(e.source.boardId||""):"",p=gs(m),b=gs(m)?m:Ss(),c=new Date().toISOString(),y=Lp(e.nodes),w=y.map(ee=>ee.node),L=new Map(y.map(ee=>[ee.node.id,ee.originalId])),I=Rp(e.edges,L),D=y.map(({node:ee,originalId:ct})=>Ep(ee,ct,I.get(ct),c,r)),J=y.map(({node:ee,originalId:ct})=>Pp(ee,ct)),$=t.scale>0?t.scale:1,O=(window.innerWidth/2-t.x)/$,K=(window.innerHeight/2-t.y)/$,V=1400/$,se=Number((l==null?void 0:l.x)??((Tt=e.viewState)==null?void 0:Tt.cursorX)??0),oe=Number((l==null?void 0:l.y)??((me=e.viewState)==null?void 0:me.cursorY)??0),Ae=(He=e.nodes.find(ee=>ee.kind==="image"&&ee.imageUrl))==null?void 0:He.imageUrl,be={Id:b,UserId:"00000000-0000-0000-0000-000000000000",Title:e.name||"Untitled Board",Description:"Exported from MindExec React",ThumbnailUrl:go(Ae,r)||"",IsPublic:!1,CreatedAt:c,SyncedCloudBoardId:null,LastSyncedAt:null,LastCloudCopyStatus:null,UpdatedAt:c,LastCameraX:O,LastCameraY:K,LastCameraZ:V,LastCursorX:Number.isFinite(se)?se:0,LastCursorY:Number.isFinite(oe)?oe:0,CameraBookmarks:yp(e.settings.cameraBookmarks)},Ue=`.mindexec/boards/${b}.msgpack`,et=`.mindexec/boards/${b}.json`,tt=`.mindexec/boards/${b}.layout.json`,he=`.mindexec/boards/${b}.delta.json`,Z=`boards/${b}.delta.json`,ie=await $p(r),re=[be,...ie.filter(ee=>W(ee.Id)!==b)],St=Lm(D);await sm(Ue,St,o,r),await Ks(et,JSON.stringify(D,null,2),o,r),await Ks(tt,JSON.stringify(J,null,2),o,r),await Ks(".mindexec/boards/_metadata.json",JSON.stringify(re,null,2),o,r);const F=await Promise.allSettled([ud(he,o,r),ud(Z,o,r)]);return f.emit("localBridge.board.exported",{boardId:b,nodes:D.length,edges:e.edges.length,snapshotFormat:"msgpack",msgpackBytes:St.byteLength,jsonMirror:!0,deltaCleared:F.some(ee=>ee.status==="fulfilled"&&ee.value.success),reusedBoardId:p,stableNodeIds:y.length,assignedNodeIds:y.filter(ee=>ee.assignedNodeId).length,metadataStampedNodeIds:y.filter(ee=>ee.metadataStamped).length,duplicateOriginalNodeIds:y.filter(ee=>ee.duplicateOriginalId).length}),{metadata:be,source:{kind:"localBridge",boardId:b,loadedAt:c,originalNodeCount:D.length,renderedNodeCount:D.length,truncated:!1,exportedByReact:!0,snapshotFormat:"msgpack"},nodes:w,msgpackPath:Ue,boardPath:et,layoutPath:tt}}async function Up(e,t,o=xs()){const r=await Cp(e.Id,o);let l=new Map;const m=await Tr([`.mindexec/boards/${e.Id}.layout.json`,`boards/${e.Id}.layout.json`],o);m&&(l=Dl(m.payload));let p=null;const b=await Tr([`.mindexec/boards/${e.Id}.delta.json`,`boards/${e.Id}.delta.json`],o);b&&(p=b.payload);const c=p?Zr(p)[0]:null,y=!!(p&&Jr(p)),w=y?xp(r.payload,p):r.payload;return Bl(w,t,{boardId:(c==null?void 0:c.Id)??e.Id,title:(c==null?void 0:c.Title)||e.Title||"LocalBridge Board",updatedAt:(c==null?void 0:c.UpdatedAt)??e.UpdatedAt,layoutPayload:Array.from(l.values()),baseUrl:o,cameraBookmarks:(c==null?void 0:c.CameraBookmarks)??e.CameraBookmarks,lastCursorX:(c==null?void 0:c.LastCursorX)??e.LastCursorX,lastCursorY:(c==null?void 0:c.LastCursorY)??e.LastCursorY,deltaApplied:y,deltaUpserts:p?_l(p):0,deltaDeletes:p?Pl(p):0,snapshotFormat:r.format})}function Bl(e,t,o={}){const r=hs(e),l=Jr(e),m=o.deltaUpserts??(l?r.length:0),p=o.deltaDeletes??(l?Pl(e):0),b=o.layoutPayload?Dl(o.layoutPayload):new Map,c=r.slice(0,gp),y=c.map(oe=>_p(oe,b.get(String(oe.Id||"")),o.baseUrl??xs())),w=new Set(y.map(oe=>oe.id)),L=Op(c,w),I=r.length>y.length,D=l,J=o.deltaApplied===!0,$=o.boardId||Ss(),O=o.updatedAt||new Date().toISOString(),K=Number(o.lastCursorX),V=Number(o.lastCursorY),se=Number.isFinite(K)&&Number.isFinite(V);return f.emit("localBridge.board.loaded",{boardId:$,nodes:y.length,originalNodes:r.length,truncated:I,snapshotFormat:o.snapshotFormat,partialImport:D,deltaImport:l,deltaApplied:J,deltaUpserts:m,deltaDeletes:p}),{id:`localBridge:${$}`,name:o.title||"LocalBridge Board",nodes:y,edges:L,settings:{...t,cameraBookmarks:bp(o.cameraBookmarks)},viewState:se?{cursorX:K,cursorY:V}:void 0,updatedAt:O,source:{kind:"localBridge",boardId:$,loadedAt:new Date().toISOString(),snapshotFormat:o.snapshotFormat,originalNodeCount:r.length,renderedNodeCount:y.length,truncated:I,partialImport:D,deltaImport:l,deltaApplied:J}}}const Qr=["id","user_id","title","description","content_json","thumbnail_url","is_public","created_at","updated_at","last_camera_x","last_camera_y","last_camera_z","last_cursor_x","last_cursor_y","camera_bookmarks"].join(","),Hp=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Wp(e){if(Hp.test(e))return e;if(typeof crypto<"u"&&"randomUUID"in crypto)return crypto.randomUUID();throw new Error("A browser crypto.randomUUID implementation is required to create cloud boards.")}function Ol(e){if(!e)return{};if(Array.isArray(e))return{nodes:e};if(typeof e=="object")return e;if(typeof e!="string"||!e.trim())return{};try{const t=JSON.parse(e);if(Array.isArray(t))return{nodes:t};if(t&&typeof t=="object")return t}catch{return{}}return{}}function Vp(e){return JSON.stringify({id:e.id,name:e.name,nodes:e.nodes,edges:e.edges,settings:e.settings,viewState:e.viewState,updatedAt:e.updatedAt})}function Lr(e,t=new Date().toISOString()){return e&&!Number.isNaN(Date.parse(e))?e:t}function ei(e){return(e==null?void 0:e.trim().slice(0,90))||"Untitled Board"}function Fl(e){const t=Ol(e.content_json),o=Lr(e.updated_at??t.updatedAt);return{id:e.id,name:ei(e.title??t.name),updatedAt:o,createdAt:Lr(e.created_at,o),nodeCount:Array.isArray(t.nodes)?t.nodes.length:0,edgeCount:Array.isArray(t.edges)?t.edges.length:0,sourceKind:"cloud"}}function Yp(e,t){var w,L;const o=Ol(e.content_json),r=Lr(e.updated_at??o.updatedAt),l=Number((w=o.viewState)==null?void 0:w.cursorX),m=Number((L=o.viewState)==null?void 0:L.cursorY),p=Number(e.last_cursor_x),b=Number(e.last_cursor_y),c=Number.isFinite(l)&&Number.isFinite(m),y=Number.isFinite(p)&&Number.isFinite(b);return{id:e.id,name:ei(e.title??o.name),nodes:Array.isArray(o.nodes)?o.nodes:[],edges:Array.isArray(o.edges)?o.edges:[],settings:o.settings??t,viewState:c?{cursorX:l,cursorY:m}:y?{cursorX:p,cursorY:b}:void 0,updatedAt:r,source:{kind:"cloud",boardId:e.id,loadedAt:new Date().toISOString(),snapshotFormat:"supabase.boards.content_json",originalNodeCount:Array.isArray(o.nodes)?o.nodes.length:0,renderedNodeCount:Array.isArray(o.nodes)?o.nodes.length:0}}}async function ti(e){var c;const t=Nl(e);if(!t.cloudBoards.canAttempt)return f.emit("projectStorage.cloud.provider.skipped",{mode:t.cloudBoards.mode}),{userId:null,config:t,reason:t.cloudBoards.mode};const o=Cs(e);if(!o)return f.emit("projectStorage.cloud.provider.skipped",{mode:"config-missing"}),{userId:null,config:t,reason:"missing-client"};const{data:r,error:l}=await o.auth.getSession();if(l||!r.session)return f.emit("projectStorage.cloud.provider.sessionMissing",{message:(l==null?void 0:l.message)??"missing-session"}),{userId:null,config:t,reason:"missing-session"};const{data:m,error:p}=await o.auth.getUser(),b=((c=m.user)==null?void 0:c.id)??null;return p||!b?(f.emit("projectStorage.cloud.provider.sessionMissing",{message:(p==null?void 0:p.message)??"missing-user"}),{userId:null,config:t,reason:"missing-user"}):{userId:b,config:t,reason:"provider-ready"}}async function Xp(e){const t=await ti(e);if(!t.userId)return[];const o=Cs(e);if(!o)return[];f.emit("projectStorage.cloud.list.requested");const{data:r,error:l}=await o.from("boards").select(Qr).eq("user_id",t.userId).order("updated_at",{ascending:!1}).limit(50);if(l)throw f.emit("projectStorage.cloud.provider.failed",{operation:"list",message:l.message}),l;const m=(r??[]).map(Fl);return f.emit("projectStorage.cloud.list.loaded",{count:m.length}),m}async function Gp(e,t,o){const r=await ti(e);if(!r.userId)return null;const l=Cs(e);if(!l)return null;f.emit("projectStorage.cloud.load.requested",{boardId:t});const{data:m,error:p}=await l.from("boards").select(Qr).eq("user_id",r.userId).eq("id",t).maybeSingle();if(p)throw f.emit("projectStorage.cloud.provider.failed",{operation:"load",boardId:t,message:p.message}),p;if(!m)return null;const b=Yp(m,o);return f.emit("projectStorage.cloud.load.loaded",{boardId:t,nodes:b.nodes.length,edges:b.edges.length}),b}async function Kp(e,t,o,r=null){var se,oe;const l=await ti(e);if(!l.userId)return null;const m=Cs(e);if(!m)return null;const p=Wp(t.id),b=new Date().toISOString(),c=ei(t.name),y=Number((r==null?void 0:r.x)??((se=t.viewState)==null?void 0:se.cursorX)??0),w=Number((r==null?void 0:r.y)??((oe=t.viewState)==null?void 0:oe.cursorY)??0),L={...t.viewState??{},cursorX:Number.isFinite(y)?y:0,cursorY:Number.isFinite(w)?w:0},I={...t,id:p,name:c,viewState:L,updatedAt:b},D={p_board_id:p,p_title:c,p_description:null,p_thumbnail_url:null,p_is_public:!1,p_created_at:null,p_updated_at:b,p_last_camera_x:o.x,p_last_camera_y:o.y,p_last_camera_z:o.scale,p_last_cursor_x:L.cursorX,p_last_cursor_y:L.cursorY,p_camera_bookmarks:JSON.stringify(t.settings.cameraBookmarks??{}),p_nodes:[],p_include_json_mirror:!0};f.emit("projectStorage.cloud.save.requested",{boardId:p,sourceBoardId:t.id,nodes:t.nodes.length,edges:t.edges.length});const{error:J}=await m.rpc("save_board_snapshot",D);if(J)throw f.emit("projectStorage.cloud.provider.failed",{operation:"save-rpc",boardId:p,message:J.message}),J;const $={content_json:Vp(I),updated_at:b},{data:O,error:K}=await m.from("boards").update($).eq("id",p).eq("user_id",l.userId).select(Qr).maybeSingle();if(K)throw f.emit("projectStorage.cloud.provider.failed",{operation:"save-json-mirror",boardId:p,message:K.message}),K;const V=O?Fl(O):{id:p,name:c,updatedAt:b,createdAt:b,nodeCount:t.nodes.length,edgeCount:t.edges.length,sourceKind:"cloud"};return f.emit("projectStorage.cloud.save.saved",{boardId:V.id,nodes:V.nodeCount,edges:V.edgeCount}),V}function Er(e){return e.length===0?{minX:0,minY:0,maxX:0,maxY:0}:e.reduce((t,o)=>({minX:Math.min(t.minX,o.x),minY:Math.min(t.minY,o.y),maxX:Math.max(t.maxX,o.x+o.width),maxY:Math.max(t.maxY,o.y+o.height)}),{minX:Number.POSITIVE_INFINITY,minY:Number.POSITIVE_INFINITY,maxX:Number.NEGATIVE_INFINITY,maxY:Number.NEGATIVE_INFINITY})}function qp(e,t={},o=Er(e),r){if(e.length===0)return{after:new Map,boundsAfter:o};const l=pg(t.mode),m=gg(t.order),p=hg(t.anchor),b=fg(t.sizeMode),c=Math.max(0,t.gapX??24),y=Math.max(0,t.gapY??24),w=Math.max(1,t.maxColumns??12),L=Pr(t.quantile??.75,.05,.95),I=e.map(Jp),D=dg(I,m),J=D.map(be=>be.width),$=D.map(be=>be.height),O=Math.max(1,t.cellWidth??Bd(J,L)),K=Math.max(1,t.cellHeight??Bd($,L)),V=Math.max(1,t.targetWidth??O),se=Math.max(1,t.targetHeight??K),oe=ig(p,o);if(l==="grid"){ng(D,b,V,se,O,K);const be=Dd(t.columns,w,o.maxX-o.minX,O,c);Qp(D,oe.x,oe.y,be,O,K,c,y)}else if(l==="masonry"){og(D,b==="preserve"?"uniformWidth":b,V);const Ue=Dd(t.columns,w,o.maxX-o.minX,V,c);eg(D,oe.x,oe.y,Ue,V,c,y)}else l==="stripHorizontal"?(sg(D,b==="preserve"?"uniformHeight":b,se),tg(D,oe.x,oe.y,c,se)):(rg(D,b==="preserve"?"uniformWidth":b,V),ag(D,oe.x,oe.y,y,V));let Ae=new Map(D.map(be=>[be.id,Zp(be)]));return p==="selectionBoundsCenter"&&(Ae=cg(o,Ae)),t.snapToGrid&&(Ae=ug(Ae,Math.max(1,t.gridSize??8))),{after:Ae,boundsAfter:Er(Array.from(Ae.values()))}}function Jp(e){return{...e,width:Math.max(1,e.width),height:Math.max(1,e.height)}}function Zp(e){return{x:e.x,y:e.y,width:Math.max(1,e.width),height:Math.max(1,e.height)}}function Qp(e,t,o,r,l,m,p,b){e.forEach((c,y)=>{const w=Math.floor(y/r),L=y%r,I=t+L*(l+p),D=o+w*(m+b);c.x=I+(l-c.width)/2,c.y=D+(m-c.height)/2})}function eg(e,t,o,r,l,m,p){const b=Array.from({length:r},()=>0);for(const c of e){const y=mg(b),w=t+y*(l+m);c.x=w+(l-c.width)/2,c.y=o+b[y],b[y]+=c.height+p}}function tg(e,t,o,r,l){let m=t;for(const p of e)p.x=m,p.y=o+(l-p.height)/2,m+=p.width+r}function ag(e,t,o,r,l){let m=o;for(const p of e)p.x=t+(l-p.width)/2,p.y=m,m+=p.height+r}function ng(e,t,o,r,l,m){if(t==="fitCellDownOnly")for(const p of e){const b=Math.min(1,l/p.width,m/p.height);p.width*=b,p.height*=b}else t==="uniformWidth"?ai(e,o):t==="uniformHeight"&&$l(e,r)}function og(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const l=Math.min(1,o/r.width);r.width*=l,r.height*=l}return}ai(e,o)}function sg(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const l=Math.min(1,o/r.height);r.width*=l,r.height*=l}return}$l(e,o)}function rg(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const l=Math.min(1,o/r.width);r.width*=l,r.height*=l}return}ai(e,o)}function ai(e,t){for(const o of e){if(o.width<=0)continue;const r=t/o.width;o.width=t,o.height=Math.max(1,o.height*r)}}function $l(e,t){for(const o of e){if(o.height<=0)continue;const r=t/o.height;o.height=t,o.width=Math.max(1,o.width*r)}}function Dd(e,t,o,r,l){if(typeof e=="number"&&e>0)return Math.round(Pr(e,1,t));if(o<=1||r<=1)return 1;const m=Math.floor((o+l)/(r+l));return!Number.isFinite(m)||m<1?1:Math.round(Pr(m,1,t))}function ig(e,t,o){return{x:t.minX,y:t.minY}}function dg(e,t){return t==="selectionOrder"?[...e].sort((o,r)=>o.selectionIndex-r.selectionIndex):lg(e)}function lg(e){const t=[...e].sort((c,y)=>c.y-y.y||c.x-y.x);if(t.length<=2)return t;const o=t.map(c=>c.height).sort((c,y)=>c-y),r=o[Math.floor(o.length/2)]??1,l=Math.max(16,r*.35),m=[];let p=[],b=Number.NaN;for(const c of t)p.length===0?(p=[c],b=c.y):Math.abs(c.y-b)<=l?(p.push(c),b=(b*(p.length-1)+c.y)/p.length):(m.push([...p].sort((y,w)=>y.x-w.x)),p=[c],b=c.y);return p.length>0&&m.push([...p].sort((c,y)=>c.x-y.x)),m.flat()}function cg(e,t){if(t.size===0)return t;const o=Er(Array.from(t.values())),r=e.minX+(e.maxX-e.minX)/2,l=e.minY+(e.maxY-e.minY)/2,m=o.minX+(o.maxX-o.minX)/2,p=o.minY+(o.maxY-o.minY)/2,b=r-m,c=l-p;return new Map(Array.from(t.entries()).map(([y,w])=>[y,{...w,x:w.x+b,y:w.y+c}]))}function ug(e,t){return new Map(Array.from(e.entries()).map(([o,r])=>[o,{...r,x:Od(r.x,t),y:Od(r.y,t)}]))}function Bd(e,t){if(e.length===0)return 1;const o=[...e].sort((b,c)=>b-c),r=(o.length-1)*t,l=Math.floor(r),m=Math.min(o.length-1,l+1),p=r-l;return o[l]*(1-p)+o[m]*p}function mg(e){let t=0;for(let o=1;o<e.length;o+=1)e[o]<e[t]&&(t=o);return t}function Od(e,t){return Math.round(e/t)*t}function pg(e){const t=ks(e);return t==="grid"?"grid":t==="striphorizontal"||t==="striph"?"stripHorizontal":t==="stripvertical"||t==="stripv"?"stripVertical":"masonry"}function gg(e){return ks(e)==="selectionorder"?"selectionOrder":"spatialReading"}function hg(e){const t=ks(e);return t==="selectionboundscenter"?"selectionBoundsCenter":t==="viewporttopleft"?"viewportTopLeft":"selectionBoundsTopLeft"}function fg(e){const t=ks(e);return t==="fitcelldownonly"?"fitCellDownOnly":t==="uniformwidth"?"uniformWidth":t==="uniformheight"?"uniformHeight":"preserve"}function ks(e){return String(e??"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")}function Pr(e,t,o){return Math.min(o,Math.max(t,e))}const zl=300,Ul=50*1024*1024,bg=800;function ke(e){return typeof e=="string"?e.length*2:0}function yg(e){let t=256;if(t+=ke(e.id),t+=ke(e.kind),t+=ke(e.title),t+=ke(e.body),t+=ke(e.result),t+=ke(e.imageUrl),t+=ke(e.assetUrl),t+=ke(e.sourceFilePath),t+=(e.tags??[]).reduce((o,r)=>o+ke(r),0),e.metadata)for(const[o,r]of Object.entries(e.metadata))t+=ke(o)+ke(r);return e.imageStack&&(t+=128+ke(e.imageStack.title),t+=e.imageStack.variants.reduce((o,r)=>o+96+ke(r.variantId)+ke(r.imageUrl)+ke(r.assetId)+ke(r.title)+ke(r.caption),0)),t}function xg(e){let t=1024+ke(e.id)+ke(e.name)+ke(e.updatedAt);return t+=e.nodes.reduce((o,r)=>o+yg(r),0),t+=e.edges.length*128,t+=Object.entries(e.settings).reduce((o,[r,l])=>o+ke(r)+ke(typeof l=="string"?l:JSON.stringify(l)),0),t}function Hl(e,t={}){var o,r;return{board:e,description:((o=t.description)==null?void 0:o.trim())||"Board change",mergeKey:((r=t.mergeKey)==null?void 0:r.trim())||null,timestampMs:t.timestampMs??Date.now(),estimatedBytes:xg(e)}}function Fd(e,t={}){const o=t.maxEntries??zl,r=t.maxBytes??Ul;let l=e.slice(Math.max(0,e.length-o)),m=l.reduce((p,b)=>p+b.estimatedBytes,0);for(;l.length>1&&m>r;){const[p,...b]=l;m-=(p==null?void 0:p.estimatedBytes)??0,l=b}return l}function Ma(e,t,o={}){const r=Hl(t,o),l=o.mergeWindowMs??bg,m=e.slice(),p=m.at(-1);return p&&r.mergeKey&&p.mergeKey===r.mergeKey&&r.timestampMs-p.timestampMs<l?(m[m.length-1]={...p,description:r.description,timestampMs:r.timestampMs,estimatedBytes:Math.max(p.estimatedBytes,r.estimatedBytes)},Fd(m,o)):(m.push(r),Fd(m,o))}function Cg(e,t,o={}){const r=Hl(t,o),l=o.maxEntries??zl,m=o.maxBytes??Ul;let p=[r,...e].slice(0,l),b=p.reduce((c,y)=>c+y.estimatedBytes,0);for(;p.length>1&&b>m;){const c=p.at(-1);b-=(c==null?void 0:c.estimatedBytes)??0,p=p.slice(0,-1)}return p}function ws(e,...t){const o=e==null?void 0:e.metadata;if(!o)return"";for(const r of t){const l=o[r];if(typeof l=="string"&&l.trim())return l.trim()}return""}function eo(e,t){return!!ws(e,t)}function Wl(e){if(!e||!e.trim())return!1;const t=e.trim();return/^(https?:|blob:|data:|file:)/i.test(t)}function Vl(e){if(!e)return"";const t=ws(e,"OriginalPath");if(t)return t;const o=String(e.body||"").trim();return Wl(o)?"":o}function Yl(e){return e?Vl(e)||String(e.sourceFilePath||"").trim()||String(e.assetUrl||"").trim()||String(e.imageUrl||"").trim()||String(e.body||"").trim():""}function Xl(e){return ws(e,"ThumbnailUrl","thumbnailUrl")}function Sg(e){if(!e||e.kind!=="image")return!1;if(eo(e,"ImageGenerationProvider")||eo(e,"GeneratedImageSourceWidth")||eo(e,"GeneratedImageSourceHeight")||eo(e,"CodexImageQuality")||eo(e,"ImageRouterRevisedPrompt"))return!0;const t=ws(e,"RequestedMediaOperation");return["text2image","image2image","inpaint"].includes(t.toLowerCase())}function ni(e){if(!e)return"";if(e.kind==="image"||e.kind==="mask"){const t=Sg(e)?Vl(e):"",o=Xl(e),r=String(e.body||"").trim();return t||o||String(e.imageUrl||"").trim()||String(e.assetUrl||"").trim()||String(e.sourceFilePath||"").trim()||(Wl(r)?r:"")}return Yl(e)||String(e.assetUrl||"").trim()||String(e.sourceFilePath||"").trim()}function Gl(e){if(!e)return"";const t=Yl(e)||e.title||e.kind;return String(t||"").replace(/\\/g,"/").replace(/\/+$/,"").split("/").filter(Boolean).pop()||e.title||e.kind}const kg=2048,wg=16e3,nr=1024,or=64,vg=2048,sr=3,jg=16,Ig=256,Ng=new Set(["text","note","memo","markdown","code","directory"]),Ag=/[\p{L}\p{M}\p{N}]{2,}/gu,$d=4,Mg=8,zd=1.35;function Tg(e){return Ng.has(String(e||"").trim().toLowerCase())}function Rg(e){const t=e.map(Eg),o=new Map,r=new Map,l=new Map,m=new Map;for(const p of t){o.set(p.id,p);for(const b of p.tokens)rr(r,b,p.id);for(const b of p.prefixes)rr(l,b,p.id);for(const b of p.ngrams)rr(m,b,p.id)}return{documents:t,documentById:o,tokenIndex:r,prefixIndex:l,ngramIndex:m}}function Lg(e,t,o={}){const r=Math.max(1,Math.trunc(Number(o.limit||30))),l=rn(t),m=Ud(e,0,0,o.viewport,0);if(!l)return{hits:[],profile:m};const p=Array.from(Kl(l)),b=Array.from(ql(p)),c=Zl(l),y=Array.from(Jl(c)),w=new Map;for(const $ of p)ir(e.tokenIndex,$,w,8);for(const $ of b)ir(e.prefixIndex,$,w,$.length<=3?4:2);for(const $ of y)ir(e.ngramIndex,$,w,1.15);const L=Bg(e,w,r),I=Og(o.allowedContentTypes),D=[];for(const $ of L){const O=e.documentById.get($);if(!O||I&&!I.has(O.contentType))continue;const K=_g(O,l,p,y);if(K<=0)continue;const V=Dg(O,o.viewport??null);D.push({nodeId:O.id,score:K+V,textScore:K,viewportBoost:V})}D.sort(($,O)=>O.score-$.score||$.nodeId.localeCompare(O.nodeId));const J=D.slice(0,r);return{hits:J,profile:Ud(e,L.length,J.length,o.viewport,J.filter($=>$.viewportBoost>0).length)}}function rn(e){const t=String(e??"");if(!t.trim())return"";let o=t;try{o=t.normalize("NFKC")}catch{o=t}o=o.toLowerCase();let r="",l=!1;for(const m of o){if(/\s/u.test(m)){l||(r+=" ",l=!0);continue}Fg(m)||(r+=m,l=!1)}return r.trim()}function Kl(e){return new Set(e.match(Ag)??[])}function ql(e){const t=new Set;for(const o of e){if(!o.trim())continue;const r=Math.min(8,o.length);for(let l=2;l<=r;l+=1)t.add(o.slice(0,l))}return t}function Jl(e){const t=new Set;if(!e.trim())return t;if(e.length<=sr)return t.add(e),t;for(let o=0;o<=e.length-sr;o+=1)t.add(e.slice(o,o+sr));return t}function Eg(e){const t=String(e.kind??"").trim().toLowerCase(),o=La(e.prompt??e.title,kg),r=Tg(t)?La(e.response??e.body,wg):"",l=Pg(e.metadata,e.tags,e.metadataText),m=La(e.sourceFilePath||e.assetUrl,vg),p=rn(o),b=rn(r),c=rn(l),y=rn(m),w=rn(t),L=[p,c,y,b,w].filter(Boolean).join(" "),I=Kl(L);return{id:String(e.id),contentType:t,normalizedPrompt:p,normalizedResponse:b,normalizedMetadata:c,normalizedSourcePath:y,normalizedContentType:w,tokens:I,prefixes:ql(I),ngrams:Jl(Zl(L)),x:Number.isFinite(e.x)?e.x:0,y:Number.isFinite(e.y)?e.y:0,width:Number.isFinite(e.width)?e.width:1,height:Number.isFinite(e.height)?e.height:1}}function Pg(e,t,o){const r=[];let l=0;if(e)for(const[m,p]of Object.entries(e)){if(l>=or)break;!String(m??"").trim()&&!String(p??"").trim()||(r.push(La(m,128)),String(p??"").trim()&&r.push(La(p,nr)),l+=1)}return l<or&&(t!=null&&t.length)&&(r.push("tags",La(t.join(" "),nr)),l+=1),l<or&&(o!=null&&o.trim())&&r.push("metadata",La(o,nr)),r.join(" ")}function _g(e,t,o,r){let l=0;e.normalizedPrompt===t?l+=120:to(e.normalizedPrompt,t)&&(l+=54),to(e.normalizedMetadata,t)&&(l+=26),to(e.normalizedSourcePath,t)&&(l+=18),to(e.normalizedResponse,t)&&(l+=14),to(e.normalizedContentType,t)&&(l+=8);for(const m of o)e.tokens.has(m)&&(l+=7),e.normalizedPrompt.startsWith(m)&&(l+=10);for(const m of r)e.ngrams.has(m)&&(l+=.85);return l}function Dg(e,t){if(!t)return 0;const o=e.x+Math.max(1,e.width)/2,r=e.y+Math.max(1,e.height)/2,l=Math.abs(o-t.centerX)/Math.max(1,t.halfWidth),m=Math.abs(r-t.centerY)/Math.max(1,t.halfHeight),p=Math.sqrt(l*l+m*m);if(p<=1)return $d+(1-p)*Mg;if(p<=zd){const b=1-(p-1)/Math.max(.001,zd-1);return Math.max(0,b)*($d*.75)}return 0}function Bg(e,t,o){return t.size===0?e.documents.map(r=>r.id):Array.from(t.entries()).sort((r,l)=>l[1]-r[1]||r[0].localeCompare(l[0])).slice(0,Math.max(o*jg,Ig)).map(([r])=>r)}function Og(e){if(!e)return null;const t=new Set(Array.from(e,o=>String(o||"").trim().toLowerCase()).filter(Boolean));return t.size>0?t:null}function Ud(e,t,o,r,l){return{documentCount:e.documents.length,candidateCount:t,rankedCount:o,viewportBoosted:!!r,boostedCount:l,indexedTokenCount:e.tokenIndex.size,indexedPrefixCount:e.prefixIndex.size,indexedNGramCount:e.ngramIndex.size}}function rr(e,t,o){const r=e.get(t);if(r){r.add(o);return}e.set(t,new Set([o]))}function ir(e,t,o,r){const l=e.get(t);if(l)for(const m of l)o.set(m,(o.get(m)??0)+r)}function Zl(e){let t="";for(const o of e)/\s/u.test(o)||(t+=o);return t}function La(e,t){const o=String(e??"");return o.length<=t?o:o.slice(0,t)}function to(e,t){return!!(e&&t&&e.includes(t))}function Fg(e){const t=e.codePointAt(0)??0;return t<=31||t>=127&&t<=159}const $g=2147483647,zg="LocalBridge access is enabled, but the bridge is not reachable. Restart LocalBridge, allow Chrome local-network access, then reload MindCanvas.",Ug="Local storage is unavailable in the hosted app until browser local storage or LocalBridge access is available.",Hg="Local storage is unavailable. Check the browser-local storage state or LocalBridge connection.",Wg="Cloud projects are unavailable until Supabase and Cloudflare R2 are configured.",Vg="Login is required before cloud projects can be used.",Yg="Cloud projects are unavailable.";function Xg(e){return e.bridgeProviderConfigured||e.browserProviderConfigured||e.embeddedProviderConfigured}function _r(e,t=!0){const o={isAvailable:!1,bridgeReachable:!1,browserLocalAvailable:!1,embeddedLocalAvailable:!1,providerKind:"none",canBrowseWorkspace:!1};return e.bridgeProviderConfigured&&e.bridgeReachable?{...o,isAvailable:!0,bridgeReachable:!0,providerKind:"bridge",canBrowseWorkspace:!0}:e.hostedWebApp&&e.hostedLocalBridgeAccessEnabled&&e.bridgeProviderConfigured?{...o,providerKind:"bridge"}:e.browserProviderConfigured&&(e.browserLocalAvailable||t&&e.browserLocalAvailableWhenEmpty===!0)?{...o,isAvailable:!0,browserLocalAvailable:!0,providerKind:"browser"}:e.embeddedProviderConfigured&&e.supportsEmbeddedLocal?{...o,isAvailable:!0,embeddedLocalAvailable:!0,providerKind:"embedded"}:o}function Gg(e){return _r(e,!1).isAvailable?"local":oi(e)?"cloud":_r(e,!0).isAvailable?"local":e.cloudConfigured?"cloud":"local"}function oi(e){return e.cloudConfigured&&e.cloudSessionAvailable}function Kg(e,t){return t.providerKind==="bridge"&&!t.bridgeReachable?zg:e.hostedWebApp?Ug:Hg}function qg(e){return e.cloudConfigured?oi(e)?Yg:Vg:Wg}function Jg(e){var w,L,I;const t=oi(e),o=_r(e,!0),r=Xg(e),l=e.cloudConfigured,m=o.isAvailable,p=t;let b=e.storedMode??Gg(e);b==="cloud"&&(!l||!p&&m)?b=m?"local":"cloud":b==="local"&&(!r&&l||!m&&p)&&(b="cloud");const c=e.cloudAccess,y=((w=c==null?void 0:c.denialReason)==null?void 0:w.trim())||void 0;return{currentMode:b,showLocalTab:r,showCloudTab:l,isLocalAvailable:o.isAvailable,isCloudAvailable:t,requiresCloudSignIn:e.cloudConfigured&&!t,canUseLocalProjects:m,canBrowseLocalWorkspace:o.canBrowseWorkspace,localProviderKind:o.providerKind,canUseCloudProjects:p,canSyncLocalToCloud:m&&p,cloudPlanKey:((L=c==null?void 0:c.planKey)==null?void 0:L.trim())||"free",cloudEntitlementStatus:((I=c==null?void 0:c.entitlementStatus)==null?void 0:I.trim())||(c?"active":"inactive"),currentCloudBoardCount:(c==null?void 0:c.currentBoardCount)??0,cloudBoardLimit:(c==null?void 0:c.cloudBoardLimit)??$g,lockedCloudBoardCount:(c==null?void 0:c.lockedBoardCount)??0,canCreateCloudBoards:(c==null?void 0:c.canCreateBoard)??p,canUseManagedAi:(c==null?void 0:c.canUseManagedAi)??!1,canGenerateImage:(c==null?void 0:c.canGenerateImage)??!1,canUseContextPack:(c==null?void 0:c.canUseContextPack)??!1,cloudLimitMessage:y,localStatusMessage:o.isAvailable?void 0:Kg(e,o),cloudStatusMessage:p?void 0:qg(e)}}function Zg(){const e=new Error("Queued operation was cancelled before it started.");return e.name="AbortError",e}class Qg{constructor(){ld(this,"tails",new Map)}isBusy(t){return this.tails.has(t)}enqueue(t,o,r){if(typeof o!="function")throw new TypeError("KeyedAsyncQueue operation is required.");const l=this.tails.get(t)??Promise.resolve();let m;return m=(async()=>{try{try{await l}catch{}if(r!=null&&r.aborted)throw Zg();return await o(r)}finally{this.tails.get(t)===m&&this.tails.delete(t)}})(),this.tails.set(t,m),m}clear(t){if(typeof t>"u"){this.tails.clear();return}this.tails.delete(t)}}const Dr="mindexec-local-mode-warning-dismissed-v1";function eh(){try{return window.localStorage.getItem(Dr)==="true"}catch{return!1}}function Ql(e,t){var o,r;if(e==="checking")return"Checking bridge";if(e==="connected"){const l=(r=(o=t==null?void 0:t.exec)==null?void 0:o.model)==null?void 0:r.trim();return l?`Bridge / ${l}`:"Bridge connected"}return e==="blocked"?"Bridge gated":e==="unavailable"?"Bridge unavailable":"Bridge idle"}function th(e,t,o){var l,m,p,b,c;if(e!=="connected")return t||Ql(e,o);const r=[o!=null&&o.version?`version ${o.version}`:null,(l=o==null?void 0:o.exec)!=null&&l.model?`model ${o.exec.model}`:null,(m=o==null?void 0:o.exec)!=null&&m.reasoningEffort?`reasoning ${o.exec.reasoningEffort}`:null,(p=o==null?void 0:o.exec)!=null&&p.serviceTier?`tier ${o.exec.serviceTier}`:null,(b=o==null?void 0:o.exec)!=null&&b.preferredProviderKind?`codex ${o.exec.preferredProviderKind}`:null,(c=o==null?void 0:o.project)!=null&&c.isOpen?"project open":null].filter(Boolean);return r.length>0?`LocalBridge connected. ${r.join(" / ")}`:"LocalBridge connected."}function ah({state:e,message:t,status:o,hostedBridgeAccessEnabled:r,onRefresh:l,onEnableHostedBridge:m}){const p=g.useMemo(()=>e==="checking"?n.jsx(Ut,{size:14,className:"spin-icon"}):e==="connected"?n.jsx(Om,{size:14}):e==="blocked"?n.jsx(Al,{size:14}):e==="unavailable"?n.jsx(Fm,{size:14}):n.jsx(Gr,{size:14}),[e]);return n.jsxs("div",{className:`runtime-status-pill runtime-status-pill--${e}`,title:th(e,t,o),"data-testid":"bridge-status-pill","data-bridge-state":e,"data-bridge-access":r?"enabled":"gated",children:[n.jsx("span",{className:"runtime-status-pill__icon","aria-hidden":"true",children:p}),n.jsx("span",{children:Ql(e,o)}),e==="blocked"&&!r&&n.jsx("button",{type:"button",className:"runtime-status-pill__action",onClick:m,children:"Enable"}),n.jsx("button",{type:"button",className:"runtime-status-pill__button",title:"Refresh LocalBridge","data-testid":"bridge-status-refresh",onClick:()=>void l(),disabled:e==="checking",children:n.jsx(cn,{size:13})})]})}function nh({status:e,message:t}){const r={ready:{icon:n.jsx(jr,{size:14}),label:"Saved locally",title:"Board state is saved in this browser."},syncing:{icon:n.jsx(Ut,{size:14,className:"spin-icon"}),label:"Saving",title:"Saving board state to this browser."},error:{icon:n.jsx(Kr,{size:14}),label:"Save error",title:"Board state could not be saved locally."},offline:{icon:n.jsx(Gr,{size:14}),label:"Offline",title:"No sync adapter is connected."}}[e];return n.jsxs("div",{className:`runtime-status-pill runtime-status-pill--sync-${e}`,title:t||r.title,"data-testid":"sync-status-indicator","data-sync-status":e,children:[n.jsx("span",{className:"runtime-status-pill__icon","aria-hidden":"true",children:r.icon}),n.jsx("span",{children:r.label})]})}function oh({visible:e}){const[t,o]=g.useState(eh);if(!e||t)return null;const r=()=>{o(!0);try{window.localStorage.setItem(Dr,"true")}catch{}f.emit("runtimeStatus.localMode.dismissed")};return n.jsxs("section",{className:"runtime-local-warning",role:"status","data-testid":"local-mode-warning","data-local-mode-dismissed-key":Dr,children:[n.jsx("div",{className:"runtime-local-warning__icon","aria-hidden":"true",children:n.jsx(Kr,{size:16})}),n.jsxs("div",{className:"runtime-local-warning__copy",children:[n.jsx("strong",{children:"Local Mode"}),n.jsx("span",{children:"Boards are saved in this browser. LocalBridge export creates a file-backed copy."})]}),n.jsx("button",{type:"button",title:"Dismiss local mode warning","data-testid":"local-mode-dismiss",onClick:r,children:n.jsx(yt,{size:14})})]})}function sh({bridgeState:e,bridgeMessage:t,bridgeStatus:o,syncStatus:r,syncMessage:l,hostedBridgeAccessEnabled:m,onRefreshBridge:p,onEnableHostedBridge:b,showLocalModeWarning:c=!0}){return n.jsxs("aside",{className:"runtime-status-cluster","aria-label":"Runtime status","data-testid":"runtime-status-cluster","data-local-mode-visible":c?"true":"false",children:[n.jsxs("div",{className:"runtime-status-row",children:[n.jsx(ah,{state:e,message:t,status:o,hostedBridgeAccessEnabled:m,onRefresh:p,onEnableHostedBridge:b}),n.jsx(nh,{status:r,message:l})]}),n.jsx(oh,{visible:c})]})}const rh=/^data:image\//i;function ih(e){const t=String(e||"").trim();if(!t)return{src:null,reason:"empty",urlKind:"empty"};const o=t.toLowerCase();return rh.test(t)?{src:t,reason:null,urlKind:"data"}:o.startsWith("blob:")?{src:t,reason:null,urlKind:"blob"}:o.startsWith("https://")?{src:t,reason:null,urlKind:"https"}:o.startsWith("http://")?{src:t,reason:null,urlKind:"http"}:t.startsWith("//")?{src:t,reason:null,urlKind:"protocol-relative"}:t.startsWith("/")||t.startsWith("./")||t.startsWith("../")?{src:t,reason:null,urlKind:"relative"}:/^[a-z][a-z0-9+.-]*:/i.test(t)?{src:null,reason:"unsupported-protocol",urlKind:t.split(":",1)[0].toLowerCase()}:{src:t,reason:null,urlKind:"relative"}}function dr({src:e,alt:t="",className:o="",testId:r="secure-image",traceId:l,kind:m="image",title:p}){const b=g.useMemo(()=>ih(e),[e]),[c,y]=g.useState(b.src?"loading":"blocked");g.useEffect(()=>{const D=b.src?"loading":"blocked";y(D),b.src||f.emit("secureImage.blocked",{id:l,kind:m,reason:b.reason,urlKind:b.urlKind})},[m,b.reason,b.src,b.urlKind,l]);const w=()=>{y("loaded"),f.emit("secureImage.loaded",{id:l,kind:m,urlKind:b.urlKind})},L=()=>{y("error"),f.emit("secureImage.error",{id:l,kind:m,urlKind:b.urlKind})},I=c==="blocked"?`Image blocked: ${b.reason||"unsupported source"}`:"Image failed to load";return n.jsxs("div",{className:`secure-image secure-image--${c} ${o}`.trim(),"data-testid":r,"data-secure-image-state":c,"data-secure-image-kind":m,title:c==="loaded"?p:I,children:[b.src&&n.jsx("img",{src:b.src,alt:t,loading:"lazy",decoding:"async",draggable:!1,onLoad:w,onError:L}),c==="loading"&&n.jsx("span",{className:"secure-image__loading","aria-hidden":"true",children:n.jsx("span",{})}),(c==="blocked"||c==="error")&&n.jsx("span",{className:"secure-image__fallback",role:"img","aria-label":I,children:c==="blocked"?n.jsx($m,{size:18}):n.jsx(Kr,{size:18})})]})}const dh={note:ms,text:xt,"ai-task":un,image:pn,mask:pn,video:gn,embed:hn,code:mn,markdown:xt,"csv-table":xt,memo:ms,pdf:xt,file:Ir,directory:zm,"template-launcher":xt,"remote-monitor":us,"remote-control":us},lr=[{key:"Auto",label:"Auto Detect",description:"Infer whether this note is growth, revenue, build, or research work."},{key:"GeneralCompany",label:"General AI Company",description:"Balanced planning, practical work, and artifact production."},{key:"GrowthValidation",label:"Growth Validation",description:"Marketing loops, signals, messaging, distribution, and experiments."},{key:"RevenueAffiliate",label:"Revenue / Affiliate",description:"Affiliate discovery, keywords, content assets, and revenue experiments."},{key:"ProductBuild",label:"Product Build",description:"Specs, implementation-oriented work, artifacts, and approval gates."},{key:"ResearchOnly",label:"Research Only",description:"Evidence gathering, risks, synthesis, and recommendations."}],Hd=500,lh=48,ch=new Set(["mindcanvasagent","agentcommand"]),uh=new Set(["codenote","code-note"]),mh=["multidesktopmonitor","remotehubmonitor","remotefleetmonitor","smartviewmonitor"],ph=["remotedevice","remotefleetdevice","remotecontrol"];function gh(e){const t=fn(e,"SemanticType","semanticType","RemoteFleetSemanticType").trim().toLowerCase(),o=fn(e,"RemoteFleetNodeRole","remoteFleetNodeRole").trim().toLowerCase(),r=fn(e,"RemoteFleetSchemaVersion","remoteFleetSchemaVersion").trim().toLowerCase();return e.kind==="remote-monitor"||t==="remotefleetmonitor"||o==="fleet-monitor"||r==="remote-fleet@1"||tc(e,["RemoteFleetViewMode","RemoteFleetHubStatus","RemoteFleetDevicesJson","RemoteFleetDeviceCount","RemoteFleetConnectedDeviceCount","RemoteFleetProjectionMode","RemoteFleetCanvasPagination","RemoteHub","RemoteRoute","RemotePage","RemoteVisibleBudget"])||ec(e,mh,["remote","monitor"])}function hh(e){const t=fn(e,"SemanticType","semanticType","RemoteFleetSemanticType").trim().toLowerCase(),o=fn(e,"RemoteFleetNodeRole","remoteFleetNodeRole").trim().toLowerCase(),r=fn(e,"RemoteFleetSchemaVersion","remoteFleetSchemaVersion").trim().toLowerCase();return e.kind==="remote-control"||t==="remotefleetdevice"||o==="fleet-device"||r==="remote-fleet-device@1"||tc(e,["RemoteFleetDeviceId","RemoteFleetDeviceName","RemoteFleetDevicePlatform","RemoteFleetDeviceConnected","RemoteFleetDeviceCanControl","RemoteFleetSourceMonitorNodeId"])||ec(e,ph,["remote","control"])}function ec(e,t,o){const r=(e.tags??[]).map(b=>b.trim().toLowerCase()).filter(Boolean),l=o.every(b=>r.includes(b)),p=[e.title,e.body,e.sourceFilePath,e.assetUrl,...r].join(" ").toLowerCase().replace(/[^a-z0-9]+/g,"");return l||t.some(b=>p.includes(b))}function fn(e,...t){const o=e.metadata??{};for(const l of t){const m=o[l];if(m!=null)return String(m)}const r=new Set(t.map(l=>l.toLowerCase()));for(const[l,m]of Object.entries(o))if(r.has(l.toLowerCase())&&m!==void 0&&m!==null)return String(m);return""}function tc(e,t){const o=e.metadata??{},r=new Set(t.map(l=>l.toLowerCase()));return Object.entries(o).some(([l,m])=>r.has(l.toLowerCase())&&m!==void 0&&m!==null&&String(m).trim()!=="")}const Br=[{key:"coral",label:"Coral",swatch:"#ff8052",ring:"rgba(255, 128, 82, 0.22)",surface:"#fff2eb",border:"rgba(255, 128, 82, 0.42)",ink:"#7c2d12"},{key:"amber",label:"Amber",swatch:"#f59e0b",ring:"rgba(245, 158, 11, 0.22)",surface:"#fffbeb",border:"rgba(245, 158, 11, 0.42)",ink:"#78350f"},{key:"sun",label:"Sun",swatch:"#ca8a04",ring:"rgba(202, 138, 4, 0.22)",surface:"#fef9c3",border:"rgba(202, 138, 4, 0.38)",ink:"#713f12"},{key:"sage",label:"Sage",swatch:"#65a30d",ring:"rgba(101, 163, 13, 0.22)",surface:"#f7fee7",border:"rgba(101, 163, 13, 0.38)",ink:"#365314"},{key:"mint",label:"Mint",swatch:"#10b981",ring:"rgba(16, 185, 129, 0.22)",surface:"#ecfdf5",border:"rgba(16, 185, 129, 0.36)",ink:"#064e3b"},{key:"sky",label:"Sky",swatch:"#3b82f6",ring:"rgba(59, 130, 246, 0.22)",surface:"#eff6ff",border:"rgba(59, 130, 246, 0.36)",ink:"#1e3a8a"},{key:"indigo",label:"Indigo",swatch:"#6366f1",ring:"rgba(99, 102, 241, 0.22)",surface:"#eef2ff",border:"rgba(99, 102, 241, 0.36)",ink:"#312e81"},{key:"violet",label:"Violet",swatch:"#8b5cf6",ring:"rgba(139, 92, 246, 0.22)",surface:"#f5f3ff",border:"rgba(139, 92, 246, 0.36)",ink:"#4c1d95"},{key:"rose",label:"Rose",swatch:"#f43f5e",ring:"rgba(244, 63, 94, 0.22)",surface:"#fff1f2",border:"rgba(244, 63, 94, 0.36)",ink:"#881337"},{key:"gray",label:"Gray",swatch:"#6b7280",ring:"rgba(107, 114, 128, 0.22)",surface:"#f9fafb",border:"rgba(107, 114, 128, 0.32)",ink:"#374151"},{key:"slate",label:"Slate",swatch:"#64748b",ring:"rgba(100, 116, 139, 0.22)",surface:"#f8fafc",border:"rgba(100, 116, 139, 0.32)",ink:"#334155"}],fh=g.memo(function({node:t,selected:o,pulsing:r,connectionDraft:l,onSelect:m,onDragStart:p,onResizeStart:b,onPatch:c,onDelete:y,onDuplicate:w,onRun:L,onPin:I,onOpenResult:D,onToggleAiReference:J,onCopyNode:$,onCopyEmbedReference:O,onFitNodeHeight:K,onToggleNodeExpanded:V,onToggleWordWrap:se,onStageCompany:oe,onOpenCompanyGraph:Ae,onSyncCompanyGoal:be,onRefreshCompany:Ue,onSetCompanyStatus:et,onRemoveCompany:tt,onOpenAsset:he,onOpenDirectorySettings:Z,onScanDirectory:ie,onCreateRemoteControl:re,onGenerateTemplateCard:St}){var Tn,wo,rt,Bt,ya,Va,Qt,Ya,te,Ye,Xa,Rn,v,Y,ae,Xe,Ln,Ot,Ga,Ka,En,Pn,qa,_n,xa,Dn,Ja,Ca,ea,De,Pe,Za,Bn,vo,Sa;const F=String(((Tn=t.metadata)==null?void 0:Tn.AutomationNodeKind)||((wo=t.metadata)==null?void 0:wo.AutomationTemplateKey)||((rt=t.metadata)==null?void 0:rt.AutomationInferredKind)||"").trim().toLowerCase(),lt=String(((Bt=t.metadata)==null?void 0:Bt.SemanticType)||((ya=t.metadata)==null?void 0:ya.semanticType)||"").trim().toLowerCase(),Me=t.kind==="memo"&&ch.has(lt),le=t.kind==="memo"&&uh.has(lt),Tt=String(((Va=t.metadata)==null?void 0:Va.AgentCommandStatus)||"Draft"),me=String(((Qt=t.metadata)==null?void 0:Qt.AgentCommandMode)||"Task"),He=String(((Ya=t.metadata)==null?void 0:Ya.AgentCommandRequestedRole)||"Researcher"),ee=String(((te=t.metadata)==null?void 0:te.CodeNoteStatus)||"Draft"),ct=String(((Ye=t.metadata)==null?void 0:Ye.CodeNoteSyncState)||"Unlinked"),Wt=String(((Xa=t.metadata)==null?void 0:Xa.CodeNoteKind)||"Feature"),_a=Me?un:le?mn:F==="image-generate"?pn:F==="video-generate"?gn:dh[t.kind],Cn=l&&l.from!==t.id,ho=t.kind==="ai-task",Re=t.kind==="pdf"||t.kind==="file"||t.kind==="directory",Da=gh(t),Vt=hh(t),Oe=Da||Vt,Te=Da?"monitor":Vt?"control":"",ce=t.kind==="template-launcher"||String(((Rn=t.metadata)==null?void 0:Rn.semanticType)||((v=t.metadata)==null?void 0:v.SemanticType)||"").toLowerCase()==="templatelauncher",kt=t.kind==="video",we=t.kind==="embed",wt=t.kind==="mask",ye=t.kind==="memo",at=t.kind==="markdown",nt=t.kind==="csv-table",Fe=ye?jh(t):null,pe=g.useRef(null),Sn=kt?ac(t):"",qe=kt?Nh(t):"",$e=we?Ah(t):"",vt=we?Mh(t):"",fo=we?Th(t,$e):"",_e=we?Rh(t):"",Le=(((Y=t.imageStack)==null?void 0:Y.variants)??[]).filter(x=>!!x.imageUrl),ut=Le.find(x=>{var _;return x.variantId===((_=t.imageStack)==null?void 0:_.activeVariantId)})??Le[0]??null,Rt=t.kind==="image"||wt?(ut==null?void 0:ut.imageUrl)||ni(t):"",la=ut?Le.findIndex(x=>x.variantId===ut.variantId):-1,Ba=!Rt&&!Re&&!Oe&&!ce&&!kt&&!we,bo=Ba&&!ye,Yt=t.isExpanded===!1&&Number(t.originalHeight??0)>t.height+1,kn=!Oe&&!["image","mask","video","embed","pdf","file","directory","template-launcher","remote-monitor","remote-control"].includes(t.kind),ot=t.aiEnabled!==!1,We=Ih(t),Je=!!(t.isChunkedText||((ae=t.metadata)==null?void 0:ae.IsChunkedText)==="true"),ca=Number(t.totalLineCount??((Xe=t.metadata)==null?void 0:Xe.TotalLineCount)??0),yo=t.sourceFilePath||((Ln=t.metadata)==null?void 0:Ln.FileName)||t.title,xe=Je?n.jsxs("div",{className:"node-chunked-text-state","data-testid":"node-chunked-text-state",title:yo,children:[n.jsx(xt,{size:12}),n.jsx("strong",{children:"Chunked text"}),Number.isFinite(ca)&&ca>0&&n.jsxs("span",{children:[ca.toLocaleString()," lines"]})]}):null,Xt=t.kind==="directory"?(Ot=t.metadata)==null?void 0:Ot.Include:null,Oa=t.kind==="directory"?(Ga=t.metadata)==null?void 0:Ga.Exclude:null,wn=t.kind==="directory"?(Ka=t.metadata)==null?void 0:Ka.DirectoryFileCount:null,Ee=t.kind==="directory"?(En=t.metadata)==null?void 0:En.DirectoryDirCount:null,jt=t.kind==="directory"?(Pn=t.metadata)==null?void 0:Pn.DirectoryLastScanUtc:null,[Fa,$a]=g.useState(!1),[za,Ve]=g.useState(null),[vs,vn]=g.useState(((qa=t.metadata)==null?void 0:qa.CompanyExecutionMode)||"Auto"),[ua,Ua]=g.useState(((_n=t.metadata)==null?void 0:_n.CompanySubAgents)!=="false"),[Gt,ma]=g.useState(!1),[It,Ha]=g.useState(null),pa=g.useMemo(()=>nt?Ch(t.body,It):null,[It,nt,t.body]),de=g.useMemo(()=>ce?vl(t.body):null,[ce,t.body]),mt=(de==null?void 0:de.options.find(x=>x.id===de.selectedOptionId))??(de==null?void 0:de.options[0])??null,Kt=im(de),Lt=lr.find(x=>x.key===vs)||lr[0],Et=String(((xa=t.metadata)==null?void 0:xa.CompanyStatus)||(t.companyMode?"Staged":"")).trim(),Pt=Et.toLowerCase(),qt=Pt==="paused",pt=Pt==="archived",js=x=>{x.stopPropagation();const _=x.currentTarget.getBoundingClientRect();Ve(yh(_)),$a(ne=>!ne)},Is=x=>{x.stopPropagation(),oe(t.id,{executionMode:Lt.key,enableSubAgents:ua}),$a(!1)},xo=x=>{x.stopPropagation(),Ae(t.id)},ga=(x,_)=>{_.stopPropagation();const ne=Le.find(ht=>ht.variantId===x);!ne||!t.imageStack||ne.variantId===t.imageStack.activeVariantId||(f.emit("node.imageStack.variant",{nodeId:t.id,variantId:ne.variantId,variantCount:Le.length}),c(t.id,{imageUrl:ne.imageUrl,imageStack:{...t.imageStack,activeVariantId:ne.variantId,variants:Le,updatedAtUtc:new Date().toISOString()},metadata:{...t.metadata??{},ImageStackActiveVariantId:ne.variantId}}))},Ns=(x,_)=>{if(_.stopPropagation(),!!ye){if((Fe==null?void 0:Fe.key)===x){ma(!1);return}f.emit("node.memoColor.changed",{id:t.id,colorKey:x}),c(t.id,{metadata:{...t.metadata??{},memoColor:x,memoColorIsCustom:"true"}}),ma(!1)}},jn=x=>{var Be,jo;if(x.stopPropagation(),!Me)return;const _=(t.body||t.title||"Agent command objective").trim(),ne=["Clarify the objective and constraints.","Collect linked canvas context or code notes.","Draft an execution plan before external adapter use."],ht=["canvas-context","agent-command-planning","adapter-gated-execution"],ze=["Canvas.ListAgentCommands","Canvas.UpdateAgentCommand","Canvas.PlanAgentCommand","Canvas.SetAgentCommandState"],Nt=["MindCanvasAgent",me,He],z=["Local React plan staged for this Agent Command.",`Role: ${He}`,`Mode: ${me}`,`Objective: ${_.slice(0,220)}`,"External execution remains adapter-gated until LocalBridge/agent runtime is available."].join(`
|
|
2
2
|
`);f.emit("mindcanvas.agentCommand.planned",{id:t.id,mode:me,requestedRole:He,adapterState:((Be=t.metadata)==null?void 0:Be.AdapterState)??"adapter-gated"}),c(t.id,{tags:["Agent Command",He,"Planned"],metadata:{...t.metadata??{},AgentCommandStatus:"Planned",AgentCommandPlannerSummary:z,AgentCommandPlanSteps:JSON.stringify(ne),AgentCommandPlannedSkills:JSON.stringify(ht),AgentCommandPlannedTools:JSON.stringify(ze),AgentCommandPlannedConcepts:JSON.stringify(Nt),AgentCommandLastExplorationPhase:"planned-local",AdapterState:((jo=t.metadata)==null?void 0:jo.AdapterState)??"adapter-gated"}})},ha=x=>{var ze,Nt;if(x.stopPropagation(),!Me)return;const _=new Date().toISOString(),ne=[`Agent Command: ${t.title||"Agent"}`,`Status: Completed locally at ${_}`,"","This React MindCanvas node preserves the original Agent Command workflow shape.","No external agent runtime was invoked; execution remains adapter-gated.","","Next action:","Connect LocalBridge/agent runtime or move this command into CodeMaster for a deeper implementation run."].join(`
|
|
3
3
|
`),ht=[`${_} Local React execution staged.`,`${_} Adapter gated; no external tools invoked.`];f.emit("mindcanvas.agentCommand.executed.local",{id:t.id,mode:me,requestedRole:He,adapterState:((ze=t.metadata)==null?void 0:ze.AdapterState)??"adapter-gated"}),c(t.id,{status:"done",result:ne,tags:["Agent Command",He,"Completed"],metadata:{...t.metadata??{},AgentCommandStatus:"Completed",AgentCommandLastExecutedAtUtc:_,AgentCommandConsoleLogs:JSON.stringify(ht),AgentCommandResultLinks:JSON.stringify([]),AdapterState:((Nt=t.metadata)==null?void 0:Nt.AdapterState)??"adapter-gated"}})},fa=(x,_,ne,ht)=>{var Nt,z,Be;if(x.stopPropagation(),!le)return;const ze=_==="Implemented"?JSON.stringify([`local-code-note://${t.id}/implementation-handoff.md`]):((Nt=t.metadata)==null?void 0:Nt.CodeNoteOutputArtifacts)||"[]";f.emit("mindcanvas.codeNote.state",{id:t.id,status:_,syncState:ne,reason:ht,adapterState:((z=t.metadata)==null?void 0:z.AdapterState)??"local-canvas-only"}),c(t.id,{tags:["Code Note",_,ne],metadata:{...t.metadata??{},CodeNoteStatus:_,CodeNoteSyncState:ne,CodeNoteOutputArtifacts:ze,..._==="Implemented"||_==="Reviewed"?{CodeNoteLastAppliedAtUtc:new Date().toISOString()}:{},AdapterState:((Be=t.metadata)==null?void 0:Be.AdapterState)??"local-canvas-only"}})},_t=()=>{Ua(x=>!x)},Co=async x=>{if(x.stopPropagation(),!qe||!pe.current){f.emit("node.video.unavailable",{id:t.id,reason:qe?"element-missing":"source-missing"});return}try{await pe.current.play(),f.emit("node.video.play",{id:t.id,sourceKind:Vd(qe)})}catch(_){f.emit("node.video.unavailable",{id:t.id,reason:_ instanceof Error?_.message:String(_)})}},ba=x=>{if(x.stopPropagation(),!qe||!pe.current){f.emit("node.video.unavailable",{id:t.id,reason:qe?"element-missing":"source-missing"});return}pe.current.pause(),f.emit("node.video.pause",{id:t.id,sourceKind:Vd(qe)})},Jt=x=>{x.stopPropagation(),$e&&O(t.id,$e)},In=x=>{c(t.id,{body:JSON.stringify(x),metadata:{...t.metadata??{},templateLauncherSelectedOptionId:x.selectedOptionId??""}})},st=(x,_)=>{if(_.stopPropagation(),!de)return;const ne=cm(de,x);In(ne),f.emit("templateCard.option.select",{nodeId:t.id,optionId:ne.selectedOptionId??null})},Nn=(x,_)=>{if(!de)return;const ne=um(de,x,_);In(ne),f.emit("templateCard.input.patch",{nodeId:t.id,key:x})},Dt=x=>{x.stopPropagation(),!(!de||Kt)&&St(t.id,de.selectedOptionId??null,de.inputValues)},Zt=kn&&Fa?n.jsxs("div",{className:"node-company-launcher","data-testid":"node-company-launcher",style:za?{left:za.left,top:za.top}:void 0,onPointerDown:x=>x.stopPropagation(),onClick:x=>x.stopPropagation(),children:[n.jsx("div",{className:"node-company-launcher__eyebrow",children:"Run As Company"}),n.jsx("h4",{children:"Turn this note into a background AI company"}),n.jsx("p",{children:"Pick the operating mode to stage on this node. External CompanyCore execution stays adapter-gated."}),n.jsx("div",{className:"node-company-mode-list",children:lr.map(x=>n.jsxs("button",{type:"button",className:x.key===Lt.key?"is-selected":"","data-company-mode":x.key,onClick:()=>vn(x.key),children:[n.jsx("strong",{children:x.label}),n.jsx("span",{children:x.description})]},x.key))}),n.jsxs("button",{type:"button",className:"node-company-subagents","aria-pressed":ua,onClick:x=>{x.stopPropagation(),_t()},children:[n.jsx("span",{className:"node-company-toggle-indicator","aria-hidden":"true",children:ua?"On":"Off"}),n.jsxs("span",{children:[n.jsx(Ml,{size:13}),"Enable sub-agents for exploration waves and specialist handoff"]})]}),n.jsxs("div",{className:"node-company-launcher__actions",children:[n.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>$a(!1),children:"Cancel"}),n.jsx("button",{type:"button",className:"btn btn-primary","data-testid":"node-company-run-confirm",onClick:Is,children:"Stage Company"})]})]}):null,An={width:t.width,height:t.height,transform:`translate3d(${t.x}px, ${t.y}px, 0)`,...Fe?{"--memo-bg":Fe.surface,"--memo-border":Fe.border,"--memo-ink":Fe.ink,"--memo-ring":Fe.ring,"--memo-accent":Fe.swatch}:{}},gt=n.jsxs(n.Fragment,{children:[bo&&n.jsx("button",{type:"button",title:ot?"Disable AI reference":"Enable AI reference","aria-label":ot?"Disable AI reference":"Enable AI reference",className:ot?"is-active-ai":"is-inactive-ai",onPointerDown:x=>x.stopPropagation(),onClick:()=>J(t.id),children:n.jsx(Um,{size:13})}),ye&&n.jsx("button",{type:"button",title:"Change memo color","aria-label":"Change memo color","aria-pressed":Gt,className:"is-memo-color-action","data-testid":"node-memo-color-open",onPointerDown:x=>x.stopPropagation(),onClick:x=>{x.stopPropagation(),ma(_=>!_)},children:n.jsx(Tl,{size:13})}),t.kind==="code"&&n.jsx("button",{type:"button",title:t.wordWrap===!1?"Enable word wrap":"Disable word wrap","aria-label":t.wordWrap===!1?"Enable word wrap":"Disable word wrap",onPointerDown:x=>x.stopPropagation(),onClick:()=>se(t.id),children:n.jsx(Hm,{size:13})}),n.jsx("button",{type:"button",title:Rt?"Copy image to clipboard":"Copy content","aria-label":Rt?"Copy image to clipboard":"Copy content",onPointerDown:x=>x.stopPropagation(),onClick:()=>$(t.id),children:n.jsx(co,{size:13})}),n.jsx("button",{type:"button",title:"Duplicate node","aria-label":"Duplicate node","data-testid":"node-duplicate",onPointerDown:x=>x.stopPropagation(),onClick:()=>w(t.id),children:n.jsx(Rl,{size:13})}),Ba&&n.jsx("button",{type:"button",title:"Fit text height","aria-label":"Fit text height",onPointerDown:x=>x.stopPropagation(),onClick:()=>K(t.id),children:n.jsx(Wm,{size:13})}),Ba&&n.jsx("button",{type:"button",title:Yt?"Expand node":"Collapse node","aria-label":Yt?"Expand node":"Collapse node","aria-pressed":Yt,onPointerDown:x=>x.stopPropagation(),onClick:()=>V(t.id),children:Yt?n.jsx(kd,{size:13}):n.jsx(Vm,{size:13})}),ho&&n.jsx("button",{type:"button",title:"Run node",onPointerDown:x=>x.stopPropagation(),onClick:()=>L(t.id),children:n.jsx(ia,{size:13})}),kn&&n.jsx("button",{type:"button",title:t.companyMode?"Open Company graph":"Run this note as Company","aria-label":t.companyMode?"Open Company graph":"Run this note as Company",className:t.companyMode?"is-company-action":"","data-testid":t.companyMode?"node-company-graph-open":"node-company-run-open",onPointerDown:x=>x.stopPropagation(),onClick:t.companyMode?xo:js,children:n.jsx(wd,{size:13})}),n.jsx("button",{type:"button",title:"Delete node","aria-label":"Delete node","data-testid":"node-delete",onPointerDown:x=>x.stopPropagation(),onClick:()=>y(t.id),children:n.jsx(ps,{size:13})})]}),Wa=ho?n.jsxs("div",{className:"node-result-row","data-testid":"node-external-pins",children:[n.jsxs("button",{className:`node-pin node-pin--context ${Cn?"can-receive":""}`,type:"button",title:"Context input",onPointerDown:x=>x.stopPropagation(),onClick:x=>{x.stopPropagation(),I(t.id,"context")},children:[n.jsx(vd,{size:10}),"Context"]}),n.jsxs("button",{className:`node-pin node-pin--result ${t.result?"has-result":""}`,type:"button",title:"Drag to connect this result to an input pin. Click to view the result.","data-testid":"node-result-open",onPointerDown:x=>x.stopPropagation(),onClick:x=>{x.stopPropagation(),t.result?D(t.id):I(t.id,"result")},children:[n.jsx(kd,{size:11}),"Result"]})]}):n.jsxs("button",{className:`node-context-source ${l?"can-receive":""}`,type:"button",title:"Use this node as AI Task context",onPointerDown:x=>x.stopPropagation(),onClick:x=>{x.stopPropagation(),I(t.id,"context")},children:[n.jsx(vd,{size:10}),n.jsx("span",{children:"Context"})]}),je=wt||Le.length>1||we||kt?n.jsxs("div",{className:"node-surface-badges","data-testid":"node-surface-badges",children:[wt&&n.jsx("span",{className:"node-mask-badge",title:"Image edit mask reference",children:"Mask"}),Le.length>1&&n.jsxs("span",{className:"node-image-stack-badge",title:"Image stack variants",children:[Math.max(1,la+1),"/",Le.length]}),we&&n.jsx("span",{className:"node-embed-badge",children:vt==="youtube"?"YouTube":"Embed"}),kt&&n.jsx("span",{className:"node-video-badge",children:((Dn=t.metadata)==null?void 0:Dn.MediaModel)||((Ja=t.metadata)==null?void 0:Ja.MediaProvider)||"Video"})]}):null,fe=Le.length>1||we||kt||Re?n.jsxs("div",{className:"node-surface-actions","data-testid":"node-surface-actions",children:[Le.length>1&&n.jsx("div",{className:"node-image-stack-rail","aria-label":"Image stack variants",children:Le.map((x,_)=>n.jsx("button",{type:"button",className:x.variantId===(ut==null?void 0:ut.variantId)?"is-active":"",title:x.title||x.caption||`Variant ${_+1}`,"aria-label":`Show image variant ${_+1}`,onPointerDown:ne=>ne.stopPropagation(),onClick:ne=>ga(x.variantId,ne),children:n.jsx(dr,{src:x.imageUrl,traceId:`${t.id}:${x.variantId||_}`,kind:"image-stack-variant",testId:"node-image-stack-thumb"})},x.variantId||`${x.imageUrl}-${_}`))}),we&&n.jsxs("div",{className:"node-embed-actions",children:[n.jsxs("button",{type:"button",title:"Open embed","aria-label":"Open embed",onPointerDown:x=>x.stopPropagation(),onClick:x=>{x.stopPropagation(),$e&&he(t,"external")},children:[n.jsx(hn,{size:13}),n.jsx("span",{children:"Open"})]}),n.jsxs("button",{type:"button",title:"Copy URL","aria-label":"Copy URL",onPointerDown:x=>x.stopPropagation(),onClick:Jt,children:[n.jsx(co,{size:13}),n.jsx("span",{children:"Copy URL"})]})]}),kt&&n.jsxs("div",{className:"node-video-actions",children:[n.jsxs("button",{type:"button",title:"Play video","aria-label":"Play video","data-testid":"node-video-play",onPointerDown:x=>x.stopPropagation(),onClick:Co,children:[n.jsx(ia,{size:13}),n.jsx("span",{children:"Play"})]}),n.jsxs("button",{type:"button",title:"Pause video","aria-label":"Pause video","data-testid":"node-video-pause",onPointerDown:x=>x.stopPropagation(),onClick:ba,children:[n.jsx(po,{size:13}),n.jsx("span",{children:"Pause"})]})]}),Re&&n.jsxs("div",{className:"node-asset-actions",children:[t.kind==="pdf"&&n.jsxs("button",{type:"button",title:"Preview PDF","data-testid":"node-pdf-preview",onPointerDown:x=>x.stopPropagation(),onClick:()=>he(t,"preview"),children:[n.jsx(Ym,{size:13}),n.jsx("span",{children:"Preview"})]}),t.kind!=="directory"&&n.jsxs("button",{type:"button",title:"Open in new tab",onPointerDown:x=>x.stopPropagation(),onClick:()=>he(t,"external"),children:[n.jsx(hn,{size:13}),n.jsx("span",{children:"Open"})]}),t.kind==="directory"&&n.jsxs("button",{type:"button",title:"Scan folder","data-testid":"directory-scan",onPointerDown:x=>x.stopPropagation(),onClick:()=>ie(t.id),children:[n.jsx(cn,{size:13}),n.jsx("span",{children:"Scan"})]}),t.kind==="directory"&&n.jsxs("button",{type:"button",title:"Folder scan settings","data-testid":"directory-settings-open",onPointerDown:x=>x.stopPropagation(),onClick:()=>Z(t.id),children:[n.jsx(ns,{size:13}),n.jsx("span",{children:"Settings"})]})]})]}):null,Ze=Oe?null:n.jsxs("div",{className:"node-external-action-rail","data-testid":"node-external-action-rail",onPointerDown:x=>x.stopPropagation(),onClick:x=>x.stopPropagation(),children:[fe,n.jsx("div",{className:"node-external-rail__pins",children:Wa}),n.jsx("div",{className:"node-actions","data-testid":"node-actions",children:gt}),Me&&n.jsxs("div",{className:"node-agent-command-actions","data-testid":"node-agent-command-actions",onPointerDown:x=>x.stopPropagation(),onClick:x=>x.stopPropagation(),children:[n.jsx("button",{type:"button","data-testid":"node-agent-command-plan","data-agent-command-action":"plan",onClick:jn,children:"Plan"}),n.jsx("button",{type:"button","data-testid":"node-agent-command-execute","data-agent-command-action":"execute",disabled:Tt==="Running",onClick:ha,children:"Execute"})]}),le&&n.jsxs("div",{className:"node-code-note-actions","data-testid":"node-code-note-actions",onPointerDown:x=>x.stopPropagation(),onClick:x=>x.stopPropagation(),children:[n.jsx("button",{type:"button","data-testid":"node-code-note-approve","data-code-note-action":"approve",onClick:x=>fa(x,"Approved","Planned","approve-local"),children:"Approve"}),n.jsx("button",{type:"button","data-testid":"node-code-note-review","data-code-note-action":"review",onClick:x=>fa(x,"Reviewed","InSync","review-local"),children:"Review"}),n.jsx("button",{type:"button","data-testid":"node-code-note-out-of-sync","data-code-note-action":"out-of-sync",onClick:x=>fa(x,ee,"OutOfSync","mark-out-of-sync-local"),children:"Out of sync"})]}),t.companyMode&&n.jsxs("div",{className:"node-company-quick-actions","data-testid":"node-company-quick-actions","data-company-status":Et||"Staged",onPointerDown:x=>x.stopPropagation(),onClick:x=>x.stopPropagation(),children:[n.jsx("button",{type:"button",title:"Update Company goal from this note","aria-label":"Update Company goal from this note","data-testid":"node-company-sync-goal",disabled:pt,onClick:()=>be(t.id),children:n.jsx(Ll,{size:12})}),n.jsx("button",{type:"button",title:"Refresh Company status","aria-label":"Refresh Company status","data-testid":"node-company-refresh",onClick:()=>Ue(t.id),children:n.jsx(cn,{size:12})}),pt?n.jsx("button",{type:"button",title:"Company is archived","aria-label":"Company is archived","data-testid":"node-company-archived",disabled:!0,children:n.jsx(Nr,{size:12})}):qt?n.jsx("button",{type:"button",title:"Resume Company","aria-label":"Resume Company","data-testid":"node-company-resume",onClick:()=>et(t.id,"Staged"),children:n.jsx(ia,{size:12})}):n.jsx("button",{type:"button",title:"Pause Company","aria-label":"Pause Company","data-testid":"node-company-pause",onClick:()=>et(t.id,"Paused"),children:n.jsx(po,{size:12})}),!pt&&n.jsx("button",{type:"button",title:"Archive Company","aria-label":"Archive Company","data-testid":"node-company-archive",onClick:()=>et(t.id,"Archived"),children:n.jsx(Nr,{size:12})}),n.jsx("button",{type:"button",title:"Remove Company from this note","aria-label":"Remove Company from this note","data-testid":"node-company-remove",onClick:()=>tt(t.id),children:n.jsx(yt,{size:12})})]})]}),ko=Oe?null:n.jsx("div",{className:"node-external-rail","data-testid":"node-external-rail",onPointerDown:x=>x.stopPropagation(),onClick:x=>x.stopPropagation(),children:n.jsxs("div",{className:"node-external-rail__meta",children:[n.jsxs("div",{className:"node-tags","data-testid":"node-external-tags",children:[(t.tags??[t.kind]).slice(0,3).map(x=>n.jsx("span",{children:x},x)),t.status&&n.jsx("span",{className:`node-status node-status--${t.status}`,children:t.status})]}),je,xe,Me&&n.jsxs("div",{className:"node-agent-command-state","data-testid":"node-agent-command-state","data-agent-command-status":Tt,"data-agent-command-mode":me,"data-agent-command-role":He,"data-agent-command-adapter-state":((Ca=t.metadata)==null?void 0:Ca.AdapterState)||"adapter-gated",children:[n.jsx(un,{size:12}),n.jsx("strong",{children:"AC"}),n.jsx("span",{children:Tt}),n.jsx("span",{children:me}),n.jsx("span",{children:He})]}),le&&n.jsxs("div",{className:"node-code-note-state","data-testid":"node-code-note-state","data-code-note-status":ee,"data-code-note-sync-state":ct,"data-code-note-kind":Wt,"data-code-note-adapter-state":((ea=t.metadata)==null?void 0:ea.AdapterState)||"local-canvas-only",children:[n.jsx(mn,{size:12}),n.jsx("strong",{children:"CN"}),n.jsx("span",{children:ee}),n.jsx("span",{children:ct}),n.jsx("span",{children:Wt})]}),t.companyMode&&n.jsxs("div",{className:"node-company-state","data-testid":"node-company-state",children:[n.jsx(wd,{size:12}),n.jsx("strong",{children:((De=t.metadata)==null?void 0:De.CompanyExecutionModeLabel)||"Company staged"}),n.jsx("span",{children:((Pe=t.metadata)==null?void 0:Pe.CompanySubAgents)==="false"?"single-agent":"sub-agents"})]})]})});return n.jsxs("article",{className:`canvas-node canvas-node--${t.kind} ${Oe?"canvas-node--remote-surface":""} ${Da?"canvas-node--remote-monitor-surface":""} ${Vt?"canvas-node--remote-control-surface":""} ${F?`canvas-node--automation-${F}`:""} ${Me?"canvas-node--agent-command":""} ${le?"canvas-node--code-note":""} ${o?"is-selected":""} ${r?"is-pulsing":""} ${ot?"":"is-ai-disabled"} ${t.wordWrap===!1?"is-nowrap":""} ${Yt?"is-collapsed":""} ${t.companyMode?`is-company-${t.companyMode}`:""}`,style:An,"data-node-id":t.id,"data-automation-node-kind":F||void 0,"data-automation-external-policy":((Za=t.metadata)==null?void 0:Za.AutomationExternalActionPolicy)||void 0,"data-media-generation-contract":((Bn=t.metadata)==null?void 0:Bn.MediaGenerationContract)||void 0,"data-agent-command-node":Me?"true":void 0,"data-agent-command-status":Me?Tt:void 0,"data-agent-command-mode":Me?me:void 0,"data-agent-command-role":Me?He:void 0,"data-code-note-node":le?"true":void 0,"data-code-note-status":le?ee:void 0,"data-code-note-sync-state":le?ct:void 0,"data-code-note-kind":le?Wt:void 0,"data-remote-surface-chrome":Oe?"self-contained":void 0,"data-remote-surface-kind":Te||void 0,"data-remote-surface-title-owner":Oe?"inner-remote-view":void 0,"data-remote-surface-scroll-owner":Oe?"remote-page-rail":void 0,onPointerDown:x=>{m(t.id,x.shiftKey||x.metaKey||x.ctrlKey),p(t.id,x)},onDoubleClick:x=>{if(t.kind!=="directory")return;const _=x.target instanceof HTMLElement?x.target:null;_!=null&&_.closest('button,input,textarea,select,[contenteditable="true"],[contenteditable=""]')||(x.stopPropagation(),ie(t.id))},children:[!Oe&&n.jsxs("div",{className:"node-header",children:[n.jsx("span",{className:"node-kind",children:n.jsx(_a,{size:14})}),n.jsx("input",{value:t.title,"aria-label":"Node title",readOnly:ce,onPointerDown:x=>x.stopPropagation(),onChange:x=>{ce||c(t.id,{title:x.target.value})}})]}),Zt&&typeof document<"u"?Zu.createPortal(Zt,document.body):Zt,ye&&Gt&&Fe&&n.jsx("div",{className:"node-memo-palette","data-testid":"node-memo-palette",onPointerDown:x=>x.stopPropagation(),onClick:x=>x.stopPropagation(),children:Br.map(x=>n.jsx("button",{type:"button",className:x.key===Fe.key?"is-active":"",title:`${x.label} memo color`,"aria-label":`${x.label} memo color`,"aria-pressed":x.key===Fe.key,"data-memo-color":x.key,style:{"--memo-swatch":x.swatch,"--memo-swatch-ring":x.ring},onPointerDown:_=>_.stopPropagation(),onClick:_=>Ns(x.key,_)},x.key))}),Rt?n.jsx("div",{className:`node-image-wrap ${Le.length>1?"node-image-wrap--stack":""} ${wt?"node-image-wrap--mask":""}`,"data-testid":wt?"node-mask-preview":Le.length>1?"node-image-stack":void 0,children:n.jsx(dr,{src:Rt,traceId:t.id,kind:wt?"mask":"node-image",testId:"node-secure-image"})}):Da?n.jsx(dm,{node:t,onPatch:c,onCreateRemoteControl:re}):Vt?n.jsx(lm,{node:t,onPatch:c}):ce?n.jsx("div",{className:"node-template-card","data-testid":"node-template-card",children:de&&mt?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"node-template-card__summary",children:[n.jsx("strong",{children:de.prompt||de.description}),n.jsx("span",{children:mt.description||de.description})]}),n.jsx("div",{className:"node-template-card__options","data-testid":"node-template-card-options",children:de.options.map(x=>n.jsxs("button",{type:"button",className:x.id===mt.id?"is-active":"","data-testid":"node-template-card-option","data-option-id":x.id,onPointerDown:_=>_.stopPropagation(),onClick:_=>st(x.id,_),children:[n.jsx("strong",{children:x.label}),n.jsx("span",{children:x.description})]},x.id||x.templateId))}),n.jsxs("div",{className:"node-template-card__inputs","data-testid":"node-template-card-inputs",children:[mt.inputs.map(x=>n.jsx(bh,{input:x,value:de.inputValues[x.key]??"",onChange:_=>Nn(x.key,_)},x.key)),mt.inputs.length===0&&n.jsx("p",{className:"node-template-card__empty",children:de.noInputsLabel||"No inputs needed."})]}),Kt&&n.jsx("div",{className:"node-template-card__validation",children:Kt}),n.jsxs("button",{type:"button",className:"node-template-card__generate","data-testid":"node-template-card-generate",disabled:!!Kt,onPointerDown:Dt,onClick:x=>x.stopPropagation(),children:[n.jsx(ia,{size:13}),n.jsx("span",{children:de.generateLabel||de.actionLabel||"Generate"})]})]}):n.jsx("div",{className:"node-template-card__missing",children:"Template card payload is unavailable."})}):we?n.jsxs("div",{className:`node-embed-card ${_e?"has-embed-thumbnail":"is-embed-link"}`,"data-testid":"node-embed-card",children:[n.jsx("div",{className:"node-embed-preview",children:_e?n.jsx(dr,{src:_e,traceId:t.id,kind:"embed-thumbnail",testId:"node-embed-thumbnail"}):n.jsxs("div",{className:"node-embed-placeholder",children:[n.jsx(hn,{size:24}),n.jsx("strong",{children:vt==="youtube"?"YouTube":"Web embed"}),n.jsx("span",{children:fo||$e||"External link"})]})}),n.jsx("textarea",{value:t.body,"aria-label":"Embed URL or description",spellCheck:!1,onPointerDown:x=>x.stopPropagation(),onChange:x=>{const _=x.target.value;c(t.id,{body:_,assetUrl:_,metadata:{...t.metadata??{},sourceUrl:_,url:_}})}}),$e&&n.jsx("span",{className:"node-embed-source",title:$e,children:$e})]}):kt?n.jsxs("div",{className:`node-video-card ${qe?"has-video-source":"is-video-prompt"}`,"data-testid":"node-video-card",children:[qe?n.jsx("video",{ref:pe,src:qe,className:"node-video-player","data-testid":"node-video-player",controls:!0,preload:"metadata",onPointerDown:x=>x.stopPropagation()}):n.jsxs("div",{className:"node-video-placeholder",children:[n.jsx(gn,{size:24}),n.jsx("strong",{children:"Video prompt"}),n.jsx("span",{children:((vo=t.metadata)==null?void 0:vo.MediaModel)||((Sa=t.metadata)==null?void 0:Sa.MediaProvider)||"Adapter gated"})]}),n.jsx("textarea",{value:t.body,"aria-label":"Video prompt or source",spellCheck:!1,onPointerDown:x=>x.stopPropagation(),onChange:x=>c(t.id,{body:x.target.value})}),qe&&n.jsx("span",{className:"node-video-source",title:Sn,children:Sn})]}):Re?n.jsxs("div",{className:`node-asset-card node-asset-card--${t.kind}`,"data-testid":"node-asset-card",children:[n.jsx("div",{className:"node-asset-icon",children:n.jsx(_a,{size:28})}),n.jsxs("div",{className:"node-asset-copy",children:[n.jsx("strong",{title:We,children:We}),n.jsx("span",{children:t.kind==="directory"?"Directory reference":t.kind==="pdf"?"PDF document":"File reference"}),t.kind==="directory"&&(Xt||Oa||wn||Ee||jt)&&n.jsxs("dl",{className:"node-asset-meta","data-testid":"node-directory-meta",children:[(wn||Ee)&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{children:"Scanned"}),n.jsxs("dd",{children:[Number(wn??0).toLocaleString()," files / ",Number(Ee??0).toLocaleString()," folders"]})]}),Xt&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{children:"Include"}),n.jsx("dd",{children:Xt})]}),Oa&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{children:"Exclude"}),n.jsx("dd",{children:Oa})]}),jt&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{children:"Updated"}),n.jsx("dd",{children:new Date(jt).toLocaleString()})]})]})]})]}):nt?n.jsxs("div",{className:"node-csv-card","data-testid":"node-csv-card",children:[n.jsx(xh,{preview:pa,sort:It,onSort:x=>{const _=(It==null?void 0:It.columnIndex)===x&&It.direction==="asc"?"desc":"asc";Ha({columnIndex:x,direction:_}),f.emit("node.csvTable.sort",{id:t.id,columnIndex:x,direction:_})}}),n.jsx("textarea",{value:t.body,"aria-label":"CSV source",spellCheck:!1,wrap:"off",onPointerDown:x=>x.stopPropagation(),onChange:x=>c(t.id,{body:x.target.value})})]}):at?n.jsxs("div",{className:"node-markdown-card","data-testid":"node-markdown-card",children:[n.jsx("div",{className:"node-markdown-preview mindcanvas-text-scrollable-view","data-testid":"node-markdown-preview","aria-label":"Markdown preview",children:n.jsx(wh,{value:t.body})}),n.jsx("textarea",{value:t.body,"aria-label":"Markdown source",spellCheck:!1,wrap:t.wordWrap===!1?"off":"soft",onPointerDown:x=>x.stopPropagation(),onChange:x=>c(t.id,{body:x.target.value})})]}):n.jsx(n.Fragment,{children:n.jsx("textarea",{value:t.body,"aria-label":"Node body",spellCheck:!1,wrap:t.wordWrap===!1?"off":"soft",onPointerDown:x=>x.stopPropagation(),onChange:x=>c(t.id,{body:x.target.value})})}),ko,Ze,n.jsx("button",{type:"button",className:"node-resize-handle",title:"Resize node","aria-label":"Resize node",onPointerDown:x=>b(t.id,x)})]})});function bh({input:e,value:t,onChange:o}){return n.jsxs("label",{className:"node-template-card__field",children:[n.jsxs("span",{children:[n.jsx("strong",{children:e.label}),e.description&&n.jsx("small",{children:e.description})]}),e.type==="textarea"?n.jsx("textarea",{value:t,placeholder:e.placeholder,onPointerDown:r=>r.stopPropagation(),onChange:r=>o(r.target.value)}):e.type==="select"?n.jsx("select",{value:t,onPointerDown:r=>r.stopPropagation(),onChange:r=>o(r.target.value),children:(e.options??[]).map(r=>n.jsx("option",{value:r.value,children:r.label},r.value))}):n.jsx("input",{type:"text",value:t,placeholder:e.placeholder,onPointerDown:r=>r.stopPropagation(),onChange:r=>o(r.target.value)})]})}function yh(e){const r=Math.min(430,window.innerHeight-24),l=Math.max(12,window.innerWidth-332-12),m=Math.min(Math.max(e.right-332,12),l),p=e.bottom+8,b=e.top-r-8,c=Math.max(12,window.innerHeight-r-12),y=p<=c?p:Math.max(12,b);return{left:m,top:Math.min(y,c)}}function xh({preview:e,sort:t,onSort:o}){return!e||e.headers.length===0?n.jsx("div",{className:"csv-table-scroll mindcanvas-text-scrollable-view","data-testid":"csv-table-preview","aria-label":"CSV table preview",children:n.jsx("p",{className:"node-md-empty",children:"Paste CSV source to preview a table."})}):n.jsxs("div",{className:"csv-table-scroll mindcanvas-text-scrollable-view","data-testid":"csv-table-preview","data-sort-column":(t==null?void 0:t.columnIndex)??"","data-sort-direction":(t==null?void 0:t.direction)??"","data-total-rows":e.totalRows,"data-rendered-rows":e.renderedRows,"aria-label":"CSV table preview",onPointerDown:r=>r.stopPropagation(),children:[n.jsxs("table",{className:"csv-table",children:[n.jsx("thead",{children:n.jsx("tr",{children:e.headers.map((r,l)=>{const m=(t==null?void 0:t.columnIndex)===l,p=m&&t.direction==="asc"?"descending":"ascending";return n.jsx("th",{"aria-sort":m?t.direction==="asc"?"ascending":"descending":"none",children:n.jsxs("button",{type:"button",className:`csv-table-header-button ${m?"is-active":""}`,"data-testid":`csv-table-sort-${l}`,"aria-label":`Sort CSV by ${r||`Column ${l+1}`} ${p}`,onClick:()=>o(l),children:[n.jsx("span",{children:r||`Column ${l+1}`}),m&&n.jsx("small",{children:t.direction==="asc"?"Asc":"Desc"})]})},`${r}-${l}`)})})}),n.jsx("tbody",{children:e.rows.map((r,l)=>n.jsx("tr",{children:e.headers.map((m,p)=>n.jsx("td",{className:"csv-table-cell",children:r[p]??""},`csv-cell-${l}-${p}`))},`csv-row-${l}`))})]}),n.jsxs("div",{className:"csv-table-status",children:[n.jsxs("span",{children:[e.totalRows.toLocaleString()," rows"]}),n.jsxs("span",{children:[e.columnCount.toLocaleString()," columns"]}),e.truncated&&n.jsxs("span",{children:["showing ",e.renderedRows.toLocaleString()]})]})]})}function Ch(e,t){const o=Sh(e,Hd+1);if(o.length===0)return null;const r=Math.min(lh,Math.max(...o.map(c=>c.length),1)),l=Wd(o[0],r).map((c,y)=>c.trim()||`Column ${y+1}`),m=o.slice(1,Hd+1).map(c=>Wd(c,r)),p=t?[...m].sort((c,y)=>kh(c[t.columnIndex]??"",y[t.columnIndex]??"",t.direction)):m,b=Math.max(0,String(e||"").split(/\r\n|\n|\r/).filter(c=>c.length>0).length-1);return{headers:l,rows:p,totalRows:b,columnCount:r,renderedRows:p.length,truncated:b>p.length}}function Sh(e,t){const o=[];let r=[],l="",m=!1;const p=String(e||"").replace(/\r\n/g,`
|
|
4
4
|
`).replace(/\r/g,`
|