@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 +4 -4
- package/package.json +1 -1
- package/public/assets/{DashboardMeshGraphDialog-1-miPo1F.js → DashboardMeshGraphDialog-BNja1Kse.js} +1 -1
- package/public/assets/{common-D_kCw4Zi.js → common-Bcu1DrOy.js} +1 -1
- package/public/assets/{common-5_lp3RLE.js → common-BhZFNZfo.js} +1 -1
- package/public/assets/{common-DGin0xxP.js → common-CUqf0OIM.js} +1 -1
- package/public/assets/{common-BFguc4-T.js → common-tGrvuj8Z.js} +1 -1
- package/public/assets/{index-Bss9ZUs6.js → index-2eAJe_lw.js} +8 -8
- package/public/index.html +1 -1
- package/vendor/mcp-server/index.js +1 -1
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 ? "
|
|
24473
|
-
const commitShort = readInjected(true ? "
|
|
24474
|
-
const version = readInjected(true ? "1.0.
|
|
24475
|
-
const builtAt = readInjected(true ? "2026-10-
|
|
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
package/public/assets/{DashboardMeshGraphDialog-1-miPo1F.js → DashboardMeshGraphDialog-BNja1Kse.js}
RENAMED
|
@@ -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(`
|