@adhdev/daemon-standalone 1.0.68 → 1.0.69

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
@@ -24469,10 +24469,10 @@ ${renderWorkerProtocolFooter(input)}`;
24469
24469
  }
24470
24470
  function getDaemonBuildInfo() {
24471
24471
  if (cached) return cached;
24472
- const commit2 = readInjected(true ? "addaa62b45f4077a4bf42eb69f075917190e9e6e" : void 0) ?? "unknown";
24473
- const commitShort = readInjected(true ? "addaa62" : void 0) ?? (commit2 !== "unknown" ? commit2.slice(0, 7) : "unknown");
24474
- const version = readInjected(true ? "1.0.68" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
24475
- const builtAt = readInjected(true ? "2026-10-03T04:27:06.912Z" : void 0);
24472
+ const commit2 = readInjected(true ? "df9761471a7fe3f4ea2686d66fd2903e10ac1bae" : void 0) ?? "unknown";
24473
+ const commitShort = readInjected(true ? "df97614" : void 0) ?? (commit2 !== "unknown" ? commit2.slice(0, 7) : "unknown");
24474
+ const version = readInjected(true ? "1.0.69" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
24475
+ const builtAt = readInjected(true ? "2026-10-04T09:13:25.316Z" : void 0);
24476
24476
  cached = builtAt ? { commit: commit2, commitShort, version, builtAt } : { commit: commit2, commitShort, version };
24477
24477
  return cached;
24478
24478
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adhdev/daemon-standalone",
3
- "version": "1.0.68",
3
+ "version": "1.0.69",
4
4
  "description": "ADHDev standalone daemon — embedded HTTP/WS server for local dashboard",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -1,4 +1,4 @@
1
- import{u as q,r as f,j as s}from"./vendor-CgFxQ3Rd.js";import{I as Zn,a as Jt,n as qe,c as Vs,i as ea,b as ta,r as sa,g as Ye,d as na,M as he,m as be,s as Pe,e as Ke,f as jt,h as et,j as aa,k as ra,l as lt,u as ct,o as oa,p as ia,q as Qe,t as la,B as Y,T as Ge,v as kt,w as ca,x as da,y as Ss,z as qs,A as ua,S as ha,C as St,D as Ct,E as pa,F as ma,G as fa,H as xa,J as Be,K as At,L as ga,N as Ys,O as ba,P as va,Q as ya,R as tt,U as Qs,V as Cs,W as wa,X as Js,Y as Xs,Z as ns,_ as Na,$ as ja,a0 as ka,a1 as Sa,a2 as Ca,a3 as Ma,a4 as $a,a5 as Ia,a6 as Ot,a7 as La,a8 as Aa,a9 as Ea,aa as _a,ab as Ba,ac as Je,ad as Ms,ae as Ra,af as Da,ag as Pa,ah as Zs,ai as Oa,aj as Fa,ak as Ta,al as Ha,am as Ga,an as Wa,ao as Ua,ap as Ka,aq as za}from"./index-Bss9ZUs6.js";import{ar as Kl,as as zl,at as Vl}from"./index-Bss9ZUs6.js";import{E as en,H as $e,P as pe,i as as,C as tn,M as Va,B as qa,a as Ya,b as Qa,c as Ja,u as Xa,d as sn,e as rs,g as $s,f as Za,h as er,j as nn}from"./mesh-graph-7mv6fb91.js";function tr(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 sr(e){return`${e.state??""} ${e.chatStatus??""} ${e.lifecycle??""}`.toLowerCase()}function nr(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&&sr(r).includes("approval")&&t.push({nodeId:n.nodeId,sessionId:r.sessionId,providerType:r.providerType,machineLabel:qe(n)||n.nodeId,detail:r.statusNote??r.title??null})}return t}function ar({approvals:e,nodes:t,onResolve:n,hideWhenEmpty:a=!0,nowMs:r}){const{t:l}=q(),i=r??Date.now(),o=f.useMemo(()=>e??nr(t),[e,t]),[u,d]=f.useState({});if(a&&o.length===0)return null;const h=(c,m)=>{u[c.sessionId]||(d(x=>({...x,[c.sessionId]:m})),Promise.resolve(n(c.nodeId,c.sessionId,m)).finally(()=>{d(x=>{const j={...x};return delete j[c.sessionId],j})}))};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(Zn,{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,x=m!==null,j=tr(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}),j&&s.jsx("span",{className:"ml-2 font-bold text-3xs",style:{color:"var(--status-warning)"},title:l("mesh.approvals.waitingFor",{duration:j}),children:j})]}),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((g,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:g.replace(/[⌥⏎⇧⌫⌘⌃]/g,"").trim().slice(0,32)},`${g}-${b}`))})]}),s.jsxs("div",{className:"flex gap-2 shrink-0",children:[s.jsx("button",{onClick:()=>h(c,"approve"),disabled:x,className:`btn btn-sm border-none rounded-md text-xs px-3 py-1 font-extrabold ${x?"cursor-not-allowed opacity-60":"cursor-pointer"}`,style:{color:"var(--status-warning)",background:"var(--surface-primary)"},children:m==="approve"?s.jsx(Jt,{size:12}):l("mesh.approvals.approve")}),s.jsx("button",{onClick:()=>h(c,"reject"),disabled:x,className:`btn btn-sm border-none rounded-md text-xs px-3 py-1 font-semibold text-white bg-red-500/30 ${x?"cursor-not-allowed opacity-60":"cursor-pointer"}`,children:m==="reject"?s.jsx(Jt,{size:12}):l("mesh.approvals.reject")})]})]},`${c.nodeId}:${c.sessionId}`)})})]})}const rr=5*60*1e3;function an(e){return typeof e.daemonId=="string"&&e.daemonId.trim()?e.daemonId.trim():null}function rn(e){return typeof e.machineId=="string"&&e.machineId.trim()?e.machineId.trim():null}function or(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"||an(e)||rn(e)?"remote":"unknown"}function ir(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 on(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 lr(e){if(e.connectionTransport==="local"||e.connectionState==="self")return null;const t=on(e);return!t||t==="local"||typeof e.connectionRttMs!="number"||!Number.isFinite(e.connectionRttMs)?null:`${Math.round(e.connectionRttMs)}ms`}function cr(e){return sa(e)}function ln(e){var t;return cr(e)?!1:!!(e.gitProbePending||((t=e.connection)==null?void 0:t.state)==="connecting")}function cn(e){if(!e)return null;const t=Date.parse(e);return Number.isNaN(t)?null:t}function dr(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 ur(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 dn(e){return e?e.staged+e.modified+e.untracked+e.deleted+e.renamed>0:!1}function un(e){return((e==null?void 0:e.submodules)??[]).some(t=>t.dirty)}function os(e){return((e==null?void 0:e.submodules)??[]).some(t=>t.outOfSync||!!t.error)}function hr(e){return os(e)?"degraded":un(e)?"dirty":"online"}function pr(e){return e?e.staged+e.modified+e.untracked+e.deleted+e.renamed:0}function Is(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 Ft(e){return e.length===0?"unknown":e.reduce((t,n)=>Is(n)>Is(t)?n:t)}function mr(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"],x=m.indexOf(h[0]),j=m.indexOf(c[0]);return x!==-1||j!==-1?x===-1?1:j===-1?-1:x-j: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 fr(e,t){var i;const n=[],a=e.git;if(!a)return n.push({text:"No git status available",hint:{key:"mesh.hint.noGitStatus"}}),n;if(!a.isGitRepo)return n.push({text:"Not a git repository",hint:{key:"mesh.hint.notGitRepo"}}),n;!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"}});const r=(i=e.branchConvergence)==null?void 0:i.status,l=e.isLocalWorktree===!0||!!e.worktreeBranch||!!e.clonedFromNodeId||r==="merged_to_main"||r==="cleanup_candidate";return a.branch&&t&&a.branch!==t&&!a.upstream&&!l&&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}function Ls(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 xr(e){return e.reduce((t,n)=>Ls(n.status)>Ls(t.status)?n:t)}function gr(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 br(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 vr(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 As(e){return e==="running"||e==="accepted"?0:1}function Es(e){const t=e.lastUpdatedAt||e.completedAt||e.startedAt||"";return cn(t)??0}function yr(e){return e.length===0?null:e.reduce((t,n)=>{const a=As(t.status),r=As(n.status);return r!==a?r<a?n:t:Es(n)>Es(t)?n:t})}function wr(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 Nr(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 jr(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 kr(e,t){if(ln(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=dn(r)||un(r),i=!!(r!=null&&r.hasConflicts)||os(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 Sr(e,t){const n=kr(e,t);return n?{...n,defaultBranch:n.defaultBranch??t}:null}function _s(e){const t=(e||"").trim().replace(/[\\/]+$/,"");if(!t)return null;const n=t.split(/[\\/]+/).filter(Boolean);return n[n.length-1]||null}function Cr(e){return e.error||e.outOfSync?"degraded":e.dirty?"dirty":"online"}function Mr(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(ln(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>rr&&(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 $r(e){var Q;const t=Vs(e),a=(typeof t.defaultBranch=="string"&&t.defaultBranch.trim().length>0?t.defaultBranch.trim():null)??mr(t.nodes),r=cn(t.refreshedAt),l=new Set(t.nodes.flatMap(w=>{var M;return(((M=w.git)==null?void 0:M.submodules)??[]).map(L=>L.path)})),i=[],o=[],u=br(t),d=new Map,h=wr(vr(t)),c=dr(t);for(const w of t.nodes){const M=w.git,L=(M==null?void 0:M.branch)??null,z=hr(M),ce=dn(M)||z==="dirty",ge=fr(w,a),A=ge.map(W=>W.text),F=Sr(w,a),C=Mr({nodeStatus:w,expectedSubmodulePaths:l,refreshedAtMs:r}),ve=typeof w.clonedFromNodeId=="string"?w.clonedFromNodeId:null,Z=ur(w,c),V=yr(h.get(w.nodeId)??[]),ne=ir(w),ae=!!w.worktreeBranch||!!ve,ie={id:w.nodeId,type:A.length>0?"orphanNode":"worktreeNode",label:ae?w.worktreeBranch?`⎇ ${w.worktreeBranch}`:_s(w.workspace)||w.machineLabel||w.nodeId.slice(0,8):w.machineLabel||_s(w.workspace)||w.nodeId.slice(0,8),workspace:w.workspace,branch:L,upstream:(M==null?void 0:M.upstream)??null,upstreamStatus:(M==null?void 0:M.upstreamStatus)??null,daemonId:an(w),machineId:rn(w),machineLabel:w.machineLabel||null,locality:or(w),connectionTransport:ne.connectionTransport,connectionState:ne.connectionState,connectionReason:ne.connectionReason,connectionReported:ne.connectionReported,connectionRttMs:ne.connectionRttMs,health:Ft([w.health,z]),ahead:(M==null?void 0:M.ahead)??0,behind:(M==null?void 0:M.behind)??0,dirty:ce,dirtyFiles:pr(M),hasConflicts:(M==null?void 0:M.hasConflicts)??!1,inProgress:Z.some(W=>!W.isSelfCoordinator&&(ea(W.chatStatus??W.state)||ta(W.chatStatus??W.state))),activeSessionCount:Z.length,activeSessions:Z.map(W=>W.sessionId),sessionDetails:Z,providers:w.providers??[],isOrphan:A.length>0,orphanReasons:A,error:w.error,nextStepHint:C.snapshotWarnings[0]??A[0]??(F==null?void 0:F.nextStep)??void 0,nextStepHintI18n:C.snapshotWarningHints[0]??((Q=ge[0])==null?void 0:Q.hint)??null,parentNodeId:null,clonedFromNodeId:ve,worktreeBranch:w.worktreeBranch??null,submodulePath:null,submoduleCommit:(M==null?void 0:M.headCommit)??null,outOfSync:os(M),snapshotCompleteness:C.snapshotCompleteness,snapshotWarnings:C.snapshotWarnings,branchConvergence:F,refineJobStatus:(V==null?void 0:V.status)??null,refineJobId:(V==null?void 0:V.jobId)??null,refineJobBranch:(V==null?void 0:V.branch)??null,refineJobInto:(V==null?void 0:V.into)??null,gitObservation:w.gitObservation??null,source:w};if(i.push(ie),L){const W=d.get(L)??[];W.push(ie.id),d.set(L,W)}for(const W of(M==null?void 0:M.submodules)??[]){const Oe=`${ie.id}::submodule::${W.path}`,Fe=W.path.split("/").filter(Boolean).pop()||W.path;i.push({id:Oe,type:"submoduleNode",label:Fe,workspace:W.repoPath??W.path,branch:null,upstream:null,upstreamStatus:null,daemonId:ie.daemonId,machineId:ie.machineId,machineLabel:ie.machineLabel,locality:ie.locality,connectionTransport:ie.connectionTransport,connectionState:ie.connectionState,connectionReason:ie.connectionReason,connectionReported:ie.connectionReported,connectionRttMs:ie.connectionRttMs,health:Cr(W),ahead:0,behind:0,dirty:W.dirty,dirtyFiles:W.dirty?1:0,hasConflicts:!1,inProgress:!1,activeSessionCount:0,activeSessions:[],sessionDetails:[],providers:[],isOrphan:!1,orphanReasons:[],error:W.error,nextStepHint:W.error||(W.outOfSync?`${W.path} is out of sync with the parent checkout`:W.dirty?`${W.path} has local changes`:`${W.path} is in sync with the parent checkout`),nextStepHintI18n:W.error?{key:"mesh.hint.nodeError",detail:W.error}:W.outOfSync?{key:"mesh.hint.submoduleOutOfSync",params:{path:W.path}}:W.dirty?{key:"mesh.hint.submoduleChanged",params:{path:W.path}}:{key:"mesh.hint.submoduleSynced",params:{path:W.path}},parentNodeId:ie.id,submodulePath:W.path,submoduleCommit:W.commit,outOfSync:W.outOfSync,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:null,gitObservation:ie.gitObservation??null,source:{kind:"synthetic-submodule",parentNodeId:ie.id,parentWorkspace:w.workspace,submodule:W}}),o.push({id:`${ie.id}--${Oe}`,source:ie.id,target:Oe,type:"submoduleLink",label:W.outOfSync?"submodule out of sync":void 0,direction:"directed"})}}const m=a?`__branch_${a}`:null;if(m&&a){const M=(d.get(a)??[]).map(C=>i.find(ve=>ve.id===C)).filter(Boolean),L=M.map(C=>C.branchConvergence).filter(Boolean),z=gr(t),ce=M.length>0&&M.every(C=>Nr(C,a)),ge=(z==null?void 0:z.length)===0&&ce?jr(a,M):L.length>0?xr(L):null,A=(z==null?void 0:z.length)===0&&ce?0:L.filter(C=>C.needsConvergence).length,F={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:Ft(M.map(C=>C.health)),ahead:0,behind:0,dirty:M.some(C=>C.dirty),dirtyFiles:M.reduce((C,ve)=>C+ve.dirtyFiles,0),hasConflicts:M.some(C=>C.hasConflicts),inProgress:M.some(C=>C.inProgress),activeSessionCount:M.reduce((C,ve)=>C+ve.activeSessionCount,0),activeSessions:M.flatMap(C=>C.activeSessions),sessionDetails:M.flatMap(C=>C.sessionDetails),providers:[...new Set(M.flatMap(C=>C.providers))],isOrphan:!1,orphanReasons:[],nextStepHint:A>0?`${A} workspace(s) on ${a} still need follow-up`:M.length>0?`${M.length} workspace(s) currently on ${a}`:"No workspaces currently checked out to the default branch",nextStepHintI18n:A>0?{key:"mesh.hint.anchorNeedsFollowUp",params:{count:A,branch:a??""}}:M.length>0?{key:"mesh.hint.anchorWorkspaces",params:{count:M.length,branch:a??""}}:{key:"mesh.hint.anchorEmpty"},error:void 0,parentNodeId:null,submodulePath:null,submoduleCommit:null,outOfSync:!1,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:ge,source:{nodeId:m,machineLabel:a,workspace:t.repoIdentity,health:Ft(M.map(C=>C.health)),providers:[],activeSessions:[],activeSessionDetails:[]}};i.push(F);for(const C of i)if(!(C.id===m||C.type==="submoduleNode")){if(C.branch===a){o.push({id:`${m}--${C.id}`,source:m,target:C.id,type:"parentBranch",direction:"undirected"});continue}if(C.branch){o.push({id:`${m}--${C.id}`,source:m,target:C.id,type:C.isOrphan?"orphanLink":"parentBranch",label:C.branch,direction:"undirected"});continue}if(C.isOrphan){o.push({id:`${m}--${C.id}`,source:m,target:C.id,type:"orphanLink",label:"detached",direction:"undirected"});continue}o.push({id:`${m}--${C.id}`,source:m,target:C.id,type:"parentBranch",direction:"undirected"})}}const x=new Set(i.map(w=>w.id)),j=new Set;for(const w of i){if(!w.clonedFromNodeId||w.type==="submoduleNode"||!x.has(w.clonedFromNodeId))continue;const M=`clone_${w.clonedFromNodeId}--${w.id}`;j.has(M)||(j.add(M),o.push({id:M,source:w.clonedFromNodeId,target:w.id,type:"cloneLink",label:"cloned",direction:"directed"}))}const g=i.filter(w=>w.type!=="defaultBranchNode"),b=g.filter(w=>w.isOrphan).length,$=g.filter(w=>w.hasConflicts).length,y=g.filter(w=>w.health==="offline").length,p=g.filter(w=>w.type==="submoduleNode"&&w.outOfSync).length,S=g.filter(w=>{var M;return w.type!=="submoduleNode"&&!w.inProgress&&((M=w.branchConvergence)==null?void 0:M.needsConvergence)}).length,k=g.filter(w=>{var M;return!w.inProgress&&((M=w.branchConvergence)==null?void 0:M.status)==="blocked_review"}).length,D=g.filter(w=>{var M;return((M=w.branchConvergence)==null?void 0:M.status)==="pushed_feature_branch_needs_merge"}).length,_=g.filter(w=>{var M;return((M=w.branchConvergence)==null?void 0:M.status)==="cleanup_candidate"}).length,O=g.filter(w=>{var M;return((M=w.branchConvergence)==null?void 0:M.status)==="not_mergeable"}).length,I=g.filter(w=>w.snapshotCompleteness!=="complete").length,B=g.filter(w=>w.snapshotCompleteness==="pending_git").length,R=g.filter(w=>w.snapshotCompleteness==="missing_git").length,N=g.filter(w=>w.snapshotCompleteness==="missing_submodule_report").length,v=g.filter(w=>w.snapshotCompleteness==="stale").length,G=g.filter(w=>w.refineJobStatus==="running"||w.refineJobStatus==="accepted").length,U=g.filter(w=>w.refineJobStatus==="failed").length,ee=[B>0?`${B} node(s) are still waiting for a live peer git snapshot`:null,R>0?`${R} node(s) have no visible peer git snapshot`:null,N>0?`${N} node(s) are missing peer submodule visibility reported elsewhere in the mesh`:null,v>0?`${v} node(s) rely on peer git snapshots older than 5m`:null].filter(Boolean);return S>0&&u.push(`${S} workspace(s) still need follow-up before the mesh is converged`),b>0&&u.push(`${b} workspace(s) need attention before safe coordination`),k>0&&u.push(`${k} workspace(s) are blocked on branch convergence or upstream sync`),D>0&&u.push(`${D} clean feature branch workspace(s) still need merge follow-up`),_>0&&u.push(`${_} worktree workspace(s) are ready for refine / cleanup`),O>0&&u.push(`${O} workspace(s) have local changes or conflicts blocking convergence`),$>0&&u.push(`${$} workspace(s) report merge conflicts`),y>0&&u.push(`${y} node(s) are currently offline`),p>0&&u.push(`${p} submodule(s) are out of sync with their parent checkout`),u.push(...ee),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:g.length,onlineNodes:g.filter(w=>w.health==="online").length,dirtyNodes:g.filter(w=>w.dirty).length,orphanNodes:b,errorNodes:g.filter(w=>!!w.error||w.outOfSync).length,offlineNodes:y,followUpNodes:S,blockedReviewNodes:k,mergeReadyNodes:D,cleanupCandidateNodes:_,notMergeableNodes:O,incompleteSnapshotNodes:I,pendingGitSnapshotNodes:B,missingGitSnapshotNodes:R,missingSubmoduleSnapshotNodes:N,staleGitSnapshotNodes:v,activeRefineNodes:G,failedRefineNodes:U,totalActiveSessions:g.reduce((w,M)=>w+M.activeSessionCount,0)},warnings:u,snapshotWarnings:ee}}function vt(e){return[...new Set(e.filter(t=>!!t))]}function Ir(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?vt([t==null?void 0:t.id,...a.map(i=>i.id)]):r.length>0?vt(r.map(i=>i.id)):l.length>0?vt(l.map(i=>i.id)):vt(e.nodes.map(i=>i.id))}function hn(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 Lr(e,t,n){const a=Math.max(0,Math.round(t)),r=Math.max(0,Math.round(n));return`${hn(e)}::${a}x${r}`}function Ar(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 Mt(e){if(e.type==="submoduleNode")return e.outOfSync||e.error?{label:"submodule drift",tone:"danger"}:e.dirty?{label:"submodule dirty",tone:"warn"}:null;if(e.inProgress)return{label:"working",tone:"info"};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=Ar(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 is(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 Bs(e,t){var i;if(e.inProgress)return null;const n=is(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 pn(e){var t;return e.inProgress||!is(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 _r=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>=_r?{kind:"aged",observedAt:n.observedAt}:null}const st={worktreeCardWidth:256,submoduleCardWidth:180,anchorCardWidth:232,minWorktreeCardHeight:150,minSubmoduleCardHeight:56,minAnchorCardHeight:44,maxEstimatedCardHeight:360,layerGap:220,nodeGap:82,edgeLabelBuffer:180,placeholderTopOffset:0},dt={worktreeCardWidth:188,submoduleCardWidth:156,anchorCardWidth:196,minWorktreeCardHeight:88,minSubmoduleCardHeight:50,minAnchorCardHeight:40,maxEstimatedCardHeight:230,layerGap:160,nodeGap:52,edgeLabelBuffer:120},Rr={maxWidth:180};function Dr(e){return e==="TB"?"DOWN":"RIGHT"}function ls(e,t){return{"elk.algorithm":"layered","elk.direction":Dr(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 Pr=ls(st,"LR");ls(dt,"LR");const Or=new en;function We(e,t=!1){const n=t?dt:st;return e.type==="submoduleNode"?n.submoduleCardWidth:e.type==="defaultBranchNode"?n.anchorCardWidth:n.worktreeCardWidth}function Ce(e,t,n,a){return e?e(t,a):n}function mn(e,t){return e.ahead<=0&&e.behind<=0?null:e.ahead>0&&e.behind>0?Ce(t,"mesh.attention.aheadBehind",`ahead ${e.ahead} / behind ${e.behind}`,{ahead:e.ahead,behind:e.behind}):e.behind>0?Ce(t,"mesh.attention.behind",`behind ${e.behind}`,{count:e.behind}):Ce(t,"mesh.attention.ahead",`ahead ${e.ahead}`,{count:e.ahead})}function Xt(e,t){var a;if(e.type==="defaultBranchNode")return t&&e.nextStepHintI18n?t(e.nextStepHintI18n.key,e.nextStepHintI18n.params):e.nextStepHint||Ce(t,"mesh.summary.anchor","Default branch anchor");if(e.type==="submoduleNode"){const r=[e.machineLabel?Ce(t,"mesh.summary.parent",`parent ${e.machineLabel}`,{label:e.machineLabel}):null];return e.outOfSync?r.push(Ce(t,"mesh.panel.outOfSyncBadge","out of sync")):e.dirty?r.push(Ce(t,"mesh.summary.localChanges","local changes")):r.push(Ce(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(Ce(t,"mesh.attention.upstreamUnverified","upstream unverified"));else{const r=mn(e,t);r&&n.push(r)}return e.activeSessionCount>0&&n.push(Ce(t,"mesh.summary.sessions",`${e.activeSessionCount} session${e.activeSessionCount===1?"":"s"}`,{count:e.activeSessionCount})),e.dirtyFiles>0&&n.push(Ce(t,"mesh.drift.changed",`${e.dirtyFiles} changed`,{count:e.dirtyFiles})),e.hasConflicts&&n.push(Ce(t,"mesh.summary.conflicts","conflicts")),n.length===0?(a=e.branchConvergence)!=null&&a.needsConvergence?Ce(t,"mesh.attention.needsFollowUp","Needs follow-up"):Ce(t,"mesh.summary.clean","Clean and even with upstream"):n.join(" · ")}const Fr=2;function cs(e,t=!1){var $;const n=t?dt:st;if(e.type==="defaultBranchNode")return n.minAnchorCardHeight;if(e.type==="submoduleNode")return n.minSubmoduleCardHeight;const a=We(e,t),r=t?22:30,l=t?2:3,i=Math.ceil(Tr(e)/l),o=yt(e.label,r,2),u=yt(e.machineLabel||e.workspace,r,2),d=yt(Xt(e),r+(t?1:4),t?2:3),h=Mt(e),c=pn(e)?is(e):null,m=t?0:yt(c,Math.max(24,Math.floor(a/8)),4),x=(($=e.sessionDetails)==null?void 0:$.length)??0,j=Math.min(Fr,x),g=x>0?t?14+j*36+(x>j?14:0):46+j*48+(x>j?16:0):0,b=t?40+o*16+u*12+(h?22:0)+Math.max(0,i-1)*18+g:52+o*18+u*14+(h?30:0)+i*24+Math.max(22,d*18)+g+(m>0?22+m*16:0);return Math.min(n.maxEstimatedCardHeight,Math.max(n.minWorktreeCardHeight,Math.ceil(b)))}function yt(e,t,n){const a=(e||"").trim();return a?Math.max(1,Math.min(n,Math.ceil(a.length/t))):0}function Tr(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 Hr(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 Gr(e,t){return e.source.localeCompare(t.source)||e.target.localeCompare(t.target)||e.id.localeCompare(t.id)}function Wr(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 Ur(e,t,n){return{id:e.id,x:t,y:n,width:We(e),height:cs(e)}}function Kr(e,t){return{id:`${e.id}__placeholder`,type:"worktreeNode",inProgress:!1,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 fn(e){const t=[...e.nodes].sort(Hr),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,Kr(n,e)]}function zr(e,t=Pr,n=!1,a="LR"){const r=fn(e),l=new Set(r.map(u=>u.id)),i=r.map(u=>({id:u.id,width:We(u,n),height:cs(u,n)})),o=e.edges.filter(u=>l.has(u.source)&&l.has(u.target)).sort(Gr).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 Vr(e,t=!1){const n=[...new Set(e.map(r=>Math.round(r.x)))].sort((r,l)=>r-l),a=t?dt.layerGap:st.layerGap;return n.length<2?a:Math.min(...n.slice(1).map((r,l)=>r-n[l]))}async function xn(e,t=!1,n="LR",a){var j,g;const l=ls(t?dt:st,n),i=fn(e),o=new Map(i.map(b=>[b.id,b])),u=zr(e,l,t,n);if(a&&a.size>0)for(const b of u.children??[]){const $=a.get(b.id);$&&$>0&&(b.height=$)}const d=await Or.layout(u),h=(d.children??[]).map(b=>{const $=o.get(b.id);return $?Wr($,Math.round(b.x??0),Math.round(b.y??st.placeholderTopOffset),!b.id.endsWith("__placeholder")):null}).filter(Boolean),c=new Map(i.map((b,$)=>[b.id,$]));h.sort((b,$)=>(c.get(b.id)??0)-(c.get($.id)??0));const m=h.map(b=>Ur(b.graphNode,b.position.x,b.position.y)),x=new Map;for(const b of d.edges??[]){const $=b.sections;if(!$||$.length===0)continue;const y=$[0],p=(j=b.sources)==null?void 0:j[0],S=(g=b.targets)==null?void 0:g[0];if(!p||!S)continue;const k=[];k.push({x:Math.round(y.startPoint.x),y:Math.round(y.startPoint.y)});for(const D of y.bendPoints??[])k.push({x:Math.round(D.x),y:Math.round(D.y)});k.push({x:Math.round(y.endPoint.x),y:Math.round(y.endPoint.y)}),x.set(b.id,{id:b.id,source:p,target:S,points:k})}return{nodes:h,bounds:m,edgeRoutes:x,columnGap:Vr(m,t),layoutOptions:{...l}}}function qr(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 gn(e){return[e.id,e.source,e.target,e.type,e.label??"",e.direction].join("|")}function Yr(e){return[e.meshId,e.refreshedAt,e.nodes.length,e.edges.length,...e.nodes.map(qr),...e.edges.map(gn)].join("::")}function Qr(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(gn)].join("::")}function Zt(e){return e.type==="orphanLink"?"var(--status-warning)":"var(--text-muted)"}function Jr(e){return bn[e]}const Xr=["parentBranch","cloneLink","worktreeLink","submoduleLink","sessionLink","orphanLink"],Zr={parentBranch:"mesh.legendEdge.parentBranch",cloneLink:"mesh.legendEdge.cloneLink",worktreeLink:"mesh.legendEdge.worktreeLink",submoduleLink:"mesh.legendEdge.submoduleLink",sessionLink:"mesh.legendEdge.sessionLink",orphanLink:"mesh.legendEdge.orphanLink"},bn={cloneLink:"6 3",worktreeLink:"2 3",submoduleLink:"8 3 2 3",sessionLink:"1 4",orphanLink:"5 4"};function eo({edges:e}){const{t}=q("common"),n=f.useMemo(()=>{const a=new Set;for(const r of e)a.add(r.type);return Xr.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",style:{stroke:Zt({type:a})},strokeWidth:"1.5",strokeDasharray:bn[a]})}),t(Zr[a])]},a))})}const Xe=2,vn=f.createContext(Ye("dark")),yn=f.createContext(!1),wn=f.createContext("LR"),Nn=f.createContext(!0),jn={overflowWrap:"anywhere",wordBreak:"break-word"},to={...jn,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:3,overflow:"hidden"},so={...jn,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:4,overflow:"hidden"};function no(e){return e.activeSessionCount>0}function ao(e){return e.health==="offline"||e.snapshotCompleteness==="stale"&&e.activeSessionCount===0}function Tt(e,t){const n=ao(e),a="bg-bg-card";if(t)return`${a} border-accent ring-1 ring-accent/50`;const r=Mt(e),l=n?" opacity-60":"";return(r==null?void 0:r.tone)==="danger"||e.health==="degraded"?`${a} border-status-error/40${l}`:(r==null?void 0:r.tone)==="warn"?`${a} border-status-warning/40${l}`:n?`${a} border-border-subtle opacity-60`:`${a} border-border-default`}function Ne(e){switch(e){case"refineDone":return be("good");case"dirty":return be("warn");case"conflict":return be("danger");case"orphan":return be("warn");case"health":case"submodule":case"meta":default:return be("neutral")}}function Rs(e){switch(e){case"danger":return be("danger");case"warn":return be("warn");case"good":return be("good");case"info":default:return be("neutral")}}function Ht(e){switch(e){case"online":return"var(--status-online)";case"dirty":case"wrong_branch":return"var(--status-warning)";case"degraded":return"var(--status-error)";case"offline":return"var(--status-offline)";default:return"var(--text-muted)"}}function ro(e){return e.replace(/_/g," ")}const ds=lt;function oo(e){var t;return((t=e.sessionDetails)==null?void 0:t.some(n=>ds(n)==="generating"))??!1}function Ds(e){const t=ds(e);return t.includes("approval")?be("warn"):t==="generating"?"border-accent/40 text-accent":t.includes("failed")||t.includes("stopped")||t.includes("interrupted")?be("danger"):be("neutral")}function io(){return be("neutral")}function wt(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 lo(e){if(!e)return null;const t=Date.parse(e);return Number.isFinite(t)?t:null}function Gt(e){const t=lo(e);return t===null?"":aa(Math.max(0,Date.now()-t))}function co(e,t){if(e.sessionDetails.length===0)return null;const n=e.sessionDetails.filter(i=>ds(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 uo={"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",working:"mesh.attention.working","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 ho(e,t){const n=a=>ra(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 Wt(e,t,n){const a=uo[e];if(a)return n(a);const r=mn(t,n);return r&&/^(ahead|behind) /.test(e)?r:e}function po(e){const t=(e||"").trim().replace(/[\\/]+$/,"");return t?t.split(/[\\/]+/).filter(Boolean).slice(-2).join("/"):""}function mo({data:e,selected:t}){var M;const{t:n}=q("common"),a=f.useContext(vn),r=f.useContext(yn),l=f.useContext(wn),i=f.useContext(Nn),o=e.graphNode,u=o.type==="defaultBranchNode",d=o.type==="submoduleNode",h=pn(o),c=[o.machineLabel,o.locality==="remote"?n("mesh.panel.remote"):null].filter(Boolean).join(" · "),m=po(o.workspace),x=i?c||m||o.workspace:m||c||o.workspace,j=o.submoduleCommit?o.submoduleCommit.slice(0,7):null,g=Br(o),b=g?ho(g,n):null,$=(g==null?void 0:g.kind)==="unreachable"?Ne("dirty"):Ne("meta"),y=!!b&&((g==null?void 0:g.kind)==="aged"||(g==null?void 0:g.kind)==="unreachable"),p=(g==null?void 0:g.kind)==="unreachable"?n("mesh.graph.observationUnreachableChip"):n("mesh.graph.observationStaleChip");if(u){const L=Mt(o);return s.jsxs("div",{className:`rounded-lg border bg-bg-card px-3 py-2 transition-colors ${t?"border-accent ring-1 ring-accent/50":"border-border-default"}`,style:{width:We(o,r)},title:[o.label,Xt(o,n),L?Wt(L.label,o,n):null].filter(Boolean).join(`
1
+ import{u as q,r as f,j as s}from"./vendor-CgFxQ3Rd.js";import{I as Zn,a as Jt,n as qe,c as Vs,i as ea,b as ta,r as sa,g as Ye,d as na,M as he,m as be,s as Pe,e as Ke,f as jt,h as et,j as aa,k as ra,l as lt,u as ct,o as oa,p as ia,q as Qe,t as la,B as Y,T as Ge,v as kt,w as ca,x as da,y as Ss,z as qs,A as ua,S as ha,C as St,D as Ct,E as pa,F as ma,G as fa,H as xa,J as Be,K as At,L as ga,N as Ys,O as ba,P as va,Q as ya,R as tt,U as Qs,V as Cs,W as wa,X as Js,Y as Xs,Z as ns,_ as Na,$ as ja,a0 as ka,a1 as Sa,a2 as Ca,a3 as Ma,a4 as $a,a5 as Ia,a6 as Ot,a7 as La,a8 as Aa,a9 as Ea,aa as _a,ab as Ba,ac as Je,ad as Ms,ae as Ra,af as Da,ag as Pa,ah as Zs,ai as Oa,aj as Fa,ak as Ta,al as Ha,am as Ga,an as Wa,ao as Ua,ap as Ka,aq as za}from"./index-2eAJe_lw.js";import{ar as Kl,as as zl,at as Vl}from"./index-2eAJe_lw.js";import{E as en,H as $e,P as pe,i as as,C as tn,M as Va,B as qa,a as Ya,b as Qa,c as Ja,u as Xa,d as sn,e as rs,g as $s,f as Za,h as er,j as nn}from"./mesh-graph-7mv6fb91.js";function tr(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 sr(e){return`${e.state??""} ${e.chatStatus??""} ${e.lifecycle??""}`.toLowerCase()}function nr(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&&sr(r).includes("approval")&&t.push({nodeId:n.nodeId,sessionId:r.sessionId,providerType:r.providerType,machineLabel:qe(n)||n.nodeId,detail:r.statusNote??r.title??null})}return t}function ar({approvals:e,nodes:t,onResolve:n,hideWhenEmpty:a=!0,nowMs:r}){const{t:l}=q(),i=r??Date.now(),o=f.useMemo(()=>e??nr(t),[e,t]),[u,d]=f.useState({});if(a&&o.length===0)return null;const h=(c,m)=>{u[c.sessionId]||(d(x=>({...x,[c.sessionId]:m})),Promise.resolve(n(c.nodeId,c.sessionId,m)).finally(()=>{d(x=>{const j={...x};return delete j[c.sessionId],j})}))};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(Zn,{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,x=m!==null,j=tr(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}),j&&s.jsx("span",{className:"ml-2 font-bold text-3xs",style:{color:"var(--status-warning)"},title:l("mesh.approvals.waitingFor",{duration:j}),children:j})]}),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((g,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:g.replace(/[⌥⏎⇧⌫⌘⌃]/g,"").trim().slice(0,32)},`${g}-${b}`))})]}),s.jsxs("div",{className:"flex gap-2 shrink-0",children:[s.jsx("button",{onClick:()=>h(c,"approve"),disabled:x,className:`btn btn-sm border-none rounded-md text-xs px-3 py-1 font-extrabold ${x?"cursor-not-allowed opacity-60":"cursor-pointer"}`,style:{color:"var(--status-warning)",background:"var(--surface-primary)"},children:m==="approve"?s.jsx(Jt,{size:12}):l("mesh.approvals.approve")}),s.jsx("button",{onClick:()=>h(c,"reject"),disabled:x,className:`btn btn-sm border-none rounded-md text-xs px-3 py-1 font-semibold text-white bg-red-500/30 ${x?"cursor-not-allowed opacity-60":"cursor-pointer"}`,children:m==="reject"?s.jsx(Jt,{size:12}):l("mesh.approvals.reject")})]})]},`${c.nodeId}:${c.sessionId}`)})})]})}const rr=5*60*1e3;function an(e){return typeof e.daemonId=="string"&&e.daemonId.trim()?e.daemonId.trim():null}function rn(e){return typeof e.machineId=="string"&&e.machineId.trim()?e.machineId.trim():null}function or(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"||an(e)||rn(e)?"remote":"unknown"}function ir(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 on(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 lr(e){if(e.connectionTransport==="local"||e.connectionState==="self")return null;const t=on(e);return!t||t==="local"||typeof e.connectionRttMs!="number"||!Number.isFinite(e.connectionRttMs)?null:`${Math.round(e.connectionRttMs)}ms`}function cr(e){return sa(e)}function ln(e){var t;return cr(e)?!1:!!(e.gitProbePending||((t=e.connection)==null?void 0:t.state)==="connecting")}function cn(e){if(!e)return null;const t=Date.parse(e);return Number.isNaN(t)?null:t}function dr(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 ur(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 dn(e){return e?e.staged+e.modified+e.untracked+e.deleted+e.renamed>0:!1}function un(e){return((e==null?void 0:e.submodules)??[]).some(t=>t.dirty)}function os(e){return((e==null?void 0:e.submodules)??[]).some(t=>t.outOfSync||!!t.error)}function hr(e){return os(e)?"degraded":un(e)?"dirty":"online"}function pr(e){return e?e.staged+e.modified+e.untracked+e.deleted+e.renamed:0}function Is(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 Ft(e){return e.length===0?"unknown":e.reduce((t,n)=>Is(n)>Is(t)?n:t)}function mr(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"],x=m.indexOf(h[0]),j=m.indexOf(c[0]);return x!==-1||j!==-1?x===-1?1:j===-1?-1:x-j: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 fr(e,t){var i;const n=[],a=e.git;if(!a)return n.push({text:"No git status available",hint:{key:"mesh.hint.noGitStatus"}}),n;if(!a.isGitRepo)return n.push({text:"Not a git repository",hint:{key:"mesh.hint.notGitRepo"}}),n;!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"}});const r=(i=e.branchConvergence)==null?void 0:i.status,l=e.isLocalWorktree===!0||!!e.worktreeBranch||!!e.clonedFromNodeId||r==="merged_to_main"||r==="cleanup_candidate";return a.branch&&t&&a.branch!==t&&!a.upstream&&!l&&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}function Ls(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 xr(e){return e.reduce((t,n)=>Ls(n.status)>Ls(t.status)?n:t)}function gr(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 br(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 vr(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 As(e){return e==="running"||e==="accepted"?0:1}function Es(e){const t=e.lastUpdatedAt||e.completedAt||e.startedAt||"";return cn(t)??0}function yr(e){return e.length===0?null:e.reduce((t,n)=>{const a=As(t.status),r=As(n.status);return r!==a?r<a?n:t:Es(n)>Es(t)?n:t})}function wr(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 Nr(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 jr(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 kr(e,t){if(ln(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=dn(r)||un(r),i=!!(r!=null&&r.hasConflicts)||os(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 Sr(e,t){const n=kr(e,t);return n?{...n,defaultBranch:n.defaultBranch??t}:null}function _s(e){const t=(e||"").trim().replace(/[\\/]+$/,"");if(!t)return null;const n=t.split(/[\\/]+/).filter(Boolean);return n[n.length-1]||null}function Cr(e){return e.error||e.outOfSync?"degraded":e.dirty?"dirty":"online"}function Mr(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(ln(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>rr&&(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 $r(e){var Q;const t=Vs(e),a=(typeof t.defaultBranch=="string"&&t.defaultBranch.trim().length>0?t.defaultBranch.trim():null)??mr(t.nodes),r=cn(t.refreshedAt),l=new Set(t.nodes.flatMap(w=>{var M;return(((M=w.git)==null?void 0:M.submodules)??[]).map(L=>L.path)})),i=[],o=[],u=br(t),d=new Map,h=wr(vr(t)),c=dr(t);for(const w of t.nodes){const M=w.git,L=(M==null?void 0:M.branch)??null,z=hr(M),ce=dn(M)||z==="dirty",ge=fr(w,a),A=ge.map(W=>W.text),F=Sr(w,a),C=Mr({nodeStatus:w,expectedSubmodulePaths:l,refreshedAtMs:r}),ve=typeof w.clonedFromNodeId=="string"?w.clonedFromNodeId:null,Z=ur(w,c),V=yr(h.get(w.nodeId)??[]),ne=ir(w),ae=!!w.worktreeBranch||!!ve,ie={id:w.nodeId,type:A.length>0?"orphanNode":"worktreeNode",label:ae?w.worktreeBranch?`⎇ ${w.worktreeBranch}`:_s(w.workspace)||w.machineLabel||w.nodeId.slice(0,8):w.machineLabel||_s(w.workspace)||w.nodeId.slice(0,8),workspace:w.workspace,branch:L,upstream:(M==null?void 0:M.upstream)??null,upstreamStatus:(M==null?void 0:M.upstreamStatus)??null,daemonId:an(w),machineId:rn(w),machineLabel:w.machineLabel||null,locality:or(w),connectionTransport:ne.connectionTransport,connectionState:ne.connectionState,connectionReason:ne.connectionReason,connectionReported:ne.connectionReported,connectionRttMs:ne.connectionRttMs,health:Ft([w.health,z]),ahead:(M==null?void 0:M.ahead)??0,behind:(M==null?void 0:M.behind)??0,dirty:ce,dirtyFiles:pr(M),hasConflicts:(M==null?void 0:M.hasConflicts)??!1,inProgress:Z.some(W=>!W.isSelfCoordinator&&(ea(W.chatStatus??W.state)||ta(W.chatStatus??W.state))),activeSessionCount:Z.length,activeSessions:Z.map(W=>W.sessionId),sessionDetails:Z,providers:w.providers??[],isOrphan:A.length>0,orphanReasons:A,error:w.error,nextStepHint:C.snapshotWarnings[0]??A[0]??(F==null?void 0:F.nextStep)??void 0,nextStepHintI18n:C.snapshotWarningHints[0]??((Q=ge[0])==null?void 0:Q.hint)??null,parentNodeId:null,clonedFromNodeId:ve,worktreeBranch:w.worktreeBranch??null,submodulePath:null,submoduleCommit:(M==null?void 0:M.headCommit)??null,outOfSync:os(M),snapshotCompleteness:C.snapshotCompleteness,snapshotWarnings:C.snapshotWarnings,branchConvergence:F,refineJobStatus:(V==null?void 0:V.status)??null,refineJobId:(V==null?void 0:V.jobId)??null,refineJobBranch:(V==null?void 0:V.branch)??null,refineJobInto:(V==null?void 0:V.into)??null,gitObservation:w.gitObservation??null,source:w};if(i.push(ie),L){const W=d.get(L)??[];W.push(ie.id),d.set(L,W)}for(const W of(M==null?void 0:M.submodules)??[]){const Oe=`${ie.id}::submodule::${W.path}`,Fe=W.path.split("/").filter(Boolean).pop()||W.path;i.push({id:Oe,type:"submoduleNode",label:Fe,workspace:W.repoPath??W.path,branch:null,upstream:null,upstreamStatus:null,daemonId:ie.daemonId,machineId:ie.machineId,machineLabel:ie.machineLabel,locality:ie.locality,connectionTransport:ie.connectionTransport,connectionState:ie.connectionState,connectionReason:ie.connectionReason,connectionReported:ie.connectionReported,connectionRttMs:ie.connectionRttMs,health:Cr(W),ahead:0,behind:0,dirty:W.dirty,dirtyFiles:W.dirty?1:0,hasConflicts:!1,inProgress:!1,activeSessionCount:0,activeSessions:[],sessionDetails:[],providers:[],isOrphan:!1,orphanReasons:[],error:W.error,nextStepHint:W.error||(W.outOfSync?`${W.path} is out of sync with the parent checkout`:W.dirty?`${W.path} has local changes`:`${W.path} is in sync with the parent checkout`),nextStepHintI18n:W.error?{key:"mesh.hint.nodeError",detail:W.error}:W.outOfSync?{key:"mesh.hint.submoduleOutOfSync",params:{path:W.path}}:W.dirty?{key:"mesh.hint.submoduleChanged",params:{path:W.path}}:{key:"mesh.hint.submoduleSynced",params:{path:W.path}},parentNodeId:ie.id,submodulePath:W.path,submoduleCommit:W.commit,outOfSync:W.outOfSync,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:null,gitObservation:ie.gitObservation??null,source:{kind:"synthetic-submodule",parentNodeId:ie.id,parentWorkspace:w.workspace,submodule:W}}),o.push({id:`${ie.id}--${Oe}`,source:ie.id,target:Oe,type:"submoduleLink",label:W.outOfSync?"submodule out of sync":void 0,direction:"directed"})}}const m=a?`__branch_${a}`:null;if(m&&a){const M=(d.get(a)??[]).map(C=>i.find(ve=>ve.id===C)).filter(Boolean),L=M.map(C=>C.branchConvergence).filter(Boolean),z=gr(t),ce=M.length>0&&M.every(C=>Nr(C,a)),ge=(z==null?void 0:z.length)===0&&ce?jr(a,M):L.length>0?xr(L):null,A=(z==null?void 0:z.length)===0&&ce?0:L.filter(C=>C.needsConvergence).length,F={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:Ft(M.map(C=>C.health)),ahead:0,behind:0,dirty:M.some(C=>C.dirty),dirtyFiles:M.reduce((C,ve)=>C+ve.dirtyFiles,0),hasConflicts:M.some(C=>C.hasConflicts),inProgress:M.some(C=>C.inProgress),activeSessionCount:M.reduce((C,ve)=>C+ve.activeSessionCount,0),activeSessions:M.flatMap(C=>C.activeSessions),sessionDetails:M.flatMap(C=>C.sessionDetails),providers:[...new Set(M.flatMap(C=>C.providers))],isOrphan:!1,orphanReasons:[],nextStepHint:A>0?`${A} workspace(s) on ${a} still need follow-up`:M.length>0?`${M.length} workspace(s) currently on ${a}`:"No workspaces currently checked out to the default branch",nextStepHintI18n:A>0?{key:"mesh.hint.anchorNeedsFollowUp",params:{count:A,branch:a??""}}:M.length>0?{key:"mesh.hint.anchorWorkspaces",params:{count:M.length,branch:a??""}}:{key:"mesh.hint.anchorEmpty"},error:void 0,parentNodeId:null,submodulePath:null,submoduleCommit:null,outOfSync:!1,snapshotCompleteness:"complete",snapshotWarnings:[],branchConvergence:ge,source:{nodeId:m,machineLabel:a,workspace:t.repoIdentity,health:Ft(M.map(C=>C.health)),providers:[],activeSessions:[],activeSessionDetails:[]}};i.push(F);for(const C of i)if(!(C.id===m||C.type==="submoduleNode")){if(C.branch===a){o.push({id:`${m}--${C.id}`,source:m,target:C.id,type:"parentBranch",direction:"undirected"});continue}if(C.branch){o.push({id:`${m}--${C.id}`,source:m,target:C.id,type:C.isOrphan?"orphanLink":"parentBranch",label:C.branch,direction:"undirected"});continue}if(C.isOrphan){o.push({id:`${m}--${C.id}`,source:m,target:C.id,type:"orphanLink",label:"detached",direction:"undirected"});continue}o.push({id:`${m}--${C.id}`,source:m,target:C.id,type:"parentBranch",direction:"undirected"})}}const x=new Set(i.map(w=>w.id)),j=new Set;for(const w of i){if(!w.clonedFromNodeId||w.type==="submoduleNode"||!x.has(w.clonedFromNodeId))continue;const M=`clone_${w.clonedFromNodeId}--${w.id}`;j.has(M)||(j.add(M),o.push({id:M,source:w.clonedFromNodeId,target:w.id,type:"cloneLink",label:"cloned",direction:"directed"}))}const g=i.filter(w=>w.type!=="defaultBranchNode"),b=g.filter(w=>w.isOrphan).length,$=g.filter(w=>w.hasConflicts).length,y=g.filter(w=>w.health==="offline").length,p=g.filter(w=>w.type==="submoduleNode"&&w.outOfSync).length,S=g.filter(w=>{var M;return w.type!=="submoduleNode"&&!w.inProgress&&((M=w.branchConvergence)==null?void 0:M.needsConvergence)}).length,k=g.filter(w=>{var M;return!w.inProgress&&((M=w.branchConvergence)==null?void 0:M.status)==="blocked_review"}).length,D=g.filter(w=>{var M;return((M=w.branchConvergence)==null?void 0:M.status)==="pushed_feature_branch_needs_merge"}).length,_=g.filter(w=>{var M;return((M=w.branchConvergence)==null?void 0:M.status)==="cleanup_candidate"}).length,O=g.filter(w=>{var M;return((M=w.branchConvergence)==null?void 0:M.status)==="not_mergeable"}).length,I=g.filter(w=>w.snapshotCompleteness!=="complete").length,B=g.filter(w=>w.snapshotCompleteness==="pending_git").length,R=g.filter(w=>w.snapshotCompleteness==="missing_git").length,N=g.filter(w=>w.snapshotCompleteness==="missing_submodule_report").length,v=g.filter(w=>w.snapshotCompleteness==="stale").length,G=g.filter(w=>w.refineJobStatus==="running"||w.refineJobStatus==="accepted").length,U=g.filter(w=>w.refineJobStatus==="failed").length,ee=[B>0?`${B} node(s) are still waiting for a live peer git snapshot`:null,R>0?`${R} node(s) have no visible peer git snapshot`:null,N>0?`${N} node(s) are missing peer submodule visibility reported elsewhere in the mesh`:null,v>0?`${v} node(s) rely on peer git snapshots older than 5m`:null].filter(Boolean);return S>0&&u.push(`${S} workspace(s) still need follow-up before the mesh is converged`),b>0&&u.push(`${b} workspace(s) need attention before safe coordination`),k>0&&u.push(`${k} workspace(s) are blocked on branch convergence or upstream sync`),D>0&&u.push(`${D} clean feature branch workspace(s) still need merge follow-up`),_>0&&u.push(`${_} worktree workspace(s) are ready for refine / cleanup`),O>0&&u.push(`${O} workspace(s) have local changes or conflicts blocking convergence`),$>0&&u.push(`${$} workspace(s) report merge conflicts`),y>0&&u.push(`${y} node(s) are currently offline`),p>0&&u.push(`${p} submodule(s) are out of sync with their parent checkout`),u.push(...ee),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:g.length,onlineNodes:g.filter(w=>w.health==="online").length,dirtyNodes:g.filter(w=>w.dirty).length,orphanNodes:b,errorNodes:g.filter(w=>!!w.error||w.outOfSync).length,offlineNodes:y,followUpNodes:S,blockedReviewNodes:k,mergeReadyNodes:D,cleanupCandidateNodes:_,notMergeableNodes:O,incompleteSnapshotNodes:I,pendingGitSnapshotNodes:B,missingGitSnapshotNodes:R,missingSubmoduleSnapshotNodes:N,staleGitSnapshotNodes:v,activeRefineNodes:G,failedRefineNodes:U,totalActiveSessions:g.reduce((w,M)=>w+M.activeSessionCount,0)},warnings:u,snapshotWarnings:ee}}function vt(e){return[...new Set(e.filter(t=>!!t))]}function Ir(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?vt([t==null?void 0:t.id,...a.map(i=>i.id)]):r.length>0?vt(r.map(i=>i.id)):l.length>0?vt(l.map(i=>i.id)):vt(e.nodes.map(i=>i.id))}function hn(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 Lr(e,t,n){const a=Math.max(0,Math.round(t)),r=Math.max(0,Math.round(n));return`${hn(e)}::${a}x${r}`}function Ar(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 Mt(e){if(e.type==="submoduleNode")return e.outOfSync||e.error?{label:"submodule drift",tone:"danger"}:e.dirty?{label:"submodule dirty",tone:"warn"}:null;if(e.inProgress)return{label:"working",tone:"info"};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=Ar(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 is(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 Bs(e,t){var i;if(e.inProgress)return null;const n=is(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 pn(e){var t;return e.inProgress||!is(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 _r=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>=_r?{kind:"aged",observedAt:n.observedAt}:null}const st={worktreeCardWidth:256,submoduleCardWidth:180,anchorCardWidth:232,minWorktreeCardHeight:150,minSubmoduleCardHeight:56,minAnchorCardHeight:44,maxEstimatedCardHeight:360,layerGap:220,nodeGap:82,edgeLabelBuffer:180,placeholderTopOffset:0},dt={worktreeCardWidth:188,submoduleCardWidth:156,anchorCardWidth:196,minWorktreeCardHeight:88,minSubmoduleCardHeight:50,minAnchorCardHeight:40,maxEstimatedCardHeight:230,layerGap:160,nodeGap:52,edgeLabelBuffer:120},Rr={maxWidth:180};function Dr(e){return e==="TB"?"DOWN":"RIGHT"}function ls(e,t){return{"elk.algorithm":"layered","elk.direction":Dr(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 Pr=ls(st,"LR");ls(dt,"LR");const Or=new en;function We(e,t=!1){const n=t?dt:st;return e.type==="submoduleNode"?n.submoduleCardWidth:e.type==="defaultBranchNode"?n.anchorCardWidth:n.worktreeCardWidth}function Ce(e,t,n,a){return e?e(t,a):n}function mn(e,t){return e.ahead<=0&&e.behind<=0?null:e.ahead>0&&e.behind>0?Ce(t,"mesh.attention.aheadBehind",`ahead ${e.ahead} / behind ${e.behind}`,{ahead:e.ahead,behind:e.behind}):e.behind>0?Ce(t,"mesh.attention.behind",`behind ${e.behind}`,{count:e.behind}):Ce(t,"mesh.attention.ahead",`ahead ${e.ahead}`,{count:e.ahead})}function Xt(e,t){var a;if(e.type==="defaultBranchNode")return t&&e.nextStepHintI18n?t(e.nextStepHintI18n.key,e.nextStepHintI18n.params):e.nextStepHint||Ce(t,"mesh.summary.anchor","Default branch anchor");if(e.type==="submoduleNode"){const r=[e.machineLabel?Ce(t,"mesh.summary.parent",`parent ${e.machineLabel}`,{label:e.machineLabel}):null];return e.outOfSync?r.push(Ce(t,"mesh.panel.outOfSyncBadge","out of sync")):e.dirty?r.push(Ce(t,"mesh.summary.localChanges","local changes")):r.push(Ce(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(Ce(t,"mesh.attention.upstreamUnverified","upstream unverified"));else{const r=mn(e,t);r&&n.push(r)}return e.activeSessionCount>0&&n.push(Ce(t,"mesh.summary.sessions",`${e.activeSessionCount} session${e.activeSessionCount===1?"":"s"}`,{count:e.activeSessionCount})),e.dirtyFiles>0&&n.push(Ce(t,"mesh.drift.changed",`${e.dirtyFiles} changed`,{count:e.dirtyFiles})),e.hasConflicts&&n.push(Ce(t,"mesh.summary.conflicts","conflicts")),n.length===0?(a=e.branchConvergence)!=null&&a.needsConvergence?Ce(t,"mesh.attention.needsFollowUp","Needs follow-up"):Ce(t,"mesh.summary.clean","Clean and even with upstream"):n.join(" · ")}const Fr=2;function cs(e,t=!1){var $;const n=t?dt:st;if(e.type==="defaultBranchNode")return n.minAnchorCardHeight;if(e.type==="submoduleNode")return n.minSubmoduleCardHeight;const a=We(e,t),r=t?22:30,l=t?2:3,i=Math.ceil(Tr(e)/l),o=yt(e.label,r,2),u=yt(e.machineLabel||e.workspace,r,2),d=yt(Xt(e),r+(t?1:4),t?2:3),h=Mt(e),c=pn(e)?is(e):null,m=t?0:yt(c,Math.max(24,Math.floor(a/8)),4),x=(($=e.sessionDetails)==null?void 0:$.length)??0,j=Math.min(Fr,x),g=x>0?t?14+j*36+(x>j?14:0):46+j*48+(x>j?16:0):0,b=t?40+o*16+u*12+(h?22:0)+Math.max(0,i-1)*18+g:52+o*18+u*14+(h?30:0)+i*24+Math.max(22,d*18)+g+(m>0?22+m*16:0);return Math.min(n.maxEstimatedCardHeight,Math.max(n.minWorktreeCardHeight,Math.ceil(b)))}function yt(e,t,n){const a=(e||"").trim();return a?Math.max(1,Math.min(n,Math.ceil(a.length/t))):0}function Tr(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 Hr(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 Gr(e,t){return e.source.localeCompare(t.source)||e.target.localeCompare(t.target)||e.id.localeCompare(t.id)}function Wr(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 Ur(e,t,n){return{id:e.id,x:t,y:n,width:We(e),height:cs(e)}}function Kr(e,t){return{id:`${e.id}__placeholder`,type:"worktreeNode",inProgress:!1,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 fn(e){const t=[...e.nodes].sort(Hr),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,Kr(n,e)]}function zr(e,t=Pr,n=!1,a="LR"){const r=fn(e),l=new Set(r.map(u=>u.id)),i=r.map(u=>({id:u.id,width:We(u,n),height:cs(u,n)})),o=e.edges.filter(u=>l.has(u.source)&&l.has(u.target)).sort(Gr).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 Vr(e,t=!1){const n=[...new Set(e.map(r=>Math.round(r.x)))].sort((r,l)=>r-l),a=t?dt.layerGap:st.layerGap;return n.length<2?a:Math.min(...n.slice(1).map((r,l)=>r-n[l]))}async function xn(e,t=!1,n="LR",a){var j,g;const l=ls(t?dt:st,n),i=fn(e),o=new Map(i.map(b=>[b.id,b])),u=zr(e,l,t,n);if(a&&a.size>0)for(const b of u.children??[]){const $=a.get(b.id);$&&$>0&&(b.height=$)}const d=await Or.layout(u),h=(d.children??[]).map(b=>{const $=o.get(b.id);return $?Wr($,Math.round(b.x??0),Math.round(b.y??st.placeholderTopOffset),!b.id.endsWith("__placeholder")):null}).filter(Boolean),c=new Map(i.map((b,$)=>[b.id,$]));h.sort((b,$)=>(c.get(b.id)??0)-(c.get($.id)??0));const m=h.map(b=>Ur(b.graphNode,b.position.x,b.position.y)),x=new Map;for(const b of d.edges??[]){const $=b.sections;if(!$||$.length===0)continue;const y=$[0],p=(j=b.sources)==null?void 0:j[0],S=(g=b.targets)==null?void 0:g[0];if(!p||!S)continue;const k=[];k.push({x:Math.round(y.startPoint.x),y:Math.round(y.startPoint.y)});for(const D of y.bendPoints??[])k.push({x:Math.round(D.x),y:Math.round(D.y)});k.push({x:Math.round(y.endPoint.x),y:Math.round(y.endPoint.y)}),x.set(b.id,{id:b.id,source:p,target:S,points:k})}return{nodes:h,bounds:m,edgeRoutes:x,columnGap:Vr(m,t),layoutOptions:{...l}}}function qr(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 gn(e){return[e.id,e.source,e.target,e.type,e.label??"",e.direction].join("|")}function Yr(e){return[e.meshId,e.refreshedAt,e.nodes.length,e.edges.length,...e.nodes.map(qr),...e.edges.map(gn)].join("::")}function Qr(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(gn)].join("::")}function Zt(e){return e.type==="orphanLink"?"var(--status-warning)":"var(--text-muted)"}function Jr(e){return bn[e]}const Xr=["parentBranch","cloneLink","worktreeLink","submoduleLink","sessionLink","orphanLink"],Zr={parentBranch:"mesh.legendEdge.parentBranch",cloneLink:"mesh.legendEdge.cloneLink",worktreeLink:"mesh.legendEdge.worktreeLink",submoduleLink:"mesh.legendEdge.submoduleLink",sessionLink:"mesh.legendEdge.sessionLink",orphanLink:"mesh.legendEdge.orphanLink"},bn={cloneLink:"6 3",worktreeLink:"2 3",submoduleLink:"8 3 2 3",sessionLink:"1 4",orphanLink:"5 4"};function eo({edges:e}){const{t}=q("common"),n=f.useMemo(()=>{const a=new Set;for(const r of e)a.add(r.type);return Xr.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",style:{stroke:Zt({type:a})},strokeWidth:"1.5",strokeDasharray:bn[a]})}),t(Zr[a])]},a))})}const Xe=2,vn=f.createContext(Ye("dark")),yn=f.createContext(!1),wn=f.createContext("LR"),Nn=f.createContext(!0),jn={overflowWrap:"anywhere",wordBreak:"break-word"},to={...jn,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:3,overflow:"hidden"},so={...jn,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:4,overflow:"hidden"};function no(e){return e.activeSessionCount>0}function ao(e){return e.health==="offline"||e.snapshotCompleteness==="stale"&&e.activeSessionCount===0}function Tt(e,t){const n=ao(e),a="bg-bg-card";if(t)return`${a} border-accent ring-1 ring-accent/50`;const r=Mt(e),l=n?" opacity-60":"";return(r==null?void 0:r.tone)==="danger"||e.health==="degraded"?`${a} border-status-error/40${l}`:(r==null?void 0:r.tone)==="warn"?`${a} border-status-warning/40${l}`:n?`${a} border-border-subtle opacity-60`:`${a} border-border-default`}function Ne(e){switch(e){case"refineDone":return be("good");case"dirty":return be("warn");case"conflict":return be("danger");case"orphan":return be("warn");case"health":case"submodule":case"meta":default:return be("neutral")}}function Rs(e){switch(e){case"danger":return be("danger");case"warn":return be("warn");case"good":return be("good");case"info":default:return be("neutral")}}function Ht(e){switch(e){case"online":return"var(--status-online)";case"dirty":case"wrong_branch":return"var(--status-warning)";case"degraded":return"var(--status-error)";case"offline":return"var(--status-offline)";default:return"var(--text-muted)"}}function ro(e){return e.replace(/_/g," ")}const ds=lt;function oo(e){var t;return((t=e.sessionDetails)==null?void 0:t.some(n=>ds(n)==="generating"))??!1}function Ds(e){const t=ds(e);return t.includes("approval")?be("warn"):t==="generating"?"border-accent/40 text-accent":t.includes("failed")||t.includes("stopped")||t.includes("interrupted")?be("danger"):be("neutral")}function io(){return be("neutral")}function wt(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 lo(e){if(!e)return null;const t=Date.parse(e);return Number.isFinite(t)?t:null}function Gt(e){const t=lo(e);return t===null?"":aa(Math.max(0,Date.now()-t))}function co(e,t){if(e.sessionDetails.length===0)return null;const n=e.sessionDetails.filter(i=>ds(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 uo={"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",working:"mesh.attention.working","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 ho(e,t){const n=a=>ra(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 Wt(e,t,n){const a=uo[e];if(a)return n(a);const r=mn(t,n);return r&&/^(ahead|behind) /.test(e)?r:e}function po(e){const t=(e||"").trim().replace(/[\\/]+$/,"");return t?t.split(/[\\/]+/).filter(Boolean).slice(-2).join("/"):""}function mo({data:e,selected:t}){var M;const{t:n}=q("common"),a=f.useContext(vn),r=f.useContext(yn),l=f.useContext(wn),i=f.useContext(Nn),o=e.graphNode,u=o.type==="defaultBranchNode",d=o.type==="submoduleNode",h=pn(o),c=[o.machineLabel,o.locality==="remote"?n("mesh.panel.remote"):null].filter(Boolean).join(" · "),m=po(o.workspace),x=i?c||m||o.workspace:m||c||o.workspace,j=o.submoduleCommit?o.submoduleCommit.slice(0,7):null,g=Br(o),b=g?ho(g,n):null,$=(g==null?void 0:g.kind)==="unreachable"?Ne("dirty"):Ne("meta"),y=!!b&&((g==null?void 0:g.kind)==="aged"||(g==null?void 0:g.kind)==="unreachable"),p=(g==null?void 0:g.kind)==="unreachable"?n("mesh.graph.observationUnreachableChip"):n("mesh.graph.observationStaleChip");if(u){const L=Mt(o);return s.jsxs("div",{className:`rounded-lg border bg-bg-card px-3 py-2 transition-colors ${t?"border-accent ring-1 ring-accent/50":"border-border-default"}`,style:{width:We(o,r)},title:[o.label,Xt(o,n),L?Wt(L.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:`flex shrink-0 items-center ${a.textMuted}`,"aria-hidden":!0,children:s.jsx(na,{size:13})}),s.jsx("span",{className:`truncate text-sm font-semibold leading-5 ${a.textPrimary}`,children:o.label}),s.jsx("span",{className:`${he} ${be("neutral")}`,children:n("mesh.panel.defaultBranch")}),L&&s.jsx("span",{className:`shrink-0 h-2 w-2 rounded-full ${L.tone==="danger"?"bg-status-error":L.tone==="warn"?"bg-status-warning":"bg-text-muted"}`,title:Wt(L.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 L=o.outOfSync?n("mesh.panel.outOfSyncBadge"):o.dirty?n("mesh.panel.tooltipLocalChanges"):n("mesh.panel.submoduleSynced"),z=o.outOfSync?Ne("conflict"):o.dirty?Ne("dirty"):Ne("submodule");return s.jsxs("div",{className:`rounded-lg border px-3 py-2 transition-colors ${Tt(o,t)}`,style:{width:We(o,r)},title:[o.label,o.submodulePath&&o.submodulePath!==o.label?o.submodulePath:null,((M=Bs(o,n))==null?void 0:M.text)||null,j?`@ ${j}`: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:Ht(o.health)},"aria-hidden":!0}),s.jsx("span",{className:`truncate text-xs font-semibold ${a.textPrimary}`,children:o.label})]}),j&&s.jsx("span",{className:`shrink-0 font-mono text-4xs ${a.textMuted}`,children:j})]}),s.jsxs("div",{className:"mt-1.5 flex min-w-0 items-center gap-1.5",children:[s.jsx("span",{className:`${he} ${z}`,children:L}),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 S=!d&&!u&&o.connectionState!=="self",k=S?on(o):null,D=k==="local"?null:k,_=S?lr(o):null,O=Mt(o),I=Bs(o,n),B=(I==null?void 0:I.text)??null,R=no(o),N=o.sessionDetails,v=o.sessionDetails,G=co(o,n),U=O?Wt(O.label,o,n):null,ee=Xt(o,n),Q=o.sessionDetails.map(L=>{const z=Pe(L,n),ce=L.providerType||n("mesh.panel.providerUnknown"),ge=Ke(L,n),A=L.startedAt||L.createdAt||null,F=L.difficulty?wt(L.difficulty,n):null;return[ce,z,ge,F,Gt(A)||null,L.statusNote||null].filter(Boolean).join(" · ")});if(r)return s.jsxs("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${Tt(o,t)}`,style:{width:We(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,O?`${n("mesh.panel.tooltipPrefixStatus")} ${U}`:null,ee,...Q].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:x,children:x})]}),s.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[R&&s.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-status-online animate-pulse","aria-label":n("mesh.graph.activeSessionAria")}),s.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{backgroundColor:Ht(o.health)},"aria-hidden":!0})]})]}),o.health==="unknown"&&!O||O||y||!O&&o.branch&&!d&&o.health!=="unknown"?s.jsxs("div",{className:"mt-1.5 flex min-w-0 flex-wrap items-center gap-1",children:[o.health==="unknown"&&!O&&s.jsx("span",{className:`${he} italic ${Ne("health")}`,children:s.jsx("span",{className:"truncate",children:n("mesh.obs.connecting")})}),O&&s.jsx("span",{className:`${he} ${Rs(O.tone)}`,title:U??void 0,children:s.jsx("span",{className:"truncate",children:U})}),y&&s.jsx("span",{className:`${he} ${$}`,title:b??void 0,children:s.jsx("span",{className:"truncate",children:p})}),!O&&o.branch&&!d&&o.health!=="unknown"&&s.jsx("span",{className:`${he} ${Ne("meta")}`,title:o.branch,children:s.jsx("span",{className:"truncate",children:o.branch})})]}):null,G&&s.jsx("div",{className:`mt-1 min-w-0 max-w-full truncate text-4xs ${a.textSecondary}`,title:Q.join(`