@mindexec/cli 0.2.350 → 0.2.351

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.
@@ -1,4 +1,4 @@
1
- var Pu=Object.defineProperty;var _u=(e,t,o)=>t in e?Pu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var Gi=(e,t,o)=>_u(e,typeof t!="symbol"?t+"":t,o);import{j as n,r as g,a as Du}from"./vendor-react-BXzpOyCS.js";import{l as Bu,a as ut,s as Et,b as Ou,d as $u,r as Fu,c as Uu,e as zu,i as Xi}from"./storage-Dkn3pIHS.js";import{r as _r,g as ss,w as Wu,a as Ds,d as qi,b as Hu,t as Dr,p as od,v as Vu,R as Ku,c as Yu,u as Gu,e as Xu,f as Ji,s as mt,i as Ga,l as Bs,h as On,j as Eo,k as $n,m as Fn,n as Po,o as ma,q as Zi,x as qu,y as Un,z as Ju,A as Zu,B as Qu,C as em,D as sd,E as tm,F as am,G as Gn,H as lr,I as nm,J as om,K as Qi,L as dr,M as cr,N as rd,O as _o,P as Vo,Q as Xn,S as el,T as U,U as Os,V as qn,W as sm,X as rm,Y as im,Z as tl,_ as $s,$ as lm,a0 as dm,a1 as cm,a2 as um,a3 as ur,a4 as mm,a5 as pm,a6 as gm,a7 as hm,a8 as al}from"./canvas-runtime-CVXQ-75R.js";import{e as fm,d as bm}from"./vendor-msgpack-BE8aAsr3.js";import{R as f}from"./app-runtime-xD2Z3NdN.js";import{g as Fs}from"./index-Du4rcma-.js";import{g as rs,r as id}from"./supabaseAuthAdapter-C3z334Qw.js";import{c as ym,a as xm,r as nl}from"./toolHandoff-D5e5f7t5.js";import{a as ol,s as Cm}from"./executionModeSettings-NJqurj-o.js";import{a as sl,p as Sm}from"./runtimeSettingsPersistenceProjection-BoNWmYjU.js";import{A as Pt,W as km,c as ld,D as wm,E as Br,R as tn,J as Or,X as pt,N as mr,O as vm,Q as no,w as an,I as oo,V as so,l as pr,F as gt,Y as jm,Z as dd,_ as gr,$ as nn,a0 as cd,a1 as Im,a2 as ud,a3 as Nm,i as Qn,a4 as md,a5 as Am,a6 as rl,a7 as Mm,a8 as ha,a9 as il,T as Zo,aa as ll,ab as Qo,ac as Tm,ad as hr,ae as pd,af as fr,ag as Rm,ah as Lm,f as Em,ai as Pm,h as Jn,x as _m,aj as Dm,ak as Bm,al as dl,am as cl,an as ul,g as ml,ao as Do,H as zn,ap as Bo,s as Us,aq as pl,ar as Om,as as zs,at as gl,au as Ws,av as $m,aw as Fm,ax as Um,ay as hl,az as zm,aA as Wm,aB as Hm,aC as Vm,n as Km,o as Wn,aD as Ym,aE as Gm,aF as Xm,aG as qm,aH as Jm,aI as Zm,aJ as Qm,aK as ep}from"./vendor-icons-oiW_NVNO.js";const tp=1200,ya="LocalBridgeOriginalNodeId";function ht(e){return typeof e=="object"&&e!==null}function Gt(e,t){const o=Number(e);return Number.isFinite(o)?o:t}function H(e){return typeof e=="string"?e:""}function gd(){return typeof window<"u"?{width:window.innerWidth||1280,height:window.innerHeight||720}:{width:1280,height:720}}function br(e,t,o){const r=Number(e),d=Number(t),m=Number(o);if(!Number.isFinite(r)||!Number.isFinite(d)||!Number.isFinite(m)||m<=0)return null;const p=1400/m,b=gd();return{x:b.width/2-r*p,y:b.height/2-d*p,scale:p}}function ap(e){return ht(e)?br(e.x??e.X,e.y??e.Y,e.z??e.Z):null}function np(e){if(!ht(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 d=gd();return{x:(d.width/2-t)/r,y:(d.height/2-o)/r,z:1400/r}}function op(e){const t=String(e||"").trim();if(t)try{const o=JSON.parse(t);if(!ht(o))return;const r={};for(const[d,m]of Object.entries(o)){const p=ap(m);p&&(r[d]=p)}return Object.keys(r).length>0?r:void 0}catch{return}}function sp(e){if(!e||Object.keys(e).length===0)return null;const t={};for(const[o,r]of Object.entries(e)){const d=np(r);d&&(t[o]=d)}return Object.keys(t).length>0?JSON.stringify(t):null}function es(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 is(){return crypto.randomUUID()}function $r(e){return ht(e)?"ContentType"in e||"Prompt"in e||"Response"in e||"PositionX"in e||"PositionY"in e||"SourceFilePath"in e||"ImageStack"in e:!1}function fl(e){const t=H(e).trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}function yr(e){if(Array.isArray(e))return e;if(!ht(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=fl(o);if(r)return yr(r)}for(const t of["ContentJson","contentJson","content_json"])if(t in e){const o=fl(e[t]);if(o)return yr(o)}return $r(e)?[e]:[]}function Fr(e){return ht(e)?"BoardId"in e&&("Upserts"in e||"upserts"in e||"Deletes"in e||"deletes"in e):!1}function hd(e){if(!ht(e))return 0;for(const t of["Deletes","deletes"]){const o=e[t];if(Array.isArray(o))return o.length}return 0}function ts(e){return yr(e).filter($r)}function fd(e){return ts(e).length}function rp(e,t){var m;const o=[...ts(e)];if(!Fr(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=H(c).trim();y&&r.add(y)}}if(r.size>0)for(let p=o.length-1;p>=0;p-=1){const b=H((m=o[p])==null?void 0:m.Id).trim();b&&r.has(b)&&o.splice(p,1)}const d=new Map;o.forEach((p,b)=>{const c=H(p.Id).trim();c&&d.set(c,b)});for(const p of ts(t)){const b=H(p.Id).trim(),c=b?d.get(b):void 0;if(c!==void 0){o[c]=p;continue}b&&d.set(b,o.length),o.push(p)}return o}function bd(e){const t=Array.isArray(e)?e.filter(ht):[];return new Map(t.filter(o=>o.NodeId).map(o=>[String(o.NodeId),o]))}async function xr(e,t){for(const o of e)try{const r=await _r(o,t);return{payload:JSON.parse(r.content),path:o}}catch{}return null}async function ip(e,t){const o=`.mindexec/boards/${e}.msgpack`,r=`boards/${e}.msgpack`;for(const b of[o,r])try{const c=await Hu(b,t);return{payload:bm(c),format:b===o?"msgpack":"legacy-msgpack",path:b}}catch{}const d=`.mindexec/boards/${e}.json`,m=`boards/${e}.json`,p=await xr([d,m],t);if(p)return{payload:p.payload,format:p.path===d?"json":"legacy-json",path:p.path};throw new Error(`LocalBridge board file not found: ${o}, ${r}, ${d}, ${m}`)}function Cr(e){const t=H(e.Id).trim()||H(e.BoardId).trim();return t?{Id:t,Title:H(e.Title)||null,Description:H(e.Description)||null,ThumbnailUrl:H(e.ThumbnailUrl)||null,CreatedAt:H(e.CreatedAt)||null,UpdatedAt:H(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:H(e.CameraBookmarks)||null}:null}function bl(e){return!ht(e)||$r(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 Ur(e){if(Array.isArray(e))return e.filter(bl).map(t=>Cr(t)).filter(t=>!!t);if(bl(e)){const t=Cr(e);return t?[t]:[]}return[]}function lp(e){const t=e.toLowerCase();return dp(t)?"remote-control":cp(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 dp(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 cp(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 up(e,t){const o=e.Metadata||{},r=o.ThumbnailUrl,d=o.OriginalUrl,m=o.OriginalPath;return Dr(H(r)||H(d)||H(m)||H(e.Response),t)}function mp(e,t,o){const r=e.ImageStack,d=Array.isArray(r==null?void 0:r.Variants)?r.Variants:[];if(d.length===0)return;const m=d.map((b,c)=>{const y=H(b.AssetId).trim(),v=Dr(y,o)||t;return v?{variantId:H(b.VariantId)||`variant-${H(e.Id)||c}`,imageUrl:v,assetId:y||void 0,caption:H(b.Caption)||void 0,sourceNodeId:H(e.Id)||void 0,createdAtUtc:H(b.CreatedAtUtc)||void 0}:null}).filter(b=>!!b);if(m.length===0)return;const p=H(r==null?void 0:r.ActiveVariantId);return{activeVariantId:m.some(b=>b.variantId===p)?p:m[0].variantId,variants:m,kind:H(r==null?void 0:r.Kind)||"versions",title:H(r==null?void 0:r.Title)||void 0,updatedAtUtc:H(r==null?void 0:r.UpdatedAtUtc)||void 0}}function pp(e,t){return!e||e.variants.length===0?t:(e.variants.find(r=>r.variantId===e.activeVariantId)??e.variants[0]).imageUrl||t}function gp(e,t,o){var p,b,c,y,v,R;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:ro(e.imageUrl,t)||e.imageUrl,title:e.title,sourceNodeId:e.id,createdAtUtc:o}]:[];if(r.length===0)return null;const d=r.map(j=>({VariantId:j.variantId||is(),AssetId:j.assetId||ro(j.imageUrl,t)||j.imageUrl,CreatedAtUtc:j.createdAtUtc||o,Caption:j.caption||j.title||null}));return{ActiveVariantId:(c=e.imageStack)!=null&&c.activeVariantId&&d.some(j=>{var P;return j.VariantId===((P=e.imageStack)==null?void 0:P.activeVariantId)})?e.imageStack.activeVariantId:d[0].VariantId||"",Variants:d,Kind:((y=e.imageStack)==null?void 0:y.kind)||(d.length>1?"pile":"versions"),Title:((v=e.imageStack)==null?void 0:v.title)||e.title||null,UpdatedAtUtc:((R=e.imageStack)==null?void 0:R.updatedAtUtc)||o}}function hp(e,t){const o=e.Metadata||{};return Dr(H(o.OriginalUrl)||H(o.OriginalPath)||H(o.SourceFilePath)||H(e.SourceFilePath)||H(e.Response),t)}function fp(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 bp(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 ro(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 yp(e,t){const o=new Map;for(const r of e){const d=t.get(r.from),m=t.get(r.to);!d||!m||o.has(m)||o.set(m,d)}return o}function xp(e){const t=new Set;return e.map(o=>{var c,y;const r=((c=o.metadata)==null?void 0:c[ya])||"",d=es(r)?r:es(o.id)?o.id:"",m=!!(d&&t.has(d)),p=d&&!m?d:is(),b=((y=o.metadata)==null?void 0:y[ya])!==p;return t.add(p),{node:b?{...o,metadata:{...o.metadata??{},[ya]:p}}:o,originalId:p,assignedNodeId:!d||m,metadataStamped:b,duplicateOriginalId:m}})}function Cp(e,t,o,r,d){var y,v,R;const m=bp(e.kind),p=m==="image"||m==="mask"?ro(e.imageUrl,d):"",b=["video","pdf","file","directory","embed"].includes(m)?ro(e.assetUrl||e.sourceFilePath||e.body,d):"",c={...e.metadata??{},[ya]: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 j=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=j),c.url??(c.url=j),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(d)?"local_bridge":"local_reference"),c.AdapterState??(c.AdapterState=((v=e.metadata)==null?void 0:v.PromptOnly)==="true"?"adapter-gated":"local-reference")),(R=e.tags)!=null&&R.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"?gp(e,d,r):null}}function Sp(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 kp(e,t,o){const r=H(e.ContentType)||"note",d=H(e.Prompt).trim(),m=H(e.Response).trim(),p=fp(e.Metadata),b=H(e.Id).trim();b&&(p[ya]??(p[ya]=b));const y=["true","1","yes"].includes(String(p.ImageRouterMask||p.IsMask||"").trim().toLowerCase())?"mask":lp(r),v=y==="memo"&&["mindcanvasagent","agentcommand"].includes(String(p.SemanticType||p.semanticType||"").trim().toLowerCase()),R=y==="memo"&&["codenote","code-note"].includes(String(p.SemanticType||p.semanticType||"").trim().toLowerCase()),j=H(e.SourceFilePath)||p.OriginalPath||p.SourceFilePath||"",P=y==="video"||y==="pdf"||y==="file"||y==="directory"||y==="embed"?hp(e,o):void 0,V=d||e.SourceFilePath||r||"LocalBridge node",F=y==="image"?m||d||"Image asset":y==="mask"?m||d||"Image mask asset":y==="remote-monitor"?m||d||"RemoteHub monitor node. Frames and input stay adapter-gated until LocalBridge is connected.":y==="remote-control"?m||d||j||"Remote device control node. Frames and input stay adapter-gated until LocalBridge is connected.":y==="pdf"||y==="file"||y==="directory"||y==="embed"?m||j||d||r:m||d||j||"",B=v?500:R?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,q=v||R?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,ne=y==="image"||y==="mask"?up(e,o):void 0,ge=y==="image"?mp(e,ne,o):void 0,xe=!!(e.IsChunkedText||p.IsChunkedText==="true"),ve=Gt(e.TotalLineCount??p.TotalLineCount,0),he=Gt(e.ScrollOffset,0),Ge=Gt(e.MaxScroll,0);return{id:String(e.Id||crypto.randomUUID()),kind:y,title:y==="remote-monitor"?d||"Multi Desktop Monitor":y==="remote-control"?d||p.RemoteFleetDeviceName||"Remote Device":y==="template-launcher"?d||"Template Launcher":V,body:F,x:Gt((t==null?void 0:t.PositionX)??e.PositionX,0),y:Gt((t==null?void 0:t.PositionY)??e.PositionY,0),width:Math.max(160,Math.min(900,Gt((t==null?void 0:t.Width)??e.Width,B))),height:Math.max(120,Math.min(900,Gt((t==null?void 0:t.Height)??e.Height,q))),status:e.IsLoading?"running":y==="ai-task"?"idle":void 0,imageUrl:pp(ge,ne),imageStack:ge,assetUrl:P,sourceFilePath:j||void 0,isChunkedText:xe||void 0,totalLineCount:xe?ve:void 0,scrollOffset:xe?he:void 0,maxScroll:xe?Ge:void 0,isExpanded:typeof e.IsExpanded=="boolean"?e.IsExpanded:void 0,originalHeight:Gt(e.OriginalHeight,0)||void 0,tags:v?["Agent Command",p.AgentCommandRequestedRole||"Researcher",p.AgentCommandStatus||"Draft"]:R?["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"?wp(p):y==="remote-control"?vp(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 wp(e){return{RemoteHub:"Gated",RemoteRoute:"Gated",RemoteConnected:"0",RemoteTotal:"30",RemotePage:"1/1",AdapterState:"adapter-gated",...e}}function vp(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 jp(e,t){const o=[];for(const r of e){const d=String(r.Id||""),m=String(r.ParentId||"");!d||!m||!t.has(d)||!t.has(m)||o.push({id:`edge-local-${m}-${d}`,from:m,to:d,kind:"context"})}return o}async function Ip(e=ss()){const t=await _r(".mindexec/boards/_metadata.json",e),o=JSON.parse(t.content);return(Array.isArray(o)?o.filter(ht):[]).map(m=>Cr(m)).filter(m=>!!m).sort((m,p)=>String(p.UpdatedAt||"").localeCompare(String(m.UpdatedAt||"")))}async function Np(e){try{const t=await _r(".mindexec/boards/_metadata.json",e),o=JSON.parse(t.content);return Array.isArray(o)?o.filter(ht):[]}catch{return[]}}async function Ap(e,t,o,r=ss()){var Q,ft,O,it;if((Q=e.source)!=null&&Q.partialImport)throw new Error("This board was imported from a partial original payload. Export is blocked to avoid data loss.");if((ft=e.source)!=null&&ft.truncated)throw new Error("This board was truncated during import. Export is blocked to avoid data loss.");const d=(O=e.source)!=null&&O.exportedByReact?String(e.source.boardId||""):"",m=es(d),p=es(d)?d:is(),b=new Date().toISOString(),c=xp(e.nodes),y=c.map(z=>z.node),v=new Map(c.map(z=>[z.node.id,z.originalId])),R=yp(e.edges,v),j=c.map(({node:z,originalId:oe})=>Cp(z,oe,R.get(oe),b,r)),P=c.map(({node:z,originalId:oe})=>Sp(z,oe)),V=t.scale>0?t.scale:1,F=(window.innerWidth/2-t.x)/V,B=(window.innerHeight/2-t.y)/V,q=1400/V,ne=(it=e.nodes.find(z=>z.kind==="image"&&z.imageUrl))==null?void 0:it.imageUrl,ge={Id:p,UserId:"00000000-0000-0000-0000-000000000000",Title:e.name||"Untitled Board",Description:"Exported from MindExec React",ThumbnailUrl:ro(ne,r)||"",IsPublic:!1,CreatedAt:b,SyncedCloudBoardId:null,LastSyncedAt:null,LastCloudCopyStatus:null,UpdatedAt:b,LastCameraX:F,LastCameraY:B,LastCameraZ:q,LastCursorX:0,LastCursorY:0,CameraBookmarks:sp(e.settings.cameraBookmarks)},xe=`.mindexec/boards/${p}.msgpack`,ve=`.mindexec/boards/${p}.json`,he=`.mindexec/boards/${p}.layout.json`,Ge=`.mindexec/boards/${p}.delta.json`,st=`boards/${p}.delta.json`,rt=await Np(r),me=[ge,...rt.filter(z=>H(z.Id)!==p)],G=fm(j);await Wu(xe,G,o,r),await Ds(ve,JSON.stringify(j,null,2),o,r),await Ds(he,JSON.stringify(P,null,2),o,r),await Ds(".mindexec/boards/_metadata.json",JSON.stringify(me,null,2),o,r);const re=await Promise.allSettled([qi(Ge,o,r),qi(st,o,r)]);return f.emit("localBridge.board.exported",{boardId:p,nodes:j.length,edges:e.edges.length,snapshotFormat:"msgpack",msgpackBytes:G.byteLength,jsonMirror:!0,deltaCleared:re.some(z=>z.status==="fulfilled"&&z.value.success),reusedBoardId:m,stableNodeIds:c.length,assignedNodeIds:c.filter(z=>z.assignedNodeId).length,metadataStampedNodeIds:c.filter(z=>z.metadataStamped).length,duplicateOriginalNodeIds:c.filter(z=>z.duplicateOriginalId).length}),{metadata:ge,source:{kind:"localBridge",boardId:p,loadedAt:b,originalNodeCount:j.length,renderedNodeCount:j.length,truncated:!1,exportedByReact:!0,snapshotFormat:"msgpack"},nodes:y,msgpackPath:xe,boardPath:ve,layoutPath:he}}async function Mp(e,t,o=ss()){const r=await ip(e.Id,o);let d=new Map;const m=await xr([`.mindexec/boards/${e.Id}.layout.json`,`boards/${e.Id}.layout.json`],o);m&&(d=bd(m.payload));let p=null;const b=await xr([`.mindexec/boards/${e.Id}.delta.json`,`boards/${e.Id}.delta.json`],o);b&&(p=b.payload);const c=p?Ur(p)[0]:null,y=!!(p&&Fr(p)),v=y?rp(r.payload,p):r.payload;return yd(v,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(d.values()),baseUrl:o,cameraBookmarks:(c==null?void 0:c.CameraBookmarks)??e.CameraBookmarks,deltaApplied:y,deltaUpserts:p?fd(p):0,deltaDeletes:p?hd(p):0,snapshotFormat:r.format})}function yd(e,t,o={}){const r=ts(e),d=Fr(e),m=o.deltaUpserts??(d?r.length:0),p=o.deltaDeletes??(d?hd(e):0),b=o.layoutPayload?bd(o.layoutPayload):new Map,c=r.slice(0,tp),y=c.map(q=>kp(q,b.get(String(q.Id||"")),o.baseUrl??ss())),v=new Set(y.map(q=>q.id)),R=jp(c,v),j=r.length>y.length,P=d,V=o.deltaApplied===!0,F=o.boardId||is(),B=o.updatedAt||new Date().toISOString();return f.emit("localBridge.board.loaded",{boardId:F,nodes:y.length,originalNodes:r.length,truncated:j,snapshotFormat:o.snapshotFormat,partialImport:P,deltaImport:d,deltaApplied:V,deltaUpserts:m,deltaDeletes:p}),{id:`localBridge:${F}`,name:o.title||"LocalBridge Board",nodes:y,edges:R,settings:{...t,cameraBookmarks:op(o.cameraBookmarks)},updatedAt:B,source:{kind:"localBridge",boardId:F,loadedAt:new Date().toISOString(),snapshotFormat:o.snapshotFormat,originalNodeCount:r.length,renderedNodeCount:y.length,truncated:j,partialImport:P,deltaImport:d,deltaApplied:V}}}const zr=["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(","),Tp=/^[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 Rp(e){if(Tp.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 xd(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 Lp(e){return JSON.stringify({id:e.id,name:e.name,nodes:e.nodes,edges:e.edges,settings:e.settings,updatedAt:e.updatedAt})}function Sr(e,t=new Date().toISOString()){return e&&!Number.isNaN(Date.parse(e))?e:t}function Wr(e){return(e==null?void 0:e.trim().slice(0,90))||"Untitled Board"}function Cd(e){const t=xd(e.content_json),o=Sr(e.updated_at??t.updatedAt);return{id:e.id,name:Wr(e.title??t.name),updatedAt:o,createdAt:Sr(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 Ep(e,t){const o=xd(e.content_json),r=Sr(e.updated_at??o.updatedAt);return{id:e.id,name:Wr(e.title??o.name),nodes:Array.isArray(o.nodes)?o.nodes:[],edges:Array.isArray(o.edges)?o.edges:[],settings:o.settings??t,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 Hr(e){var c;const t=id(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=rs(e);if(!o)return f.emit("projectStorage.cloud.provider.skipped",{mode:"config-missing"}),{userId:null,config:t,reason:"missing-client"};const{data:r,error:d}=await o.auth.getSession();if(d||!r.session)return f.emit("projectStorage.cloud.provider.sessionMissing",{message:(d==null?void 0:d.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 Pp(e){const t=await Hr(e);if(!t.userId)return[];const o=rs(e);if(!o)return[];f.emit("projectStorage.cloud.list.requested");const{data:r,error:d}=await o.from("boards").select(zr).eq("user_id",t.userId).order("updated_at",{ascending:!1}).limit(50);if(d)throw f.emit("projectStorage.cloud.provider.failed",{operation:"list",message:d.message}),d;const m=(r??[]).map(Cd);return f.emit("projectStorage.cloud.list.loaded",{count:m.length}),m}async function _p(e,t,o){const r=await Hr(e);if(!r.userId)return null;const d=rs(e);if(!d)return null;f.emit("projectStorage.cloud.load.requested",{boardId:t});const{data:m,error:p}=await d.from("boards").select(zr).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=Ep(m,o);return f.emit("projectStorage.cloud.load.loaded",{boardId:t,nodes:b.nodes.length,edges:b.edges.length}),b}async function Dp(e,t,o){const r=await Hr(e);if(!r.userId)return null;const d=rs(e);if(!d)return null;const m=Rp(t.id),p=new Date().toISOString(),b=Wr(t.name),c={...t,id:m,name:b,updatedAt:p},y={p_board_id:m,p_title:b,p_description:null,p_thumbnail_url:null,p_is_public:!1,p_created_at:null,p_updated_at:p,p_last_camera_x:o.x,p_last_camera_y:o.y,p_last_camera_z:o.scale,p_last_cursor_x:0,p_last_cursor_y:0,p_camera_bookmarks:JSON.stringify(t.settings.cameraBookmarks??{}),p_nodes:[],p_include_json_mirror:!0};f.emit("projectStorage.cloud.save.requested",{boardId:m,sourceBoardId:t.id,nodes:t.nodes.length,edges:t.edges.length});const{error:v}=await d.rpc("save_board_snapshot",y);if(v)throw f.emit("projectStorage.cloud.provider.failed",{operation:"save-rpc",boardId:m,message:v.message}),v;const R={content_json:Lp(c),updated_at:p},{data:j,error:P}=await d.from("boards").update(R).eq("id",m).eq("user_id",r.userId).select(zr).maybeSingle();if(P)throw f.emit("projectStorage.cloud.provider.failed",{operation:"save-json-mirror",boardId:m,message:P.message}),P;const V=j?Cd(j):{id:m,name:b,updatedAt:p,createdAt:p,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 kr(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 Bp(e,t={},o=kr(e),r){if(e.length===0)return{after:new Map,boundsAfter:o};const d=eg(t.mode),m=tg(t.order),p=ag(t.anchor),b=ng(t.sizeMode),c=Math.max(0,t.gapX??24),y=Math.max(0,t.gapY??24),v=Math.max(1,t.maxColumns??12),R=wr(t.quantile??.75,.05,.95),j=e.map(Op),P=Xp(j,m),V=P.map(he=>he.width),F=P.map(he=>he.height),B=Math.max(1,t.cellWidth??xl(V,R)),q=Math.max(1,t.cellHeight??xl(F,R)),ne=Math.max(1,t.targetWidth??B),ge=Math.max(1,t.targetHeight??q),xe=Gp(p,o);if(d==="grid"){Hp(P,b,ne,ge,B,q);const he=yl(t.columns,v,o.maxX-o.minX,B,c);Fp(P,xe.x,xe.y,he,B,q,c,y)}else if(d==="masonry"){Vp(P,b==="preserve"?"uniformWidth":b,ne);const Ge=yl(t.columns,v,o.maxX-o.minX,ne,c);Up(P,xe.x,xe.y,Ge,ne,c,y)}else d==="stripHorizontal"?(Kp(P,b==="preserve"?"uniformHeight":b,ge),zp(P,xe.x,xe.y,c,ge)):(Yp(P,b==="preserve"?"uniformWidth":b,ne),Wp(P,xe.x,xe.y,y,ne));let ve=new Map(P.map(he=>[he.id,$p(he)]));return p==="selectionBoundsCenter"&&(ve=Jp(o,ve)),t.snapToGrid&&(ve=Zp(ve,Math.max(1,t.gridSize??8))),{after:ve,boundsAfter:kr(Array.from(ve.values()))}}function Op(e){return{...e,width:Math.max(1,e.width),height:Math.max(1,e.height)}}function $p(e){return{x:e.x,y:e.y,width:Math.max(1,e.width),height:Math.max(1,e.height)}}function Fp(e,t,o,r,d,m,p,b){e.forEach((c,y)=>{const v=Math.floor(y/r),R=y%r,j=t+R*(d+p),P=o+v*(m+b);c.x=j+(d-c.width)/2,c.y=P+(m-c.height)/2})}function Up(e,t,o,r,d,m,p){const b=Array.from({length:r},()=>0);for(const c of e){const y=Qp(b),v=t+y*(d+m);c.x=v+(d-c.width)/2,c.y=o+b[y],b[y]+=c.height+p}}function zp(e,t,o,r,d){let m=t;for(const p of e)p.x=m,p.y=o+(d-p.height)/2,m+=p.width+r}function Wp(e,t,o,r,d){let m=o;for(const p of e)p.x=t+(d-p.width)/2,p.y=m,m+=p.height+r}function Hp(e,t,o,r,d,m){if(t==="fitCellDownOnly")for(const p of e){const b=Math.min(1,d/p.width,m/p.height);p.width*=b,p.height*=b}else t==="uniformWidth"?Vr(e,o):t==="uniformHeight"&&Sd(e,r)}function Vp(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const d=Math.min(1,o/r.width);r.width*=d,r.height*=d}return}Vr(e,o)}function Kp(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const d=Math.min(1,o/r.height);r.width*=d,r.height*=d}return}Sd(e,o)}function Yp(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const d=Math.min(1,o/r.width);r.width*=d,r.height*=d}return}Vr(e,o)}function Vr(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 Sd(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 yl(e,t,o,r,d){if(typeof e=="number"&&e>0)return Math.round(wr(e,1,t));if(o<=1||r<=1)return 1;const m=Math.floor((o+d)/(r+d));return!Number.isFinite(m)||m<1?1:Math.round(wr(m,1,t))}function Gp(e,t,o){return{x:t.minX,y:t.minY}}function Xp(e,t){return t==="selectionOrder"?[...e].sort((o,r)=>o.selectionIndex-r.selectionIndex):qp(e)}function qp(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,d=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)<=d?(p.push(c),b=(b*(p.length-1)+c.y)/p.length):(m.push([...p].sort((y,v)=>y.x-v.x)),p=[c],b=c.y);return p.length>0&&m.push([...p].sort((c,y)=>c.x-y.x)),m.flat()}function Jp(e,t){if(t.size===0)return t;const o=kr(Array.from(t.values())),r=e.minX+(e.maxX-e.minX)/2,d=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=d-p;return new Map(Array.from(t.entries()).map(([y,v])=>[y,{...v,x:v.x+b,y:v.y+c}]))}function Zp(e,t){return new Map(Array.from(e.entries()).map(([o,r])=>[o,{...r,x:Cl(r.x,t),y:Cl(r.y,t)}]))}function xl(e,t){if(e.length===0)return 1;const o=[...e].sort((b,c)=>b-c),r=(o.length-1)*t,d=Math.floor(r),m=Math.min(o.length-1,d+1),p=r-d;return o[d]*(1-p)+o[m]*p}function Qp(e){let t=0;for(let o=1;o<e.length;o+=1)e[o]<e[t]&&(t=o);return t}function Cl(e,t){return Math.round(e/t)*t}function eg(e){const t=ls(e);return t==="grid"?"grid":t==="striphorizontal"||t==="striph"?"stripHorizontal":t==="stripvertical"||t==="stripv"?"stripVertical":"masonry"}function tg(e){return ls(e)==="selectionorder"?"selectionOrder":"spatialReading"}function ag(e){const t=ls(e);return t==="selectionboundscenter"?"selectionBoundsCenter":t==="viewporttopleft"?"viewportTopLeft":"selectionBoundsTopLeft"}function ng(e){const t=ls(e);return t==="fitcelldownonly"?"fitCellDownOnly":t==="uniformwidth"?"uniformWidth":t==="uniformheight"?"uniformHeight":"preserve"}function ls(e){return String(e??"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")}function wr(e,t,o){return Math.min(o,Math.max(t,e))}const kd=300,wd=50*1024*1024,og=800;function Se(e){return typeof e=="string"?e.length*2:0}function sg(e){let t=256;if(t+=Se(e.id),t+=Se(e.kind),t+=Se(e.title),t+=Se(e.body),t+=Se(e.result),t+=Se(e.imageUrl),t+=Se(e.assetUrl),t+=Se(e.sourceFilePath),t+=(e.tags??[]).reduce((o,r)=>o+Se(r),0),e.metadata)for(const[o,r]of Object.entries(e.metadata))t+=Se(o)+Se(r);return e.imageStack&&(t+=128+Se(e.imageStack.title),t+=e.imageStack.variants.reduce((o,r)=>o+96+Se(r.variantId)+Se(r.imageUrl)+Se(r.assetId)+Se(r.title)+Se(r.caption),0)),t}function rg(e){let t=1024+Se(e.id)+Se(e.name)+Se(e.updatedAt);return t+=e.nodes.reduce((o,r)=>o+sg(r),0),t+=e.edges.length*128,t+=Object.entries(e.settings).reduce((o,[r,d])=>o+Se(r)+Se(typeof d=="string"?d:JSON.stringify(d)),0),t}function vd(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:rg(e)}}function Sl(e,t={}){const o=t.maxEntries??kd,r=t.maxBytes??wd;let d=e.slice(Math.max(0,e.length-o)),m=d.reduce((p,b)=>p+b.estimatedBytes,0);for(;d.length>1&&m>r;){const[p,...b]=d;m-=(p==null?void 0:p.estimatedBytes)??0,d=b}return d}function pa(e,t,o={}){const r=vd(t,o),d=o.mergeWindowMs??og,m=e.slice(),p=m.at(-1);return p&&r.mergeKey&&p.mergeKey===r.mergeKey&&r.timestampMs-p.timestampMs<d?(m[m.length-1]={...p,description:r.description,timestampMs:r.timestampMs,estimatedBytes:Math.max(p.estimatedBytes,r.estimatedBytes)},Sl(m,o)):(m.push(r),Sl(m,o))}function ig(e,t,o={}){const r=vd(t,o),d=o.maxEntries??kd,m=o.maxBytes??wd;let p=[r,...e].slice(0,d),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 ds(e,...t){const o=e==null?void 0:e.metadata;if(!o)return"";for(const r of t){const d=o[r];if(typeof d=="string"&&d.trim())return d.trim()}return""}function Hn(e,t){return!!ds(e,t)}function jd(e){if(!e||!e.trim())return!1;const t=e.trim();return/^(https?:|blob:|data:|file:)/i.test(t)}function Id(e){if(!e)return"";const t=ds(e,"OriginalPath");if(t)return t;const o=String(e.body||"").trim();return jd(o)?"":o}function Nd(e){return e?Id(e)||String(e.sourceFilePath||"").trim()||String(e.assetUrl||"").trim()||String(e.imageUrl||"").trim()||String(e.body||"").trim():""}function Ad(e){return ds(e,"ThumbnailUrl","thumbnailUrl")}function lg(e){if(!e||e.kind!=="image")return!1;if(Hn(e,"ImageGenerationProvider")||Hn(e,"GeneratedImageSourceWidth")||Hn(e,"GeneratedImageSourceHeight")||Hn(e,"CodexImageQuality")||Hn(e,"ImageRouterRevisedPrompt"))return!0;const t=ds(e,"RequestedMediaOperation");return["text2image","image2image","inpaint"].includes(t.toLowerCase())}function Kr(e){if(!e)return"";if(e.kind==="image"||e.kind==="mask"){const t=lg(e)?Id(e):"",o=Ad(e),r=String(e.body||"").trim();return t||o||String(e.imageUrl||"").trim()||String(e.assetUrl||"").trim()||String(e.sourceFilePath||"").trim()||(jd(r)?r:"")}return Nd(e)||String(e.assetUrl||"").trim()||String(e.sourceFilePath||"").trim()}function Md(e){if(!e)return"";const t=Nd(e)||e.title||e.kind;return String(t||"").replace(/\\/g,"/").replace(/\/+$/,"").split("/").filter(Boolean).pop()||e.title||e.kind}const dg=2048,cg=16e3,Hs=1024,Vs=64,ug=2048,Ks=3,mg=16,pg=256,gg=new Set(["text","note","memo","markdown","code","directory"]),hg=/[\p{L}\p{M}\p{N}]{2,}/gu,kl=4,fg=8,wl=1.35;function bg(e){return gg.has(String(e||"").trim().toLowerCase())}function yg(e){const t=e.map(Cg),o=new Map,r=new Map,d=new Map,m=new Map;for(const p of t){o.set(p.id,p);for(const b of p.tokens)Ys(r,b,p.id);for(const b of p.prefixes)Ys(d,b,p.id);for(const b of p.ngrams)Ys(m,b,p.id)}return{documents:t,documentById:o,tokenIndex:r,prefixIndex:d,ngramIndex:m}}function xg(e,t,o={}){const r=Math.max(1,Math.trunc(Number(o.limit||30))),d=Za(t),m=vl(e,0,0,o.viewport,0);if(!d)return{hits:[],profile:m};const p=Array.from(Td(d)),b=Array.from(Rd(p)),c=Ed(d),y=Array.from(Ld(c)),v=new Map;for(const F of p)Gs(e.tokenIndex,F,v,8);for(const F of b)Gs(e.prefixIndex,F,v,F.length<=3?4:2);for(const F of y)Gs(e.ngramIndex,F,v,1.15);const R=vg(e,v,r),j=jg(o.allowedContentTypes),P=[];for(const F of R){const B=e.documentById.get(F);if(!B||j&&!j.has(B.contentType))continue;const q=kg(B,d,p,y);if(q<=0)continue;const ne=wg(B,o.viewport??null);P.push({nodeId:B.id,score:q+ne,textScore:q,viewportBoost:ne})}P.sort((F,B)=>B.score-F.score||F.nodeId.localeCompare(B.nodeId));const V=P.slice(0,r);return{hits:V,profile:vl(e,R.length,V.length,o.viewport,V.filter(F=>F.viewportBoost>0).length)}}function Za(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="",d=!1;for(const m of o){if(/\s/u.test(m)){d||(r+=" ",d=!0);continue}Ig(m)||(r+=m,d=!1)}return r.trim()}function Td(e){return new Set(e.match(hg)??[])}function Rd(e){const t=new Set;for(const o of e){if(!o.trim())continue;const r=Math.min(8,o.length);for(let d=2;d<=r;d+=1)t.add(o.slice(0,d))}return t}function Ld(e){const t=new Set;if(!e.trim())return t;if(e.length<=Ks)return t.add(e),t;for(let o=0;o<=e.length-Ks;o+=1)t.add(e.slice(o,o+Ks));return t}function Cg(e){const t=String(e.kind??"").trim().toLowerCase(),o=fa(e.prompt??e.title,dg),r=bg(t)?fa(e.response??e.body,cg):"",d=Sg(e.metadata,e.tags,e.metadataText),m=fa(e.sourceFilePath||e.assetUrl,ug),p=Za(o),b=Za(r),c=Za(d),y=Za(m),v=Za(t),R=[p,c,y,b,v].filter(Boolean).join(" "),j=Td(R);return{id:String(e.id),contentType:t,normalizedPrompt:p,normalizedResponse:b,normalizedMetadata:c,normalizedSourcePath:y,normalizedContentType:v,tokens:j,prefixes:Rd(j),ngrams:Ld(Ed(R)),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 Sg(e,t,o){const r=[];let d=0;if(e)for(const[m,p]of Object.entries(e)){if(d>=Vs)break;!String(m??"").trim()&&!String(p??"").trim()||(r.push(fa(m,128)),String(p??"").trim()&&r.push(fa(p,Hs)),d+=1)}return d<Vs&&(t!=null&&t.length)&&(r.push("tags",fa(t.join(" "),Hs)),d+=1),d<Vs&&(o!=null&&o.trim())&&r.push("metadata",fa(o,Hs)),r.join(" ")}function kg(e,t,o,r){let d=0;e.normalizedPrompt===t?d+=120:Vn(e.normalizedPrompt,t)&&(d+=54),Vn(e.normalizedMetadata,t)&&(d+=26),Vn(e.normalizedSourcePath,t)&&(d+=18),Vn(e.normalizedResponse,t)&&(d+=14),Vn(e.normalizedContentType,t)&&(d+=8);for(const m of o)e.tokens.has(m)&&(d+=7),e.normalizedPrompt.startsWith(m)&&(d+=10);for(const m of r)e.ngrams.has(m)&&(d+=.85);return d}function wg(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,d=Math.abs(o-t.centerX)/Math.max(1,t.halfWidth),m=Math.abs(r-t.centerY)/Math.max(1,t.halfHeight),p=Math.sqrt(d*d+m*m);if(p<=1)return kl+(1-p)*fg;if(p<=wl){const b=1-(p-1)/Math.max(.001,wl-1);return Math.max(0,b)*(kl*.75)}return 0}function vg(e,t,o){return t.size===0?e.documents.map(r=>r.id):Array.from(t.entries()).sort((r,d)=>d[1]-r[1]||r[0].localeCompare(d[0])).slice(0,Math.max(o*mg,pg)).map(([r])=>r)}function jg(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 vl(e,t,o,r,d){return{documentCount:e.documents.length,candidateCount:t,rankedCount:o,viewportBoosted:!!r,boostedCount:d,indexedTokenCount:e.tokenIndex.size,indexedPrefixCount:e.prefixIndex.size,indexedNGramCount:e.ngramIndex.size}}function Ys(e,t,o){const r=e.get(t);if(r){r.add(o);return}e.set(t,new Set([o]))}function Gs(e,t,o,r){const d=e.get(t);if(d)for(const m of d)o.set(m,(o.get(m)??0)+r)}function Ed(e){let t="";for(const o of e)/\s/u.test(o)||(t+=o);return t}function fa(e,t){const o=String(e??"");return o.length<=t?o:o.slice(0,t)}function Vn(e,t){return!!(e&&t&&e.includes(t))}function Ig(e){const t=e.codePointAt(0)??0;return t<=31||t>=127&&t<=159}const Ng=2147483647,Ag="LocalBridge access is enabled, but the bridge is not reachable. Restart LocalBridge, allow Chrome local-network access, then reload MindCanvas.",Mg="Local storage is unavailable in the hosted app until browser local storage or LocalBridge access is available.",Tg="Local storage is unavailable. Check the browser-local storage state or LocalBridge connection.",Rg="Cloud projects are unavailable until Supabase and Cloudflare R2 are configured.",Lg="Login is required before cloud projects can be used.",Eg="Cloud projects are unavailable.";function Pg(e){return e.bridgeProviderConfigured||e.browserProviderConfigured||e.embeddedProviderConfigured}function vr(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 _g(e){return vr(e,!1).isAvailable?"local":Yr(e)?"cloud":vr(e,!0).isAvailable?"local":e.cloudConfigured?"cloud":"local"}function Yr(e){return e.cloudConfigured&&e.cloudSessionAvailable}function Dg(e,t){return t.providerKind==="bridge"&&!t.bridgeReachable?Ag:e.hostedWebApp?Mg:Tg}function Bg(e){return e.cloudConfigured?Yr(e)?Eg:Lg:Rg}function Og(e){var v,R,j;const t=Yr(e),o=vr(e,!0),r=Pg(e),d=e.cloudConfigured,m=o.isAvailable,p=t;let b=e.storedMode??_g(e);b==="cloud"&&(!d||!p&&m)?b=m?"local":"cloud":b==="local"&&(!r&&d||!m&&p)&&(b="cloud");const c=e.cloudAccess,y=((v=c==null?void 0:c.denialReason)==null?void 0:v.trim())||void 0;return{currentMode:b,showLocalTab:r,showCloudTab:d,isLocalAvailable:o.isAvailable,isCloudAvailable:t,requiresCloudSignIn:e.cloudConfigured&&!t,canUseLocalProjects:m,canBrowseLocalWorkspace:o.canBrowseWorkspace,localProviderKind:o.providerKind,canUseCloudProjects:p,canSyncLocalToCloud:m&&p,cloudPlanKey:((R=c==null?void 0:c.planKey)==null?void 0:R.trim())||"free",cloudEntitlementStatus:((j=c==null?void 0:c.entitlementStatus)==null?void 0:j.trim())||(c?"active":"inactive"),currentCloudBoardCount:(c==null?void 0:c.currentBoardCount)??0,cloudBoardLimit:(c==null?void 0:c.cloudBoardLimit)??Ng,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:Dg(e,o),cloudStatusMessage:p?void 0:Bg(e)}}function $g(){const e=new Error("Queued operation was cancelled before it started.");return e.name="AbortError",e}class Fg{constructor(){Gi(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 d=this.tails.get(t)??Promise.resolve();let m;return m=(async()=>{try{try{await d}catch{}if(r!=null&&r.aborted)throw $g();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 jr="mindexec-local-mode-warning-dismissed-v1";function Ug(){try{return window.localStorage.getItem(jr)==="true"}catch{return!1}}function Pd(e,t){var o,r;if(e==="checking")return"Checking bridge";if(e==="connected"){const d=(r=(o=t==null?void 0:t.exec)==null?void 0:o.model)==null?void 0:r.trim();return d?`Bridge / ${d}`:"Bridge connected"}return e==="blocked"?"Bridge gated":e==="unavailable"?"Bridge unavailable":"Bridge idle"}function zg(e,t,o){var d,m,p,b,c;if(e!=="connected")return t||Pd(e,o);const r=[o!=null&&o.version?`version ${o.version}`:null,(d=o==null?void 0:o.exec)!=null&&d.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 Wg({state:e,message:t,status:o,hostedBridgeAccessEnabled:r,onRefresh:d,onEnableHostedBridge:m}){const p=g.useMemo(()=>e==="checking"?n.jsx(Pt,{size:14,className:"spin-icon"}):e==="connected"?n.jsx(km,{size:14}):e==="blocked"?n.jsx(ld,{size:14}):e==="unavailable"?n.jsx(wm,{size:14}):n.jsx(Br,{size:14}),[e]);return n.jsxs("div",{className:`runtime-status-pill runtime-status-pill--${e}`,title:zg(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:Pd(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 d(),disabled:e==="checking",children:n.jsx(tn,{size:13})})]})}function Hg({status:e,message:t}){const r={ready:{icon:n.jsx(mr,{size:14}),label:"Saved locally",title:"Board state is saved in this browser."},syncing:{icon:n.jsx(Pt,{size:14,className:"spin-icon"}),label:"Saving",title:"Saving board state to this browser."},error:{icon:n.jsx(Or,{size:14}),label:"Save error",title:"Board state could not be saved locally."},offline:{icon:n.jsx(Br,{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 Vg({visible:e}){const[t,o]=g.useState(Ug);if(!e||t)return null;const r=()=>{o(!0);try{window.localStorage.setItem(jr,"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":jr,children:[n.jsx("div",{className:"runtime-local-warning__icon","aria-hidden":"true",children:n.jsx(Or,{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(pt,{size:14})})]})}function Kg({bridgeState:e,bridgeMessage:t,bridgeStatus:o,syncStatus:r,syncMessage:d,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(Wg,{state:e,message:t,status:o,hostedBridgeAccessEnabled:m,onRefresh:p,onEnableHostedBridge:b}),n.jsx(Hg,{status:r,message:d})]}),n.jsx(Vg,{visible:c})]})}const Yg=/^data:image\//i;function Gg(e){const t=String(e||"").trim();if(!t)return{src:null,reason:"empty",urlKind:"empty"};const o=t.toLowerCase();return Yg.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 Xs({src:e,alt:t="",className:o="",testId:r="secure-image",traceId:d,kind:m="image",title:p}){const b=g.useMemo(()=>Gg(e),[e]),[c,y]=g.useState(b.src?"loading":"blocked");g.useEffect(()=>{const P=b.src?"loading":"blocked";y(P),b.src||f.emit("secureImage.blocked",{id:d,kind:m,reason:b.reason,urlKind:b.urlKind})},[m,b.reason,b.src,b.urlKind,d]);const v=()=>{y("loaded"),f.emit("secureImage.loaded",{id:d,kind:m,urlKind:b.urlKind})},R=()=>{y("error"),f.emit("secureImage.error",{id:d,kind:m,urlKind:b.urlKind})},j=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:j,children:[b.src&&n.jsx("img",{src:b.src,alt:t,loading:"lazy",decoding:"async",draggable:!1,onLoad:v,onError:R}),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":j,children:c==="blocked"?n.jsx(vm,{size:18}):n.jsx(Or,{size:18})})]})}const Xg={note:gr,text:gt,"ai-task":no,image:oo,mask:oo,video:so,embed:nn,code:an,markdown:gt,"csv-table":gt,memo:gr,pdf:gt,file:dd,directory:jm,"template-launcher":gt,"remote-monitor":pr,"remote-control":pr},qs=[{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."}],jl=500,qg=48,Jg=new Set(["mindcanvasagent","agentcommand"]),Zg=new Set(["codenote","code-note"]),Qg=["multidesktopmonitor","remotehubmonitor","remotefleetmonitor","smartviewmonitor"],eh=["remotedevice","remotefleetdevice","remotecontrol"];function th(e){const t=on(e,"SemanticType","semanticType","RemoteFleetSemanticType").trim().toLowerCase(),o=on(e,"RemoteFleetNodeRole","remoteFleetNodeRole").trim().toLowerCase(),r=on(e,"RemoteFleetSchemaVersion","remoteFleetSchemaVersion").trim().toLowerCase();return e.kind==="remote-monitor"||t==="remotefleetmonitor"||o==="fleet-monitor"||r==="remote-fleet@1"||Dd(e,["RemoteFleetViewMode","RemoteFleetHubStatus","RemoteFleetDevicesJson","RemoteFleetDeviceCount","RemoteFleetConnectedDeviceCount","RemoteFleetProjectionMode","RemoteFleetCanvasPagination","RemoteHub","RemoteRoute","RemotePage","RemoteVisibleBudget"])||_d(e,Qg,["remote","monitor"])}function ah(e){const t=on(e,"SemanticType","semanticType","RemoteFleetSemanticType").trim().toLowerCase(),o=on(e,"RemoteFleetNodeRole","remoteFleetNodeRole").trim().toLowerCase(),r=on(e,"RemoteFleetSchemaVersion","remoteFleetSchemaVersion").trim().toLowerCase();return e.kind==="remote-control"||t==="remotefleetdevice"||o==="fleet-device"||r==="remote-fleet-device@1"||Dd(e,["RemoteFleetDeviceId","RemoteFleetDeviceName","RemoteFleetDevicePlatform","RemoteFleetDeviceConnected","RemoteFleetDeviceCanControl","RemoteFleetSourceMonitorNodeId"])||_d(e,eh,["remote","control"])}function _d(e,t,o){const r=(e.tags??[]).map(b=>b.trim().toLowerCase()).filter(Boolean),d=o.every(b=>r.includes(b)),p=[e.title,e.body,e.sourceFilePath,e.assetUrl,...r].join(" ").toLowerCase().replace(/[^a-z0-9]+/g,"");return d||t.some(b=>p.includes(b))}function on(e,...t){const o=e.metadata??{};for(const d of t){const m=o[d];if(m!=null)return String(m)}const r=new Set(t.map(d=>d.toLowerCase()));for(const[d,m]of Object.entries(o))if(r.has(d.toLowerCase())&&m!==void 0&&m!==null)return String(m);return""}function Dd(e,t){const o=e.metadata??{},r=new Set(t.map(d=>d.toLowerCase()));return Object.entries(o).some(([d,m])=>r.has(d.toLowerCase())&&m!==void 0&&m!==null&&String(m).trim()!=="")}const Ir=[{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"}],nh=g.memo(function({node:t,selected:o,pulsing:r,connectionDraft:d,onSelect:m,onDragStart:p,onResizeStart:b,onPatch:c,onDelete:y,onDuplicate:v,onRun:R,onPin:j,onOpenResult:P,onToggleAiReference:V,onCopyNode:F,onCopyEmbedReference:B,onFitNodeHeight:q,onToggleNodeExpanded:ne,onToggleWordWrap:ge,onStageCompany:xe,onOpenCompanyGraph:ve,onSyncCompanyGoal:he,onRefreshCompany:Ge,onSetCompanyStatus:st,onRemoveCompany:rt,onOpenAsset:me,onOpenDirectorySettings:G,onScanDirectory:re,onCreateRemoteControl:Q,onGenerateTemplateCard:ft}){var nt,At,aa,Ra,Ut,La,ee,Ve,Ea,Sn,I,K,se,kn,Mt,Pa,_a,wn,vn,Da,jn,na,In,Ba,oa,zt,De,Le,Oa,Nn,An,sa,ra,$a,Wt;const O=String(((nt=t.metadata)==null?void 0:nt.AutomationNodeKind)||((At=t.metadata)==null?void 0:At.AutomationTemplateKey)||((aa=t.metadata)==null?void 0:aa.AutomationInferredKind)||"").trim().toLowerCase(),it=String(((Ra=t.metadata)==null?void 0:Ra.SemanticType)||((Ut=t.metadata)==null?void 0:Ut.semanticType)||"").trim().toLowerCase(),z=t.kind==="memo"&&Jg.has(it),oe=t.kind==="memo"&&Zg.has(it),xa=String(((La=t.metadata)==null?void 0:La.AgentCommandStatus)||"Draft"),ye=String(((ee=t.metadata)==null?void 0:ee.AgentCommandMode)||"Task"),lt=String(((Ve=t.metadata)==null?void 0:Ve.AgentCommandRequestedRole)||"Researcher"),St=String(((Ea=t.metadata)==null?void 0:Ea.CodeNoteStatus)||"Draft"),Jt=String(((Sn=t.metadata)==null?void 0:Sn.CodeNoteSyncState)||"Unlinked"),Zt=String(((I=t.metadata)==null?void 0:I.CodeNoteKind)||"Feature"),io=z?no:oe?an:O==="image-generate"?oo:O==="video-generate"?so:Xg[t.kind],Ue=d&&d.from!==t.id,lo=t.kind==="ai-task",_t=t.kind==="pdf"||t.kind==="file"||t.kind==="directory",bt=th(t),ke=ah(t),te=bt||ke,cs=bt?"monitor":ke?"control":"",Me=t.kind==="template-launcher"||String(((K=t.metadata)==null?void 0:K.semanticType)||((se=t.metadata)==null?void 0:se.SemanticType)||"").toLowerCase()==="templatelauncher",Qe=t.kind==="video",ce=t.kind==="embed",Te=t.kind==="mask",ze=t.kind==="memo",co=t.kind==="markdown",fe=t.kind==="csv-table",Oe=ze?mh(t):null,Dt=g.useRef(null),kt=Qe?Bd(t):"",Ie=Qe?gh(t):"",dt=ce?hh(t):"",$e=ce?fh(t):"",uo=ce?bh(t,dt):"",Ca=ce?yh(t):"",Ne=(((kn=t.imageStack)==null?void 0:kn.variants)??[]).filter(x=>!!x.imageUrl),We=Ne.find(x=>{var L;return x.variantId===((L=t.imageStack)==null?void 0:L.activeVariantId)})??Ne[0]??null,Bt=t.kind==="image"||Te?(We==null?void 0:We.imageUrl)||Kr(t):"",mo=We?Ne.findIndex(x=>x.variantId===We.variantId):-1,Sa=!Bt&&!_t&&!te&&!Me&&!Qe&&!ce,po=Sa&&!ze,Xe=t.isExpanded===!1&&Number(t.originalHeight??0)>t.height+1,He=!te&&!["image","mask","video","embed","pdf","file","directory","template-launcher","remote-monitor","remote-control"].includes(t.kind),Pe=t.aiEnabled!==!1,ka=ph(t),go=!!(t.isChunkedText||((Mt=t.metadata)==null?void 0:Mt.IsChunkedText)==="true"),be=Number(t.totalLineCount??((Pa=t.metadata)==null?void 0:Pa.TotalLineCount)??0),wa=t.sourceFilePath||((_a=t.metadata)==null?void 0:_a.FileName)||t.title,ho=go?n.jsxs("div",{className:"node-chunked-text-state","data-testid":"node-chunked-text-state",title:wa,children:[n.jsx(gt,{size:12}),n.jsx("strong",{children:"Chunked text"}),Number.isFinite(be)&&be>0&&n.jsxs("span",{children:[be.toLocaleString()," lines"]})]}):null,dn=t.kind==="directory"?(wn=t.metadata)==null?void 0:wn.Include:null,Re=t.kind==="directory"?(vn=t.metadata)==null?void 0:vn.Exclude:null,yt=t.kind==="directory"?(Da=t.metadata)==null?void 0:Da.DirectoryFileCount:null,Ot=t.kind==="directory"?(jn=t.metadata)==null?void 0:jn.DirectoryDirCount:null,va=t.kind==="directory"?(na=t.metadata)==null?void 0:na.DirectoryLastScanUtc:null,[fo,_e]=g.useState(!1),[cn,un]=g.useState(null),[mn,ja]=g.useState(((In=t.metadata)==null?void 0:In.CompanyExecutionMode)||"Auto"),[wt,pn]=g.useState(((Ba=t.metadata)==null?void 0:Ba.CompanySubAgents)!=="false"),[gn,$t]=g.useState(!1),[qe,hn]=g.useState(null),Qt=g.useMemo(()=>fe?ih(t.body,qe):null,[qe,fe,t.body]),ie=g.useMemo(()=>Me?od(t.body):null,[Me,t.body]),et=(ie==null?void 0:ie.options.find(x=>x.id===ie.selectedOptionId))??(ie==null?void 0:ie.options[0])??null,ct=Vu(ie),vt=qs.find(x=>x.key===mn)||qs[0],jt=String(((oa=t.metadata)==null?void 0:oa.CompanyStatus)||(t.companyMode?"Staged":"")).trim(),xt=jt.toLowerCase(),us=xt==="paused",fn=xt==="archived",bo=x=>{x.stopPropagation();const L=x.currentTarget.getBoundingClientRect();un(sh(L)),_e(le=>!le)},bn=x=>{x.stopPropagation(),xe(t.id,{executionMode:vt.key,enableSubAgents:wt}),_e(!1)},ms=x=>{x.stopPropagation(),ve(t.id)},yn=(x,L)=>{L.stopPropagation();const le=Ne.find($=>$.variantId===x);!le||!t.imageStack||le.variantId===t.imageStack.activeVariantId||(f.emit("node.imageStack.variant",{nodeId:t.id,variantId:le.variantId,variantCount:Ne.length}),c(t.id,{imageUrl:le.imageUrl,imageStack:{...t.imageStack,activeVariantId:le.variantId,variants:Ne,updatedAtUtc:new Date().toISOString()},metadata:{...t.metadata??{},ImageStackActiveVariantId:le.variantId}}))},ea=(x,L)=>{if(L.stopPropagation(),!!ze){if((Oe==null?void 0:Oe.key)===x){$t(!1);return}f.emit("node.memoColor.changed",{id:t.id,colorKey:x}),c(t.id,{metadata:{...t.metadata??{},memoColor:x,memoColorIsCustom:"true"}}),$t(!1)}},xn=x=>{var ia,Fa;if(x.stopPropagation(),!z)return;const L=(t.body||t.title||"Agent command objective").trim(),le=["Clarify the objective and constraints.","Collect linked canvas context or code notes.","Draft an execution plan before external adapter use."],$=["canvas-context","agent-command-planning","adapter-gated-execution"],Ee=["Canvas.ListAgentCommands","Canvas.UpdateAgentCommand","Canvas.PlanAgentCommand","Canvas.SetAgentCommandState"],Tt=["MindCanvasAgent",ye,lt],Fe=["Local React plan staged for this Agent Command.",`Role: ${lt}`,`Mode: ${ye}`,`Objective: ${L.slice(0,220)}`,"External execution remains adapter-gated until LocalBridge/agent runtime is available."].join(`
1
+ var Pu=Object.defineProperty;var _u=(e,t,o)=>t in e?Pu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var Gi=(e,t,o)=>_u(e,typeof t!="symbol"?t+"":t,o);import{j as n,r as g,a as Du}from"./vendor-react-BXzpOyCS.js";import{l as Bu,a as ut,s as Et,b as Ou,d as $u,r as Fu,c as Uu,e as zu,i as Xi}from"./storage-CK-IF922.js";import{r as _r,g as ss,w as Wu,a as Ds,d as qi,b as Hu,t as Dr,p as od,v as Vu,R as Ku,c as Yu,u as Gu,e as Xu,f as Ji,s as mt,i as Ga,l as Bs,h as On,j as Eo,k as $n,m as Fn,n as Po,o as ma,q as Zi,x as qu,y as Un,z as Ju,A as Zu,B as Qu,C as em,D as sd,E as tm,F as am,G as Gn,H as lr,I as nm,J as om,K as Qi,L as dr,M as cr,N as rd,O as _o,P as Vo,Q as Xn,S as el,T as U,U as Os,V as qn,W as sm,X as rm,Y as im,Z as tl,_ as $s,$ as lm,a0 as dm,a1 as cm,a2 as um,a3 as ur,a4 as mm,a5 as pm,a6 as gm,a7 as hm,a8 as al}from"./canvas-runtime-BCjnJlcp.js";import{e as fm,d as bm}from"./vendor-msgpack-BE8aAsr3.js";import{R as f}from"./app-runtime-xD2Z3NdN.js";import{g as Fs}from"./index-BiAiLk8X.js";import{g as rs,r as id}from"./supabaseAuthAdapter-C3z334Qw.js";import{c as ym,a as xm,r as nl}from"./toolHandoff-D5e5f7t5.js";import{a as ol,s as Cm}from"./executionModeSettings-NJqurj-o.js";import{a as sl,p as Sm}from"./runtimeSettingsPersistenceProjection-BoNWmYjU.js";import{A as Pt,W as km,c as ld,D as wm,E as Br,R as tn,J as Or,X as pt,N as mr,O as vm,Q as no,w as an,I as oo,V as so,l as pr,F as gt,Y as jm,Z as dd,_ as gr,$ as nn,a0 as cd,a1 as Im,a2 as ud,a3 as Nm,i as Qn,a4 as md,a5 as Am,a6 as rl,a7 as Mm,a8 as ha,a9 as il,T as Zo,aa as ll,ab as Qo,ac as Tm,ad as hr,ae as pd,af as fr,ag as Rm,ah as Lm,f as Em,ai as Pm,h as Jn,x as _m,aj as Dm,ak as Bm,al as dl,am as cl,an as ul,g as ml,ao as Do,H as zn,ap as Bo,s as Us,aq as pl,ar as Om,as as zs,at as gl,au as Ws,av as $m,aw as Fm,ax as Um,ay as hl,az as zm,aA as Wm,aB as Hm,aC as Vm,n as Km,o as Wn,aD as Ym,aE as Gm,aF as Xm,aG as qm,aH as Jm,aI as Zm,aJ as Qm,aK as ep}from"./vendor-icons-oiW_NVNO.js";const tp=1200,ya="LocalBridgeOriginalNodeId";function ht(e){return typeof e=="object"&&e!==null}function Gt(e,t){const o=Number(e);return Number.isFinite(o)?o:t}function H(e){return typeof e=="string"?e:""}function gd(){return typeof window<"u"?{width:window.innerWidth||1280,height:window.innerHeight||720}:{width:1280,height:720}}function br(e,t,o){const r=Number(e),d=Number(t),m=Number(o);if(!Number.isFinite(r)||!Number.isFinite(d)||!Number.isFinite(m)||m<=0)return null;const p=1400/m,b=gd();return{x:b.width/2-r*p,y:b.height/2-d*p,scale:p}}function ap(e){return ht(e)?br(e.x??e.X,e.y??e.Y,e.z??e.Z):null}function np(e){if(!ht(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 d=gd();return{x:(d.width/2-t)/r,y:(d.height/2-o)/r,z:1400/r}}function op(e){const t=String(e||"").trim();if(t)try{const o=JSON.parse(t);if(!ht(o))return;const r={};for(const[d,m]of Object.entries(o)){const p=ap(m);p&&(r[d]=p)}return Object.keys(r).length>0?r:void 0}catch{return}}function sp(e){if(!e||Object.keys(e).length===0)return null;const t={};for(const[o,r]of Object.entries(e)){const d=np(r);d&&(t[o]=d)}return Object.keys(t).length>0?JSON.stringify(t):null}function es(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 is(){return crypto.randomUUID()}function $r(e){return ht(e)?"ContentType"in e||"Prompt"in e||"Response"in e||"PositionX"in e||"PositionY"in e||"SourceFilePath"in e||"ImageStack"in e:!1}function fl(e){const t=H(e).trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}function yr(e){if(Array.isArray(e))return e;if(!ht(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=fl(o);if(r)return yr(r)}for(const t of["ContentJson","contentJson","content_json"])if(t in e){const o=fl(e[t]);if(o)return yr(o)}return $r(e)?[e]:[]}function Fr(e){return ht(e)?"BoardId"in e&&("Upserts"in e||"upserts"in e||"Deletes"in e||"deletes"in e):!1}function hd(e){if(!ht(e))return 0;for(const t of["Deletes","deletes"]){const o=e[t];if(Array.isArray(o))return o.length}return 0}function ts(e){return yr(e).filter($r)}function fd(e){return ts(e).length}function rp(e,t){var m;const o=[...ts(e)];if(!Fr(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=H(c).trim();y&&r.add(y)}}if(r.size>0)for(let p=o.length-1;p>=0;p-=1){const b=H((m=o[p])==null?void 0:m.Id).trim();b&&r.has(b)&&o.splice(p,1)}const d=new Map;o.forEach((p,b)=>{const c=H(p.Id).trim();c&&d.set(c,b)});for(const p of ts(t)){const b=H(p.Id).trim(),c=b?d.get(b):void 0;if(c!==void 0){o[c]=p;continue}b&&d.set(b,o.length),o.push(p)}return o}function bd(e){const t=Array.isArray(e)?e.filter(ht):[];return new Map(t.filter(o=>o.NodeId).map(o=>[String(o.NodeId),o]))}async function xr(e,t){for(const o of e)try{const r=await _r(o,t);return{payload:JSON.parse(r.content),path:o}}catch{}return null}async function ip(e,t){const o=`.mindexec/boards/${e}.msgpack`,r=`boards/${e}.msgpack`;for(const b of[o,r])try{const c=await Hu(b,t);return{payload:bm(c),format:b===o?"msgpack":"legacy-msgpack",path:b}}catch{}const d=`.mindexec/boards/${e}.json`,m=`boards/${e}.json`,p=await xr([d,m],t);if(p)return{payload:p.payload,format:p.path===d?"json":"legacy-json",path:p.path};throw new Error(`LocalBridge board file not found: ${o}, ${r}, ${d}, ${m}`)}function Cr(e){const t=H(e.Id).trim()||H(e.BoardId).trim();return t?{Id:t,Title:H(e.Title)||null,Description:H(e.Description)||null,ThumbnailUrl:H(e.ThumbnailUrl)||null,CreatedAt:H(e.CreatedAt)||null,UpdatedAt:H(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:H(e.CameraBookmarks)||null}:null}function bl(e){return!ht(e)||$r(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 Ur(e){if(Array.isArray(e))return e.filter(bl).map(t=>Cr(t)).filter(t=>!!t);if(bl(e)){const t=Cr(e);return t?[t]:[]}return[]}function lp(e){const t=e.toLowerCase();return dp(t)?"remote-control":cp(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 dp(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 cp(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 up(e,t){const o=e.Metadata||{},r=o.ThumbnailUrl,d=o.OriginalUrl,m=o.OriginalPath;return Dr(H(r)||H(d)||H(m)||H(e.Response),t)}function mp(e,t,o){const r=e.ImageStack,d=Array.isArray(r==null?void 0:r.Variants)?r.Variants:[];if(d.length===0)return;const m=d.map((b,c)=>{const y=H(b.AssetId).trim(),v=Dr(y,o)||t;return v?{variantId:H(b.VariantId)||`variant-${H(e.Id)||c}`,imageUrl:v,assetId:y||void 0,caption:H(b.Caption)||void 0,sourceNodeId:H(e.Id)||void 0,createdAtUtc:H(b.CreatedAtUtc)||void 0}:null}).filter(b=>!!b);if(m.length===0)return;const p=H(r==null?void 0:r.ActiveVariantId);return{activeVariantId:m.some(b=>b.variantId===p)?p:m[0].variantId,variants:m,kind:H(r==null?void 0:r.Kind)||"versions",title:H(r==null?void 0:r.Title)||void 0,updatedAtUtc:H(r==null?void 0:r.UpdatedAtUtc)||void 0}}function pp(e,t){return!e||e.variants.length===0?t:(e.variants.find(r=>r.variantId===e.activeVariantId)??e.variants[0]).imageUrl||t}function gp(e,t,o){var p,b,c,y,v,R;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:ro(e.imageUrl,t)||e.imageUrl,title:e.title,sourceNodeId:e.id,createdAtUtc:o}]:[];if(r.length===0)return null;const d=r.map(j=>({VariantId:j.variantId||is(),AssetId:j.assetId||ro(j.imageUrl,t)||j.imageUrl,CreatedAtUtc:j.createdAtUtc||o,Caption:j.caption||j.title||null}));return{ActiveVariantId:(c=e.imageStack)!=null&&c.activeVariantId&&d.some(j=>{var P;return j.VariantId===((P=e.imageStack)==null?void 0:P.activeVariantId)})?e.imageStack.activeVariantId:d[0].VariantId||"",Variants:d,Kind:((y=e.imageStack)==null?void 0:y.kind)||(d.length>1?"pile":"versions"),Title:((v=e.imageStack)==null?void 0:v.title)||e.title||null,UpdatedAtUtc:((R=e.imageStack)==null?void 0:R.updatedAtUtc)||o}}function hp(e,t){const o=e.Metadata||{};return Dr(H(o.OriginalUrl)||H(o.OriginalPath)||H(o.SourceFilePath)||H(e.SourceFilePath)||H(e.Response),t)}function fp(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 bp(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 ro(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 yp(e,t){const o=new Map;for(const r of e){const d=t.get(r.from),m=t.get(r.to);!d||!m||o.has(m)||o.set(m,d)}return o}function xp(e){const t=new Set;return e.map(o=>{var c,y;const r=((c=o.metadata)==null?void 0:c[ya])||"",d=es(r)?r:es(o.id)?o.id:"",m=!!(d&&t.has(d)),p=d&&!m?d:is(),b=((y=o.metadata)==null?void 0:y[ya])!==p;return t.add(p),{node:b?{...o,metadata:{...o.metadata??{},[ya]:p}}:o,originalId:p,assignedNodeId:!d||m,metadataStamped:b,duplicateOriginalId:m}})}function Cp(e,t,o,r,d){var y,v,R;const m=bp(e.kind),p=m==="image"||m==="mask"?ro(e.imageUrl,d):"",b=["video","pdf","file","directory","embed"].includes(m)?ro(e.assetUrl||e.sourceFilePath||e.body,d):"",c={...e.metadata??{},[ya]: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 j=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=j),c.url??(c.url=j),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(d)?"local_bridge":"local_reference"),c.AdapterState??(c.AdapterState=((v=e.metadata)==null?void 0:v.PromptOnly)==="true"?"adapter-gated":"local-reference")),(R=e.tags)!=null&&R.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"?gp(e,d,r):null}}function Sp(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 kp(e,t,o){const r=H(e.ContentType)||"note",d=H(e.Prompt).trim(),m=H(e.Response).trim(),p=fp(e.Metadata),b=H(e.Id).trim();b&&(p[ya]??(p[ya]=b));const y=["true","1","yes"].includes(String(p.ImageRouterMask||p.IsMask||"").trim().toLowerCase())?"mask":lp(r),v=y==="memo"&&["mindcanvasagent","agentcommand"].includes(String(p.SemanticType||p.semanticType||"").trim().toLowerCase()),R=y==="memo"&&["codenote","code-note"].includes(String(p.SemanticType||p.semanticType||"").trim().toLowerCase()),j=H(e.SourceFilePath)||p.OriginalPath||p.SourceFilePath||"",P=y==="video"||y==="pdf"||y==="file"||y==="directory"||y==="embed"?hp(e,o):void 0,V=d||e.SourceFilePath||r||"LocalBridge node",F=y==="image"?m||d||"Image asset":y==="mask"?m||d||"Image mask asset":y==="remote-monitor"?m||d||"RemoteHub monitor node. Frames and input stay adapter-gated until LocalBridge is connected.":y==="remote-control"?m||d||j||"Remote device control node. Frames and input stay adapter-gated until LocalBridge is connected.":y==="pdf"||y==="file"||y==="directory"||y==="embed"?m||j||d||r:m||d||j||"",B=v?500:R?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,q=v||R?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,ne=y==="image"||y==="mask"?up(e,o):void 0,ge=y==="image"?mp(e,ne,o):void 0,xe=!!(e.IsChunkedText||p.IsChunkedText==="true"),ve=Gt(e.TotalLineCount??p.TotalLineCount,0),he=Gt(e.ScrollOffset,0),Ge=Gt(e.MaxScroll,0);return{id:String(e.Id||crypto.randomUUID()),kind:y,title:y==="remote-monitor"?d||"Multi Desktop Monitor":y==="remote-control"?d||p.RemoteFleetDeviceName||"Remote Device":y==="template-launcher"?d||"Template Launcher":V,body:F,x:Gt((t==null?void 0:t.PositionX)??e.PositionX,0),y:Gt((t==null?void 0:t.PositionY)??e.PositionY,0),width:Math.max(160,Math.min(900,Gt((t==null?void 0:t.Width)??e.Width,B))),height:Math.max(120,Math.min(900,Gt((t==null?void 0:t.Height)??e.Height,q))),status:e.IsLoading?"running":y==="ai-task"?"idle":void 0,imageUrl:pp(ge,ne),imageStack:ge,assetUrl:P,sourceFilePath:j||void 0,isChunkedText:xe||void 0,totalLineCount:xe?ve:void 0,scrollOffset:xe?he:void 0,maxScroll:xe?Ge:void 0,isExpanded:typeof e.IsExpanded=="boolean"?e.IsExpanded:void 0,originalHeight:Gt(e.OriginalHeight,0)||void 0,tags:v?["Agent Command",p.AgentCommandRequestedRole||"Researcher",p.AgentCommandStatus||"Draft"]:R?["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"?wp(p):y==="remote-control"?vp(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 wp(e){return{RemoteHub:"Gated",RemoteRoute:"Gated",RemoteConnected:"0",RemoteTotal:"30",RemotePage:"1/1",AdapterState:"adapter-gated",...e}}function vp(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 jp(e,t){const o=[];for(const r of e){const d=String(r.Id||""),m=String(r.ParentId||"");!d||!m||!t.has(d)||!t.has(m)||o.push({id:`edge-local-${m}-${d}`,from:m,to:d,kind:"context"})}return o}async function Ip(e=ss()){const t=await _r(".mindexec/boards/_metadata.json",e),o=JSON.parse(t.content);return(Array.isArray(o)?o.filter(ht):[]).map(m=>Cr(m)).filter(m=>!!m).sort((m,p)=>String(p.UpdatedAt||"").localeCompare(String(m.UpdatedAt||"")))}async function Np(e){try{const t=await _r(".mindexec/boards/_metadata.json",e),o=JSON.parse(t.content);return Array.isArray(o)?o.filter(ht):[]}catch{return[]}}async function Ap(e,t,o,r=ss()){var Q,ft,O,it;if((Q=e.source)!=null&&Q.partialImport)throw new Error("This board was imported from a partial original payload. Export is blocked to avoid data loss.");if((ft=e.source)!=null&&ft.truncated)throw new Error("This board was truncated during import. Export is blocked to avoid data loss.");const d=(O=e.source)!=null&&O.exportedByReact?String(e.source.boardId||""):"",m=es(d),p=es(d)?d:is(),b=new Date().toISOString(),c=xp(e.nodes),y=c.map(z=>z.node),v=new Map(c.map(z=>[z.node.id,z.originalId])),R=yp(e.edges,v),j=c.map(({node:z,originalId:oe})=>Cp(z,oe,R.get(oe),b,r)),P=c.map(({node:z,originalId:oe})=>Sp(z,oe)),V=t.scale>0?t.scale:1,F=(window.innerWidth/2-t.x)/V,B=(window.innerHeight/2-t.y)/V,q=1400/V,ne=(it=e.nodes.find(z=>z.kind==="image"&&z.imageUrl))==null?void 0:it.imageUrl,ge={Id:p,UserId:"00000000-0000-0000-0000-000000000000",Title:e.name||"Untitled Board",Description:"Exported from MindExec React",ThumbnailUrl:ro(ne,r)||"",IsPublic:!1,CreatedAt:b,SyncedCloudBoardId:null,LastSyncedAt:null,LastCloudCopyStatus:null,UpdatedAt:b,LastCameraX:F,LastCameraY:B,LastCameraZ:q,LastCursorX:0,LastCursorY:0,CameraBookmarks:sp(e.settings.cameraBookmarks)},xe=`.mindexec/boards/${p}.msgpack`,ve=`.mindexec/boards/${p}.json`,he=`.mindexec/boards/${p}.layout.json`,Ge=`.mindexec/boards/${p}.delta.json`,st=`boards/${p}.delta.json`,rt=await Np(r),me=[ge,...rt.filter(z=>H(z.Id)!==p)],G=fm(j);await Wu(xe,G,o,r),await Ds(ve,JSON.stringify(j,null,2),o,r),await Ds(he,JSON.stringify(P,null,2),o,r),await Ds(".mindexec/boards/_metadata.json",JSON.stringify(me,null,2),o,r);const re=await Promise.allSettled([qi(Ge,o,r),qi(st,o,r)]);return f.emit("localBridge.board.exported",{boardId:p,nodes:j.length,edges:e.edges.length,snapshotFormat:"msgpack",msgpackBytes:G.byteLength,jsonMirror:!0,deltaCleared:re.some(z=>z.status==="fulfilled"&&z.value.success),reusedBoardId:m,stableNodeIds:c.length,assignedNodeIds:c.filter(z=>z.assignedNodeId).length,metadataStampedNodeIds:c.filter(z=>z.metadataStamped).length,duplicateOriginalNodeIds:c.filter(z=>z.duplicateOriginalId).length}),{metadata:ge,source:{kind:"localBridge",boardId:p,loadedAt:b,originalNodeCount:j.length,renderedNodeCount:j.length,truncated:!1,exportedByReact:!0,snapshotFormat:"msgpack"},nodes:y,msgpackPath:xe,boardPath:ve,layoutPath:he}}async function Mp(e,t,o=ss()){const r=await ip(e.Id,o);let d=new Map;const m=await xr([`.mindexec/boards/${e.Id}.layout.json`,`boards/${e.Id}.layout.json`],o);m&&(d=bd(m.payload));let p=null;const b=await xr([`.mindexec/boards/${e.Id}.delta.json`,`boards/${e.Id}.delta.json`],o);b&&(p=b.payload);const c=p?Ur(p)[0]:null,y=!!(p&&Fr(p)),v=y?rp(r.payload,p):r.payload;return yd(v,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(d.values()),baseUrl:o,cameraBookmarks:(c==null?void 0:c.CameraBookmarks)??e.CameraBookmarks,deltaApplied:y,deltaUpserts:p?fd(p):0,deltaDeletes:p?hd(p):0,snapshotFormat:r.format})}function yd(e,t,o={}){const r=ts(e),d=Fr(e),m=o.deltaUpserts??(d?r.length:0),p=o.deltaDeletes??(d?hd(e):0),b=o.layoutPayload?bd(o.layoutPayload):new Map,c=r.slice(0,tp),y=c.map(q=>kp(q,b.get(String(q.Id||"")),o.baseUrl??ss())),v=new Set(y.map(q=>q.id)),R=jp(c,v),j=r.length>y.length,P=d,V=o.deltaApplied===!0,F=o.boardId||is(),B=o.updatedAt||new Date().toISOString();return f.emit("localBridge.board.loaded",{boardId:F,nodes:y.length,originalNodes:r.length,truncated:j,snapshotFormat:o.snapshotFormat,partialImport:P,deltaImport:d,deltaApplied:V,deltaUpserts:m,deltaDeletes:p}),{id:`localBridge:${F}`,name:o.title||"LocalBridge Board",nodes:y,edges:R,settings:{...t,cameraBookmarks:op(o.cameraBookmarks)},updatedAt:B,source:{kind:"localBridge",boardId:F,loadedAt:new Date().toISOString(),snapshotFormat:o.snapshotFormat,originalNodeCount:r.length,renderedNodeCount:y.length,truncated:j,partialImport:P,deltaImport:d,deltaApplied:V}}}const zr=["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(","),Tp=/^[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 Rp(e){if(Tp.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 xd(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 Lp(e){return JSON.stringify({id:e.id,name:e.name,nodes:e.nodes,edges:e.edges,settings:e.settings,updatedAt:e.updatedAt})}function Sr(e,t=new Date().toISOString()){return e&&!Number.isNaN(Date.parse(e))?e:t}function Wr(e){return(e==null?void 0:e.trim().slice(0,90))||"Untitled Board"}function Cd(e){const t=xd(e.content_json),o=Sr(e.updated_at??t.updatedAt);return{id:e.id,name:Wr(e.title??t.name),updatedAt:o,createdAt:Sr(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 Ep(e,t){const o=xd(e.content_json),r=Sr(e.updated_at??o.updatedAt);return{id:e.id,name:Wr(e.title??o.name),nodes:Array.isArray(o.nodes)?o.nodes:[],edges:Array.isArray(o.edges)?o.edges:[],settings:o.settings??t,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 Hr(e){var c;const t=id(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=rs(e);if(!o)return f.emit("projectStorage.cloud.provider.skipped",{mode:"config-missing"}),{userId:null,config:t,reason:"missing-client"};const{data:r,error:d}=await o.auth.getSession();if(d||!r.session)return f.emit("projectStorage.cloud.provider.sessionMissing",{message:(d==null?void 0:d.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 Pp(e){const t=await Hr(e);if(!t.userId)return[];const o=rs(e);if(!o)return[];f.emit("projectStorage.cloud.list.requested");const{data:r,error:d}=await o.from("boards").select(zr).eq("user_id",t.userId).order("updated_at",{ascending:!1}).limit(50);if(d)throw f.emit("projectStorage.cloud.provider.failed",{operation:"list",message:d.message}),d;const m=(r??[]).map(Cd);return f.emit("projectStorage.cloud.list.loaded",{count:m.length}),m}async function _p(e,t,o){const r=await Hr(e);if(!r.userId)return null;const d=rs(e);if(!d)return null;f.emit("projectStorage.cloud.load.requested",{boardId:t});const{data:m,error:p}=await d.from("boards").select(zr).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=Ep(m,o);return f.emit("projectStorage.cloud.load.loaded",{boardId:t,nodes:b.nodes.length,edges:b.edges.length}),b}async function Dp(e,t,o){const r=await Hr(e);if(!r.userId)return null;const d=rs(e);if(!d)return null;const m=Rp(t.id),p=new Date().toISOString(),b=Wr(t.name),c={...t,id:m,name:b,updatedAt:p},y={p_board_id:m,p_title:b,p_description:null,p_thumbnail_url:null,p_is_public:!1,p_created_at:null,p_updated_at:p,p_last_camera_x:o.x,p_last_camera_y:o.y,p_last_camera_z:o.scale,p_last_cursor_x:0,p_last_cursor_y:0,p_camera_bookmarks:JSON.stringify(t.settings.cameraBookmarks??{}),p_nodes:[],p_include_json_mirror:!0};f.emit("projectStorage.cloud.save.requested",{boardId:m,sourceBoardId:t.id,nodes:t.nodes.length,edges:t.edges.length});const{error:v}=await d.rpc("save_board_snapshot",y);if(v)throw f.emit("projectStorage.cloud.provider.failed",{operation:"save-rpc",boardId:m,message:v.message}),v;const R={content_json:Lp(c),updated_at:p},{data:j,error:P}=await d.from("boards").update(R).eq("id",m).eq("user_id",r.userId).select(zr).maybeSingle();if(P)throw f.emit("projectStorage.cloud.provider.failed",{operation:"save-json-mirror",boardId:m,message:P.message}),P;const V=j?Cd(j):{id:m,name:b,updatedAt:p,createdAt:p,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 kr(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 Bp(e,t={},o=kr(e),r){if(e.length===0)return{after:new Map,boundsAfter:o};const d=eg(t.mode),m=tg(t.order),p=ag(t.anchor),b=ng(t.sizeMode),c=Math.max(0,t.gapX??24),y=Math.max(0,t.gapY??24),v=Math.max(1,t.maxColumns??12),R=wr(t.quantile??.75,.05,.95),j=e.map(Op),P=Xp(j,m),V=P.map(he=>he.width),F=P.map(he=>he.height),B=Math.max(1,t.cellWidth??xl(V,R)),q=Math.max(1,t.cellHeight??xl(F,R)),ne=Math.max(1,t.targetWidth??B),ge=Math.max(1,t.targetHeight??q),xe=Gp(p,o);if(d==="grid"){Hp(P,b,ne,ge,B,q);const he=yl(t.columns,v,o.maxX-o.minX,B,c);Fp(P,xe.x,xe.y,he,B,q,c,y)}else if(d==="masonry"){Vp(P,b==="preserve"?"uniformWidth":b,ne);const Ge=yl(t.columns,v,o.maxX-o.minX,ne,c);Up(P,xe.x,xe.y,Ge,ne,c,y)}else d==="stripHorizontal"?(Kp(P,b==="preserve"?"uniformHeight":b,ge),zp(P,xe.x,xe.y,c,ge)):(Yp(P,b==="preserve"?"uniformWidth":b,ne),Wp(P,xe.x,xe.y,y,ne));let ve=new Map(P.map(he=>[he.id,$p(he)]));return p==="selectionBoundsCenter"&&(ve=Jp(o,ve)),t.snapToGrid&&(ve=Zp(ve,Math.max(1,t.gridSize??8))),{after:ve,boundsAfter:kr(Array.from(ve.values()))}}function Op(e){return{...e,width:Math.max(1,e.width),height:Math.max(1,e.height)}}function $p(e){return{x:e.x,y:e.y,width:Math.max(1,e.width),height:Math.max(1,e.height)}}function Fp(e,t,o,r,d,m,p,b){e.forEach((c,y)=>{const v=Math.floor(y/r),R=y%r,j=t+R*(d+p),P=o+v*(m+b);c.x=j+(d-c.width)/2,c.y=P+(m-c.height)/2})}function Up(e,t,o,r,d,m,p){const b=Array.from({length:r},()=>0);for(const c of e){const y=Qp(b),v=t+y*(d+m);c.x=v+(d-c.width)/2,c.y=o+b[y],b[y]+=c.height+p}}function zp(e,t,o,r,d){let m=t;for(const p of e)p.x=m,p.y=o+(d-p.height)/2,m+=p.width+r}function Wp(e,t,o,r,d){let m=o;for(const p of e)p.x=t+(d-p.width)/2,p.y=m,m+=p.height+r}function Hp(e,t,o,r,d,m){if(t==="fitCellDownOnly")for(const p of e){const b=Math.min(1,d/p.width,m/p.height);p.width*=b,p.height*=b}else t==="uniformWidth"?Vr(e,o):t==="uniformHeight"&&Sd(e,r)}function Vp(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const d=Math.min(1,o/r.width);r.width*=d,r.height*=d}return}Vr(e,o)}function Kp(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const d=Math.min(1,o/r.height);r.width*=d,r.height*=d}return}Sd(e,o)}function Yp(e,t,o){if(t==="fitCellDownOnly"){for(const r of e){const d=Math.min(1,o/r.width);r.width*=d,r.height*=d}return}Vr(e,o)}function Vr(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 Sd(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 yl(e,t,o,r,d){if(typeof e=="number"&&e>0)return Math.round(wr(e,1,t));if(o<=1||r<=1)return 1;const m=Math.floor((o+d)/(r+d));return!Number.isFinite(m)||m<1?1:Math.round(wr(m,1,t))}function Gp(e,t,o){return{x:t.minX,y:t.minY}}function Xp(e,t){return t==="selectionOrder"?[...e].sort((o,r)=>o.selectionIndex-r.selectionIndex):qp(e)}function qp(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,d=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)<=d?(p.push(c),b=(b*(p.length-1)+c.y)/p.length):(m.push([...p].sort((y,v)=>y.x-v.x)),p=[c],b=c.y);return p.length>0&&m.push([...p].sort((c,y)=>c.x-y.x)),m.flat()}function Jp(e,t){if(t.size===0)return t;const o=kr(Array.from(t.values())),r=e.minX+(e.maxX-e.minX)/2,d=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=d-p;return new Map(Array.from(t.entries()).map(([y,v])=>[y,{...v,x:v.x+b,y:v.y+c}]))}function Zp(e,t){return new Map(Array.from(e.entries()).map(([o,r])=>[o,{...r,x:Cl(r.x,t),y:Cl(r.y,t)}]))}function xl(e,t){if(e.length===0)return 1;const o=[...e].sort((b,c)=>b-c),r=(o.length-1)*t,d=Math.floor(r),m=Math.min(o.length-1,d+1),p=r-d;return o[d]*(1-p)+o[m]*p}function Qp(e){let t=0;for(let o=1;o<e.length;o+=1)e[o]<e[t]&&(t=o);return t}function Cl(e,t){return Math.round(e/t)*t}function eg(e){const t=ls(e);return t==="grid"?"grid":t==="striphorizontal"||t==="striph"?"stripHorizontal":t==="stripvertical"||t==="stripv"?"stripVertical":"masonry"}function tg(e){return ls(e)==="selectionorder"?"selectionOrder":"spatialReading"}function ag(e){const t=ls(e);return t==="selectionboundscenter"?"selectionBoundsCenter":t==="viewporttopleft"?"viewportTopLeft":"selectionBoundsTopLeft"}function ng(e){const t=ls(e);return t==="fitcelldownonly"?"fitCellDownOnly":t==="uniformwidth"?"uniformWidth":t==="uniformheight"?"uniformHeight":"preserve"}function ls(e){return String(e??"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")}function wr(e,t,o){return Math.min(o,Math.max(t,e))}const kd=300,wd=50*1024*1024,og=800;function Se(e){return typeof e=="string"?e.length*2:0}function sg(e){let t=256;if(t+=Se(e.id),t+=Se(e.kind),t+=Se(e.title),t+=Se(e.body),t+=Se(e.result),t+=Se(e.imageUrl),t+=Se(e.assetUrl),t+=Se(e.sourceFilePath),t+=(e.tags??[]).reduce((o,r)=>o+Se(r),0),e.metadata)for(const[o,r]of Object.entries(e.metadata))t+=Se(o)+Se(r);return e.imageStack&&(t+=128+Se(e.imageStack.title),t+=e.imageStack.variants.reduce((o,r)=>o+96+Se(r.variantId)+Se(r.imageUrl)+Se(r.assetId)+Se(r.title)+Se(r.caption),0)),t}function rg(e){let t=1024+Se(e.id)+Se(e.name)+Se(e.updatedAt);return t+=e.nodes.reduce((o,r)=>o+sg(r),0),t+=e.edges.length*128,t+=Object.entries(e.settings).reduce((o,[r,d])=>o+Se(r)+Se(typeof d=="string"?d:JSON.stringify(d)),0),t}function vd(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:rg(e)}}function Sl(e,t={}){const o=t.maxEntries??kd,r=t.maxBytes??wd;let d=e.slice(Math.max(0,e.length-o)),m=d.reduce((p,b)=>p+b.estimatedBytes,0);for(;d.length>1&&m>r;){const[p,...b]=d;m-=(p==null?void 0:p.estimatedBytes)??0,d=b}return d}function pa(e,t,o={}){const r=vd(t,o),d=o.mergeWindowMs??og,m=e.slice(),p=m.at(-1);return p&&r.mergeKey&&p.mergeKey===r.mergeKey&&r.timestampMs-p.timestampMs<d?(m[m.length-1]={...p,description:r.description,timestampMs:r.timestampMs,estimatedBytes:Math.max(p.estimatedBytes,r.estimatedBytes)},Sl(m,o)):(m.push(r),Sl(m,o))}function ig(e,t,o={}){const r=vd(t,o),d=o.maxEntries??kd,m=o.maxBytes??wd;let p=[r,...e].slice(0,d),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 ds(e,...t){const o=e==null?void 0:e.metadata;if(!o)return"";for(const r of t){const d=o[r];if(typeof d=="string"&&d.trim())return d.trim()}return""}function Hn(e,t){return!!ds(e,t)}function jd(e){if(!e||!e.trim())return!1;const t=e.trim();return/^(https?:|blob:|data:|file:)/i.test(t)}function Id(e){if(!e)return"";const t=ds(e,"OriginalPath");if(t)return t;const o=String(e.body||"").trim();return jd(o)?"":o}function Nd(e){return e?Id(e)||String(e.sourceFilePath||"").trim()||String(e.assetUrl||"").trim()||String(e.imageUrl||"").trim()||String(e.body||"").trim():""}function Ad(e){return ds(e,"ThumbnailUrl","thumbnailUrl")}function lg(e){if(!e||e.kind!=="image")return!1;if(Hn(e,"ImageGenerationProvider")||Hn(e,"GeneratedImageSourceWidth")||Hn(e,"GeneratedImageSourceHeight")||Hn(e,"CodexImageQuality")||Hn(e,"ImageRouterRevisedPrompt"))return!0;const t=ds(e,"RequestedMediaOperation");return["text2image","image2image","inpaint"].includes(t.toLowerCase())}function Kr(e){if(!e)return"";if(e.kind==="image"||e.kind==="mask"){const t=lg(e)?Id(e):"",o=Ad(e),r=String(e.body||"").trim();return t||o||String(e.imageUrl||"").trim()||String(e.assetUrl||"").trim()||String(e.sourceFilePath||"").trim()||(jd(r)?r:"")}return Nd(e)||String(e.assetUrl||"").trim()||String(e.sourceFilePath||"").trim()}function Md(e){if(!e)return"";const t=Nd(e)||e.title||e.kind;return String(t||"").replace(/\\/g,"/").replace(/\/+$/,"").split("/").filter(Boolean).pop()||e.title||e.kind}const dg=2048,cg=16e3,Hs=1024,Vs=64,ug=2048,Ks=3,mg=16,pg=256,gg=new Set(["text","note","memo","markdown","code","directory"]),hg=/[\p{L}\p{M}\p{N}]{2,}/gu,kl=4,fg=8,wl=1.35;function bg(e){return gg.has(String(e||"").trim().toLowerCase())}function yg(e){const t=e.map(Cg),o=new Map,r=new Map,d=new Map,m=new Map;for(const p of t){o.set(p.id,p);for(const b of p.tokens)Ys(r,b,p.id);for(const b of p.prefixes)Ys(d,b,p.id);for(const b of p.ngrams)Ys(m,b,p.id)}return{documents:t,documentById:o,tokenIndex:r,prefixIndex:d,ngramIndex:m}}function xg(e,t,o={}){const r=Math.max(1,Math.trunc(Number(o.limit||30))),d=Za(t),m=vl(e,0,0,o.viewport,0);if(!d)return{hits:[],profile:m};const p=Array.from(Td(d)),b=Array.from(Rd(p)),c=Ed(d),y=Array.from(Ld(c)),v=new Map;for(const F of p)Gs(e.tokenIndex,F,v,8);for(const F of b)Gs(e.prefixIndex,F,v,F.length<=3?4:2);for(const F of y)Gs(e.ngramIndex,F,v,1.15);const R=vg(e,v,r),j=jg(o.allowedContentTypes),P=[];for(const F of R){const B=e.documentById.get(F);if(!B||j&&!j.has(B.contentType))continue;const q=kg(B,d,p,y);if(q<=0)continue;const ne=wg(B,o.viewport??null);P.push({nodeId:B.id,score:q+ne,textScore:q,viewportBoost:ne})}P.sort((F,B)=>B.score-F.score||F.nodeId.localeCompare(B.nodeId));const V=P.slice(0,r);return{hits:V,profile:vl(e,R.length,V.length,o.viewport,V.filter(F=>F.viewportBoost>0).length)}}function Za(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="",d=!1;for(const m of o){if(/\s/u.test(m)){d||(r+=" ",d=!0);continue}Ig(m)||(r+=m,d=!1)}return r.trim()}function Td(e){return new Set(e.match(hg)??[])}function Rd(e){const t=new Set;for(const o of e){if(!o.trim())continue;const r=Math.min(8,o.length);for(let d=2;d<=r;d+=1)t.add(o.slice(0,d))}return t}function Ld(e){const t=new Set;if(!e.trim())return t;if(e.length<=Ks)return t.add(e),t;for(let o=0;o<=e.length-Ks;o+=1)t.add(e.slice(o,o+Ks));return t}function Cg(e){const t=String(e.kind??"").trim().toLowerCase(),o=fa(e.prompt??e.title,dg),r=bg(t)?fa(e.response??e.body,cg):"",d=Sg(e.metadata,e.tags,e.metadataText),m=fa(e.sourceFilePath||e.assetUrl,ug),p=Za(o),b=Za(r),c=Za(d),y=Za(m),v=Za(t),R=[p,c,y,b,v].filter(Boolean).join(" "),j=Td(R);return{id:String(e.id),contentType:t,normalizedPrompt:p,normalizedResponse:b,normalizedMetadata:c,normalizedSourcePath:y,normalizedContentType:v,tokens:j,prefixes:Rd(j),ngrams:Ld(Ed(R)),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 Sg(e,t,o){const r=[];let d=0;if(e)for(const[m,p]of Object.entries(e)){if(d>=Vs)break;!String(m??"").trim()&&!String(p??"").trim()||(r.push(fa(m,128)),String(p??"").trim()&&r.push(fa(p,Hs)),d+=1)}return d<Vs&&(t!=null&&t.length)&&(r.push("tags",fa(t.join(" "),Hs)),d+=1),d<Vs&&(o!=null&&o.trim())&&r.push("metadata",fa(o,Hs)),r.join(" ")}function kg(e,t,o,r){let d=0;e.normalizedPrompt===t?d+=120:Vn(e.normalizedPrompt,t)&&(d+=54),Vn(e.normalizedMetadata,t)&&(d+=26),Vn(e.normalizedSourcePath,t)&&(d+=18),Vn(e.normalizedResponse,t)&&(d+=14),Vn(e.normalizedContentType,t)&&(d+=8);for(const m of o)e.tokens.has(m)&&(d+=7),e.normalizedPrompt.startsWith(m)&&(d+=10);for(const m of r)e.ngrams.has(m)&&(d+=.85);return d}function wg(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,d=Math.abs(o-t.centerX)/Math.max(1,t.halfWidth),m=Math.abs(r-t.centerY)/Math.max(1,t.halfHeight),p=Math.sqrt(d*d+m*m);if(p<=1)return kl+(1-p)*fg;if(p<=wl){const b=1-(p-1)/Math.max(.001,wl-1);return Math.max(0,b)*(kl*.75)}return 0}function vg(e,t,o){return t.size===0?e.documents.map(r=>r.id):Array.from(t.entries()).sort((r,d)=>d[1]-r[1]||r[0].localeCompare(d[0])).slice(0,Math.max(o*mg,pg)).map(([r])=>r)}function jg(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 vl(e,t,o,r,d){return{documentCount:e.documents.length,candidateCount:t,rankedCount:o,viewportBoosted:!!r,boostedCount:d,indexedTokenCount:e.tokenIndex.size,indexedPrefixCount:e.prefixIndex.size,indexedNGramCount:e.ngramIndex.size}}function Ys(e,t,o){const r=e.get(t);if(r){r.add(o);return}e.set(t,new Set([o]))}function Gs(e,t,o,r){const d=e.get(t);if(d)for(const m of d)o.set(m,(o.get(m)??0)+r)}function Ed(e){let t="";for(const o of e)/\s/u.test(o)||(t+=o);return t}function fa(e,t){const o=String(e??"");return o.length<=t?o:o.slice(0,t)}function Vn(e,t){return!!(e&&t&&e.includes(t))}function Ig(e){const t=e.codePointAt(0)??0;return t<=31||t>=127&&t<=159}const Ng=2147483647,Ag="LocalBridge access is enabled, but the bridge is not reachable. Restart LocalBridge, allow Chrome local-network access, then reload MindCanvas.",Mg="Local storage is unavailable in the hosted app until browser local storage or LocalBridge access is available.",Tg="Local storage is unavailable. Check the browser-local storage state or LocalBridge connection.",Rg="Cloud projects are unavailable until Supabase and Cloudflare R2 are configured.",Lg="Login is required before cloud projects can be used.",Eg="Cloud projects are unavailable.";function Pg(e){return e.bridgeProviderConfigured||e.browserProviderConfigured||e.embeddedProviderConfigured}function vr(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 _g(e){return vr(e,!1).isAvailable?"local":Yr(e)?"cloud":vr(e,!0).isAvailable?"local":e.cloudConfigured?"cloud":"local"}function Yr(e){return e.cloudConfigured&&e.cloudSessionAvailable}function Dg(e,t){return t.providerKind==="bridge"&&!t.bridgeReachable?Ag:e.hostedWebApp?Mg:Tg}function Bg(e){return e.cloudConfigured?Yr(e)?Eg:Lg:Rg}function Og(e){var v,R,j;const t=Yr(e),o=vr(e,!0),r=Pg(e),d=e.cloudConfigured,m=o.isAvailable,p=t;let b=e.storedMode??_g(e);b==="cloud"&&(!d||!p&&m)?b=m?"local":"cloud":b==="local"&&(!r&&d||!m&&p)&&(b="cloud");const c=e.cloudAccess,y=((v=c==null?void 0:c.denialReason)==null?void 0:v.trim())||void 0;return{currentMode:b,showLocalTab:r,showCloudTab:d,isLocalAvailable:o.isAvailable,isCloudAvailable:t,requiresCloudSignIn:e.cloudConfigured&&!t,canUseLocalProjects:m,canBrowseLocalWorkspace:o.canBrowseWorkspace,localProviderKind:o.providerKind,canUseCloudProjects:p,canSyncLocalToCloud:m&&p,cloudPlanKey:((R=c==null?void 0:c.planKey)==null?void 0:R.trim())||"free",cloudEntitlementStatus:((j=c==null?void 0:c.entitlementStatus)==null?void 0:j.trim())||(c?"active":"inactive"),currentCloudBoardCount:(c==null?void 0:c.currentBoardCount)??0,cloudBoardLimit:(c==null?void 0:c.cloudBoardLimit)??Ng,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:Dg(e,o),cloudStatusMessage:p?void 0:Bg(e)}}function $g(){const e=new Error("Queued operation was cancelled before it started.");return e.name="AbortError",e}class Fg{constructor(){Gi(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 d=this.tails.get(t)??Promise.resolve();let m;return m=(async()=>{try{try{await d}catch{}if(r!=null&&r.aborted)throw $g();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 jr="mindexec-local-mode-warning-dismissed-v1";function Ug(){try{return window.localStorage.getItem(jr)==="true"}catch{return!1}}function Pd(e,t){var o,r;if(e==="checking")return"Checking bridge";if(e==="connected"){const d=(r=(o=t==null?void 0:t.exec)==null?void 0:o.model)==null?void 0:r.trim();return d?`Bridge / ${d}`:"Bridge connected"}return e==="blocked"?"Bridge gated":e==="unavailable"?"Bridge unavailable":"Bridge idle"}function zg(e,t,o){var d,m,p,b,c;if(e!=="connected")return t||Pd(e,o);const r=[o!=null&&o.version?`version ${o.version}`:null,(d=o==null?void 0:o.exec)!=null&&d.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 Wg({state:e,message:t,status:o,hostedBridgeAccessEnabled:r,onRefresh:d,onEnableHostedBridge:m}){const p=g.useMemo(()=>e==="checking"?n.jsx(Pt,{size:14,className:"spin-icon"}):e==="connected"?n.jsx(km,{size:14}):e==="blocked"?n.jsx(ld,{size:14}):e==="unavailable"?n.jsx(wm,{size:14}):n.jsx(Br,{size:14}),[e]);return n.jsxs("div",{className:`runtime-status-pill runtime-status-pill--${e}`,title:zg(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:Pd(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 d(),disabled:e==="checking",children:n.jsx(tn,{size:13})})]})}function Hg({status:e,message:t}){const r={ready:{icon:n.jsx(mr,{size:14}),label:"Saved locally",title:"Board state is saved in this browser."},syncing:{icon:n.jsx(Pt,{size:14,className:"spin-icon"}),label:"Saving",title:"Saving board state to this browser."},error:{icon:n.jsx(Or,{size:14}),label:"Save error",title:"Board state could not be saved locally."},offline:{icon:n.jsx(Br,{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 Vg({visible:e}){const[t,o]=g.useState(Ug);if(!e||t)return null;const r=()=>{o(!0);try{window.localStorage.setItem(jr,"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":jr,children:[n.jsx("div",{className:"runtime-local-warning__icon","aria-hidden":"true",children:n.jsx(Or,{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(pt,{size:14})})]})}function Kg({bridgeState:e,bridgeMessage:t,bridgeStatus:o,syncStatus:r,syncMessage:d,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(Wg,{state:e,message:t,status:o,hostedBridgeAccessEnabled:m,onRefresh:p,onEnableHostedBridge:b}),n.jsx(Hg,{status:r,message:d})]}),n.jsx(Vg,{visible:c})]})}const Yg=/^data:image\//i;function Gg(e){const t=String(e||"").trim();if(!t)return{src:null,reason:"empty",urlKind:"empty"};const o=t.toLowerCase();return Yg.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 Xs({src:e,alt:t="",className:o="",testId:r="secure-image",traceId:d,kind:m="image",title:p}){const b=g.useMemo(()=>Gg(e),[e]),[c,y]=g.useState(b.src?"loading":"blocked");g.useEffect(()=>{const P=b.src?"loading":"blocked";y(P),b.src||f.emit("secureImage.blocked",{id:d,kind:m,reason:b.reason,urlKind:b.urlKind})},[m,b.reason,b.src,b.urlKind,d]);const v=()=>{y("loaded"),f.emit("secureImage.loaded",{id:d,kind:m,urlKind:b.urlKind})},R=()=>{y("error"),f.emit("secureImage.error",{id:d,kind:m,urlKind:b.urlKind})},j=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:j,children:[b.src&&n.jsx("img",{src:b.src,alt:t,loading:"lazy",decoding:"async",draggable:!1,onLoad:v,onError:R}),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":j,children:c==="blocked"?n.jsx(vm,{size:18}):n.jsx(Or,{size:18})})]})}const Xg={note:gr,text:gt,"ai-task":no,image:oo,mask:oo,video:so,embed:nn,code:an,markdown:gt,"csv-table":gt,memo:gr,pdf:gt,file:dd,directory:jm,"template-launcher":gt,"remote-monitor":pr,"remote-control":pr},qs=[{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."}],jl=500,qg=48,Jg=new Set(["mindcanvasagent","agentcommand"]),Zg=new Set(["codenote","code-note"]),Qg=["multidesktopmonitor","remotehubmonitor","remotefleetmonitor","smartviewmonitor"],eh=["remotedevice","remotefleetdevice","remotecontrol"];function th(e){const t=on(e,"SemanticType","semanticType","RemoteFleetSemanticType").trim().toLowerCase(),o=on(e,"RemoteFleetNodeRole","remoteFleetNodeRole").trim().toLowerCase(),r=on(e,"RemoteFleetSchemaVersion","remoteFleetSchemaVersion").trim().toLowerCase();return e.kind==="remote-monitor"||t==="remotefleetmonitor"||o==="fleet-monitor"||r==="remote-fleet@1"||Dd(e,["RemoteFleetViewMode","RemoteFleetHubStatus","RemoteFleetDevicesJson","RemoteFleetDeviceCount","RemoteFleetConnectedDeviceCount","RemoteFleetProjectionMode","RemoteFleetCanvasPagination","RemoteHub","RemoteRoute","RemotePage","RemoteVisibleBudget"])||_d(e,Qg,["remote","monitor"])}function ah(e){const t=on(e,"SemanticType","semanticType","RemoteFleetSemanticType").trim().toLowerCase(),o=on(e,"RemoteFleetNodeRole","remoteFleetNodeRole").trim().toLowerCase(),r=on(e,"RemoteFleetSchemaVersion","remoteFleetSchemaVersion").trim().toLowerCase();return e.kind==="remote-control"||t==="remotefleetdevice"||o==="fleet-device"||r==="remote-fleet-device@1"||Dd(e,["RemoteFleetDeviceId","RemoteFleetDeviceName","RemoteFleetDevicePlatform","RemoteFleetDeviceConnected","RemoteFleetDeviceCanControl","RemoteFleetSourceMonitorNodeId"])||_d(e,eh,["remote","control"])}function _d(e,t,o){const r=(e.tags??[]).map(b=>b.trim().toLowerCase()).filter(Boolean),d=o.every(b=>r.includes(b)),p=[e.title,e.body,e.sourceFilePath,e.assetUrl,...r].join(" ").toLowerCase().replace(/[^a-z0-9]+/g,"");return d||t.some(b=>p.includes(b))}function on(e,...t){const o=e.metadata??{};for(const d of t){const m=o[d];if(m!=null)return String(m)}const r=new Set(t.map(d=>d.toLowerCase()));for(const[d,m]of Object.entries(o))if(r.has(d.toLowerCase())&&m!==void 0&&m!==null)return String(m);return""}function Dd(e,t){const o=e.metadata??{},r=new Set(t.map(d=>d.toLowerCase()));return Object.entries(o).some(([d,m])=>r.has(d.toLowerCase())&&m!==void 0&&m!==null&&String(m).trim()!=="")}const Ir=[{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"}],nh=g.memo(function({node:t,selected:o,pulsing:r,connectionDraft:d,onSelect:m,onDragStart:p,onResizeStart:b,onPatch:c,onDelete:y,onDuplicate:v,onRun:R,onPin:j,onOpenResult:P,onToggleAiReference:V,onCopyNode:F,onCopyEmbedReference:B,onFitNodeHeight:q,onToggleNodeExpanded:ne,onToggleWordWrap:ge,onStageCompany:xe,onOpenCompanyGraph:ve,onSyncCompanyGoal:he,onRefreshCompany:Ge,onSetCompanyStatus:st,onRemoveCompany:rt,onOpenAsset:me,onOpenDirectorySettings:G,onScanDirectory:re,onCreateRemoteControl:Q,onGenerateTemplateCard:ft}){var nt,At,aa,Ra,Ut,La,ee,Ve,Ea,Sn,I,K,se,kn,Mt,Pa,_a,wn,vn,Da,jn,na,In,Ba,oa,zt,De,Le,Oa,Nn,An,sa,ra,$a,Wt;const O=String(((nt=t.metadata)==null?void 0:nt.AutomationNodeKind)||((At=t.metadata)==null?void 0:At.AutomationTemplateKey)||((aa=t.metadata)==null?void 0:aa.AutomationInferredKind)||"").trim().toLowerCase(),it=String(((Ra=t.metadata)==null?void 0:Ra.SemanticType)||((Ut=t.metadata)==null?void 0:Ut.semanticType)||"").trim().toLowerCase(),z=t.kind==="memo"&&Jg.has(it),oe=t.kind==="memo"&&Zg.has(it),xa=String(((La=t.metadata)==null?void 0:La.AgentCommandStatus)||"Draft"),ye=String(((ee=t.metadata)==null?void 0:ee.AgentCommandMode)||"Task"),lt=String(((Ve=t.metadata)==null?void 0:Ve.AgentCommandRequestedRole)||"Researcher"),St=String(((Ea=t.metadata)==null?void 0:Ea.CodeNoteStatus)||"Draft"),Jt=String(((Sn=t.metadata)==null?void 0:Sn.CodeNoteSyncState)||"Unlinked"),Zt=String(((I=t.metadata)==null?void 0:I.CodeNoteKind)||"Feature"),io=z?no:oe?an:O==="image-generate"?oo:O==="video-generate"?so:Xg[t.kind],Ue=d&&d.from!==t.id,lo=t.kind==="ai-task",_t=t.kind==="pdf"||t.kind==="file"||t.kind==="directory",bt=th(t),ke=ah(t),te=bt||ke,cs=bt?"monitor":ke?"control":"",Me=t.kind==="template-launcher"||String(((K=t.metadata)==null?void 0:K.semanticType)||((se=t.metadata)==null?void 0:se.SemanticType)||"").toLowerCase()==="templatelauncher",Qe=t.kind==="video",ce=t.kind==="embed",Te=t.kind==="mask",ze=t.kind==="memo",co=t.kind==="markdown",fe=t.kind==="csv-table",Oe=ze?mh(t):null,Dt=g.useRef(null),kt=Qe?Bd(t):"",Ie=Qe?gh(t):"",dt=ce?hh(t):"",$e=ce?fh(t):"",uo=ce?bh(t,dt):"",Ca=ce?yh(t):"",Ne=(((kn=t.imageStack)==null?void 0:kn.variants)??[]).filter(x=>!!x.imageUrl),We=Ne.find(x=>{var L;return x.variantId===((L=t.imageStack)==null?void 0:L.activeVariantId)})??Ne[0]??null,Bt=t.kind==="image"||Te?(We==null?void 0:We.imageUrl)||Kr(t):"",mo=We?Ne.findIndex(x=>x.variantId===We.variantId):-1,Sa=!Bt&&!_t&&!te&&!Me&&!Qe&&!ce,po=Sa&&!ze,Xe=t.isExpanded===!1&&Number(t.originalHeight??0)>t.height+1,He=!te&&!["image","mask","video","embed","pdf","file","directory","template-launcher","remote-monitor","remote-control"].includes(t.kind),Pe=t.aiEnabled!==!1,ka=ph(t),go=!!(t.isChunkedText||((Mt=t.metadata)==null?void 0:Mt.IsChunkedText)==="true"),be=Number(t.totalLineCount??((Pa=t.metadata)==null?void 0:Pa.TotalLineCount)??0),wa=t.sourceFilePath||((_a=t.metadata)==null?void 0:_a.FileName)||t.title,ho=go?n.jsxs("div",{className:"node-chunked-text-state","data-testid":"node-chunked-text-state",title:wa,children:[n.jsx(gt,{size:12}),n.jsx("strong",{children:"Chunked text"}),Number.isFinite(be)&&be>0&&n.jsxs("span",{children:[be.toLocaleString()," lines"]})]}):null,dn=t.kind==="directory"?(wn=t.metadata)==null?void 0:wn.Include:null,Re=t.kind==="directory"?(vn=t.metadata)==null?void 0:vn.Exclude:null,yt=t.kind==="directory"?(Da=t.metadata)==null?void 0:Da.DirectoryFileCount:null,Ot=t.kind==="directory"?(jn=t.metadata)==null?void 0:jn.DirectoryDirCount:null,va=t.kind==="directory"?(na=t.metadata)==null?void 0:na.DirectoryLastScanUtc:null,[fo,_e]=g.useState(!1),[cn,un]=g.useState(null),[mn,ja]=g.useState(((In=t.metadata)==null?void 0:In.CompanyExecutionMode)||"Auto"),[wt,pn]=g.useState(((Ba=t.metadata)==null?void 0:Ba.CompanySubAgents)!=="false"),[gn,$t]=g.useState(!1),[qe,hn]=g.useState(null),Qt=g.useMemo(()=>fe?ih(t.body,qe):null,[qe,fe,t.body]),ie=g.useMemo(()=>Me?od(t.body):null,[Me,t.body]),et=(ie==null?void 0:ie.options.find(x=>x.id===ie.selectedOptionId))??(ie==null?void 0:ie.options[0])??null,ct=Vu(ie),vt=qs.find(x=>x.key===mn)||qs[0],jt=String(((oa=t.metadata)==null?void 0:oa.CompanyStatus)||(t.companyMode?"Staged":"")).trim(),xt=jt.toLowerCase(),us=xt==="paused",fn=xt==="archived",bo=x=>{x.stopPropagation();const L=x.currentTarget.getBoundingClientRect();un(sh(L)),_e(le=>!le)},bn=x=>{x.stopPropagation(),xe(t.id,{executionMode:vt.key,enableSubAgents:wt}),_e(!1)},ms=x=>{x.stopPropagation(),ve(t.id)},yn=(x,L)=>{L.stopPropagation();const le=Ne.find($=>$.variantId===x);!le||!t.imageStack||le.variantId===t.imageStack.activeVariantId||(f.emit("node.imageStack.variant",{nodeId:t.id,variantId:le.variantId,variantCount:Ne.length}),c(t.id,{imageUrl:le.imageUrl,imageStack:{...t.imageStack,activeVariantId:le.variantId,variants:Ne,updatedAtUtc:new Date().toISOString()},metadata:{...t.metadata??{},ImageStackActiveVariantId:le.variantId}}))},ea=(x,L)=>{if(L.stopPropagation(),!!ze){if((Oe==null?void 0:Oe.key)===x){$t(!1);return}f.emit("node.memoColor.changed",{id:t.id,colorKey:x}),c(t.id,{metadata:{...t.metadata??{},memoColor:x,memoColorIsCustom:"true"}}),$t(!1)}},xn=x=>{var ia,Fa;if(x.stopPropagation(),!z)return;const L=(t.body||t.title||"Agent command objective").trim(),le=["Clarify the objective and constraints.","Collect linked canvas context or code notes.","Draft an execution plan before external adapter use."],$=["canvas-context","agent-command-planning","adapter-gated-execution"],Ee=["Canvas.ListAgentCommands","Canvas.UpdateAgentCommand","Canvas.PlanAgentCommand","Canvas.SetAgentCommandState"],Tt=["MindCanvasAgent",ye,lt],Fe=["Local React plan staged for this Agent Command.",`Role: ${lt}`,`Mode: ${ye}`,`Objective: ${L.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:ye,requestedRole:lt,adapterState:((ia=t.metadata)==null?void 0:ia.AdapterState)??"adapter-gated"}),c(t.id,{tags:["Agent Command",lt,"Planned"],metadata:{...t.metadata??{},AgentCommandStatus:"Planned",AgentCommandPlannerSummary:Fe,AgentCommandPlanSteps:JSON.stringify(le),AgentCommandPlannedSkills:JSON.stringify($),AgentCommandPlannedTools:JSON.stringify(Ee),AgentCommandPlannedConcepts:JSON.stringify(Tt),AgentCommandLastExplorationPhase:"planned-local",AdapterState:((Fa=t.metadata)==null?void 0:Fa.AdapterState)??"adapter-gated"}})},It=x=>{var Ee,Tt;if(x.stopPropagation(),!z)return;const L=new Date().toISOString(),le=[`Agent Command: ${t.title||"Agent"}`,`Status: Completed locally at ${L}`,"","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
  `),$=[`${L} Local React execution staged.`,`${L} Adapter gated; no external tools invoked.`];f.emit("mindcanvas.agentCommand.executed.local",{id:t.id,mode:ye,requestedRole:lt,adapterState:((Ee=t.metadata)==null?void 0:Ee.AdapterState)??"adapter-gated"}),c(t.id,{status:"done",result:le,tags:["Agent Command",lt,"Completed"],metadata:{...t.metadata??{},AgentCommandStatus:"Completed",AgentCommandLastExecutedAtUtc:L,AgentCommandConsoleLogs:JSON.stringify($),AgentCommandResultLinks:JSON.stringify([]),AdapterState:((Tt=t.metadata)==null?void 0:Tt.AdapterState)??"adapter-gated"}})},Ia=(x,L,le,$)=>{var Tt,Fe,ia;if(x.stopPropagation(),!oe)return;const Ee=L==="Implemented"?JSON.stringify([`local-code-note://${t.id}/implementation-handoff.md`]):((Tt=t.metadata)==null?void 0:Tt.CodeNoteOutputArtifacts)||"[]";f.emit("mindcanvas.codeNote.state",{id:t.id,status:L,syncState:le,reason:$,adapterState:((Fe=t.metadata)==null?void 0:Fe.AdapterState)??"local-canvas-only"}),c(t.id,{tags:["Code Note",L,le],metadata:{...t.metadata??{},CodeNoteStatus:L,CodeNoteSyncState:le,CodeNoteOutputArtifacts:Ee,...L==="Implemented"||L==="Reviewed"?{CodeNoteLastAppliedAtUtc:new Date().toISOString()}:{},AdapterState:((ia=t.metadata)==null?void 0:ia.AdapterState)??"local-canvas-only"}})},ta=()=>{pn(x=>!x)},Ft=async x=>{if(x.stopPropagation(),!Ie||!Dt.current){f.emit("node.video.unavailable",{id:t.id,reason:Ie?"element-missing":"source-missing"});return}try{await Dt.current.play(),f.emit("node.video.play",{id:t.id,sourceKind:Nl(Ie)})}catch(L){f.emit("node.video.unavailable",{id:t.id,reason:L instanceof Error?L.message:String(L)})}},yo=x=>{if(x.stopPropagation(),!Ie||!Dt.current){f.emit("node.video.unavailable",{id:t.id,reason:Ie?"element-missing":"source-missing"});return}Dt.current.pause(),f.emit("node.video.pause",{id:t.id,sourceKind:Nl(Ie)})},tt=x=>{x.stopPropagation(),dt&&B(t.id,dt)},Na=x=>{c(t.id,{body:JSON.stringify(x),metadata:{...t.metadata??{},templateLauncherSelectedOptionId:x.selectedOptionId??""}})},Nt=(x,L)=>{if(L.stopPropagation(),!ie)return;const le=Gu(ie,x);Na(le),f.emit("templateCard.option.select",{nodeId:t.id,optionId:le.selectedOptionId??null})},Aa=(x,L)=>{if(!ie)return;const le=Xu(ie,x,L);Na(le),f.emit("templateCard.input.patch",{nodeId:t.id,key:x})},Cn=x=>{x.stopPropagation(),!(!ie||ct)&&ft(t.id,ie.selectedOptionId??null,ie.inputValues)},Je=He&&fo?n.jsxs("div",{className:"node-company-launcher","data-testid":"node-company-launcher",style:cn?{left:cn.left,top:cn.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:qs.map(x=>n.jsxs("button",{type:"button",className:x.key===vt.key?"is-selected":"","data-company-mode":x.key,onClick:()=>ja(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":wt,onClick:x=>{x.stopPropagation(),ta()},children:[n.jsx("span",{className:"node-company-toggle-indicator","aria-hidden":"true",children:wt?"On":"Off"}),n.jsxs("span",{children:[n.jsx(cd,{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:()=>_e(!1),children:"Cancel"}),n.jsx("button",{type:"button",className:"btn btn-primary","data-testid":"node-company-run-confirm",onClick:bn,children:"Stage Company"})]})]}):null,Ma={width:t.width,height:t.height,transform:`translate3d(${t.x}px, ${t.y}px, 0)`,...Oe?{"--memo-bg":Oe.surface,"--memo-border":Oe.border,"--memo-ink":Oe.ink,"--memo-ring":Oe.ring,"--memo-accent":Oe.swatch}:{}},Ta=n.jsxs(n.Fragment,{children:[po&&n.jsx("button",{type:"button",title:Pe?"Disable AI reference":"Enable AI reference","aria-label":Pe?"Disable AI reference":"Enable AI reference",className:Pe?"is-active-ai":"is-inactive-ai",onPointerDown:x=>x.stopPropagation(),onClick:()=>V(t.id),children:n.jsx(Im,{size:13})}),ze&&n.jsx("button",{type:"button",title:"Change memo color","aria-label":"Change memo color","aria-pressed":gn,className:"is-memo-color-action","data-testid":"node-memo-color-open",onPointerDown:x=>x.stopPropagation(),onClick:x=>{x.stopPropagation(),$t(L=>!L)},children:n.jsx(ud,{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:()=>ge(t.id),children:n.jsx(Nm,{size:13})}),n.jsx("button",{type:"button",title:Bt?"Copy image to clipboard":"Copy content","aria-label":Bt?"Copy image to clipboard":"Copy content",onPointerDown:x=>x.stopPropagation(),onClick:()=>F(t.id),children:n.jsx(Qn,{size:13})}),n.jsx("button",{type:"button",title:"Duplicate node","aria-label":"Duplicate node","data-testid":"node-duplicate",onPointerDown:x=>x.stopPropagation(),onClick:()=>v(t.id),children:n.jsx(md,{size:13})}),Sa&&n.jsx("button",{type:"button",title:"Fit text height","aria-label":"Fit text height",onPointerDown:x=>x.stopPropagation(),onClick:()=>q(t.id),children:n.jsx(Am,{size:13})}),Sa&&n.jsx("button",{type:"button",title:Xe?"Expand node":"Collapse node","aria-label":Xe?"Expand node":"Collapse node","aria-pressed":Xe,onPointerDown:x=>x.stopPropagation(),onClick:()=>ne(t.id),children:Xe?n.jsx(rl,{size:13}):n.jsx(Mm,{size:13})}),lo&&n.jsx("button",{type:"button",title:"Run node",onPointerDown:x=>x.stopPropagation(),onClick:()=>R(t.id),children:n.jsx(ha,{size:13})}),He&&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?ms:bo,children:n.jsx(il,{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(Zo,{size:13})})]}),we=lo?n.jsxs("div",{className:"node-result-row","data-testid":"node-external-pins",children:[n.jsxs("button",{className:`node-pin node-pin--context ${Ue?"can-receive":""}`,type:"button",title:"Context input",onPointerDown:x=>x.stopPropagation(),onClick:x=>{x.stopPropagation(),j(t.id,"context")},children:[n.jsx(ll,{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?P(t.id):j(t.id,"result")},children:[n.jsx(rl,{size:11}),"Result"]})]}):n.jsxs("button",{className:`node-context-source ${d?"can-receive":""}`,type:"button",title:"Use this node as AI Task context",onPointerDown:x=>x.stopPropagation(),onClick:x=>{x.stopPropagation(),j(t.id,"context")},children:[n.jsx(ll,{size:10}),n.jsx("span",{children:"Context"})]}),pe=Te||Ne.length>1||ce||Qe?n.jsxs("div",{className:"node-surface-badges","data-testid":"node-surface-badges",children:[Te&&n.jsx("span",{className:"node-mask-badge",title:"Image edit mask reference",children:"Mask"}),Ne.length>1&&n.jsxs("span",{className:"node-image-stack-badge",title:"Image stack variants",children:[Math.max(1,mo+1),"/",Ne.length]}),ce&&n.jsx("span",{className:"node-embed-badge",children:$e==="youtube"?"YouTube":"Embed"}),Qe&&n.jsx("span",{className:"node-video-badge",children:((zt=t.metadata)==null?void 0:zt.MediaModel)||((De=t.metadata)==null?void 0:De.MediaProvider)||"Video"})]}):null,Co=Ne.length>1||ce||Qe||_t?n.jsxs("div",{className:"node-surface-actions","data-testid":"node-surface-actions",children:[Ne.length>1&&n.jsx("div",{className:"node-image-stack-rail","aria-label":"Image stack variants",children:Ne.map((x,L)=>n.jsx("button",{type:"button",className:x.variantId===(We==null?void 0:We.variantId)?"is-active":"",title:x.title||x.caption||`Variant ${L+1}`,"aria-label":`Show image variant ${L+1}`,onPointerDown:le=>le.stopPropagation(),onClick:le=>yn(x.variantId,le),children:n.jsx(Xs,{src:x.imageUrl,traceId:`${t.id}:${x.variantId||L}`,kind:"image-stack-variant",testId:"node-image-stack-thumb"})},x.variantId||`${x.imageUrl}-${L}`))}),ce&&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(),dt&&me(t,"external")},children:[n.jsx(nn,{size:13}),n.jsx("span",{children:"Open"})]}),n.jsxs("button",{type:"button",title:"Copy URL","aria-label":"Copy URL",onPointerDown:x=>x.stopPropagation(),onClick:tt,children:[n.jsx(Qn,{size:13}),n.jsx("span",{children:"Copy URL"})]})]}),Qe&&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:Ft,children:[n.jsx(ha,{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:yo,children:[n.jsx(Qo,{size:13}),n.jsx("span",{children:"Pause"})]})]}),_t&&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:()=>me(t,"preview"),children:[n.jsx(Tm,{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:()=>me(t,"external"),children:[n.jsx(nn,{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:()=>re(t.id),children:[n.jsx(tn,{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:()=>G(t.id),children:[n.jsx(hr,{size:13}),n.jsx("span",{children:"Settings"})]})]})]}):null,So=te?null:n.jsxs("div",{className:"node-external-action-rail","data-testid":"node-external-action-rail",onPointerDown:x=>x.stopPropagation(),onClick:x=>x.stopPropagation(),children:[Co,n.jsx("div",{className:"node-external-rail__pins",children:we}),n.jsx("div",{className:"node-actions","data-testid":"node-actions",children:Ta}),z&&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:xn,children:"Plan"}),n.jsx("button",{type:"button","data-testid":"node-agent-command-execute","data-agent-command-action":"execute",disabled:xa==="Running",onClick:It,children:"Execute"})]}),oe&&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=>Ia(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=>Ia(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=>Ia(x,St,"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":jt||"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:fn,onClick:()=>he(t.id),children:n.jsx(pd,{size:12})}),n.jsx("button",{type:"button",title:"Refresh Company status","aria-label":"Refresh Company status","data-testid":"node-company-refresh",onClick:()=>Ge(t.id),children:n.jsx(tn,{size:12})}),fn?n.jsx("button",{type:"button",title:"Company is archived","aria-label":"Company is archived","data-testid":"node-company-archived",disabled:!0,children:n.jsx(fr,{size:12})}):us?n.jsx("button",{type:"button",title:"Resume Company","aria-label":"Resume Company","data-testid":"node-company-resume",onClick:()=>st(t.id,"Staged"),children:n.jsx(ha,{size:12})}):n.jsx("button",{type:"button",title:"Pause Company","aria-label":"Pause Company","data-testid":"node-company-pause",onClick:()=>st(t.id,"Paused"),children:n.jsx(Qo,{size:12})}),!fn&&n.jsx("button",{type:"button",title:"Archive Company","aria-label":"Archive Company","data-testid":"node-company-archive",onClick:()=>st(t.id,"Archived"),children:n.jsx(fr,{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:()=>rt(t.id),children:n.jsx(pt,{size:12})})]})]}),ps=te?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})]}),pe,ho,z&&n.jsxs("div",{className:"node-agent-command-state","data-testid":"node-agent-command-state","data-agent-command-status":xa,"data-agent-command-mode":ye,"data-agent-command-role":lt,"data-agent-command-adapter-state":((Le=t.metadata)==null?void 0:Le.AdapterState)||"adapter-gated",children:[n.jsx(no,{size:12}),n.jsx("strong",{children:"AC"}),n.jsx("span",{children:xa}),n.jsx("span",{children:ye}),n.jsx("span",{children:lt})]}),oe&&n.jsxs("div",{className:"node-code-note-state","data-testid":"node-code-note-state","data-code-note-status":St,"data-code-note-sync-state":Jt,"data-code-note-kind":Zt,"data-code-note-adapter-state":((Oa=t.metadata)==null?void 0:Oa.AdapterState)||"local-canvas-only",children:[n.jsx(an,{size:12}),n.jsx("strong",{children:"CN"}),n.jsx("span",{children:St}),n.jsx("span",{children:Jt}),n.jsx("span",{children:Zt})]}),t.companyMode&&n.jsxs("div",{className:"node-company-state","data-testid":"node-company-state",children:[n.jsx(il,{size:12}),n.jsx("strong",{children:((Nn=t.metadata)==null?void 0:Nn.CompanyExecutionModeLabel)||"Company staged"}),n.jsx("span",{children:((An=t.metadata)==null?void 0:An.CompanySubAgents)==="false"?"single-agent":"sub-agents"})]})]})});return n.jsxs("article",{className:`canvas-node canvas-node--${t.kind} ${te?"canvas-node--remote-surface":""} ${bt?"canvas-node--remote-monitor-surface":""} ${ke?"canvas-node--remote-control-surface":""} ${O?`canvas-node--automation-${O}`:""} ${z?"canvas-node--agent-command":""} ${oe?"canvas-node--code-note":""} ${o?"is-selected":""} ${r?"is-pulsing":""} ${Pe?"":"is-ai-disabled"} ${t.wordWrap===!1?"is-nowrap":""} ${Xe?"is-collapsed":""} ${t.companyMode?`is-company-${t.companyMode}`:""}`,style:Ma,"data-node-id":t.id,"data-automation-node-kind":O||void 0,"data-automation-external-policy":((sa=t.metadata)==null?void 0:sa.AutomationExternalActionPolicy)||void 0,"data-media-generation-contract":((ra=t.metadata)==null?void 0:ra.MediaGenerationContract)||void 0,"data-agent-command-node":z?"true":void 0,"data-agent-command-status":z?xa:void 0,"data-agent-command-mode":z?ye:void 0,"data-agent-command-role":z?lt:void 0,"data-code-note-node":oe?"true":void 0,"data-code-note-status":oe?St:void 0,"data-code-note-sync-state":oe?Jt:void 0,"data-code-note-kind":oe?Zt:void 0,"data-remote-surface-chrome":te?"self-contained":void 0,"data-remote-surface-kind":cs||void 0,"data-remote-surface-title-owner":te?"inner-remote-view":void 0,"data-remote-surface-scroll-owner":te?"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 L=x.target instanceof HTMLElement?x.target:null;L!=null&&L.closest('button,input,textarea,select,[contenteditable="true"],[contenteditable=""]')||(x.stopPropagation(),re(t.id))},children:[!te&&n.jsxs("div",{className:"node-header",children:[n.jsx("span",{className:"node-kind",children:n.jsx(io,{size:14})}),n.jsx("input",{value:t.title,"aria-label":"Node title",readOnly:Me,onPointerDown:x=>x.stopPropagation(),onChange:x=>{Me||c(t.id,{title:x.target.value})}})]}),Je&&typeof document<"u"?Du.createPortal(Je,document.body):Je,ze&&gn&&Oe&&n.jsx("div",{className:"node-memo-palette","data-testid":"node-memo-palette",onPointerDown:x=>x.stopPropagation(),onClick:x=>x.stopPropagation(),children:Ir.map(x=>n.jsx("button",{type:"button",className:x.key===Oe.key?"is-active":"",title:`${x.label} memo color`,"aria-label":`${x.label} memo color`,"aria-pressed":x.key===Oe.key,"data-memo-color":x.key,style:{"--memo-swatch":x.swatch,"--memo-swatch-ring":x.ring},onPointerDown:L=>L.stopPropagation(),onClick:L=>ea(x.key,L)},x.key))}),Bt?n.jsx("div",{className:`node-image-wrap ${Ne.length>1?"node-image-wrap--stack":""} ${Te?"node-image-wrap--mask":""}`,"data-testid":Te?"node-mask-preview":Ne.length>1?"node-image-stack":void 0,children:n.jsx(Xs,{src:Bt,traceId:t.id,kind:Te?"mask":"node-image",testId:"node-secure-image"})}):bt?n.jsx(Ku,{node:t,onPatch:c,onCreateRemoteControl:Q}):ke?n.jsx(Yu,{node:t,onPatch:c}):Me?n.jsx("div",{className:"node-template-card","data-testid":"node-template-card",children:ie&&et?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"node-template-card__summary",children:[n.jsx("strong",{children:ie.prompt||ie.description}),n.jsx("span",{children:et.description||ie.description})]}),n.jsx("div",{className:"node-template-card__options","data-testid":"node-template-card-options",children:ie.options.map(x=>n.jsxs("button",{type:"button",className:x.id===et.id?"is-active":"","data-testid":"node-template-card-option","data-option-id":x.id,onPointerDown:L=>L.stopPropagation(),onClick:L=>Nt(x.id,L),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:[et.inputs.map(x=>n.jsx(oh,{input:x,value:ie.inputValues[x.key]??"",onChange:L=>Aa(x.key,L)},x.key)),et.inputs.length===0&&n.jsx("p",{className:"node-template-card__empty",children:ie.noInputsLabel||"No inputs needed."})]}),ct&&n.jsx("div",{className:"node-template-card__validation",children:ct}),n.jsxs("button",{type:"button",className:"node-template-card__generate","data-testid":"node-template-card-generate",disabled:!!ct,onPointerDown:Cn,onClick:x=>x.stopPropagation(),children:[n.jsx(ha,{size:13}),n.jsx("span",{children:ie.generateLabel||ie.actionLabel||"Generate"})]})]}):n.jsx("div",{className:"node-template-card__missing",children:"Template card payload is unavailable."})}):ce?n.jsxs("div",{className:`node-embed-card ${Ca?"has-embed-thumbnail":"is-embed-link"}`,"data-testid":"node-embed-card",children:[n.jsx("div",{className:"node-embed-preview",children:Ca?n.jsx(Xs,{src:Ca,traceId:t.id,kind:"embed-thumbnail",testId:"node-embed-thumbnail"}):n.jsxs("div",{className:"node-embed-placeholder",children:[n.jsx(nn,{size:24}),n.jsx("strong",{children:$e==="youtube"?"YouTube":"Web embed"}),n.jsx("span",{children:uo||dt||"External link"})]})}),n.jsx("textarea",{value:t.body,"aria-label":"Embed URL or description",spellCheck:!1,onPointerDown:x=>x.stopPropagation(),onChange:x=>{const L=x.target.value;c(t.id,{body:L,assetUrl:L,metadata:{...t.metadata??{},sourceUrl:L,url:L}})}}),dt&&n.jsx("span",{className:"node-embed-source",title:dt,children:dt})]}):Qe?n.jsxs("div",{className:`node-video-card ${Ie?"has-video-source":"is-video-prompt"}`,"data-testid":"node-video-card",children:[Ie?n.jsx("video",{ref:Dt,src:Ie,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(so,{size:24}),n.jsx("strong",{children:"Video prompt"}),n.jsx("span",{children:(($a=t.metadata)==null?void 0:$a.MediaModel)||((Wt=t.metadata)==null?void 0:Wt.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})}),Ie&&n.jsx("span",{className:"node-video-source",title:kt,children:kt})]}):_t?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(io,{size:28})}),n.jsxs("div",{className:"node-asset-copy",children:[n.jsx("strong",{title:ka,children:ka}),n.jsx("span",{children:t.kind==="directory"?"Directory reference":t.kind==="pdf"?"PDF document":"File reference"}),t.kind==="directory"&&(dn||Re||yt||Ot||va)&&n.jsxs("dl",{className:"node-asset-meta","data-testid":"node-directory-meta",children:[(yt||Ot)&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{children:"Scanned"}),n.jsxs("dd",{children:[Number(yt??0).toLocaleString()," files / ",Number(Ot??0).toLocaleString()," folders"]})]}),dn&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{children:"Include"}),n.jsx("dd",{children:dn})]}),Re&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{children:"Exclude"}),n.jsx("dd",{children:Re})]}),va&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{children:"Updated"}),n.jsx("dd",{children:new Date(va).toLocaleString()})]})]})]})]}):fe?n.jsxs("div",{className:"node-csv-card","data-testid":"node-csv-card",children:[n.jsx(rh,{preview:Qt,sort:qe,onSort:x=>{const L=(qe==null?void 0:qe.columnIndex)===x&&qe.direction==="asc"?"desc":"asc";hn({columnIndex:x,direction:L}),f.emit("node.csvTable.sort",{id:t.id,columnIndex:x,direction:L})}}),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})})]}):co?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(ch,{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})})}),ps,So,n.jsx("button",{type:"button",className:"node-resize-handle",title:"Resize node","aria-label":"Resize node",onPointerDown:x=>b(t.id,x)})]})});function oh({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 sh(e){const r=Math.min(430,window.innerHeight-24),d=Math.max(12,window.innerWidth-332-12),m=Math.min(Math.max(e.right-332,12),d),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 rh({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,d)=>{const m=(t==null?void 0:t.columnIndex)===d,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-${d}`,"aria-label":`Sort CSV by ${r||`Column ${d+1}`} ${p}`,onClick:()=>o(d),children:[n.jsx("span",{children:r||`Column ${d+1}`}),m&&n.jsx("small",{children:t.direction==="asc"?"Asc":"Desc"})]})},`${r}-${d}`)})})}),n.jsx("tbody",{children:e.rows.map((r,d)=>n.jsx("tr",{children:e.headers.map((m,p)=>n.jsx("td",{className:"csv-table-cell",children:r[p]??""},`csv-cell-${d}-${p}`))},`csv-row-${d}`))})]}),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 ih(e,t){const o=lh(e,jl+1);if(o.length===0)return null;const r=Math.min(qg,Math.max(...o.map(c=>c.length),1)),d=Il(o[0],r).map((c,y)=>c.trim()||`Column ${y+1}`),m=o.slice(1,jl+1).map(c=>Il(c,r)),p=t?[...m].sort((c,y)=>dh(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:d,rows:p,totalRows:b,columnCount:r,renderedRows:p.length,truncated:b>p.length}}function lh(e,t){const o=[];let r=[],d="",m=!1;const p=String(e||"").replace(/\r\n/g,`
4
4
  `).replace(/\r/g,`