@adhdev/daemon-standalone 1.0.60-rc.62 → 1.0.60-rc.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -41214,10 +41214,10 @@ ${renderWorkerProtocolFooter(input)}`;
41214
41214
  }
41215
41215
  function getDaemonBuildInfo() {
41216
41216
  if (cached2) return cached2;
41217
- const commit2 = readInjected(true ? "c2858a878f17e550dc6f12b61828529ed292458c" : void 0) ?? "unknown";
41218
- const commitShort = readInjected(true ? "c2858a87" : void 0) ?? (commit2 !== "unknown" ? commit2.slice(0, 7) : "unknown");
41219
- const version2 = readInjected(true ? "1.0.60-rc.62" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
41220
- const builtAt = readInjected(true ? "2026-09-27T04:01:52.666Z" : void 0);
41217
+ const commit2 = readInjected(true ? "e00a06c72d13ecd45d1d598d0f2e768ce2e5498a" : void 0) ?? "unknown";
41218
+ const commitShort = readInjected(true ? "e00a06c7" : void 0) ?? (commit2 !== "unknown" ? commit2.slice(0, 7) : "unknown");
41219
+ const version2 = readInjected(true ? "1.0.60-rc.64" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
41220
+ const builtAt = readInjected(true ? "2026-09-27T06:03:08.275Z" : void 0);
41221
41221
  cached2 = builtAt ? { commit: commit2, commitShort, version: version2, builtAt } : { commit: commit2, commitShort, version: version2 };
41222
41222
  return cached2;
41223
41223
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adhdev/daemon-standalone",
3
- "version": "1.0.60-rc.62",
3
+ "version": "1.0.60-rc.64",
4
4
  "description": "ADHDev standalone daemon — embedded HTTP/WS server for local dashboard",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -37,7 +37,7 @@
37
37
  "license": "AGPL-3.0-or-later",
38
38
  "dependencies": {
39
39
  "@adhdev/ghostty-vt-node": "*",
40
- "@adhdev/session-host-core": "1.0.60-rc.62",
40
+ "@adhdev/session-host-core": "1.0.60-rc.64",
41
41
  "@xterm/addon-serialize": "^0.14.0",
42
42
  "@xterm/xterm": "^6.0.0",
43
43
  "chalk": "^5.3.0",
@@ -1,4 +1,4 @@
1
- import{u as q,r as p,j as s}from"./vendor-CgFxQ3Rd.js";import{I as la,a as is,n as rt,c as en,r as da,u as St,g as it,b as ca,s as ze,d as tt,e as Gt,f as mt,h as ua,i as ha,j as Nt,k as pa,M as ot,l as ma,B as Z,T as He,m as Ft,o as fa,q as xa,p as Ds,t as tn,v as ga,S as ba,w as Ht,x as Tt,y as ya,z as va,A as ka,C as wa,D as Ee,E as ja,F as os,G as sn,H as Na,J as Sa,K as nn,L as $a,N as nt,O as As,P as an,Q as rn,R as fs,U as Ia,V as Ca,W as Ma,X as La,Y as Da,Z as Aa,_ as _a,$ as Ea,a0 as Yt,a1 as Ra,a2 as Ba,a3 as Oa,a4 as Pa,a5 as Ga,a6 as ht,a7 as _s,a8 as Fa,a9 as Ha,aa as Ta,ab as on,ac as Wa,ad as Ua,ae as Ka,af as Va,ag as za,ah as qa,ai as Ya,aj as Qa,ak as Ja}from"./index-BYZgs8N1.js";import{al as pd,am as md,an as fd}from"./index-BYZgs8N1.js";import{E as ln,i as xs,C as dn,M as Xa,B as cn,a as un,b as Za,c as er,H as $e,P as pe,u as tr,d as hn,e as gs,g as Es,f as sr,h as nr,j as ar}from"./mesh-graph-7mv6fb91.js";function rr(e,t){if(e==null||!Number.isFinite(e))return null;const n=t-e;if(!Number.isFinite(n)||n<0)return null;const a=Math.floor(n/1e3);if(a<60)return`${a}s`;const r=Math.floor(a/60);return r<60?`${r}m`:`${Math.floor(r/60)}h ${String(r%60).padStart(2,"0")}m`}function ir(e){return`${e.state??""} ${e.chatStatus??""} ${e.lifecycle??""}`.toLowerCase()}function or(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){const a=n.activeSessionDetails;if(Array.isArray(a))for(const r of a)r!=null&&r.sessionId&&ir(r).includes("approval")&&t.push({nodeId:n.nodeId,sessionId:r.sessionId,providerType:r.providerType,machineLabel:rt(n)||n.nodeId,detail:r.statusNote??r.title??null})}return t}function lr({approvals:e,nodes:t,onResolve:n,hideWhenEmpty:a=!0,nowMs:r}){const{t:l}=q(),i=r??Date.now(),o=p.useMemo(()=>e??or(t),[e,t]),[u,d]=p.useState({});if(a&&o.length===0)return null;const h=(c,m)=>{u[c.sessionId]||(d(f=>({...f,[c.sessionId]:m})),Promise.resolve(n(c.nodeId,c.sessionId,m)).finally(()=>{d(f=>{const $={...f};return delete $[c.sessionId],$})}))};return s.jsxs("div",{className:"rounded-lg border p-3",style:{borderColor:"color-mix(in srgb, var(--status-warning) 40%, transparent)",background:"color-mix(in srgb, var(--status-warning) 8%, transparent)"},children:[s.jsxs("div",{className:"flex items-center gap-2 mb-2 font-black text-xs",style:{color:"var(--status-warning)"},children:[s.jsx(la,{size:14}),l("mesh.approvals.title"),s.jsxs("span",{className:"opacity-70 font-semibold",children:["(",o.length,")"]})]}),o.length===0?s.jsx("div",{className:"text-2xs opacity-70",children:l("mesh.approvals.empty")}):s.jsx("ul",{className:"flex flex-col gap-2",children:o.map(c=>{const m=u[c.sessionId]??null,f=m!==null,$=rr(c.waitingSince,i);return s.jsxs("li",{className:"flex items-center justify-between gap-3 rounded-md px-2.5 py-2",style:{background:"color-mix(in srgb, var(--surface-primary) 82%, transparent)"},children:[s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"text-xs font-semibold truncate",children:[c.machineLabel||c.nodeId,c.providerType&&s.jsx("span",{className:"ml-2 opacity-60 font-normal",children:c.providerType}),$&&s.jsx("span",{className:"ml-2 font-bold text-3xs",style:{color:"var(--status-warning)"},title:l("mesh.approvals.waitingFor",{duration:$}),children:$})]}),s.jsx("div",{className:"text-3xs opacity-60 truncate",children:c.detail?c.detail.replace(/[\n\r]+/g," ").slice(0,120):l("mesh.approvals.sessionFallback",{id:c.sessionId})}),c.options&&c.options.length>0&&s.jsx("div",{className:"mt-1 flex flex-wrap gap-1",children:c.options.slice(0,4).map((x,b)=>s.jsx("span",{className:"text-4xs px-1.5 py-0.5 rounded opacity-70",style:{background:"color-mix(in srgb, var(--text-muted) 15%, transparent)"},children:x.replace(/[⌥⏎⇧⌫⌘⌃]/g,"").trim().slice(0,32)},`${x}-${b}`))})]}),s.jsxs("div",{className:"flex gap-2 shrink-0",children:[s.jsx("button",{onClick:()=>h(c,"approve"),disabled:f,className:`btn btn-sm border-none rounded-md text-xs px-3 py-1 font-extrabold ${f?"cursor-not-allowed opacity-60":"cursor-pointer"}`,style:{color:"var(--status-warning)",background:"var(--surface-primary)"},children:m==="approve"?s.jsx(is,{size:12}):l("mesh.approvals.approve")}),s.jsx("button",{onClick:()=>h(c,"reject"),disabled:f,className:`btn btn-sm border-none rounded-md text-xs px-3 py-1 font-semibold text-white bg-red-500/30 ${f?"cursor-not-allowed opacity-60":"cursor-pointer"}`,children:m==="reject"?s.jsx(is,{size:12}):l("mesh.approvals.reject")})]})]},`${c.nodeId}:${c.sessionId}`)})})]})}const dr=5*60*1e3;function pn(e){return typeof e.daemonId=="string"&&e.daemonId.trim()?e.daemonId.trim():null}function mn(e){return typeof e.machineId=="string"&&e.machineId.trim()?e.machineId.trim():null}function cr(e){var t,n,a;return((t=e.connection)==null?void 0:t.state)==="self"||e.isLocalWorktree===!0?"local":((n=e.connection)==null?void 0:n.transport)==="direct"||((a=e.connection)==null?void 0:a.transport)==="relay"||pn(e)||mn(e)?"remote":"unknown"}function ur(e){const t=e.connection;if(!t)return{connectionTransport:null,connectionState:null,connectionReason:null,connectionReported:!1,connectionRttMs:null};const n=t.rttMs,a=typeof n=="number"&&Number.isFinite(n)&&n>=0?n:null;return{connectionTransport:t.transport??null,connectionState:t.state??null,connectionReason:typeof t.reason=="string"&&t.reason.trim()?t.reason.trim():null,connectionReported:t.reported===!0,connectionRttMs:a}}function fn(e){const t=e.connectionTransport;if(t==="direct"||t==="relay"||t==="local")return t;const n=e.connectionState;return n==="connecting"?"connecting":n==="disconnected"?"disconnected":n==="failed"?"failed":n==="closed"?"closed":null}function hr(e){if(e.connectionTransport==="local"||e.connectionState==="self")return null;const t=fn(e);return!t||t==="local"||typeof e.connectionRttMs!="number"||!Number.isFinite(e.connectionRttMs)?null:`${Math.round(e.connectionRttMs)}ms`}function pr(e){return da(e)}function xn(e){var t;return pr(e)?!1:!!(e.gitProbePending||((t=e.connection)==null?void 0:t.state)==="connecting")}function gn(e){if(!e)return null;const t=Date.parse(e);return Number.isNaN(t)?null:t}function mr(e){var n;const t=new Map;for(const a of((n=e.queue)==null?void 0:n.tasks)??[])a.assignedSessionId&&a.difficulty&&t.set(a.assignedSessionId,a.difficulty);return t}function fr(e,t){return(e.activeSessionDetails&&e.activeSessionDetails.length>0?e.activeSessionDetails:(e.activeSessions??[]).map(a=>({sessionId:a,workspace:e.workspace,isCached:!0}))).map(a=>{const r=t.get(a.sessionId);return r?{...a,difficulty:r}:a})}function bn(e){return e?e.staged+e.modified+e.untracked+e.deleted+e.renamed>0:!1}function yn(e){return((e==null?void 0:e.submodules)??[]).some(t=>t.dirty)}function bs(e){return((e==null?void 0:e.submodules)??[]).some(t=>t.outOfSync||!!t.error)}function xr(e){return bs(e)?"degraded":yn(e)?"dirty":"online"}function gr(e){return e?e.staged+e.modified+e.untracked+e.deleted+e.renamed:0}function Rs(e){switch(e){case"online":return 0;case"dirty":return 1;case"degraded":return 2;case"wrong_branch":return 3;case"offline":return 4;case"unknown":default:return 5}}function Qt(e){return e.length===0?"unknown":e.reduce((t,n)=>Rs(n)>Rs(t)?n:t)}function br(e){var l,i,o,u,d;const t=new Map,n=new Map;for(const h of e){const c=(i=(l=h.git)==null?void 0:l.branch)==null?void 0:i.trim();c&&(n.set(c,(n.get(c)??0)+1),(o=h.git)!=null&&o.upstream&&t.set(c,(t.get(c)??0)+1))}const a=[...t.entries()].sort((h,c)=>{if(c[1]!==h[1])return c[1]-h[1];const m=["main","master","develop","dev"],f=m.indexOf(h[0]),$=m.indexOf(c[0]);return f!==-1||$!==-1?f===-1?1:$===-1?-1:f-$:h[0].localeCompare(c[0])});return(u=a[0])!=null&&u[0]?a[0][0]:((d=[...n.entries()].sort((h,c)=>c[1]-h[1])[0])==null?void 0:d[0])??null}function yr(e,t){const n=[],a=e.git;return a?a.isGitRepo?(!a.branch&&a.headCommit&&n.push({text:"Detached HEAD",hint:{key:"mesh.hint.detachedHead"}}),a.hasConflicts&&n.push({text:"Merge conflicts need resolution",hint:{key:"mesh.hint.mergeConflicts"}}),a.branch&&t&&a.branch!==t&&!a.upstream&&n.push({text:`No upstream tracking for ${a.branch}`,hint:{key:"mesh.hint.noUpstream",params:{branch:a.branch}}}),a.upstream&&a.upstreamStatus&&a.upstreamStatus!=="fresh"&&n.push({text:`Upstream freshness unverified for ${a.branch??"workspace"}`,hint:{key:"mesh.hint.upstreamUnverified",params:{branch:a.branch??""}}}),e.error&&n.push({text:e.error,hint:{key:"mesh.hint.nodeError",detail:e.error}}),n):(n.push({text:"Not a git repository",hint:{key:"mesh.hint.notGitRepo"}}),n):(n.push({text:"No git status available",hint:{key:"mesh.hint.noGitStatus"}}),n)}function Bs(e){switch(e){case"merged_to_main":return 0;case"pushed_feature_branch_needs_merge":return 1;case"cleanup_candidate":return 2;case"blocked_review":return 3;case"not_mergeable":default:return 4}}function vr(e){return e.reduce((t,n)=>Bs(n.status)>Bs(t.status)?n:t)}function kr(e){const t=e.branchConvergenceSummary;if(Array.isArray(t==null?void 0:t.followUps))return t.followUps;const n=e.followUps;return Array.isArray(n)?n:(t==null?void 0:t.needsFollowUp)===!1||(t==null?void 0:t.unresolvedCount)===0?[]:null}function wr(e){var r,l,i;const t=e.sourceOfTruth,n=[],a=(r=t==null?void 0:t.fallback)==null?void 0:r.warning;return typeof a=="string"&&a.trim()&&n.push(a.trim()),(t==null?void 0:t.currentStatus)==="bootstrap_inventory_fallback"&&((l=t.directPeerTruth)==null?void 0:l.required)===!0&&((i=t.directPeerTruth)==null?void 0:i.satisfied)!==!0&&!n.some(o=>o.includes("direct mesh truth"))&&n.push("Direct mesh truth is not confirmed yet; this graph is drawn from setup inventory only."),n}function jr(e){const t=e.asyncRefineJobs;if(!Array.isArray(t))return[];const n=[];for(const a of t){if(!a||typeof a!="object")continue;const r=a,l=typeof r.jobId=="string"?r.jobId:null,i=r.status;l&&(i!=="accepted"&&i!=="running"&&i!=="completed"&&i!=="failed"||n.push({jobId:l,status:i,nodeId:typeof r.nodeId=="string"?r.nodeId:void 0,targetNodeId:typeof r.targetNodeId=="string"?r.targetNodeId:void 0,workspace:typeof r.workspace=="string"?r.workspace:void 0,branch:typeof r.branch=="string"?r.branch:void 0,into:typeof r.into=="string"?r.into:void 0,lastUpdatedAt:typeof r.lastUpdatedAt=="string"?r.lastUpdatedAt:void 0,startedAt:typeof r.startedAt=="string"?r.startedAt:void 0,completedAt:typeof r.completedAt=="string"?r.completedAt:void 0}))}return n}function Os(e){switch(e){case"running":case"accepted":return 0;case"failed":return 1;case"completed":default:return 2}}function Ps(e){const t=e.lastUpdatedAt||e.completedAt||e.startedAt||"";return gn(t)??0}function Nr(e){return e.length===0?null:e.reduce((t,n)=>{const a=Os(t.status),r=Os(n.status);return r!==a?r<a?n:t:Ps(n)>Ps(t)?n:t})}function Sr(e){var n,a;const t=new Map;for(const r of e){const l=((n=r.nodeId)==null?void 0:n.trim())||((a=r.targetNodeId)==null?void 0:a.trim());if(!l)continue;const i=t.get(l)??[];i.push(r),t.set(l,i)}return t}function $r(e,t){return e.type!=="submoduleNode"&&e.branch===t&&e.ahead===0&&e.behind===0&&!e.dirty&&!e.hasConflicts&&(!e.upstreamStatus||e.upstreamStatus==="fresh")&&e.snapshotCompleteness==="complete"}function Ir(e,t){var n,a;return{status:"merged_to_main",needsConvergence:!1,reason:"clean_default_branch_aggregate",nextStep:null,branch:e,defaultBranch:e,upstream:((n=t.find(r=>r.upstream))==null?void 0:n.upstream)??null,upstreamStatus:((a=t.find(r=>r.upstreamStatus))==null?void 0:a.upstreamStatus)??null,ahead:0,behind:0,dirty:!1,hasConflicts:!1}}function Cr(e,t){if(xn(e))return null;const n=e.branchConvergence;if(!n||typeof n!="object")return null;const a=n.status;if(!a||!["merged_to_main","pushed_feature_branch_needs_merge","blocked_review","cleanup_candidate","not_mergeable"].includes(a))return null;const r=e.git;if(a==="blocked_review"&&(n.reason==="git_status_unavailable"&&(r==null?void 0:r.isGitRepo)!==!1||n.reason==="branch_unknown"&&!(r!=null&&r.headCommit)))return null;const l=bn(r)||yn(r),i=!!(r!=null&&r.hasConflicts)||bs(r),o=(r==null?void 0:r.ahead)??0,u=(r==null?void 0:r.behind)??0,d=(r==null?void 0:r.branch)??null,h=(r==null?void 0:r.upstream)??null,c=(r==null?void 0:r.upstreamStatus)??null,m=n.defaultBranch??t??null;return{status:a,needsConvergence:n.needsConvergence??a!=="merged_to_main",reason:n.reason??"provided_by_coordinator",nextStep:n.nextStep??null,branch:n.branch??d,defaultBranch:m,upstream:n.upstream??h,upstreamStatus:n.upstreamStatus??c,ahead:n.ahead??o,behind:n.behind??u,dirty:n.dirty??l,hasConflicts:n.hasConflicts??i}}function Mr(e,t){const n=Cr(e,t);return n?{...n,defaultBranch:n.defaultBranch??t}:null}function Gs(e){const t=(e||"").trim().replace(/[\\/]+$/,"");if(!t)return null;const n=t.split(/[\\/]+/).filter(Boolean);return n[n.length-1]||null}function Lr(e){return e.error||e.outOfSync?"degraded":e.dirty?"dirty":"online"}function Dr(e){var d,h;const{nodeStatus:t,expectedSubmodulePaths:n,refreshedAtMs:a}=e,r=[],l=[],i=t.machineLabel||t.nodeId,o=t.git;if(!o){if(xn(t))return r.push(`${i} is still waiting for a live peer git snapshot from the selected coordinator.`),l.push({key:"mesh.hint.waitingForGit"}),{snapshotCompleteness:"pending_git",snapshotWarnings:r,snapshotWarningHints:l};const c=t.health==="online"||t.machineStatus==="online"||((d=t.connection)==null?void 0:d.state)==="connected"||((h=t.connection)==null?void 0:h.state)==="self";return r.push(c?`${i} is online but no peer git snapshot is visible yet.`:`${i} has no peer git snapshot visible yet.`),l.push({key:c?"mesh.hint.noGitYetOnline":"mesh.hint.noGitYet"}),{snapshotCompleteness:"missing_git",snapshotWarnings:r,snapshotWarningHints:l}}const u=new Set((o.submodules??[]).map(c=>c.path));if(n.size>0){const c=[...n].filter(m=>!u.has(m));c.length>0&&(r.push(`${i} is missing submodule visibility for ${c.join(", ")} even though another peer reported it.`),l.push({key:"mesh.hint.missingSubmodule",params:{paths:c.join(", ")}}))}return t.connection&&t.connection.state!=="self"&&a!==null&&(typeof o.lastCheckedAt=="number"?a-o.lastCheckedAt>dr&&(r.push(`${i} is relying on a peer git snapshot older than 5m; re-probe before trusting convergence.`),l.push({key:"mesh.hint.staleGit"})):(r.push(`${i} peer git snapshot age was not measured because no check time was reported.`),l.push({key:"mesh.hint.gitAgeUnknown"}))),r.some(c=>c.includes("submodule visibility"))?{snapshotCompleteness:"missing_submodule_report",snapshotWarnings:r,snapshotWarningHints:l}:r.some(c=>c.includes("older than 5m"))?{snapshotCompleteness:"stale",snapshotWarnings:r,snapshotWarningHints:l}:{snapshotCompleteness:"complete",snapshotWarnings:r,snapshotWarningHints:l}}function Ar(e){var K;const t=en(e),a=(typeof t.defaultBranch=="string"&&t.defaultBranch.trim().length>0?t.defaultBranch.trim():null)??br(t.nodes),r=gn(t.refreshedAt),l=new Set(t.nodes.flatMap(j=>{var D;return(((D=j.git)==null?void 0:D.submodules)??[]).map(_=>_.path)})),i=[],o=[],u=wr(t),d=new Map,h=Sr(jr(t)),c=mr(t);for(const j of t.nodes){const D=j.git,_=(D==null?void 0:D.branch)??null,U=xr(D),ee=bn(D)||U==="dirty",me=yr(j,a),ie=me.map(J=>J.text),fe=Mr(j,a),N=Dr({nodeStatus:j,expectedSubmodulePaths:l,refreshedAtMs:r}),Q=typeof j.clonedFromNodeId=="string"?j.clonedFromNodeId:null,re=fr(j,c),X=Nr(h.get(j.nodeId)??[]),ke=ur(j),ae=!!j.worktreeBranch||!!Q,z={id:j.nodeId,type:ie.length>0?"orphanNode":"worktreeNode",label:ae?j.worktreeBranch?`⎇ ${j.worktreeBranch}`:Gs(j.workspace)||j.machineLabel||j.nodeId.slice(0,8):j.machineLabel||Gs(j.workspace)||j.nodeId.slice(0,8),workspace:j.workspace,branch:_,upstream:(D==null?void 0:D.upstream)??null,upstreamStatus:(D==null?void 0:D.upstreamStatus)??null,daemonId:pn(j),machineId:mn(j),machineLabel:j.machineLabel||null,locality:cr(j),connectionTransport:ke.connectionTransport,connectionState:ke.connectionState,connectionReason:ke.connectionReason,connectionReported:ke.connectionReported,connectionRttMs:ke.connectionRttMs,health:Qt([j.health,U]),ahead:(D==null?void 0:D.ahead)??0,behind:(D==null?void 0:D.behind)??0,dirty:ee,dirtyFiles:gr(D),hasConflicts:(D==null?void 0:D.hasConflicts)??!1,activeSessionCount:re.length,activeSessions:re.map(J=>J.sessionId),sessionDetails:re,providers:j.providers??[],isOrphan:ie.length>0,orphanReasons:ie,error:j.error,nextStepHint:N.snapshotWarnings[0]??ie[0]??(fe==null?void 0:fe.nextStep)??void 0,nextStepHintI18n:N.snapshotWarningHints[0]??((K=me[0])==null?void 0:K.hint)??null,parentNodeId:null,clonedFromNodeId:Q,worktreeBranch:j.worktreeBranch??null,submodulePath:null,submoduleCommit:(D==null?void 0:D.headCommit)??null,outOfSync:bs(D),snapshotCompleteness:N.snapshotCompleteness,snapshotWarnings:N.snapshotWarnings,branchConvergence:fe,refineJobStatus:(X==null?void 0:X.status)??null,refineJobId:(X==null?void 0:X.jobId)??null,refineJobBranch:(X==null?void 0:X.branch)??null,refineJobInto:(X==null?void 0:X.into)??null,gitObservation:j.gitObservation??null,source:j};if(i.push(z),_){const J=d.get(_)??[];J.push(z.id),d.set(_,J)}for(const J of(D==null?void 0:D.submodules)??[]){const Oe=`${z.id}::submodule::${J.path}`,qe=J.path.split("/").filter(Boolean).pop()||J.path;i.push({id:Oe,type:"submoduleNode",label:qe,workspace:J.repoPath??J.path,branch:null,upstream:null,upstreamStatus:null,daemonId:z.daemonId,machineId:z.machineId,machineLabel:z.machineLabel,locality:z.locality,connectionTransport:z.connectionTransport,connectionState:z.connectionState,connectionReason:z.connectionReason,connectionReported:z.connectionReported,connectionRttMs:z.connectionRttMs,health:Lr(J),ahead:0,behind:0,dirty:J.dirty,dirtyFiles:J.dirty?1:0,hasConflicts:!1,activeSessionCount:0,activeSessions:[],sessionDetails:[],providers:[],isOrphan:!1,orphanReasons:[],error:J.error,nextStepHint:J.error||(J.outOfSync?`${J.path} is out of sync with the parent checkout`:J.dirty?`${J.path} has local changes`:`${J.path} is in sync with the parent checkout`),nextStepHintI18n:J.error?{key:"mesh.hint.nodeError",detail:J.error}:J.outOfSync?{key:"mesh.hint.submoduleOutOfSync",params:{path:J.path}}:J.dirty?{key:"mesh.hint.submoduleChanged",params:{path:J.path}}:{key:"mesh.hint.submoduleSynced",params:{path:J.path}},parentNodeId:z.id,submodulePath:J.path,submoduleCommit:J.commit,outOfSync:J.outOfSync,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:null,gitObservation:z.gitObservation??null,source:{kind:"synthetic-submodule",parentNodeId:z.id,parentWorkspace:j.workspace,submodule:J}}),o.push({id:`${z.id}--${Oe}`,source:z.id,target:Oe,type:"submoduleLink",label:J.outOfSync?"submodule out of sync":void 0,direction:"directed"})}}const m=a?`__branch_${a}`:null;if(m&&a){const D=(d.get(a)??[]).map(N=>i.find(Q=>Q.id===N)).filter(Boolean),_=D.map(N=>N.branchConvergence).filter(Boolean),U=kr(t),ee=D.length>0&&D.every(N=>$r(N,a)),me=(U==null?void 0:U.length)===0&&ee?Ir(a,D):_.length>0?vr(_):null,ie=(U==null?void 0:U.length)===0&&ee?0:_.filter(N=>N.needsConvergence).length,fe={id:m,type:"defaultBranchNode",label:a,workspace:t.repoIdentity,branch:a,upstream:null,upstreamStatus:null,daemonId:null,machineId:null,machineLabel:"default branch",locality:"unknown",connectionTransport:null,connectionState:null,connectionReason:null,connectionReported:!1,connectionRttMs:null,health:Qt(D.map(N=>N.health)),ahead:0,behind:0,dirty:D.some(N=>N.dirty),dirtyFiles:D.reduce((N,Q)=>N+Q.dirtyFiles,0),hasConflicts:D.some(N=>N.hasConflicts),activeSessionCount:D.reduce((N,Q)=>N+Q.activeSessionCount,0),activeSessions:D.flatMap(N=>N.activeSessions),sessionDetails:D.flatMap(N=>N.sessionDetails),providers:[...new Set(D.flatMap(N=>N.providers))],isOrphan:!1,orphanReasons:[],nextStepHint:ie>0?`${ie} workspace(s) on ${a} still need follow-up`:D.length>0?`${D.length} workspace(s) currently on ${a}`:"No workspaces currently checked out to the default branch",nextStepHintI18n:ie>0?{key:"mesh.hint.anchorNeedsFollowUp",params:{count:ie,branch:a??""}}:D.length>0?{key:"mesh.hint.anchorWorkspaces",params:{count:D.length,branch:a??""}}:{key:"mesh.hint.anchorEmpty"},error:void 0,parentNodeId:null,submodulePath:null,submoduleCommit:null,outOfSync:!1,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:me,source:{nodeId:m,machineLabel:a,workspace:t.repoIdentity,health:Qt(D.map(N=>N.health)),providers:[],activeSessions:[],activeSessionDetails:[]}};i.push(fe);for(const N of i)if(!(N.id===m||N.type==="submoduleNode")){if(N.branch===a){o.push({id:`${m}--${N.id}`,source:m,target:N.id,type:"parentBranch",direction:"undirected"});continue}if(N.branch){o.push({id:`${m}--${N.id}`,source:m,target:N.id,type:N.isOrphan?"orphanLink":"parentBranch",label:N.branch,direction:"undirected"});continue}if(N.isOrphan){o.push({id:`${m}--${N.id}`,source:m,target:N.id,type:"orphanLink",label:"detached",direction:"undirected"});continue}o.push({id:`${m}--${N.id}`,source:m,target:N.id,type:"parentBranch",direction:"undirected"})}}const f=new Set(i.map(j=>j.id)),$=new Set;for(const j of i){if(!j.clonedFromNodeId||j.type==="submoduleNode"||!f.has(j.clonedFromNodeId))continue;const D=`clone_${j.clonedFromNodeId}--${j.id}`;$.has(D)||($.add(D),o.push({id:D,source:j.clonedFromNodeId,target:j.id,type:"cloneLink",label:"cloned",direction:"directed"}))}const x=i.filter(j=>j.type!=="defaultBranchNode"),b=x.filter(j=>j.isOrphan).length,L=x.filter(j=>j.hasConflicts).length,E=x.filter(j=>j.health==="offline").length,I=x.filter(j=>j.type==="submoduleNode"&&j.outOfSync).length,T=x.filter(j=>{var D;return j.type!=="submoduleNode"&&((D=j.branchConvergence)==null?void 0:D.needsConvergence)}).length,W=x.filter(j=>{var D;return((D=j.branchConvergence)==null?void 0:D.status)==="blocked_review"}).length,H=x.filter(j=>{var D;return((D=j.branchConvergence)==null?void 0:D.status)==="pushed_feature_branch_needs_merge"}).length,C=x.filter(j=>{var D;return((D=j.branchConvergence)==null?void 0:D.status)==="cleanup_candidate"}).length,R=x.filter(j=>{var D;return((D=j.branchConvergence)==null?void 0:D.status)==="not_mergeable"}).length,M=x.filter(j=>j.snapshotCompleteness!=="complete").length,y=x.filter(j=>j.snapshotCompleteness==="pending_git").length,v=x.filter(j=>j.snapshotCompleteness==="missing_git").length,g=x.filter(j=>j.snapshotCompleteness==="missing_submodule_report").length,k=x.filter(j=>j.snapshotCompleteness==="stale").length,B=x.filter(j=>j.refineJobStatus==="running"||j.refineJobStatus==="accepted").length,A=x.filter(j=>j.refineJobStatus==="failed").length,V=[y>0?`${y} node(s) are still waiting for a live peer git snapshot`:null,v>0?`${v} node(s) have no visible peer git snapshot`:null,g>0?`${g} node(s) are missing peer submodule visibility reported elsewhere in the mesh`:null,k>0?`${k} node(s) rely on peer git snapshots older than 5m`:null].filter(Boolean);return T>0&&u.push(`${T} workspace(s) still need follow-up before the mesh is converged`),b>0&&u.push(`${b} workspace(s) need attention before safe coordination`),W>0&&u.push(`${W} workspace(s) are blocked on branch convergence or upstream sync`),H>0&&u.push(`${H} clean feature branch workspace(s) still need merge follow-up`),C>0&&u.push(`${C} worktree workspace(s) are ready for refine / cleanup`),R>0&&u.push(`${R} workspace(s) have local changes or conflicts blocking convergence`),L>0&&u.push(`${L} workspace(s) report merge conflicts`),E>0&&u.push(`${E} node(s) are currently offline`),I>0&&u.push(`${I} submodule(s) are out of sync with their parent checkout`),u.push(...V),a||u.push("Could not infer a default branch from live mesh status"),{meshId:t.meshId,meshName:t.meshName,repoIdentity:t.repoIdentity,refreshedAt:t.refreshedAt,nodes:i,edges:o,stats:{totalNodes:x.length,onlineNodes:x.filter(j=>j.health==="online").length,dirtyNodes:x.filter(j=>j.dirty).length,orphanNodes:b,errorNodes:x.filter(j=>!!j.error||j.outOfSync).length,offlineNodes:E,followUpNodes:T,blockedReviewNodes:W,mergeReadyNodes:H,cleanupCandidateNodes:C,notMergeableNodes:R,incompleteSnapshotNodes:M,pendingGitSnapshotNodes:y,missingGitSnapshotNodes:v,missingSubmoduleSnapshotNodes:g,staleGitSnapshotNodes:k,activeRefineNodes:B,failedRefineNodes:A,totalActiveSessions:x.reduce((j,D)=>j+D.activeSessionCount,0)},warnings:u,snapshotWarnings:V}}function _r(e){return e.ahead<=0&&e.behind<=0?null:e.ahead>0&&e.behind>0?`ahead ${e.ahead} / behind ${e.behind}`:e.behind>0?`behind ${e.behind}`:`ahead ${e.ahead}`}function Wt(e){if(e.type==="submoduleNode")return e.outOfSync||e.error?{label:"submodule drift",tone:"danger"}:e.dirty?{label:"submodule dirty",tone:"warn"}:null;const t=e.branchConvergence;if((t==null?void 0:t.status)==="not_mergeable")return{label:e.hasConflicts?"conflicts present":"dirty workspace",tone:"danger"};if((t==null?void 0:t.status)==="blocked_review"){if(t.reason==="upstream_unverified"||t.reason.endsWith("_upstream_unverified"))return{label:"upstream unverified",tone:"warn"};const n=_r(e);return n?{label:n,tone:"danger"}:!e.upstream&&e.branch&&e.branch!==t.defaultBranch?{label:"push branch",tone:"warn"}:{label:"blocked review",tone:"danger"}}return e.refineJobStatus==="failed"?{label:"refine failed",tone:"danger"}:e.refineJobStatus==="running"||e.refineJobStatus==="accepted"?{label:"refining…",tone:"info"}:(t==null?void 0:t.status)==="pushed_feature_branch_needs_merge"?{label:"needs merge",tone:"warn"}:(t==null?void 0:t.status)==="cleanup_candidate"?{label:"refine worktree",tone:"info"}:e.isOrphan?{label:"needs follow-up",tone:"warn"}:e.health==="offline"?{label:"offline",tone:"danger"}:null}function ys(e){var t;return e.nextStepHint??((t=e.branchConvergence)==null?void 0:t.nextStep)??null}const Er={blocked_review:"mesh.hint.daemon.blockedReview",pushed_feature_branch_needs_merge:"mesh.hint.daemon.needsMerge",cleanup_candidate:"mesh.hint.daemon.cleanup",not_mergeable:"mesh.hint.daemon.notMergeable",merged_to_main:"mesh.hint.daemon.merged"};function Fs(e,t){var i;const n=ys(e);if(!n)return null;const a=e.nextStepHintI18n;if(a)return{text:t(a.key,a.params),detail:a.detail??null};const r=(i=e.branchConvergence)==null?void 0:i.status,l=r&&Er[r]||"mesh.hint.daemon.followUp";return{text:t(l),detail:n}}function vn(e){var t;return!ys(e)||e.type==="defaultBranchNode"?!1:!!((t=e.branchConvergence)!=null&&t.needsConvergence||e.isOrphan||e.hasConflicts||e.outOfSync||e.error||e.health==="offline"||e.health==="degraded"||e.health==="wrong_branch"||e.dirty)}const Rr=6e4;function Br(e,t=Date.now()){const n=e.gitObservation;return!n||n.source==="self"||n.source==="local"?null:n.unreachableSince!==null&&n.unreachableSince!==void 0?{kind:"unreachable",observedAt:n.observedAt??null,unreachableSince:n.unreachableSince}:n.observedAt===null||n.observedAt===void 0?n.refreshing?{kind:"fetching"}:null:n.refreshing?{kind:"refreshing",observedAt:n.observedAt}:t-n.observedAt>=Rr?{kind:"aged",observedAt:n.observedAt}:null}function _t(e){return[...new Set(e.filter(t=>!!t))]}function Or(e){const t=e.nodes.find(i=>i.type==="defaultBranchNode")??null,n=(t==null?void 0:t.branch)??null,a=e.nodes.filter(i=>i.type!=="defaultBranchNode"&&i.type!=="submoduleNode"&&!i.isOrphan&&!!n&&i.branch===n),r=e.nodes.filter(i=>i.type!=="submoduleNode"&&!i.isOrphan),l=e.nodes.filter(i=>i.type!=="submoduleNode");return t||a.length>0?_t([t==null?void 0:t.id,...a.map(i=>i.id)]):r.length>0?_t(r.map(i=>i.id)):l.length>0?_t(l.map(i=>i.id)):_t(e.nodes.map(i=>i.id))}function kn(e){const t=[...e.nodes].sort((a,r)=>a.id.localeCompare(r.id)).map(a=>[a.id,a.type,a.branch??"",a.parentNodeId??"",a.submodulePath??""].join(":")).join("|"),n=[...e.edges].sort((a,r)=>a.id.localeCompare(r.id)).map(a=>[a.id,a.source,a.target,a.type].join(":")).join("|");return`${e.meshId}::${t}::${n}`}function Pr(e,t,n){const a=Math.max(0,Math.round(t)),r=Math.max(0,Math.round(n));return`${kn(e)}::${a}x${r}`}const ft={worktreeCardWidth:256,submoduleCardWidth:180,anchorCardWidth:232,minWorktreeCardHeight:150,minSubmoduleCardHeight:56,minAnchorCardHeight:44,maxEstimatedCardHeight:360,layerGap:220,nodeGap:82,edgeLabelBuffer:180,placeholderTopOffset:0},$t={worktreeCardWidth:188,submoduleCardWidth:156,anchorCardWidth:196,minWorktreeCardHeight:88,minSubmoduleCardHeight:50,minAnchorCardHeight:40,maxEstimatedCardHeight:230,layerGap:160,nodeGap:52,edgeLabelBuffer:120},Gr={maxWidth:180};function Fr(e){return e==="TB"?"DOWN":"RIGHT"}function vs(e,t){return{"elk.algorithm":"layered","elk.direction":Fr(t),"elk.edgeRouting":"ORTHOGONAL","elk.spacing.nodeNode":String(e.nodeGap),"elk.layered.spacing.nodeNodeBetweenLayers":String(e.layerGap),"elk.layered.spacing.edgeNodeBetweenLayers":String(e.edgeLabelBuffer),"elk.layered.layering.strategy":"NETWORK_SIMPLEX","elk.layered.nodePlacement.strategy":"NETWORK_SIMPLEX","elk.layered.crossingMinimization.strategy":"LAYER_SWEEP","elk.layered.considerModelOrder.strategy":"NODES_AND_EDGES","elk.layered.cycleBreaking.strategy":"GREEDY","elk.layered.mergeEdges":"false","elk.randomSeed":"1"}}const Hr=vs(ft,"LR");vs($t,"LR");const Tr=new ln;function st(e,t=!1){const n=t?$t:ft;return e.type==="submoduleNode"?n.submoduleCardWidth:e.type==="defaultBranchNode"?n.anchorCardWidth:n.worktreeCardWidth}function Ie(e,t,n,a){return e?e(t,a):n}function wn(e,t){return e.ahead<=0&&e.behind<=0?null:e.ahead>0&&e.behind>0?Ie(t,"mesh.attention.aheadBehind",`ahead ${e.ahead} / behind ${e.behind}`,{ahead:e.ahead,behind:e.behind}):e.behind>0?Ie(t,"mesh.attention.behind",`behind ${e.behind}`,{count:e.behind}):Ie(t,"mesh.attention.ahead",`ahead ${e.ahead}`,{count:e.ahead})}function ls(e,t){var a;if(e.type==="defaultBranchNode")return t&&e.nextStepHintI18n?t(e.nextStepHintI18n.key,e.nextStepHintI18n.params):e.nextStepHint||Ie(t,"mesh.summary.anchor","Default branch anchor");if(e.type==="submoduleNode"){const r=[e.machineLabel?Ie(t,"mesh.summary.parent",`parent ${e.machineLabel}`,{label:e.machineLabel}):null];return e.outOfSync?r.push(Ie(t,"mesh.panel.outOfSyncBadge","out of sync")):e.dirty?r.push(Ie(t,"mesh.summary.localChanges","local changes")):r.push(Ie(t,"mesh.panel.submoduleSynced","synced")),r.filter(Boolean).join(" · ")}const n=[];if(e.upstream&&n.push(e.upstream),e.upstream&&e.upstreamStatus!=="fresh")n.push(Ie(t,"mesh.attention.upstreamUnverified","upstream unverified"));else{const r=wn(e,t);r&&n.push(r)}return e.activeSessionCount>0&&n.push(Ie(t,"mesh.summary.sessions",`${e.activeSessionCount} session${e.activeSessionCount===1?"":"s"}`,{count:e.activeSessionCount})),e.dirtyFiles>0&&n.push(Ie(t,"mesh.drift.changed",`${e.dirtyFiles} changed`,{count:e.dirtyFiles})),e.hasConflicts&&n.push(Ie(t,"mesh.summary.conflicts","conflicts")),n.length===0?(a=e.branchConvergence)!=null&&a.needsConvergence?Ie(t,"mesh.attention.needsFollowUp","Needs follow-up"):Ie(t,"mesh.summary.clean","Clean and even with upstream"):n.join(" · ")}const Wr=2;function jn(e,t=!1){var L;const n=t?$t:ft;if(e.type==="defaultBranchNode")return n.minAnchorCardHeight;if(e.type==="submoduleNode")return n.minSubmoduleCardHeight;const a=st(e,t),r=t?22:30,l=t?2:3,i=Math.ceil(Ur(e)/l),o=Et(e.label,r,2),u=Et(e.machineLabel||e.workspace,r,2),d=Et(ls(e),r+(t?1:4),t?2:3),h=Wt(e),c=vn(e)?ys(e):null,m=t?0:Et(c,Math.max(24,Math.floor(a/8)),4),f=((L=e.sessionDetails)==null?void 0:L.length)??0,$=Math.min(Wr,f),x=f>0?t?14+$*36+(f>$?14:0):46+$*48+(f>$?16:0):0,b=t?40+o*16+u*12+(h?22:0)+Math.max(0,i-1)*18+x:52+o*18+u*14+(h?30:0)+i*24+Math.max(22,d*18)+x+(m>0?22+m*16:0);return Math.min(n.maxEstimatedCardHeight,Math.max(n.minWorktreeCardHeight,Math.ceil(b)))}function Et(e,t,n){const a=(e||"").trim();return a?Math.max(1,Math.min(n,Math.ceil(a.length/t))):0}function Ur(e){let t=e.health==="online"?0:1;return e.branch&&(t+=1),e.locality==="remote"&&(t+=1),(e.connectionTransport||e.connectionRttMs!=null)&&(t+=1),e.dirty&&(t+=1),e.outOfSync&&(t+=1),e.hasConflicts&&(t+=1),e.upstream&&e.upstreamStatus!=="fresh"&&(t+=1),e.isOrphan&&(t+=1),t}function Kr(e,t){return e.type==="defaultBranchNode"&&t.type!=="defaultBranchNode"?-1:t.type==="defaultBranchNode"&&e.type!=="defaultBranchNode"||e.type==="submoduleNode"&&t.type!=="submoduleNode"?1:t.type==="submoduleNode"&&e.type!=="submoduleNode"?-1:e.branch&&t.branch&&e.branch!==t.branch?e.branch.localeCompare(t.branch):e.branch&&!t.branch?-1:!e.branch&&t.branch?1:e.label.localeCompare(t.label)||e.id.localeCompare(t.id)}function Vr(e,t){return e.source.localeCompare(t.source)||e.target.localeCompare(t.target)||e.id.localeCompare(t.id)}function zr(e,t,n,a=!0){return{id:e.id,type:"meshNode",position:{x:t,y:n},graphNode:e,selected:!1,draggable:!1,selectable:a}}function qr(e,t,n){return{id:e.id,x:t,y:n,width:st(e),height:jn(e)}}function Yr(e,t){return{id:`${e.id}__placeholder`,type:"worktreeNode",label:"No active worktrees",workspace:t.repoIdentity,branch:e.branch,upstream:null,upstreamStatus:null,daemonId:null,machineId:null,machineLabel:null,locality:"unknown",connectionTransport:null,connectionState:null,connectionReason:null,connectionReported:!1,connectionRttMs:null,health:"unknown",ahead:0,behind:0,dirty:!1,dirtyFiles:0,hasConflicts:!1,activeSessionCount:0,activeSessions:[],sessionDetails:[],providers:[],isOrphan:!1,orphanReasons:[],nextStepHint:"Waiting for worktree nodes to report live mesh status.",error:void 0,parentNodeId:null,submodulePath:null,submoduleCommit:null,outOfSync:!1,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:null,source:{nodeId:`${e.id}__placeholder`,machineLabel:"",workspace:t.repoIdentity,health:"unknown",providers:[],activeSessions:[]}}}function Nn(e){const t=[...e.nodes].sort(Kr),n=t.find(r=>r.type==="defaultBranchNode")??null,a=t.some(r=>r.id!==(n==null?void 0:n.id)&&r.type!=="submoduleNode");return!n||a?t:[...t,Yr(n,e)]}function Qr(e,t=Hr,n=!1,a="LR"){const r=Nn(e),l=new Set(r.map(u=>u.id)),i=r.map(u=>({id:u.id,width:st(u,n),height:jn(u,n)})),o=e.edges.filter(u=>l.has(u.source)&&l.has(u.target)).sort(Vr).map(u=>({id:u.id,sources:[u.source],targets:[u.target]}));return{id:`${e.meshId||"mesh"}__elk_root`,layoutOptions:{...t},children:i,edges:o}}function Jr(e,t=!1){const n=[...new Set(e.map(r=>Math.round(r.x)))].sort((r,l)=>r-l),a=t?$t.layerGap:ft.layerGap;return n.length<2?a:Math.min(...n.slice(1).map((r,l)=>r-n[l]))}async function Sn(e,t=!1,n="LR",a){var $,x;const l=vs(t?$t:ft,n),i=Nn(e),o=new Map(i.map(b=>[b.id,b])),u=Qr(e,l,t,n);if(a&&a.size>0)for(const b of u.children??[]){const L=a.get(b.id);L&&L>0&&(b.height=L)}const d=await Tr.layout(u),h=(d.children??[]).map(b=>{const L=o.get(b.id);return L?zr(L,Math.round(b.x??0),Math.round(b.y??ft.placeholderTopOffset),!b.id.endsWith("__placeholder")):null}).filter(Boolean),c=new Map(i.map((b,L)=>[b.id,L]));h.sort((b,L)=>(c.get(b.id)??0)-(c.get(L.id)??0));const m=h.map(b=>qr(b.graphNode,b.position.x,b.position.y)),f=new Map;for(const b of d.edges??[]){const L=b.sections;if(!L||L.length===0)continue;const E=L[0],I=($=b.sources)==null?void 0:$[0],T=(x=b.targets)==null?void 0:x[0];if(!I||!T)continue;const W=[];W.push({x:Math.round(E.startPoint.x),y:Math.round(E.startPoint.y)});for(const H of E.bendPoints??[])W.push({x:Math.round(H.x),y:Math.round(H.y)});W.push({x:Math.round(E.endPoint.x),y:Math.round(E.endPoint.y)}),f.set(b.id,{id:b.id,source:I,target:T,points:W})}return{nodes:h,bounds:m,edgeRoutes:f,columnGap:Jr(m,t),layoutOptions:{...l}}}function Xr(e){var t,n,a,r,l,i;return[e.id,e.type,e.label,e.branch??"",e.upstream??"",e.upstreamStatus??"",e.daemonId??"",e.machineId??"",e.machineLabel??"",e.locality,e.health,e.ahead,e.behind,e.dirty?1:0,e.dirtyFiles,e.hasConflicts?1:0,e.activeSessionCount,e.sessionDetails.map(o=>[o.sessionId,o.providerType??"",o.state??"",o.chatStatus??"",o.lifecycle??"",o.role??"",o.isSelfCoordinator?1:0,o.statusNote??"",o.startedAt??"",o.createdAt??""].join("/")).join(","),e.isOrphan?1:0,e.outOfSync?1:0,e.snapshotCompleteness,((t=e.branchConvergence)==null?void 0:t.status)??"",(n=e.branchConvergence)!=null&&n.needsConvergence?1:0,e.nextStepHint??"",e.error??"",e.parentNodeId??"",e.submodulePath??"",e.submoduleCommit??"",((a=e.gitObservation)==null?void 0:a.source)??"",((r=e.gitObservation)==null?void 0:r.observedAt)??"",(l=e.gitObservation)!=null&&l.refreshing?1:0,((i=e.gitObservation)==null?void 0:i.unreachableSince)??""].join("|")}function $n(e){return[e.id,e.source,e.target,e.type,e.label??"",e.direction].join("|")}function Zr(e){return[e.meshId,e.refreshedAt,e.nodes.length,e.edges.length,...e.nodes.map(Xr),...e.edges.map($n)].join("::")}function ei(e){return[e.meshId,e.nodes.length,e.edges.length,...e.nodes.map(t=>{var n,a;return[t.id,t.type,t.label,t.branch??"",t.machineLabel??"",t.locality,t.health,t.dirty?1:0,t.dirtyFiles,t.hasConflicts?1:0,t.activeSessionCount,t.isOrphan?1:0,t.outOfSync?1:0,t.snapshotCompleteness,((n=t.branchConvergence)==null?void 0:n.status)??"",(a=t.branchConvergence)!=null&&a.needsConvergence?1:0,t.nextStepHint??"",t.parentNodeId??"",t.submodulePath??"",t.submoduleCommit??""].join("|")}),...e.edges.map($n)].join("::")}function ds(e){switch(e.type){case"parentBranch":return"#38bdf8";case"worktreeLink":return"#a78bfa";case"sessionLink":return"#34d399";case"orphanLink":return"#f97316";case"submoduleLink":return"#c084fc";case"cloneLink":return"#2dd4bf";default:return"#64748b"}}const ti=["parentBranch","cloneLink","worktreeLink","submoduleLink","sessionLink","orphanLink"],si={parentBranch:"mesh.legendEdge.parentBranch",cloneLink:"mesh.legendEdge.cloneLink",worktreeLink:"mesh.legendEdge.worktreeLink",submoduleLink:"mesh.legendEdge.submoduleLink",sessionLink:"mesh.legendEdge.sessionLink",orphanLink:"mesh.legendEdge.orphanLink"},ni={orphanLink:"5 4",submoduleLink:"4 3",cloneLink:"6 3"};function ai({edges:e}){const{t}=q("common"),n=p.useMemo(()=>{const a=new Set;for(const r of e)a.add(r.type);return ti.filter(r=>a.has(r))},[e]);return n.length===0?null:s.jsx("div",{className:"flex flex-col gap-1",children:n.map(a=>s.jsxs("span",{className:"flex items-center gap-2 text-2xs",children:[s.jsx("svg",{width:"18",height:"4","aria-hidden":!0,children:s.jsx("line",{x1:"0",y1:"2",x2:"18",y2:"2",stroke:ds({type:a}),strokeWidth:"2",strokeDasharray:ni[a]})}),t(si[a])]},a))})}const ri=7,pt=2,ii=640,ks=p.createContext(it("dark")),In=p.createContext(!1),Cn=p.createContext("LR"),Mn=p.createContext(!0),Ln={overflowWrap:"anywhere",wordBreak:"break-word"},oi={...Ln,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:3,overflow:"hidden"},li={...Ln,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:4,overflow:"hidden"};function Dn(e){return e.activeSessionCount>0}function di(e){return e.health==="offline"||e.snapshotCompleteness==="stale"&&e.activeSessionCount===0}function Jt(e,t,n){const a=Dn(e),r=di(e);let l;t?l=n?"border-cyan-400/60 ring-2 ring-cyan-300/60 shadow-sm":"border-sky-400 ring-2 ring-sky-400/70 shadow-sm":a?l=n?"border-emerald-400/40 shadow-sm":"border-emerald-400/60 shadow-sm":r?l=n?"border-white/6 shadow-sm opacity-60":"border-slate-200/70 shadow-sm opacity-60":l=n?"border-white/10 shadow-sm":"border-slate-300/90 shadow-sm";const i=Wt(e);if((i==null?void 0:i.tone)==="danger")return`${l} ${n?"bg-rose-500/12":"bg-rose-50/95"}`;if((i==null?void 0:i.tone)==="warn")return`${l} ${n?"bg-amber-500/10":"bg-amber-50/95"}`;if((i==null?void 0:i.tone)==="info")return`${l} ${n?"bg-violet-500/10":"bg-violet-50/95"}`;switch(e.health){case"online":return`${l} ${n?a?"bg-emerald-500/10":"bg-emerald-500/8":a?"bg-emerald-50":"bg-emerald-50/95"}`;case"dirty":return`${l} ${n?"bg-amber-500/8":"bg-amber-50/95"}`;case"degraded":return`${l} ${n?"bg-rose-500/10":"bg-rose-50/95"}`;case"wrong_branch":return`${l} ${n?"bg-violet-500/10":"bg-violet-50/95"}`;case"offline":return`${l} ${n?"bg-slate-500/10":"bg-slate-100/90"}`;default:return`${l} ${n?"bg-slate-950/78":"bg-white/96"}`}}function we(e,t){switch(e){case"refineDone":return t?"border-emerald-400/25 bg-emerald-500/10 text-emerald-200":"border-emerald-300 bg-emerald-50 text-emerald-700";case"health":return t?"border-white/10 bg-slate-950/60 text-slate-200":"border-slate-300 bg-white/95 text-slate-700";case"dirty":return t?"border-amber-400/25 bg-amber-500/10 text-amber-200":"border-amber-300 bg-amber-50 text-amber-700";case"conflict":return t?"border-rose-400/25 bg-rose-500/10 text-rose-200":"border-rose-300 bg-rose-50 text-rose-700";case"orphan":return t?"border-fuchsia-400/25 bg-fuchsia-500/10 text-fuchsia-200":"border-fuchsia-300 bg-fuchsia-50 text-fuchsia-700";case"submodule":return t?"border-violet-400/25 bg-violet-500/10 text-violet-200":"border-violet-300 bg-violet-50 text-violet-700";case"meta":default:return t?"border-cyan-400/20 bg-cyan-500/8 text-cyan-100":"border-sky-300 bg-sky-50 text-sky-700"}}function Hs(e,t){switch(e){case"danger":return t?"border-rose-400/35 bg-rose-500/14 text-rose-50":"border-rose-300 bg-rose-50 text-rose-700";case"warn":return t?"border-amber-400/35 bg-amber-500/14 text-amber-50":"border-amber-300 bg-amber-50 text-amber-700";case"info":return t?"border-violet-400/35 bg-violet-500/14 text-violet-50":"border-violet-300 bg-violet-50 text-violet-700";case"good":default:return t?"border-emerald-400/35 bg-emerald-500/12 text-emerald-50":"border-emerald-300 bg-emerald-50 text-emerald-700"}}function Xt(e){switch(e){case"online":return"#34d399";case"dirty":return"#fbbf24";case"degraded":return"#fb7185";case"wrong_branch":return"#a78bfa";case"offline":return"#94a3b8";default:return"#64748b"}}function ci(e){return e.replace(/_/g," ")}const ws=Nt;function ui(e){var t;return((t=e.sessionDetails)==null?void 0:t.some(n=>ws(n)==="generating"))??!1}function Ts(e,t){const n=ws(e);return n.includes("approval")?t?"border-amber-400/30 bg-amber-500/12 text-amber-100":"border-amber-300 bg-amber-50 text-amber-700":n==="generating"?t?"border-cyan-400/30 bg-cyan-500/12 text-cyan-100":"border-sky-300 bg-sky-50 text-sky-700":n==="idle"?t?"border-emerald-400/30 bg-emerald-500/12 text-emerald-100":"border-emerald-300 bg-emerald-50 text-emerald-700":n.includes("failed")||n.includes("stopped")||n.includes("interrupted")?t?"border-rose-400/30 bg-rose-500/12 text-rose-100":"border-rose-300 bg-rose-50 text-rose-700":we("health",t)}function hi(e,t){switch(e){case"easy":return t?"border-emerald-400/30 bg-emerald-500/12 text-emerald-100":"border-emerald-300 bg-emerald-50 text-emerald-700";case"medium":return t?"border-amber-400/30 bg-amber-500/12 text-amber-100":"border-amber-300 bg-amber-50 text-amber-700";case"difficult":return t?"border-rose-400/30 bg-rose-500/12 text-rose-100":"border-rose-300 bg-rose-50 text-rose-700";default:return we("health",t)}}function Rt(e,t){switch(e){case"easy":return t("mesh.difficulty.easy");case"medium":return t("mesh.difficulty.medium");case"difficult":return t("mesh.difficulty.difficult");case"freeform":return t("mesh.difficulty.freeform");default:return e}}function pi(e){if(!e)return null;const t=Date.parse(e);return Number.isFinite(t)?t:null}function Zt(e){const t=pi(e);return t===null?"":ua(Math.max(0,Date.now()-t))}function mi(e,t){if(e.sessionDetails.length===0)return null;const n=e.sessionDetails.filter(i=>ws(i)==="generating").length,a=e.sessionDetails.filter(i=>i.isSelfCoordinator).length,r=e.sessionDetails.length-a,l=[t("mesh.panel.chats",{count:e.sessionDetails.length})];return n>0&&l.push(t("mesh.panel.generatingCount",{count:n})),a>0&&l.push(a===1?t("mesh.panel.coordinatorAttached"):t("mesh.panel.coordinators",{count:a})),r>0&&l.push(t("mesh.panel.workers",{count:r})),n===0&&a>0&&l.push(t("mesh.panel.sampledStatus")),l.join(" · ")}const fi={"submodule drift":"mesh.attention.submoduleDrift","submodule dirty":"mesh.attention.submoduleDirty","conflicts present":"mesh.attention.conflictsPresent","dirty workspace":"mesh.attention.dirtyWorkspace","upstream unverified":"mesh.attention.upstreamUnverified","push branch":"mesh.attention.pushBranch","blocked review":"mesh.attention.blockedReview","refine failed":"mesh.attention.refineFailed","refining…":"mesh.attention.refining","needs merge":"mesh.attention.needsMerge","refine worktree":"mesh.attention.refineWorktree","needs follow-up":"mesh.attention.needsFollowUp",offline:"mesh.attention.offline"};function xi(e,t){const n=a=>ha(a,{nowLabel:"<1m"});switch(e.kind){case"fetching":return t("mesh.graph.observationFetching");case"refreshing":return t("mesh.graph.observationRefreshing",{age:n(e.observedAt)});case"aged":return t("mesh.graph.observationAsOf",{age:n(e.observedAt)});case"unreachable":return e.observedAt===null?t("mesh.graph.observationUnreachableNoState"):t("mesh.graph.observationUnreachable",{age:n(e.observedAt)})}}function es(e,t,n){const a=fi[e];if(a)return n(a);const r=wn(t,n);return r&&/^(ahead|behind) /.test(e)?r:e}function gi(e){const t=(e||"").trim().replace(/[\\/]+$/,"");return t?t.split(/[\\/]+/).filter(Boolean).slice(-2).join("/"):""}function bi({data:e,selected:t}){var D;const{t:n}=q("common"),a=p.useContext(ks),r=p.useContext(In),l=p.useContext(Cn),i=p.useContext(Mn),o=e.graphNode,u=o.type==="defaultBranchNode",d=o.type==="submoduleNode",h=vn(o),c=[o.machineLabel,o.locality==="remote"?n("mesh.panel.remote"):null].filter(Boolean).join(" · "),m=gi(o.workspace),f=i?c||m||o.workspace:m||c||o.workspace,$=o.submoduleCommit?o.submoduleCommit.slice(0,7):null,x=Br(o),b=x?xi(x,n):null,L=(x==null?void 0:x.kind)==="unreachable"?we("dirty",a.isDark):we("meta",a.isDark),E=!!b&&((x==null?void 0:x.kind)==="aged"||(x==null?void 0:x.kind)==="unreachable"),I=(x==null?void 0:x.kind)==="unreachable"?n("mesh.graph.observationUnreachableChip"):n("mesh.graph.observationStaleChip");if(u){const _=Wt(o);return s.jsxs("div",{className:`rounded-full border px-4 py-2.5 transition-all ${a.isDark?`border-sky-400/40 bg-sky-500/10 ${t?"ring-2 ring-cyan-300/60":""}`:`border-sky-400 bg-sky-50 ${t?"ring-2 ring-sky-400/70":""}`}`,style:{width:st(o,r)},title:[o.label,ls(o,n),_?es(_.label,o,n):null].filter(Boolean).join(`
1
+ import{u as q,r as p,j as s}from"./vendor-CgFxQ3Rd.js";import{I as la,a as is,n as rt,c as en,r as da,u as St,g as it,b as ca,s as ze,d as tt,e as Gt,f as mt,h as ua,i as ha,j as Nt,k as pa,M as ot,l as ma,B as Z,T as He,m as Ft,o as fa,q as xa,p as Ds,t as tn,v as ga,S as ba,w as Ht,x as Tt,y as ya,z as va,A as ka,C as wa,D as Ee,E as ja,F as os,G as sn,H as Na,J as Sa,K as nn,L as $a,N as nt,O as As,P as an,Q as rn,R as fs,U as Ia,V as Ca,W as Ma,X as La,Y as Da,Z as Aa,_ as _a,$ as Ea,a0 as Yt,a1 as Ra,a2 as Ba,a3 as Oa,a4 as Pa,a5 as Ga,a6 as ht,a7 as _s,a8 as Fa,a9 as Ha,aa as Ta,ab as on,ac as Wa,ad as Ua,ae as Ka,af as Va,ag as za,ah as qa,ai as Ya,aj as Qa,ak as Ja}from"./index-BfRUbeFT.js";import{al as pd,am as md,an as fd}from"./index-BfRUbeFT.js";import{E as ln,i as xs,C as dn,M as Xa,B as cn,a as un,b as Za,c as er,H as $e,P as pe,u as tr,d as hn,e as gs,g as Es,f as sr,h as nr,j as ar}from"./mesh-graph-7mv6fb91.js";function rr(e,t){if(e==null||!Number.isFinite(e))return null;const n=t-e;if(!Number.isFinite(n)||n<0)return null;const a=Math.floor(n/1e3);if(a<60)return`${a}s`;const r=Math.floor(a/60);return r<60?`${r}m`:`${Math.floor(r/60)}h ${String(r%60).padStart(2,"0")}m`}function ir(e){return`${e.state??""} ${e.chatStatus??""} ${e.lifecycle??""}`.toLowerCase()}function or(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){const a=n.activeSessionDetails;if(Array.isArray(a))for(const r of a)r!=null&&r.sessionId&&ir(r).includes("approval")&&t.push({nodeId:n.nodeId,sessionId:r.sessionId,providerType:r.providerType,machineLabel:rt(n)||n.nodeId,detail:r.statusNote??r.title??null})}return t}function lr({approvals:e,nodes:t,onResolve:n,hideWhenEmpty:a=!0,nowMs:r}){const{t:l}=q(),i=r??Date.now(),o=p.useMemo(()=>e??or(t),[e,t]),[u,d]=p.useState({});if(a&&o.length===0)return null;const h=(c,m)=>{u[c.sessionId]||(d(f=>({...f,[c.sessionId]:m})),Promise.resolve(n(c.nodeId,c.sessionId,m)).finally(()=>{d(f=>{const $={...f};return delete $[c.sessionId],$})}))};return s.jsxs("div",{className:"rounded-lg border p-3",style:{borderColor:"color-mix(in srgb, var(--status-warning) 40%, transparent)",background:"color-mix(in srgb, var(--status-warning) 8%, transparent)"},children:[s.jsxs("div",{className:"flex items-center gap-2 mb-2 font-black text-xs",style:{color:"var(--status-warning)"},children:[s.jsx(la,{size:14}),l("mesh.approvals.title"),s.jsxs("span",{className:"opacity-70 font-semibold",children:["(",o.length,")"]})]}),o.length===0?s.jsx("div",{className:"text-2xs opacity-70",children:l("mesh.approvals.empty")}):s.jsx("ul",{className:"flex flex-col gap-2",children:o.map(c=>{const m=u[c.sessionId]??null,f=m!==null,$=rr(c.waitingSince,i);return s.jsxs("li",{className:"flex items-center justify-between gap-3 rounded-md px-2.5 py-2",style:{background:"color-mix(in srgb, var(--surface-primary) 82%, transparent)"},children:[s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"text-xs font-semibold truncate",children:[c.machineLabel||c.nodeId,c.providerType&&s.jsx("span",{className:"ml-2 opacity-60 font-normal",children:c.providerType}),$&&s.jsx("span",{className:"ml-2 font-bold text-3xs",style:{color:"var(--status-warning)"},title:l("mesh.approvals.waitingFor",{duration:$}),children:$})]}),s.jsx("div",{className:"text-3xs opacity-60 truncate",children:c.detail?c.detail.replace(/[\n\r]+/g," ").slice(0,120):l("mesh.approvals.sessionFallback",{id:c.sessionId})}),c.options&&c.options.length>0&&s.jsx("div",{className:"mt-1 flex flex-wrap gap-1",children:c.options.slice(0,4).map((x,b)=>s.jsx("span",{className:"text-4xs px-1.5 py-0.5 rounded opacity-70",style:{background:"color-mix(in srgb, var(--text-muted) 15%, transparent)"},children:x.replace(/[⌥⏎⇧⌫⌘⌃]/g,"").trim().slice(0,32)},`${x}-${b}`))})]}),s.jsxs("div",{className:"flex gap-2 shrink-0",children:[s.jsx("button",{onClick:()=>h(c,"approve"),disabled:f,className:`btn btn-sm border-none rounded-md text-xs px-3 py-1 font-extrabold ${f?"cursor-not-allowed opacity-60":"cursor-pointer"}`,style:{color:"var(--status-warning)",background:"var(--surface-primary)"},children:m==="approve"?s.jsx(is,{size:12}):l("mesh.approvals.approve")}),s.jsx("button",{onClick:()=>h(c,"reject"),disabled:f,className:`btn btn-sm border-none rounded-md text-xs px-3 py-1 font-semibold text-white bg-red-500/30 ${f?"cursor-not-allowed opacity-60":"cursor-pointer"}`,children:m==="reject"?s.jsx(is,{size:12}):l("mesh.approvals.reject")})]})]},`${c.nodeId}:${c.sessionId}`)})})]})}const dr=5*60*1e3;function pn(e){return typeof e.daemonId=="string"&&e.daemonId.trim()?e.daemonId.trim():null}function mn(e){return typeof e.machineId=="string"&&e.machineId.trim()?e.machineId.trim():null}function cr(e){var t,n,a;return((t=e.connection)==null?void 0:t.state)==="self"||e.isLocalWorktree===!0?"local":((n=e.connection)==null?void 0:n.transport)==="direct"||((a=e.connection)==null?void 0:a.transport)==="relay"||pn(e)||mn(e)?"remote":"unknown"}function ur(e){const t=e.connection;if(!t)return{connectionTransport:null,connectionState:null,connectionReason:null,connectionReported:!1,connectionRttMs:null};const n=t.rttMs,a=typeof n=="number"&&Number.isFinite(n)&&n>=0?n:null;return{connectionTransport:t.transport??null,connectionState:t.state??null,connectionReason:typeof t.reason=="string"&&t.reason.trim()?t.reason.trim():null,connectionReported:t.reported===!0,connectionRttMs:a}}function fn(e){const t=e.connectionTransport;if(t==="direct"||t==="relay"||t==="local")return t;const n=e.connectionState;return n==="connecting"?"connecting":n==="disconnected"?"disconnected":n==="failed"?"failed":n==="closed"?"closed":null}function hr(e){if(e.connectionTransport==="local"||e.connectionState==="self")return null;const t=fn(e);return!t||t==="local"||typeof e.connectionRttMs!="number"||!Number.isFinite(e.connectionRttMs)?null:`${Math.round(e.connectionRttMs)}ms`}function pr(e){return da(e)}function xn(e){var t;return pr(e)?!1:!!(e.gitProbePending||((t=e.connection)==null?void 0:t.state)==="connecting")}function gn(e){if(!e)return null;const t=Date.parse(e);return Number.isNaN(t)?null:t}function mr(e){var n;const t=new Map;for(const a of((n=e.queue)==null?void 0:n.tasks)??[])a.assignedSessionId&&a.difficulty&&t.set(a.assignedSessionId,a.difficulty);return t}function fr(e,t){return(e.activeSessionDetails&&e.activeSessionDetails.length>0?e.activeSessionDetails:(e.activeSessions??[]).map(a=>({sessionId:a,workspace:e.workspace,isCached:!0}))).map(a=>{const r=t.get(a.sessionId);return r?{...a,difficulty:r}:a})}function bn(e){return e?e.staged+e.modified+e.untracked+e.deleted+e.renamed>0:!1}function yn(e){return((e==null?void 0:e.submodules)??[]).some(t=>t.dirty)}function bs(e){return((e==null?void 0:e.submodules)??[]).some(t=>t.outOfSync||!!t.error)}function xr(e){return bs(e)?"degraded":yn(e)?"dirty":"online"}function gr(e){return e?e.staged+e.modified+e.untracked+e.deleted+e.renamed:0}function Rs(e){switch(e){case"online":return 0;case"dirty":return 1;case"degraded":return 2;case"wrong_branch":return 3;case"offline":return 4;case"unknown":default:return 5}}function Qt(e){return e.length===0?"unknown":e.reduce((t,n)=>Rs(n)>Rs(t)?n:t)}function br(e){var l,i,o,u,d;const t=new Map,n=new Map;for(const h of e){const c=(i=(l=h.git)==null?void 0:l.branch)==null?void 0:i.trim();c&&(n.set(c,(n.get(c)??0)+1),(o=h.git)!=null&&o.upstream&&t.set(c,(t.get(c)??0)+1))}const a=[...t.entries()].sort((h,c)=>{if(c[1]!==h[1])return c[1]-h[1];const m=["main","master","develop","dev"],f=m.indexOf(h[0]),$=m.indexOf(c[0]);return f!==-1||$!==-1?f===-1?1:$===-1?-1:f-$:h[0].localeCompare(c[0])});return(u=a[0])!=null&&u[0]?a[0][0]:((d=[...n.entries()].sort((h,c)=>c[1]-h[1])[0])==null?void 0:d[0])??null}function yr(e,t){const n=[],a=e.git;return a?a.isGitRepo?(!a.branch&&a.headCommit&&n.push({text:"Detached HEAD",hint:{key:"mesh.hint.detachedHead"}}),a.hasConflicts&&n.push({text:"Merge conflicts need resolution",hint:{key:"mesh.hint.mergeConflicts"}}),a.branch&&t&&a.branch!==t&&!a.upstream&&n.push({text:`No upstream tracking for ${a.branch}`,hint:{key:"mesh.hint.noUpstream",params:{branch:a.branch}}}),a.upstream&&a.upstreamStatus&&a.upstreamStatus!=="fresh"&&n.push({text:`Upstream freshness unverified for ${a.branch??"workspace"}`,hint:{key:"mesh.hint.upstreamUnverified",params:{branch:a.branch??""}}}),e.error&&n.push({text:e.error,hint:{key:"mesh.hint.nodeError",detail:e.error}}),n):(n.push({text:"Not a git repository",hint:{key:"mesh.hint.notGitRepo"}}),n):(n.push({text:"No git status available",hint:{key:"mesh.hint.noGitStatus"}}),n)}function Bs(e){switch(e){case"merged_to_main":return 0;case"pushed_feature_branch_needs_merge":return 1;case"cleanup_candidate":return 2;case"blocked_review":return 3;case"not_mergeable":default:return 4}}function vr(e){return e.reduce((t,n)=>Bs(n.status)>Bs(t.status)?n:t)}function kr(e){const t=e.branchConvergenceSummary;if(Array.isArray(t==null?void 0:t.followUps))return t.followUps;const n=e.followUps;return Array.isArray(n)?n:(t==null?void 0:t.needsFollowUp)===!1||(t==null?void 0:t.unresolvedCount)===0?[]:null}function wr(e){var r,l,i;const t=e.sourceOfTruth,n=[],a=(r=t==null?void 0:t.fallback)==null?void 0:r.warning;return typeof a=="string"&&a.trim()&&n.push(a.trim()),(t==null?void 0:t.currentStatus)==="bootstrap_inventory_fallback"&&((l=t.directPeerTruth)==null?void 0:l.required)===!0&&((i=t.directPeerTruth)==null?void 0:i.satisfied)!==!0&&!n.some(o=>o.includes("direct mesh truth"))&&n.push("Direct mesh truth is not confirmed yet; this graph is drawn from setup inventory only."),n}function jr(e){const t=e.asyncRefineJobs;if(!Array.isArray(t))return[];const n=[];for(const a of t){if(!a||typeof a!="object")continue;const r=a,l=typeof r.jobId=="string"?r.jobId:null,i=r.status;l&&(i!=="accepted"&&i!=="running"&&i!=="completed"&&i!=="failed"||n.push({jobId:l,status:i,nodeId:typeof r.nodeId=="string"?r.nodeId:void 0,targetNodeId:typeof r.targetNodeId=="string"?r.targetNodeId:void 0,workspace:typeof r.workspace=="string"?r.workspace:void 0,branch:typeof r.branch=="string"?r.branch:void 0,into:typeof r.into=="string"?r.into:void 0,lastUpdatedAt:typeof r.lastUpdatedAt=="string"?r.lastUpdatedAt:void 0,startedAt:typeof r.startedAt=="string"?r.startedAt:void 0,completedAt:typeof r.completedAt=="string"?r.completedAt:void 0}))}return n}function Os(e){switch(e){case"running":case"accepted":return 0;case"failed":return 1;case"completed":default:return 2}}function Ps(e){const t=e.lastUpdatedAt||e.completedAt||e.startedAt||"";return gn(t)??0}function Nr(e){return e.length===0?null:e.reduce((t,n)=>{const a=Os(t.status),r=Os(n.status);return r!==a?r<a?n:t:Ps(n)>Ps(t)?n:t})}function Sr(e){var n,a;const t=new Map;for(const r of e){const l=((n=r.nodeId)==null?void 0:n.trim())||((a=r.targetNodeId)==null?void 0:a.trim());if(!l)continue;const i=t.get(l)??[];i.push(r),t.set(l,i)}return t}function $r(e,t){return e.type!=="submoduleNode"&&e.branch===t&&e.ahead===0&&e.behind===0&&!e.dirty&&!e.hasConflicts&&(!e.upstreamStatus||e.upstreamStatus==="fresh")&&e.snapshotCompleteness==="complete"}function Ir(e,t){var n,a;return{status:"merged_to_main",needsConvergence:!1,reason:"clean_default_branch_aggregate",nextStep:null,branch:e,defaultBranch:e,upstream:((n=t.find(r=>r.upstream))==null?void 0:n.upstream)??null,upstreamStatus:((a=t.find(r=>r.upstreamStatus))==null?void 0:a.upstreamStatus)??null,ahead:0,behind:0,dirty:!1,hasConflicts:!1}}function Cr(e,t){if(xn(e))return null;const n=e.branchConvergence;if(!n||typeof n!="object")return null;const a=n.status;if(!a||!["merged_to_main","pushed_feature_branch_needs_merge","blocked_review","cleanup_candidate","not_mergeable"].includes(a))return null;const r=e.git;if(a==="blocked_review"&&(n.reason==="git_status_unavailable"&&(r==null?void 0:r.isGitRepo)!==!1||n.reason==="branch_unknown"&&!(r!=null&&r.headCommit)))return null;const l=bn(r)||yn(r),i=!!(r!=null&&r.hasConflicts)||bs(r),o=(r==null?void 0:r.ahead)??0,u=(r==null?void 0:r.behind)??0,d=(r==null?void 0:r.branch)??null,h=(r==null?void 0:r.upstream)??null,c=(r==null?void 0:r.upstreamStatus)??null,m=n.defaultBranch??t??null;return{status:a,needsConvergence:n.needsConvergence??a!=="merged_to_main",reason:n.reason??"provided_by_coordinator",nextStep:n.nextStep??null,branch:n.branch??d,defaultBranch:m,upstream:n.upstream??h,upstreamStatus:n.upstreamStatus??c,ahead:n.ahead??o,behind:n.behind??u,dirty:n.dirty??l,hasConflicts:n.hasConflicts??i}}function Mr(e,t){const n=Cr(e,t);return n?{...n,defaultBranch:n.defaultBranch??t}:null}function Gs(e){const t=(e||"").trim().replace(/[\\/]+$/,"");if(!t)return null;const n=t.split(/[\\/]+/).filter(Boolean);return n[n.length-1]||null}function Lr(e){return e.error||e.outOfSync?"degraded":e.dirty?"dirty":"online"}function Dr(e){var d,h;const{nodeStatus:t,expectedSubmodulePaths:n,refreshedAtMs:a}=e,r=[],l=[],i=t.machineLabel||t.nodeId,o=t.git;if(!o){if(xn(t))return r.push(`${i} is still waiting for a live peer git snapshot from the selected coordinator.`),l.push({key:"mesh.hint.waitingForGit"}),{snapshotCompleteness:"pending_git",snapshotWarnings:r,snapshotWarningHints:l};const c=t.health==="online"||t.machineStatus==="online"||((d=t.connection)==null?void 0:d.state)==="connected"||((h=t.connection)==null?void 0:h.state)==="self";return r.push(c?`${i} is online but no peer git snapshot is visible yet.`:`${i} has no peer git snapshot visible yet.`),l.push({key:c?"mesh.hint.noGitYetOnline":"mesh.hint.noGitYet"}),{snapshotCompleteness:"missing_git",snapshotWarnings:r,snapshotWarningHints:l}}const u=new Set((o.submodules??[]).map(c=>c.path));if(n.size>0){const c=[...n].filter(m=>!u.has(m));c.length>0&&(r.push(`${i} is missing submodule visibility for ${c.join(", ")} even though another peer reported it.`),l.push({key:"mesh.hint.missingSubmodule",params:{paths:c.join(", ")}}))}return t.connection&&t.connection.state!=="self"&&a!==null&&(typeof o.lastCheckedAt=="number"?a-o.lastCheckedAt>dr&&(r.push(`${i} is relying on a peer git snapshot older than 5m; re-probe before trusting convergence.`),l.push({key:"mesh.hint.staleGit"})):(r.push(`${i} peer git snapshot age was not measured because no check time was reported.`),l.push({key:"mesh.hint.gitAgeUnknown"}))),r.some(c=>c.includes("submodule visibility"))?{snapshotCompleteness:"missing_submodule_report",snapshotWarnings:r,snapshotWarningHints:l}:r.some(c=>c.includes("older than 5m"))?{snapshotCompleteness:"stale",snapshotWarnings:r,snapshotWarningHints:l}:{snapshotCompleteness:"complete",snapshotWarnings:r,snapshotWarningHints:l}}function Ar(e){var K;const t=en(e),a=(typeof t.defaultBranch=="string"&&t.defaultBranch.trim().length>0?t.defaultBranch.trim():null)??br(t.nodes),r=gn(t.refreshedAt),l=new Set(t.nodes.flatMap(j=>{var D;return(((D=j.git)==null?void 0:D.submodules)??[]).map(_=>_.path)})),i=[],o=[],u=wr(t),d=new Map,h=Sr(jr(t)),c=mr(t);for(const j of t.nodes){const D=j.git,_=(D==null?void 0:D.branch)??null,U=xr(D),ee=bn(D)||U==="dirty",me=yr(j,a),ie=me.map(J=>J.text),fe=Mr(j,a),N=Dr({nodeStatus:j,expectedSubmodulePaths:l,refreshedAtMs:r}),Q=typeof j.clonedFromNodeId=="string"?j.clonedFromNodeId:null,re=fr(j,c),X=Nr(h.get(j.nodeId)??[]),ke=ur(j),ae=!!j.worktreeBranch||!!Q,z={id:j.nodeId,type:ie.length>0?"orphanNode":"worktreeNode",label:ae?j.worktreeBranch?`⎇ ${j.worktreeBranch}`:Gs(j.workspace)||j.machineLabel||j.nodeId.slice(0,8):j.machineLabel||Gs(j.workspace)||j.nodeId.slice(0,8),workspace:j.workspace,branch:_,upstream:(D==null?void 0:D.upstream)??null,upstreamStatus:(D==null?void 0:D.upstreamStatus)??null,daemonId:pn(j),machineId:mn(j),machineLabel:j.machineLabel||null,locality:cr(j),connectionTransport:ke.connectionTransport,connectionState:ke.connectionState,connectionReason:ke.connectionReason,connectionReported:ke.connectionReported,connectionRttMs:ke.connectionRttMs,health:Qt([j.health,U]),ahead:(D==null?void 0:D.ahead)??0,behind:(D==null?void 0:D.behind)??0,dirty:ee,dirtyFiles:gr(D),hasConflicts:(D==null?void 0:D.hasConflicts)??!1,activeSessionCount:re.length,activeSessions:re.map(J=>J.sessionId),sessionDetails:re,providers:j.providers??[],isOrphan:ie.length>0,orphanReasons:ie,error:j.error,nextStepHint:N.snapshotWarnings[0]??ie[0]??(fe==null?void 0:fe.nextStep)??void 0,nextStepHintI18n:N.snapshotWarningHints[0]??((K=me[0])==null?void 0:K.hint)??null,parentNodeId:null,clonedFromNodeId:Q,worktreeBranch:j.worktreeBranch??null,submodulePath:null,submoduleCommit:(D==null?void 0:D.headCommit)??null,outOfSync:bs(D),snapshotCompleteness:N.snapshotCompleteness,snapshotWarnings:N.snapshotWarnings,branchConvergence:fe,refineJobStatus:(X==null?void 0:X.status)??null,refineJobId:(X==null?void 0:X.jobId)??null,refineJobBranch:(X==null?void 0:X.branch)??null,refineJobInto:(X==null?void 0:X.into)??null,gitObservation:j.gitObservation??null,source:j};if(i.push(z),_){const J=d.get(_)??[];J.push(z.id),d.set(_,J)}for(const J of(D==null?void 0:D.submodules)??[]){const Oe=`${z.id}::submodule::${J.path}`,qe=J.path.split("/").filter(Boolean).pop()||J.path;i.push({id:Oe,type:"submoduleNode",label:qe,workspace:J.repoPath??J.path,branch:null,upstream:null,upstreamStatus:null,daemonId:z.daemonId,machineId:z.machineId,machineLabel:z.machineLabel,locality:z.locality,connectionTransport:z.connectionTransport,connectionState:z.connectionState,connectionReason:z.connectionReason,connectionReported:z.connectionReported,connectionRttMs:z.connectionRttMs,health:Lr(J),ahead:0,behind:0,dirty:J.dirty,dirtyFiles:J.dirty?1:0,hasConflicts:!1,activeSessionCount:0,activeSessions:[],sessionDetails:[],providers:[],isOrphan:!1,orphanReasons:[],error:J.error,nextStepHint:J.error||(J.outOfSync?`${J.path} is out of sync with the parent checkout`:J.dirty?`${J.path} has local changes`:`${J.path} is in sync with the parent checkout`),nextStepHintI18n:J.error?{key:"mesh.hint.nodeError",detail:J.error}:J.outOfSync?{key:"mesh.hint.submoduleOutOfSync",params:{path:J.path}}:J.dirty?{key:"mesh.hint.submoduleChanged",params:{path:J.path}}:{key:"mesh.hint.submoduleSynced",params:{path:J.path}},parentNodeId:z.id,submodulePath:J.path,submoduleCommit:J.commit,outOfSync:J.outOfSync,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:null,gitObservation:z.gitObservation??null,source:{kind:"synthetic-submodule",parentNodeId:z.id,parentWorkspace:j.workspace,submodule:J}}),o.push({id:`${z.id}--${Oe}`,source:z.id,target:Oe,type:"submoduleLink",label:J.outOfSync?"submodule out of sync":void 0,direction:"directed"})}}const m=a?`__branch_${a}`:null;if(m&&a){const D=(d.get(a)??[]).map(N=>i.find(Q=>Q.id===N)).filter(Boolean),_=D.map(N=>N.branchConvergence).filter(Boolean),U=kr(t),ee=D.length>0&&D.every(N=>$r(N,a)),me=(U==null?void 0:U.length)===0&&ee?Ir(a,D):_.length>0?vr(_):null,ie=(U==null?void 0:U.length)===0&&ee?0:_.filter(N=>N.needsConvergence).length,fe={id:m,type:"defaultBranchNode",label:a,workspace:t.repoIdentity,branch:a,upstream:null,upstreamStatus:null,daemonId:null,machineId:null,machineLabel:"default branch",locality:"unknown",connectionTransport:null,connectionState:null,connectionReason:null,connectionReported:!1,connectionRttMs:null,health:Qt(D.map(N=>N.health)),ahead:0,behind:0,dirty:D.some(N=>N.dirty),dirtyFiles:D.reduce((N,Q)=>N+Q.dirtyFiles,0),hasConflicts:D.some(N=>N.hasConflicts),activeSessionCount:D.reduce((N,Q)=>N+Q.activeSessionCount,0),activeSessions:D.flatMap(N=>N.activeSessions),sessionDetails:D.flatMap(N=>N.sessionDetails),providers:[...new Set(D.flatMap(N=>N.providers))],isOrphan:!1,orphanReasons:[],nextStepHint:ie>0?`${ie} workspace(s) on ${a} still need follow-up`:D.length>0?`${D.length} workspace(s) currently on ${a}`:"No workspaces currently checked out to the default branch",nextStepHintI18n:ie>0?{key:"mesh.hint.anchorNeedsFollowUp",params:{count:ie,branch:a??""}}:D.length>0?{key:"mesh.hint.anchorWorkspaces",params:{count:D.length,branch:a??""}}:{key:"mesh.hint.anchorEmpty"},error:void 0,parentNodeId:null,submodulePath:null,submoduleCommit:null,outOfSync:!1,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:me,source:{nodeId:m,machineLabel:a,workspace:t.repoIdentity,health:Qt(D.map(N=>N.health)),providers:[],activeSessions:[],activeSessionDetails:[]}};i.push(fe);for(const N of i)if(!(N.id===m||N.type==="submoduleNode")){if(N.branch===a){o.push({id:`${m}--${N.id}`,source:m,target:N.id,type:"parentBranch",direction:"undirected"});continue}if(N.branch){o.push({id:`${m}--${N.id}`,source:m,target:N.id,type:N.isOrphan?"orphanLink":"parentBranch",label:N.branch,direction:"undirected"});continue}if(N.isOrphan){o.push({id:`${m}--${N.id}`,source:m,target:N.id,type:"orphanLink",label:"detached",direction:"undirected"});continue}o.push({id:`${m}--${N.id}`,source:m,target:N.id,type:"parentBranch",direction:"undirected"})}}const f=new Set(i.map(j=>j.id)),$=new Set;for(const j of i){if(!j.clonedFromNodeId||j.type==="submoduleNode"||!f.has(j.clonedFromNodeId))continue;const D=`clone_${j.clonedFromNodeId}--${j.id}`;$.has(D)||($.add(D),o.push({id:D,source:j.clonedFromNodeId,target:j.id,type:"cloneLink",label:"cloned",direction:"directed"}))}const x=i.filter(j=>j.type!=="defaultBranchNode"),b=x.filter(j=>j.isOrphan).length,L=x.filter(j=>j.hasConflicts).length,E=x.filter(j=>j.health==="offline").length,I=x.filter(j=>j.type==="submoduleNode"&&j.outOfSync).length,T=x.filter(j=>{var D;return j.type!=="submoduleNode"&&((D=j.branchConvergence)==null?void 0:D.needsConvergence)}).length,W=x.filter(j=>{var D;return((D=j.branchConvergence)==null?void 0:D.status)==="blocked_review"}).length,H=x.filter(j=>{var D;return((D=j.branchConvergence)==null?void 0:D.status)==="pushed_feature_branch_needs_merge"}).length,C=x.filter(j=>{var D;return((D=j.branchConvergence)==null?void 0:D.status)==="cleanup_candidate"}).length,R=x.filter(j=>{var D;return((D=j.branchConvergence)==null?void 0:D.status)==="not_mergeable"}).length,M=x.filter(j=>j.snapshotCompleteness!=="complete").length,y=x.filter(j=>j.snapshotCompleteness==="pending_git").length,v=x.filter(j=>j.snapshotCompleteness==="missing_git").length,g=x.filter(j=>j.snapshotCompleteness==="missing_submodule_report").length,k=x.filter(j=>j.snapshotCompleteness==="stale").length,B=x.filter(j=>j.refineJobStatus==="running"||j.refineJobStatus==="accepted").length,A=x.filter(j=>j.refineJobStatus==="failed").length,V=[y>0?`${y} node(s) are still waiting for a live peer git snapshot`:null,v>0?`${v} node(s) have no visible peer git snapshot`:null,g>0?`${g} node(s) are missing peer submodule visibility reported elsewhere in the mesh`:null,k>0?`${k} node(s) rely on peer git snapshots older than 5m`:null].filter(Boolean);return T>0&&u.push(`${T} workspace(s) still need follow-up before the mesh is converged`),b>0&&u.push(`${b} workspace(s) need attention before safe coordination`),W>0&&u.push(`${W} workspace(s) are blocked on branch convergence or upstream sync`),H>0&&u.push(`${H} clean feature branch workspace(s) still need merge follow-up`),C>0&&u.push(`${C} worktree workspace(s) are ready for refine / cleanup`),R>0&&u.push(`${R} workspace(s) have local changes or conflicts blocking convergence`),L>0&&u.push(`${L} workspace(s) report merge conflicts`),E>0&&u.push(`${E} node(s) are currently offline`),I>0&&u.push(`${I} submodule(s) are out of sync with their parent checkout`),u.push(...V),a||u.push("Could not infer a default branch from live mesh status"),{meshId:t.meshId,meshName:t.meshName,repoIdentity:t.repoIdentity,refreshedAt:t.refreshedAt,nodes:i,edges:o,stats:{totalNodes:x.length,onlineNodes:x.filter(j=>j.health==="online").length,dirtyNodes:x.filter(j=>j.dirty).length,orphanNodes:b,errorNodes:x.filter(j=>!!j.error||j.outOfSync).length,offlineNodes:E,followUpNodes:T,blockedReviewNodes:W,mergeReadyNodes:H,cleanupCandidateNodes:C,notMergeableNodes:R,incompleteSnapshotNodes:M,pendingGitSnapshotNodes:y,missingGitSnapshotNodes:v,missingSubmoduleSnapshotNodes:g,staleGitSnapshotNodes:k,activeRefineNodes:B,failedRefineNodes:A,totalActiveSessions:x.reduce((j,D)=>j+D.activeSessionCount,0)},warnings:u,snapshotWarnings:V}}function _r(e){return e.ahead<=0&&e.behind<=0?null:e.ahead>0&&e.behind>0?`ahead ${e.ahead} / behind ${e.behind}`:e.behind>0?`behind ${e.behind}`:`ahead ${e.ahead}`}function Wt(e){if(e.type==="submoduleNode")return e.outOfSync||e.error?{label:"submodule drift",tone:"danger"}:e.dirty?{label:"submodule dirty",tone:"warn"}:null;const t=e.branchConvergence;if((t==null?void 0:t.status)==="not_mergeable")return{label:e.hasConflicts?"conflicts present":"dirty workspace",tone:"danger"};if((t==null?void 0:t.status)==="blocked_review"){if(t.reason==="upstream_unverified"||t.reason.endsWith("_upstream_unverified"))return{label:"upstream unverified",tone:"warn"};const n=_r(e);return n?{label:n,tone:"danger"}:!e.upstream&&e.branch&&e.branch!==t.defaultBranch?{label:"push branch",tone:"warn"}:{label:"blocked review",tone:"danger"}}return e.refineJobStatus==="failed"?{label:"refine failed",tone:"danger"}:e.refineJobStatus==="running"||e.refineJobStatus==="accepted"?{label:"refining…",tone:"info"}:(t==null?void 0:t.status)==="pushed_feature_branch_needs_merge"?{label:"needs merge",tone:"warn"}:(t==null?void 0:t.status)==="cleanup_candidate"?{label:"refine worktree",tone:"info"}:e.isOrphan?{label:"needs follow-up",tone:"warn"}:e.health==="offline"?{label:"offline",tone:"danger"}:null}function ys(e){var t;return e.nextStepHint??((t=e.branchConvergence)==null?void 0:t.nextStep)??null}const Er={blocked_review:"mesh.hint.daemon.blockedReview",pushed_feature_branch_needs_merge:"mesh.hint.daemon.needsMerge",cleanup_candidate:"mesh.hint.daemon.cleanup",not_mergeable:"mesh.hint.daemon.notMergeable",merged_to_main:"mesh.hint.daemon.merged"};function Fs(e,t){var i;const n=ys(e);if(!n)return null;const a=e.nextStepHintI18n;if(a)return{text:t(a.key,a.params),detail:a.detail??null};const r=(i=e.branchConvergence)==null?void 0:i.status,l=r&&Er[r]||"mesh.hint.daemon.followUp";return{text:t(l),detail:n}}function vn(e){var t;return!ys(e)||e.type==="defaultBranchNode"?!1:!!((t=e.branchConvergence)!=null&&t.needsConvergence||e.isOrphan||e.hasConflicts||e.outOfSync||e.error||e.health==="offline"||e.health==="degraded"||e.health==="wrong_branch"||e.dirty)}const Rr=6e4;function Br(e,t=Date.now()){const n=e.gitObservation;return!n||n.source==="self"||n.source==="local"?null:n.unreachableSince!==null&&n.unreachableSince!==void 0?{kind:"unreachable",observedAt:n.observedAt??null,unreachableSince:n.unreachableSince}:n.observedAt===null||n.observedAt===void 0?n.refreshing?{kind:"fetching"}:null:n.refreshing?{kind:"refreshing",observedAt:n.observedAt}:t-n.observedAt>=Rr?{kind:"aged",observedAt:n.observedAt}:null}function _t(e){return[...new Set(e.filter(t=>!!t))]}function Or(e){const t=e.nodes.find(i=>i.type==="defaultBranchNode")??null,n=(t==null?void 0:t.branch)??null,a=e.nodes.filter(i=>i.type!=="defaultBranchNode"&&i.type!=="submoduleNode"&&!i.isOrphan&&!!n&&i.branch===n),r=e.nodes.filter(i=>i.type!=="submoduleNode"&&!i.isOrphan),l=e.nodes.filter(i=>i.type!=="submoduleNode");return t||a.length>0?_t([t==null?void 0:t.id,...a.map(i=>i.id)]):r.length>0?_t(r.map(i=>i.id)):l.length>0?_t(l.map(i=>i.id)):_t(e.nodes.map(i=>i.id))}function kn(e){const t=[...e.nodes].sort((a,r)=>a.id.localeCompare(r.id)).map(a=>[a.id,a.type,a.branch??"",a.parentNodeId??"",a.submodulePath??""].join(":")).join("|"),n=[...e.edges].sort((a,r)=>a.id.localeCompare(r.id)).map(a=>[a.id,a.source,a.target,a.type].join(":")).join("|");return`${e.meshId}::${t}::${n}`}function Pr(e,t,n){const a=Math.max(0,Math.round(t)),r=Math.max(0,Math.round(n));return`${kn(e)}::${a}x${r}`}const ft={worktreeCardWidth:256,submoduleCardWidth:180,anchorCardWidth:232,minWorktreeCardHeight:150,minSubmoduleCardHeight:56,minAnchorCardHeight:44,maxEstimatedCardHeight:360,layerGap:220,nodeGap:82,edgeLabelBuffer:180,placeholderTopOffset:0},$t={worktreeCardWidth:188,submoduleCardWidth:156,anchorCardWidth:196,minWorktreeCardHeight:88,minSubmoduleCardHeight:50,minAnchorCardHeight:40,maxEstimatedCardHeight:230,layerGap:160,nodeGap:52,edgeLabelBuffer:120},Gr={maxWidth:180};function Fr(e){return e==="TB"?"DOWN":"RIGHT"}function vs(e,t){return{"elk.algorithm":"layered","elk.direction":Fr(t),"elk.edgeRouting":"ORTHOGONAL","elk.spacing.nodeNode":String(e.nodeGap),"elk.layered.spacing.nodeNodeBetweenLayers":String(e.layerGap),"elk.layered.spacing.edgeNodeBetweenLayers":String(e.edgeLabelBuffer),"elk.layered.layering.strategy":"NETWORK_SIMPLEX","elk.layered.nodePlacement.strategy":"NETWORK_SIMPLEX","elk.layered.crossingMinimization.strategy":"LAYER_SWEEP","elk.layered.considerModelOrder.strategy":"NODES_AND_EDGES","elk.layered.cycleBreaking.strategy":"GREEDY","elk.layered.mergeEdges":"false","elk.randomSeed":"1"}}const Hr=vs(ft,"LR");vs($t,"LR");const Tr=new ln;function st(e,t=!1){const n=t?$t:ft;return e.type==="submoduleNode"?n.submoduleCardWidth:e.type==="defaultBranchNode"?n.anchorCardWidth:n.worktreeCardWidth}function Ie(e,t,n,a){return e?e(t,a):n}function wn(e,t){return e.ahead<=0&&e.behind<=0?null:e.ahead>0&&e.behind>0?Ie(t,"mesh.attention.aheadBehind",`ahead ${e.ahead} / behind ${e.behind}`,{ahead:e.ahead,behind:e.behind}):e.behind>0?Ie(t,"mesh.attention.behind",`behind ${e.behind}`,{count:e.behind}):Ie(t,"mesh.attention.ahead",`ahead ${e.ahead}`,{count:e.ahead})}function ls(e,t){var a;if(e.type==="defaultBranchNode")return t&&e.nextStepHintI18n?t(e.nextStepHintI18n.key,e.nextStepHintI18n.params):e.nextStepHint||Ie(t,"mesh.summary.anchor","Default branch anchor");if(e.type==="submoduleNode"){const r=[e.machineLabel?Ie(t,"mesh.summary.parent",`parent ${e.machineLabel}`,{label:e.machineLabel}):null];return e.outOfSync?r.push(Ie(t,"mesh.panel.outOfSyncBadge","out of sync")):e.dirty?r.push(Ie(t,"mesh.summary.localChanges","local changes")):r.push(Ie(t,"mesh.panel.submoduleSynced","synced")),r.filter(Boolean).join(" · ")}const n=[];if(e.upstream&&n.push(e.upstream),e.upstream&&e.upstreamStatus!=="fresh")n.push(Ie(t,"mesh.attention.upstreamUnverified","upstream unverified"));else{const r=wn(e,t);r&&n.push(r)}return e.activeSessionCount>0&&n.push(Ie(t,"mesh.summary.sessions",`${e.activeSessionCount} session${e.activeSessionCount===1?"":"s"}`,{count:e.activeSessionCount})),e.dirtyFiles>0&&n.push(Ie(t,"mesh.drift.changed",`${e.dirtyFiles} changed`,{count:e.dirtyFiles})),e.hasConflicts&&n.push(Ie(t,"mesh.summary.conflicts","conflicts")),n.length===0?(a=e.branchConvergence)!=null&&a.needsConvergence?Ie(t,"mesh.attention.needsFollowUp","Needs follow-up"):Ie(t,"mesh.summary.clean","Clean and even with upstream"):n.join(" · ")}const Wr=2;function jn(e,t=!1){var L;const n=t?$t:ft;if(e.type==="defaultBranchNode")return n.minAnchorCardHeight;if(e.type==="submoduleNode")return n.minSubmoduleCardHeight;const a=st(e,t),r=t?22:30,l=t?2:3,i=Math.ceil(Ur(e)/l),o=Et(e.label,r,2),u=Et(e.machineLabel||e.workspace,r,2),d=Et(ls(e),r+(t?1:4),t?2:3),h=Wt(e),c=vn(e)?ys(e):null,m=t?0:Et(c,Math.max(24,Math.floor(a/8)),4),f=((L=e.sessionDetails)==null?void 0:L.length)??0,$=Math.min(Wr,f),x=f>0?t?14+$*36+(f>$?14:0):46+$*48+(f>$?16:0):0,b=t?40+o*16+u*12+(h?22:0)+Math.max(0,i-1)*18+x:52+o*18+u*14+(h?30:0)+i*24+Math.max(22,d*18)+x+(m>0?22+m*16:0);return Math.min(n.maxEstimatedCardHeight,Math.max(n.minWorktreeCardHeight,Math.ceil(b)))}function Et(e,t,n){const a=(e||"").trim();return a?Math.max(1,Math.min(n,Math.ceil(a.length/t))):0}function Ur(e){let t=e.health==="online"?0:1;return e.branch&&(t+=1),e.locality==="remote"&&(t+=1),(e.connectionTransport||e.connectionRttMs!=null)&&(t+=1),e.dirty&&(t+=1),e.outOfSync&&(t+=1),e.hasConflicts&&(t+=1),e.upstream&&e.upstreamStatus!=="fresh"&&(t+=1),e.isOrphan&&(t+=1),t}function Kr(e,t){return e.type==="defaultBranchNode"&&t.type!=="defaultBranchNode"?-1:t.type==="defaultBranchNode"&&e.type!=="defaultBranchNode"||e.type==="submoduleNode"&&t.type!=="submoduleNode"?1:t.type==="submoduleNode"&&e.type!=="submoduleNode"?-1:e.branch&&t.branch&&e.branch!==t.branch?e.branch.localeCompare(t.branch):e.branch&&!t.branch?-1:!e.branch&&t.branch?1:e.label.localeCompare(t.label)||e.id.localeCompare(t.id)}function Vr(e,t){return e.source.localeCompare(t.source)||e.target.localeCompare(t.target)||e.id.localeCompare(t.id)}function zr(e,t,n,a=!0){return{id:e.id,type:"meshNode",position:{x:t,y:n},graphNode:e,selected:!1,draggable:!1,selectable:a}}function qr(e,t,n){return{id:e.id,x:t,y:n,width:st(e),height:jn(e)}}function Yr(e,t){return{id:`${e.id}__placeholder`,type:"worktreeNode",label:"No active worktrees",workspace:t.repoIdentity,branch:e.branch,upstream:null,upstreamStatus:null,daemonId:null,machineId:null,machineLabel:null,locality:"unknown",connectionTransport:null,connectionState:null,connectionReason:null,connectionReported:!1,connectionRttMs:null,health:"unknown",ahead:0,behind:0,dirty:!1,dirtyFiles:0,hasConflicts:!1,activeSessionCount:0,activeSessions:[],sessionDetails:[],providers:[],isOrphan:!1,orphanReasons:[],nextStepHint:"Waiting for worktree nodes to report live mesh status.",error:void 0,parentNodeId:null,submodulePath:null,submoduleCommit:null,outOfSync:!1,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:null,source:{nodeId:`${e.id}__placeholder`,machineLabel:"",workspace:t.repoIdentity,health:"unknown",providers:[],activeSessions:[]}}}function Nn(e){const t=[...e.nodes].sort(Kr),n=t.find(r=>r.type==="defaultBranchNode")??null,a=t.some(r=>r.id!==(n==null?void 0:n.id)&&r.type!=="submoduleNode");return!n||a?t:[...t,Yr(n,e)]}function Qr(e,t=Hr,n=!1,a="LR"){const r=Nn(e),l=new Set(r.map(u=>u.id)),i=r.map(u=>({id:u.id,width:st(u,n),height:jn(u,n)})),o=e.edges.filter(u=>l.has(u.source)&&l.has(u.target)).sort(Vr).map(u=>({id:u.id,sources:[u.source],targets:[u.target]}));return{id:`${e.meshId||"mesh"}__elk_root`,layoutOptions:{...t},children:i,edges:o}}function Jr(e,t=!1){const n=[...new Set(e.map(r=>Math.round(r.x)))].sort((r,l)=>r-l),a=t?$t.layerGap:ft.layerGap;return n.length<2?a:Math.min(...n.slice(1).map((r,l)=>r-n[l]))}async function Sn(e,t=!1,n="LR",a){var $,x;const l=vs(t?$t:ft,n),i=Nn(e),o=new Map(i.map(b=>[b.id,b])),u=Qr(e,l,t,n);if(a&&a.size>0)for(const b of u.children??[]){const L=a.get(b.id);L&&L>0&&(b.height=L)}const d=await Tr.layout(u),h=(d.children??[]).map(b=>{const L=o.get(b.id);return L?zr(L,Math.round(b.x??0),Math.round(b.y??ft.placeholderTopOffset),!b.id.endsWith("__placeholder")):null}).filter(Boolean),c=new Map(i.map((b,L)=>[b.id,L]));h.sort((b,L)=>(c.get(b.id)??0)-(c.get(L.id)??0));const m=h.map(b=>qr(b.graphNode,b.position.x,b.position.y)),f=new Map;for(const b of d.edges??[]){const L=b.sections;if(!L||L.length===0)continue;const E=L[0],I=($=b.sources)==null?void 0:$[0],T=(x=b.targets)==null?void 0:x[0];if(!I||!T)continue;const W=[];W.push({x:Math.round(E.startPoint.x),y:Math.round(E.startPoint.y)});for(const H of E.bendPoints??[])W.push({x:Math.round(H.x),y:Math.round(H.y)});W.push({x:Math.round(E.endPoint.x),y:Math.round(E.endPoint.y)}),f.set(b.id,{id:b.id,source:I,target:T,points:W})}return{nodes:h,bounds:m,edgeRoutes:f,columnGap:Jr(m,t),layoutOptions:{...l}}}function Xr(e){var t,n,a,r,l,i;return[e.id,e.type,e.label,e.branch??"",e.upstream??"",e.upstreamStatus??"",e.daemonId??"",e.machineId??"",e.machineLabel??"",e.locality,e.health,e.ahead,e.behind,e.dirty?1:0,e.dirtyFiles,e.hasConflicts?1:0,e.activeSessionCount,e.sessionDetails.map(o=>[o.sessionId,o.providerType??"",o.state??"",o.chatStatus??"",o.lifecycle??"",o.role??"",o.isSelfCoordinator?1:0,o.statusNote??"",o.startedAt??"",o.createdAt??""].join("/")).join(","),e.isOrphan?1:0,e.outOfSync?1:0,e.snapshotCompleteness,((t=e.branchConvergence)==null?void 0:t.status)??"",(n=e.branchConvergence)!=null&&n.needsConvergence?1:0,e.nextStepHint??"",e.error??"",e.parentNodeId??"",e.submodulePath??"",e.submoduleCommit??"",((a=e.gitObservation)==null?void 0:a.source)??"",((r=e.gitObservation)==null?void 0:r.observedAt)??"",(l=e.gitObservation)!=null&&l.refreshing?1:0,((i=e.gitObservation)==null?void 0:i.unreachableSince)??""].join("|")}function $n(e){return[e.id,e.source,e.target,e.type,e.label??"",e.direction].join("|")}function Zr(e){return[e.meshId,e.refreshedAt,e.nodes.length,e.edges.length,...e.nodes.map(Xr),...e.edges.map($n)].join("::")}function ei(e){return[e.meshId,e.nodes.length,e.edges.length,...e.nodes.map(t=>{var n,a;return[t.id,t.type,t.label,t.branch??"",t.machineLabel??"",t.locality,t.health,t.dirty?1:0,t.dirtyFiles,t.hasConflicts?1:0,t.activeSessionCount,t.isOrphan?1:0,t.outOfSync?1:0,t.snapshotCompleteness,((n=t.branchConvergence)==null?void 0:n.status)??"",(a=t.branchConvergence)!=null&&a.needsConvergence?1:0,t.nextStepHint??"",t.parentNodeId??"",t.submodulePath??"",t.submoduleCommit??""].join("|")}),...e.edges.map($n)].join("::")}function ds(e){switch(e.type){case"parentBranch":return"#38bdf8";case"worktreeLink":return"#a78bfa";case"sessionLink":return"#34d399";case"orphanLink":return"#f97316";case"submoduleLink":return"#c084fc";case"cloneLink":return"#2dd4bf";default:return"#64748b"}}const ti=["parentBranch","cloneLink","worktreeLink","submoduleLink","sessionLink","orphanLink"],si={parentBranch:"mesh.legendEdge.parentBranch",cloneLink:"mesh.legendEdge.cloneLink",worktreeLink:"mesh.legendEdge.worktreeLink",submoduleLink:"mesh.legendEdge.submoduleLink",sessionLink:"mesh.legendEdge.sessionLink",orphanLink:"mesh.legendEdge.orphanLink"},ni={orphanLink:"5 4",submoduleLink:"4 3",cloneLink:"6 3"};function ai({edges:e}){const{t}=q("common"),n=p.useMemo(()=>{const a=new Set;for(const r of e)a.add(r.type);return ti.filter(r=>a.has(r))},[e]);return n.length===0?null:s.jsx("div",{className:"flex flex-col gap-1",children:n.map(a=>s.jsxs("span",{className:"flex items-center gap-2 text-2xs",children:[s.jsx("svg",{width:"18",height:"4","aria-hidden":!0,children:s.jsx("line",{x1:"0",y1:"2",x2:"18",y2:"2",stroke:ds({type:a}),strokeWidth:"2",strokeDasharray:ni[a]})}),t(si[a])]},a))})}const ri=7,pt=2,ii=640,ks=p.createContext(it("dark")),In=p.createContext(!1),Cn=p.createContext("LR"),Mn=p.createContext(!0),Ln={overflowWrap:"anywhere",wordBreak:"break-word"},oi={...Ln,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:3,overflow:"hidden"},li={...Ln,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:4,overflow:"hidden"};function Dn(e){return e.activeSessionCount>0}function di(e){return e.health==="offline"||e.snapshotCompleteness==="stale"&&e.activeSessionCount===0}function Jt(e,t,n){const a=Dn(e),r=di(e);let l;t?l=n?"border-cyan-400/60 ring-2 ring-cyan-300/60 shadow-sm":"border-sky-400 ring-2 ring-sky-400/70 shadow-sm":a?l=n?"border-emerald-400/40 shadow-sm":"border-emerald-400/60 shadow-sm":r?l=n?"border-white/6 shadow-sm opacity-60":"border-slate-200/70 shadow-sm opacity-60":l=n?"border-white/10 shadow-sm":"border-slate-300/90 shadow-sm";const i=Wt(e);if((i==null?void 0:i.tone)==="danger")return`${l} ${n?"bg-rose-500/12":"bg-rose-50/95"}`;if((i==null?void 0:i.tone)==="warn")return`${l} ${n?"bg-amber-500/10":"bg-amber-50/95"}`;if((i==null?void 0:i.tone)==="info")return`${l} ${n?"bg-violet-500/10":"bg-violet-50/95"}`;switch(e.health){case"online":return`${l} ${n?a?"bg-emerald-500/10":"bg-emerald-500/8":a?"bg-emerald-50":"bg-emerald-50/95"}`;case"dirty":return`${l} ${n?"bg-amber-500/8":"bg-amber-50/95"}`;case"degraded":return`${l} ${n?"bg-rose-500/10":"bg-rose-50/95"}`;case"wrong_branch":return`${l} ${n?"bg-violet-500/10":"bg-violet-50/95"}`;case"offline":return`${l} ${n?"bg-slate-500/10":"bg-slate-100/90"}`;default:return`${l} ${n?"bg-slate-950/78":"bg-white/96"}`}}function we(e,t){switch(e){case"refineDone":return t?"border-emerald-400/25 bg-emerald-500/10 text-emerald-200":"border-emerald-300 bg-emerald-50 text-emerald-700";case"health":return t?"border-white/10 bg-slate-950/60 text-slate-200":"border-slate-300 bg-white/95 text-slate-700";case"dirty":return t?"border-amber-400/25 bg-amber-500/10 text-amber-200":"border-amber-300 bg-amber-50 text-amber-700";case"conflict":return t?"border-rose-400/25 bg-rose-500/10 text-rose-200":"border-rose-300 bg-rose-50 text-rose-700";case"orphan":return t?"border-fuchsia-400/25 bg-fuchsia-500/10 text-fuchsia-200":"border-fuchsia-300 bg-fuchsia-50 text-fuchsia-700";case"submodule":return t?"border-violet-400/25 bg-violet-500/10 text-violet-200":"border-violet-300 bg-violet-50 text-violet-700";case"meta":default:return t?"border-cyan-400/20 bg-cyan-500/8 text-cyan-100":"border-sky-300 bg-sky-50 text-sky-700"}}function Hs(e,t){switch(e){case"danger":return t?"border-rose-400/35 bg-rose-500/14 text-rose-50":"border-rose-300 bg-rose-50 text-rose-700";case"warn":return t?"border-amber-400/35 bg-amber-500/14 text-amber-50":"border-amber-300 bg-amber-50 text-amber-700";case"info":return t?"border-violet-400/35 bg-violet-500/14 text-violet-50":"border-violet-300 bg-violet-50 text-violet-700";case"good":default:return t?"border-emerald-400/35 bg-emerald-500/12 text-emerald-50":"border-emerald-300 bg-emerald-50 text-emerald-700"}}function Xt(e){switch(e){case"online":return"#34d399";case"dirty":return"#fbbf24";case"degraded":return"#fb7185";case"wrong_branch":return"#a78bfa";case"offline":return"#94a3b8";default:return"#64748b"}}function ci(e){return e.replace(/_/g," ")}const ws=Nt;function ui(e){var t;return((t=e.sessionDetails)==null?void 0:t.some(n=>ws(n)==="generating"))??!1}function Ts(e,t){const n=ws(e);return n.includes("approval")?t?"border-amber-400/30 bg-amber-500/12 text-amber-100":"border-amber-300 bg-amber-50 text-amber-700":n==="generating"?t?"border-cyan-400/30 bg-cyan-500/12 text-cyan-100":"border-sky-300 bg-sky-50 text-sky-700":n==="idle"?t?"border-emerald-400/30 bg-emerald-500/12 text-emerald-100":"border-emerald-300 bg-emerald-50 text-emerald-700":n.includes("failed")||n.includes("stopped")||n.includes("interrupted")?t?"border-rose-400/30 bg-rose-500/12 text-rose-100":"border-rose-300 bg-rose-50 text-rose-700":we("health",t)}function hi(e,t){switch(e){case"easy":return t?"border-emerald-400/30 bg-emerald-500/12 text-emerald-100":"border-emerald-300 bg-emerald-50 text-emerald-700";case"medium":return t?"border-amber-400/30 bg-amber-500/12 text-amber-100":"border-amber-300 bg-amber-50 text-amber-700";case"difficult":return t?"border-rose-400/30 bg-rose-500/12 text-rose-100":"border-rose-300 bg-rose-50 text-rose-700";default:return we("health",t)}}function Rt(e,t){switch(e){case"easy":return t("mesh.difficulty.easy");case"medium":return t("mesh.difficulty.medium");case"difficult":return t("mesh.difficulty.difficult");case"freeform":return t("mesh.difficulty.freeform");default:return e}}function pi(e){if(!e)return null;const t=Date.parse(e);return Number.isFinite(t)?t:null}function Zt(e){const t=pi(e);return t===null?"":ua(Math.max(0,Date.now()-t))}function mi(e,t){if(e.sessionDetails.length===0)return null;const n=e.sessionDetails.filter(i=>ws(i)==="generating").length,a=e.sessionDetails.filter(i=>i.isSelfCoordinator).length,r=e.sessionDetails.length-a,l=[t("mesh.panel.chats",{count:e.sessionDetails.length})];return n>0&&l.push(t("mesh.panel.generatingCount",{count:n})),a>0&&l.push(a===1?t("mesh.panel.coordinatorAttached"):t("mesh.panel.coordinators",{count:a})),r>0&&l.push(t("mesh.panel.workers",{count:r})),n===0&&a>0&&l.push(t("mesh.panel.sampledStatus")),l.join(" · ")}const fi={"submodule drift":"mesh.attention.submoduleDrift","submodule dirty":"mesh.attention.submoduleDirty","conflicts present":"mesh.attention.conflictsPresent","dirty workspace":"mesh.attention.dirtyWorkspace","upstream unverified":"mesh.attention.upstreamUnverified","push branch":"mesh.attention.pushBranch","blocked review":"mesh.attention.blockedReview","refine failed":"mesh.attention.refineFailed","refining…":"mesh.attention.refining","needs merge":"mesh.attention.needsMerge","refine worktree":"mesh.attention.refineWorktree","needs follow-up":"mesh.attention.needsFollowUp",offline:"mesh.attention.offline"};function xi(e,t){const n=a=>ha(a,{nowLabel:"<1m"});switch(e.kind){case"fetching":return t("mesh.graph.observationFetching");case"refreshing":return t("mesh.graph.observationRefreshing",{age:n(e.observedAt)});case"aged":return t("mesh.graph.observationAsOf",{age:n(e.observedAt)});case"unreachable":return e.observedAt===null?t("mesh.graph.observationUnreachableNoState"):t("mesh.graph.observationUnreachable",{age:n(e.observedAt)})}}function es(e,t,n){const a=fi[e];if(a)return n(a);const r=wn(t,n);return r&&/^(ahead|behind) /.test(e)?r:e}function gi(e){const t=(e||"").trim().replace(/[\\/]+$/,"");return t?t.split(/[\\/]+/).filter(Boolean).slice(-2).join("/"):""}function bi({data:e,selected:t}){var D;const{t:n}=q("common"),a=p.useContext(ks),r=p.useContext(In),l=p.useContext(Cn),i=p.useContext(Mn),o=e.graphNode,u=o.type==="defaultBranchNode",d=o.type==="submoduleNode",h=vn(o),c=[o.machineLabel,o.locality==="remote"?n("mesh.panel.remote"):null].filter(Boolean).join(" · "),m=gi(o.workspace),f=i?c||m||o.workspace:m||c||o.workspace,$=o.submoduleCommit?o.submoduleCommit.slice(0,7):null,x=Br(o),b=x?xi(x,n):null,L=(x==null?void 0:x.kind)==="unreachable"?we("dirty",a.isDark):we("meta",a.isDark),E=!!b&&((x==null?void 0:x.kind)==="aged"||(x==null?void 0:x.kind)==="unreachable"),I=(x==null?void 0:x.kind)==="unreachable"?n("mesh.graph.observationUnreachableChip"):n("mesh.graph.observationStaleChip");if(u){const _=Wt(o);return s.jsxs("div",{className:`rounded-full border px-4 py-2.5 transition-all ${a.isDark?`border-sky-400/40 bg-sky-500/10 ${t?"ring-2 ring-cyan-300/60":""}`:`border-sky-400 bg-sky-50 ${t?"ring-2 ring-sky-400/70":""}`}`,style:{width:st(o,r)},title:[o.label,ls(o,n),_?es(_.label,o,n):null].filter(Boolean).join(`
2
2
  `),children:[s.jsx($e,{type:"target",position:l==="TB"?pe.Top:pe.Left,isConnectable:!1,style:{opacity:0,pointerEvents:"none"}}),s.jsxs("div",{className:"flex min-w-0 items-center justify-center gap-2",children:[s.jsx("span",{className:`shrink-0 text-sm ${a.isDark?"text-sky-200":"text-sky-600"}`,"aria-hidden":!0,children:s.jsx(ca,{size:13})}),s.jsx("span",{className:`truncate text-sm font-semibold ${a.textPrimary}`,children:o.label}),s.jsx("span",{className:`shrink-0 text-3xs uppercase tracking-wide ${a.textMuted}`,children:n("mesh.panel.defaultBranch")}),_&&s.jsx("span",{className:`shrink-0 h-2 w-2 rounded-full ${_.tone==="danger"?"bg-rose-400":_.tone==="warn"?"bg-amber-400":"bg-sky-400"}`,title:es(_.label,o,n),"aria-hidden":!0})]}),s.jsx($e,{type:"source",position:l==="TB"?pe.Bottom:pe.Right,isConnectable:!1,style:{opacity:0,pointerEvents:"none"}})]})}if(d){const _=o.outOfSync?n("mesh.panel.outOfSyncBadge"):o.dirty?n("mesh.panel.tooltipLocalChanges"):n("mesh.panel.submoduleSynced"),U=o.outOfSync?we("conflict",a.isDark):o.dirty?we("dirty",a.isDark):we("submodule",a.isDark);return s.jsxs("div",{className:`rounded-xl border px-3 py-2 transition-all ${Jt(o,t,a.isDark)}`,style:{width:st(o,r)},title:[o.label,o.submodulePath&&o.submodulePath!==o.label?o.submodulePath:null,((D=Fs(o,n))==null?void 0:D.text)||null,$?`@ ${$}`:null,b].filter(Boolean).join(`
3
3
  `),children:[s.jsx($e,{type:"target",position:l==="TB"?pe.Top:pe.Left,isConnectable:!1,style:{opacity:0,pointerEvents:"none"}}),s.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-2",children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsx("span",{className:"h-1.5 w-1.5 shrink-0 rounded-full",style:{backgroundColor:Xt(o.health)},"aria-hidden":!0}),s.jsx("span",{className:`truncate text-xs font-semibold ${a.textPrimary}`,children:o.label})]}),$&&s.jsx("span",{className:`shrink-0 font-mono text-4xs ${a.textMuted}`,children:$})]}),s.jsxs("div",{className:"mt-1.5 flex min-w-0 items-center gap-1.5",children:[s.jsx("span",{className:`shrink-0 rounded-full border px-1.5 py-px text-4xs ${U}`,children:_}),o.submodulePath&&o.submodulePath!==o.label&&s.jsx("span",{className:`min-w-0 truncate text-4xs ${a.textMuted}`,children:o.submodulePath})]}),s.jsx($e,{type:"source",position:l==="TB"?pe.Bottom:pe.Right,isConnectable:!1,style:{opacity:0,pointerEvents:"none"}})]})}const T=!d&&!u&&o.connectionState!=="self",W=T?fn(o):null,H=W==="local"?null:W,C=T?hr(o):null,R=Wt(o),M=Fs(o,n),y=(M==null?void 0:M.text)??null,v=Dn(o),g=o.sessionDetails,k=o.sessionDetails,B=mi(o,n),A=R?es(R.label,o,n):null,V=ls(o,n),K=o.sessionDetails.map(_=>{const U=ze(_,n),ee=_.providerType||n("mesh.panel.providerUnknown"),me=tt(_,n),ie=_.startedAt||_.createdAt||null,fe=_.difficulty?Rt(_.difficulty,n):null;return[ee,U,me,fe,Zt(ie)||null,_.statusNote||null].filter(Boolean).join(" · ")});if(r)return s.jsxs("div",{className:`rounded-xl border px-3 py-2.5 transition-all ${Jt(o,t,a.isDark)}`,style:{width:st(o,!0)},title:[o.label,o.branch?`${n("mesh.panel.tooltipPrefixBranch")} ${o.branch}`:null,o.machineLabel?`Machine: ${o.machineLabel}`:null,o.workspace?`Workspace: ${o.workspace}`:null,R?`${n("mesh.panel.tooltipPrefixStatus")} ${A}`:null,V,...K].filter(Boolean).join(`
4
4
  `),children:[s.jsx($e,{type:"target",position:l==="TB"?pe.Top:pe.Left,isConnectable:!1,style:{opacity:0,pointerEvents:"none"}}),s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("div",{className:`truncate text-xs font-semibold leading-4 ${a.textPrimary}`,title:o.label,children:o.label}),!u&&s.jsx("div",{className:`truncate text-3xs leading-3.5 ${a.textMuted}`,title:f,children:f})]}),s.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[v&&s.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${a.isDark?"bg-emerald-400":"bg-emerald-500"} animate-pulse`,"aria-label":n("mesh.graph.activeSessionAria")}),s.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{backgroundColor:Xt(o.health)},"aria-hidden":!0})]})]}),o.health==="unknown"&&!R&&s.jsx("div",{className:`mt-1.5 inline-flex min-w-0 max-w-full items-center rounded-full border px-1.5 py-px text-4xs italic ${we("health",a.isDark)}`,children:s.jsx("span",{className:"truncate",children:n("mesh.obs.connecting")})}),R&&s.jsx("div",{className:`mt-1.5 inline-flex min-w-0 max-w-full items-center rounded-full border px-1.5 py-px text-4xs font-semibold uppercase tracking-[0.14em] ${Hs(R.tone,a.isDark)}`,title:A??void 0,children:s.jsx("span",{className:"truncate",children:A})}),E&&s.jsx("div",{className:`mt-1 inline-flex min-w-0 max-w-full items-center rounded-full border px-1.5 py-px text-4xs ${L}`,title:b??void 0,children:s.jsx("span",{className:"truncate",children:I})}),!R&&o.branch&&!d&&o.health!=="unknown"&&s.jsx("div",{className:`mt-1 min-w-0 max-w-full truncate text-3xs ${we("meta",a.isDark)} rounded-full border px-1.5 py-px inline-block`,title:o.branch,children:o.branch}),B&&s.jsx("div",{className:`mt-1 min-w-0 max-w-full truncate text-4xs ${a.isDark?"text-cyan-100/85":"text-sky-700"}`,title:K.join(`