@wrongstack/webui 0.302.2 → 0.305.0

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.
Files changed (127) hide show
  1. package/dist/assets/AgentRosterView-g1KmcsGN.js +9 -0
  2. package/dist/assets/{AnalyticsDashboard-C9aPEyov.js → AnalyticsDashboard-D7KwqZWe.js} +1 -1
  3. package/dist/assets/{AudienceMemoryPanel-Bciki41o.js → AudienceMemoryPanel-CkCY5vFN.js} +2 -2
  4. package/dist/assets/ChangesView-Cd7XaPKE.js +1 -0
  5. package/dist/assets/ChronicleDashboard-CKTXZQBu.js +1 -0
  6. package/dist/assets/CodeEditor-xrPrWeRC.js +1 -0
  7. package/dist/assets/CodeMap-CnlnHM8P.js +1 -0
  8. package/dist/assets/{ConfirmModal-CdKg3EOQ.js → ConfirmModal-BD6pUkAB.js} +1 -1
  9. package/dist/assets/{CronJobsPanel-CJ7Vc1Am.js → CronJobsPanel-DVbRI19g.js} +1 -1
  10. package/dist/assets/{DeadCodeScanPanel-DaeHUzc5.js → DeadCodeScanPanel-Dp6vW6pV.js} +1 -1
  11. package/dist/assets/{DebugDashboard-BI3EmXrM.js → DebugDashboard-L27zCOIW.js} +1 -1
  12. package/dist/assets/DesignGalleryView-BSOnBsKq.js +1 -0
  13. package/dist/assets/GoalView-5ELSJ5fI.js +1 -0
  14. package/dist/assets/KanbanView-Cs3ei9fW.js +3 -0
  15. package/dist/assets/MailboxDetailView-BKPIVEkq.js +1 -0
  16. package/dist/assets/MemoryDrawer-WBQBcL-C.js +1 -0
  17. package/dist/assets/MemoryManager-svukiuox.js +1 -0
  18. package/dist/assets/{ModelPicker-IOZSUnqM.js → ModelPicker-C1ohvzbO.js} +1 -1
  19. package/dist/assets/OfficeMapPanel-DnOaGBxn.js +4 -0
  20. package/dist/assets/{ProcessMonitor-TGqyXxmB.js → ProcessMonitor-Cu3KUgai.js} +1 -1
  21. package/dist/assets/{QueuePanel-5aMgQbHv.js → QueuePanel-B4zQao-A.js} +1 -1
  22. package/dist/assets/{RefreshDebugView-DfBYFPEF.js → RefreshDebugView-DTO6YlTY.js} +1 -1
  23. package/dist/assets/{RequirementIntakeView-CNAFKiQ3.js → RequirementIntakeView-Bz0BWn9P.js} +1 -1
  24. package/dist/assets/{SageTabs-olgLJfg_.js → SageTabs-DGzgZls5.js} +2 -2
  25. package/dist/assets/SddFlowGraph-B-5J7zOV.js +1 -0
  26. package/dist/assets/SddHub-CTVOMFR2.js +2 -0
  27. package/dist/assets/{SessionInspectView-CytBw7Y9.js → SessionInspectView-CvxwjPXI.js} +1 -1
  28. package/dist/assets/SessionList-BiYRM1rX.js +1 -0
  29. package/dist/assets/{SessionsDashboard-CridPbkX.js → SessionsDashboard-DKRZzumv.js} +1 -1
  30. package/dist/assets/{SetupScreen-BkVjdky4.js → SetupScreen-CQnV2Grl.js} +1 -1
  31. package/dist/assets/SkillDetailView-BP3g7iie.js +3 -0
  32. package/dist/assets/{SpecsView-DUx1sgtH.js → SpecsView-D4uEj-OZ.js} +1 -1
  33. package/dist/assets/{TechStackView-CvUiAISX.js → TechStackView-epS5clib.js} +1 -1
  34. package/dist/assets/{TerminalPanel-Dg5hqYTA.js → TerminalPanel-Dj4n-0MH.js} +1 -1
  35. package/dist/assets/Toaster-Dic3369l.js +1 -0
  36. package/dist/assets/{activity-CZIixoel.js → activity-BI4XyF_x.js} +3 -3
  37. package/dist/assets/{activity-BwEBEQ51.js → activity-Dg9Q9kwt.js} +3 -3
  38. package/dist/assets/{activity-BnTQWNPX.js → activity-Dr_u3dOm.js} +3 -3
  39. package/dist/assets/{activity-CRMLR4a3.js → activity-Dzgvt4Nh.js} +3 -3
  40. package/dist/assets/{activity-Xqrt9v4z.js → activity-IttuV5ar.js} +3 -3
  41. package/dist/assets/{activity-BLSyJfTr.js → activity-L2_b8Uan.js} +3 -3
  42. package/dist/assets/{activity-C-9I3_s4.js → activity-gB90peLu.js} +3 -3
  43. package/dist/assets/{button-Dcy288Mc.js → button-DvHe5h9X.js} +1 -1
  44. package/dist/assets/{chat-store-DbxFVDwi.js → chat-store-RzAVkc8a.js} +2 -2
  45. package/dist/assets/{codemap-activity-store-DQfjo7-j.js → codemap-activity-store-DBdfN0ix.js} +1 -1
  46. package/dist/assets/codemap-index-store-45CkVCxN.js +1 -0
  47. package/dist/assets/{dialog-ftgTihmF.js → dialog-jbs7gu-q.js} +1 -1
  48. package/dist/assets/{empty-state-RRSqQaCk.js → empty-state-D-ojp6Gp.js} +1 -1
  49. package/dist/assets/i18n-nlW2iAya.js +2 -0
  50. package/dist/assets/index-hNmvVlqt.js +132 -0
  51. package/dist/assets/index-mNf-KFcC.css +1 -0
  52. package/dist/assets/{input-fo9-BPBC.js → input-oJ0Gehqp.js} +1 -1
  53. package/dist/assets/{mailbox-store-C1mzoSqJ.js → mailbox-store-BuLRsYu3.js} +1 -1
  54. package/dist/assets/{roster-ws-Da57e_sI.js → roster-ws-IRvFZ_v1.js} +1 -1
  55. package/dist/assets/{session-store-Df7_hhe9.js → session-store-DkPaOIhe.js} +1 -1
  56. package/dist/assets/settings-4A6zNjep.js +1 -0
  57. package/dist/assets/settings-Bq1PPj3V.js +1 -0
  58. package/dist/assets/settings-BxL8m0v6.js +1 -0
  59. package/dist/assets/settings-CZR4viP9.js +1 -0
  60. package/dist/assets/settings-L8hBHrGD.js +1 -0
  61. package/dist/assets/settings-t7_uBgp_.js +1 -0
  62. package/dist/assets/settings-uLdezc9e.js +1 -0
  63. package/dist/assets/{shared-KAzksK0C.js → shared-CiaNczO0.js} +1 -1
  64. package/dist/assets/stores-DxTO5dWX.js +7 -0
  65. package/dist/assets/{ui-store-CE4-TlwB.js → ui-store-FVcXVdRC.js} +1 -1
  66. package/dist/assets/useWebSocket-B3WtCdii.js +29 -0
  67. package/dist/assets/{utils-B-9lSDIn.js → utils-D1fGupR8.js} +1 -1
  68. package/dist/assets/{vendor-BuarzSSb.js → vendor-AeHpGMaG.js} +30 -30
  69. package/dist/assets/{view-navigation-DIDEcp4V.js → view-navigation-D-afwlSZ.js} +1 -1
  70. package/dist/assets/ws-client-Cvio0IrC.js +1 -0
  71. package/dist/components/KanbanContractGraphDashboard.d.ts +7 -0
  72. package/dist/components/KanbanContractGraphPanel.d.ts +12 -0
  73. package/dist/components/KanbanContractGraphView.d.ts +40 -0
  74. package/dist/components/KanbanTaskInspectorChrome.d.ts +62 -0
  75. package/dist/components/KanbanViewModeTabs.d.ts +1 -1
  76. package/dist/components/KanbanWorkbench.d.ts +9 -0
  77. package/dist/components/MemoryManager/MemoryDetail.d.ts +1 -1
  78. package/dist/components/MemoryManager/ReviewQueue.d.ts +25 -0
  79. package/dist/components/SettingsPanel/ToolsSection.d.ts +1 -0
  80. package/dist/components/TaskVerificationSection.d.ts +3 -3
  81. package/dist/components/agent-roster-data.d.ts +21 -0
  82. package/dist/hooks/useWebSocket.d.ts +3 -0
  83. package/dist/index.html +23 -23
  84. package/dist/index.js +7112 -4760
  85. package/dist/lib/kanban-cleaner.d.ts +20 -1
  86. package/dist/lib/palettes.d.ts +1 -1
  87. package/dist/lib/ws-client-actions.d.ts +3 -0
  88. package/dist/stores/kanban-store.d.ts +5 -1
  89. package/dist/stores/local-prefs.d.ts +1 -1
  90. package/dist/stores/session-store.d.ts +4 -0
  91. package/dist/stores/ui-store.d.ts +3 -3
  92. package/dist/types/client-message.d.ts +5 -0
  93. package/dist/types/sage.d.ts +18 -13
  94. package/dist/types/server-message.d.ts +2 -2
  95. package/dist/types/system.d.ts +4 -0
  96. package/package.json +8 -8
  97. package/dist/assets/AgentRosterView-BwukmHoA.js +0 -9
  98. package/dist/assets/ChangesView-DumffowD.js +0 -1
  99. package/dist/assets/ChronicleDashboard-BYGV5twz.js +0 -1
  100. package/dist/assets/CodeEditor-D2Dnax7e.js +0 -1
  101. package/dist/assets/CodeMap-DIKKs3Ux.js +0 -1
  102. package/dist/assets/DesignGalleryView-DMW6Ab__.js +0 -1
  103. package/dist/assets/GoalView-3291Hxnb.js +0 -1
  104. package/dist/assets/KanbanView-CFE63A4a.js +0 -3
  105. package/dist/assets/MailboxDetailView-CUTWkSyK.js +0 -1
  106. package/dist/assets/MemoryDrawer-Dsy0AX6f.js +0 -1
  107. package/dist/assets/MemoryManager-D1kXeVE3.js +0 -1
  108. package/dist/assets/OfficeMapPanel-Q81eioDB.js +0 -4
  109. package/dist/assets/SddHub-7Z55QY-M.js +0 -2
  110. package/dist/assets/SessionList-C3ygQN8A.js +0 -1
  111. package/dist/assets/SkillDetailView-Cp-xEHww.js +0 -3
  112. package/dist/assets/Toaster-BgN2bRJx.js +0 -1
  113. package/dist/assets/codemap-index-store-COStDU-8.js +0 -1
  114. package/dist/assets/i18n-9T7iGYgW.js +0 -2
  115. package/dist/assets/index-Cw20Xg0d.css +0 -1
  116. package/dist/assets/index-FHt-sKVF.js +0 -132
  117. package/dist/assets/progress-ring-B9pqitSa.js +0 -1
  118. package/dist/assets/settings-Bb7_utQE.js +0 -1
  119. package/dist/assets/settings-Bd8zMwvC.js +0 -1
  120. package/dist/assets/settings-DdFgBMAw.js +0 -1
  121. package/dist/assets/settings-De6sXIFO.js +0 -1
  122. package/dist/assets/settings-E8SKMLxq.js +0 -1
  123. package/dist/assets/settings-zIY9-ivF.js +0 -1
  124. package/dist/assets/settings-zKBcRjqE.js +0 -1
  125. package/dist/assets/stores-vuG0AaKy.js +0 -7
  126. package/dist/assets/useWebSocket-CZSpbA3M.js +0 -29
  127. package/dist/assets/ws-client-TTMa0XaT.js +0 -1
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{Ln as t,Nr as n,Oa as r,Pa as i,Pt as a,Qi as o,Rn as s,Tr as c,Vr as l,Wr as u,Xi as d,Zt as f,_ as p,a as m,ai as h,an as g,c as _,ca as ee,di as v,dt as y,f as b,g as te,gr as x,h as ne,i as re,ir as S,ja as ie,kn as C,lt as w,m as ae,n as oe,p as se,r as ce,s as T,u as le,wn as E,xa as ue,yn as D,za as de,zn as O}from"./vendor-BuarzSSb.js";import"./i18n-9T7iGYgW.js";import{t as k}from"./utils-B-9lSDIn.js";import{i as fe,r as pe,t as me}from"./codemap-activity-store-DQfjo7-j.js";import{t as he}from"./codemap-index-store-COStDU-8.js";var A=e(de(),1),ge=4096,j=new Map;function M(e){let t=j.get(e);if(t!==void 0)return t;let n=e.replace(/\\/g,`/`).replace(/^\.\//,``).toLocaleLowerCase();for(;j.size>=ge;){let e=j.keys().next().value;if(e===void 0)break;j.delete(e)}return j.set(e,n),n}function N(e){return e.level===`packages`?`packages`:e.level===`files`?`files:${e.package}`:`symbols:${e.file}`}function _e(e){return e.level===`packages`?`/api/codemap/packages`:e.level===`files`?`/api/codemap/files?package=${encodeURIComponent(e.package)}`:`/api/codemap/symbols?file=${encodeURIComponent(e.file)}`}function ve(e,t,n){let r=new Map(e.nodes.map(e=>[e.id,e])),i=[];for(let a of e.edges){let e=n===`incoming`?a.target===t?a.source:void 0:a.source===t?a.target:void 0;if(!e)continue;let o=r.get(e);o&&i.push({node:o,edge:a})}return i.sort((e,t)=>t.edge.weight-e.edge.weight||e.node.label.localeCompare(t.node.label))}function ye(e,t){let n=new Set([t]);for(let r of e.edges)r.source===t&&n.add(r.target),r.target===t&&n.add(r.source);return n}function be(e,t){let n=new Map(e.nodes.map(e=>[e.id,0]));for(let r of e.edges)!t.has(r.source)||!t.has(r.target)||(n.set(r.source,(n.get(r.source)??0)+r.weight),r.target!==r.source&&n.set(r.target,(n.get(r.target)??0)+r.weight));return n}function P(e){let t=new Set(e.nodes.map(e=>e.id)),n=be(e,t),r=new Map(e.nodes.map(e=>[e.id,0])),i=new Map;for(let n of e.edges){if(!t.has(n.source)||!t.has(n.target)||n.source===n.target)continue;r.set(n.target,(r.get(n.target)??0)+1);let e=i.get(n.source)??[];e.push(n.target),i.set(n.source,e)}let a=new Map,o=e.nodes.filter(e=>(r.get(e.id)??0)===0).sort((e,t)=>(n.get(t.id)??0)-(n.get(e.id)??0)).map(e=>e.id);o.length===0&&e.nodes[0]&&o.push(e.nodes[0].id);for(let e of o)a.set(e,0);let s=new Set,c=0;for(;c<o.length;){let e=o[c++];if(!s.has(e)){s.add(e);for(let t of i.get(e)??[])a.set(t,Math.max(a.get(t)??0,Math.min((a.get(e)??0)+1,7))),r.set(t,(r.get(t)??1)-1),(r.get(t)??0)<=0&&o.push(t)}}let l=e.nodes.filter(e=>!a.has(e.id)).sort((e,t)=>(n.get(t.id)??0)-(n.get(e.id)??0));l.forEach((e,t)=>{a.set(e.id,t%Math.min(4,Math.max(1,l.length)))});let u=new Map;for(let t of e.nodes){let e=a.get(t.id)??0,n=u.get(e)??[];n.push(t),u.set(e,n)}for(let e of u.values())e.sort((e,t)=>Number(e.external)-Number(t.external)||(n.get(t.id)??0)-(n.get(e.id)??0)||e.label.localeCompare(t.label));let d=Math.max(1,...[...u.values()].map(e=>e.length))*160,f=[];for(let[e,t]of[...u.entries()].sort(([e],[t])=>e-t)){let n=(d-t.length*160)/2;t.forEach((t,r)=>{f.push({node:t,position:{x:e*386,y:n+r*160}})})}return f}function xe(e,t){if(e.nodes.length===0)return[];let n=be(e,new Set(e.nodes.map(e=>e.id))),r=e.nodes.find(e=>e.id===t)??[...e.nodes].sort((e,t)=>(n.get(t.id)??0)-(n.get(e.id)??0))[0],i=ye(e,r.id);i.delete(r.id);let a=e.nodes.filter(e=>i.has(e.id)),o=e.nodes.filter(e=>e.id!==r.id&&!i.has(e.id)),s=[{node:r,position:{x:0,y:0}}],c=(e,t,n)=>{e.forEach((r,i)=>{let a=n+Math.PI*2*i/Math.max(1,e.length);s.push({node:r,position:{x:Math.cos(a)*t,y:Math.sin(a)*t}})})};c(a,Math.max(330,a.length*34),-Math.PI/2);for(let e=0;e<o.length;e+=18)c(o.slice(e,e+18),620+Math.floor(e/18)*280,-Math.PI/2+.12);return s}function Se(e,t,n){return t===`orbit`?xe(e,n):P(e)}function F(e,t,n){if(e.length<=n)return e;let r=t?e.filter(e=>e.source===t||e.target===t):[],i=e.filter(e=>!t||e.source!==t&&e.target!==t).sort((e,t)=>t.weight-e.weight||e.source.localeCompare(t.source)||e.target.localeCompare(t.target)),a=Math.max(0,n-r.length);return[...r,...i.slice(0,a)]}function Ce(e,t,n){if(n===`all`)return e;let r=e.nodes;if(e.nodes.length>96){let n=new Map(e.nodes.map(e=>[e.id,e])),i=new Map;for(let t of e.edges)i.set(t.source,(i.get(t.source)??0)+t.weight),i.set(t.target,(i.get(t.target)??0)+t.weight);let a=[...e.nodes].sort((e,t)=>(i.get(t.id)??0)-(i.get(e.id)??0)||e.label.localeCompare(t.label)),o=new Set,s=e=>{n.has(e)&&o.size<96&&o.add(e)};if(t&&n.has(t)){s(t);let n=e.edges.filter(e=>e.source===t||e.target===t).sort((e,t)=>t.weight-e.weight);for(let e of n)s(e.source),s(e.target);let r=new Set(o),i=e.edges.filter(e=>r.has(e.source)||r.has(e.target)).sort((e,t)=>t.weight-e.weight);for(let e of i)s(e.source),s(e.target)}else{let e=a.filter(e=>!e.external).slice(0,72),t=a.filter(e=>e.external).slice(0,24);for(let n of[...e,...t])s(n.id)}for(let e of a)s(e.id);r=e.nodes.filter(e=>o.has(e.id))}let i=new Set(r.map(e=>e.id)),a=e.edges.filter(e=>i.has(e.source)&&i.has(e.target));return{nodes:r,edges:F(a,t,180)}}var we=[`/src/main/java/`,`/src/main/kotlin/`,`/src/`,`/lib/`,`/internal/`,`/cmd/`,`/pkg/`,`/app/`];function Te(e){let t=(e.file??e.label).replace(/\\/g,`/`),n=e.package??``,r=n.startsWith(`@wrongstack/`)?`/packages/${n.slice(12)}/`:n.startsWith(`app:`)?`/apps/${n.slice(4)}/`:void 0;if(!r)return;let i=t.indexOf(r);return i>=0?t.slice(i+r.length):void 0}function I(e){let t=(e.file??e.label).replace(/\\/g,`/`),n=Te(e);if(n!==void 0)return n;let r=-1,i=0;for(let e of we){let n=t.lastIndexOf(e);n>r&&(r=n,i=n+e.length)}return r>=0?t.slice(i):t.split(`/`).slice(-3).join(`/`)}function Ee(e){if(e.length===0)return``;let t=e.map(e=>e.split(`/`)),n=t[0]??[],r=0;for(;r<n.length-1;){let e=n[r];if(!t.every(t=>t.length-1>r&&t[r]===e))break;r++}return r===0?``:`${n.slice(0,r).join(`/`)}/`}var De=new WeakMap;function Oe(e){let t=De.get(e);if(t)return t;let n={name:``,path:``,directories:[],files:[]},r=e.filter(e=>e.kind===`file`&&!e.external),i=r.map(Te),a=i.every(e=>e!==void 0),o=a?``:Ee(r.map(e=>(e.file??e.label).replace(/\\/g,`/`)));for(let[e,t]of r.entries()){let r=(t.file??t.label).replace(/\\/g,`/`),s=i[e],c=(a?s??I(t):o&&r.startsWith(o)?r.slice(o.length):I(t)).split(`/`).filter(Boolean),l=c.pop()??t.label,u=n;for(let e of c){let t=u.path?`${u.path}/${e}`:e,n=u.directories.find(t=>t.name===e);n||(n={name:e,path:t,directories:[],files:[]},u.directories.push(n)),u=n}u.files.push({...t,label:l})}let s=e=>{e.directories.sort((e,t)=>e.name.localeCompare(t.name)),e.files.sort((e,t)=>e.label.localeCompare(t.label)),e.directories.forEach(s)};return s(n),De.set(e,n),n}function ke(e){let t=2166136261,n=e=>{for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)};for(let t of e.nodes)n(t.id);for(let r of e.edges)n(r.source),n(r.target),n(r.refType),t^=r.weight|0,t=Math.imul(t,16777619);return`${e.nodes.length}:${e.edges.length}:${t>>>0}`}function Ae(e,t,n,r){for(e.has(t)&&e.delete(t),e.set(t,n);e.size>r;){let t=e.keys().next().value;if(t===void 0)break;e.delete(t)}}function je(e,t){if(!e||!t)return!1;let n=M(e),r=M(t);return n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function Me(e){let t=M(e),n=t.match(/\/packages\/([^/]+)\//);if(n?.[1])return`@wrongstack/${n[1]}`;let r=t.match(/\/apps\/([^/]+)\//);return r?.[1]?`app:${r[1]}`:`(root)`}function Ne(e,t){return t.kind===`package`?Me(e.filePath)===(t.package??t.label):je(e.filePath,t.file)?t.kind!==`symbol`||e.symbol?.id===t.id:!1}function L(e){let t=new Map;for(let n of e){let e=M(n.filePath),r=t.get(e);r?r.push(n):t.set(e,[n])}return t}function Pe(e,t){let n=new Map;if(t.length===0||e.length===0)return n;let r=L(t),i=new Map;for(let a of e){let e;if(a.kind===`package`){let n=a.package??a.label,r=i.get(n);r||(r=t.filter(e=>Me(e.filePath)===n),i.set(n,r)),e=r}else if(a.file){let t=M(a.file),n=r.get(t);if(!n){n=[];for(let[e,i]of r)(e.endsWith(`/${t}`)||t.endsWith(`/${e}`))&&n.push(...i)}e=a.kind===`symbol`?n.filter(e=>e.symbol?.id===a.id):n}else e=[];e.length>0&&n.set(a.id,e)}return n}function Fe(e){if(e.length===0)return``;let t=`${e.length}`;for(let n=0;n<e.length;n++){let r=e[n];t+=`|${r.id??``}:${r.toolUseId??``}:${r.filePath}:${r.type}:${r.status??``}:${r.symbol?.id??``}:${r.timestamp}`}return t}function Ie(e,t){let n=t.filter(t=>t.kind===`symbol`&&!t.external&&je(t.file,e.filePath));if(n.length===0)return;if(e.line)return[...n].sort((e,t)=>(t.line??0)-(e.line??0)).find(t=>(t.line??0)<=e.line)??n[0];let r=e.summary.toLocaleLowerCase();return n.find(e=>e.label.length>2&&(r.includes(e.label.toLocaleLowerCase())||!!(e.signature&&r.includes(e.signature.toLocaleLowerCase()))))}var R=w();function Le({historyFile:e,fileHistory:t,onClose:n}){let{t:a}=i();return(0,R.jsxs)(`div`,{className:`absolute right-0 top-0 z-50 flex h-full w-[390px] max-w-[90%] flex-col border-l bg-card shadow-2xl`,children:[(0,R.jsxs)(`div`,{className:`flex h-12 items-center justify-between border-b px-4`,children:[(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,R.jsx)(r,{className:`h-4 w-4 shrink-0 text-warning`}),(0,R.jsx)(`span`,{className:`truncate font-mono text-[11px] font-semibold`,title:e,children:e})]}),(0,R.jsx)(`button`,{type:`button`,onClick:n,className:`flex h-7 w-7 items-center justify-center border text-muted-foreground hover:bg-muted`,"aria-label":a(`activity:codeMap.closeActivity`),children:(0,R.jsx)(y,{className:`h-3.5 w-3.5`})})]}),(0,R.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:t.length===0?(0,R.jsx)(`p`,{className:`py-12 text-center text-[10px] text-muted-foreground`,children:a(`activity:codeMap.noActivityRecordedForThisFile`)}):t.map((e,t)=>(0,R.jsxs)(`div`,{className:`mb-1 flex items-start gap-2 border p-2 text-[10px]`,children:[(0,R.jsx)(`span`,{className:k(`border px-1.5 py-0.5 font-mono text-[8px] font-bold uppercase`,e.type===`delete`?`border-destructive/40 text-destructive`:e.type===`read`?`border-info/40 text-info`:`border-warning/40 text-warning`),children:e.type}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`div`,{className:`font-mono text-[9px] text-muted-foreground`,children:new Date(e.timestamp).toLocaleTimeString()}),e.toolName&&(0,R.jsxs)(`div`,{className:`mt-1`,children:[`via `,e.toolName]}),e.agent&&(0,R.jsx)(`div`,{className:`text-muted-foreground`,children:e.agent}),e.summary&&(0,R.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:e.summary}),e.change&&(0,R.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 font-mono text-[8px]`,children:[(0,R.jsxs)(`span`,{className:`border border-success/40 bg-success/10 px-1 text-success`,children:[`+`,e.change.added]}),(0,R.jsxs)(`span`,{className:`border border-destructive/40 bg-destructive/10 px-1 text-destructive`,children:[`−`,e.change.removed]}),e.change.before&&(0,R.jsx)(`span`,{className:`ml-1 truncate text-destructive/80`,title:e.change.before,children:e.change.before}),e.change.after&&(0,R.jsxs)(`span`,{className:`truncate text-success/80`,title:e.change.after,children:[`→ `,e.change.after]})]}),(0,R.jsxs)(`div`,{className:`mt-1 flex gap-2 font-mono text-[8px] uppercase text-muted-foreground`,children:[(0,R.jsx)(`span`,{children:e.status??`observed`}),(0,R.jsx)(`span`,{children:e.source??`legacy`}),e.durationMs!==void 0&&(0,R.jsxs)(`span`,{children:[e.durationMs,`ms`]}),e.watcherConfirmed&&(0,R.jsx)(`span`,{className:`text-success`,children:a(`activity:codeMap.fsVerified`)})]})]})]},`${e.timestamp}-${t}`))}),(0,R.jsxs)(`div`,{className:`border-t px-4 py-2 font-mono text-[9px] text-muted-foreground`,children:[t.length,` events · newest first`]})]})}var z={package:{icon:t,accent:`border-l-primary`,iconStyle:`bg-primary/12 text-primary`},file:{icon:h,accent:`border-l-info`,iconStyle:`bg-info/12 text-info`},symbol:{icon:ee,accent:`border-l-success`,iconStyle:`bg-success/12 text-success`}},Re={call:`hsl(var(--primary))`,import:`hsl(var(--info))`,type_ref:`hsl(var(--success))`,inherit:`hsl(var(--warning))`,implement:`hsl(var(--destructive))`},B={read:`ring-2 ring-info/60 shadow-info/20`,write:`ring-2 ring-warning/70 shadow-warning/30`,edit:`ring-2 ring-warning/80 shadow-warning/40`,delete:`ring-2 ring-destructive/70 shadow-destructive/30`,search:`ring-2 ring-primary/55 shadow-primary/20`,memory:`ring-2 ring-success/60 shadow-success/30`,index:`ring-2 ring-info/50 shadow-info/20`,execute:`ring-2 ring-primary/55 shadow-primary/25`},V=[`bg-primary text-primary-foreground`,`bg-info text-info-foreground`,`bg-success text-success-foreground`,`bg-warning text-warning-foreground`,`bg-destructive text-destructive-foreground`];function ze(e){let t=e.trim().split(/[\s:_-]+/).filter(Boolean);return(t.length>1?`${t[0]?.[0]??``}${t[1]?.[0]??``}`:e.slice(0,2)).toLocaleUpperCase()}function H(e){let t=0;for(let n of e)t=t*31+n.charCodeAt(0)|0;return V[Math.abs(t)%V.length]??V[0]}function Be(e){let t=0;for(let n of e)t=t*31+n.charCodeAt(0)|0;return`hsl(${Math.abs(t)%360} 82% 58%)`}var U=[`/packages/`,`/apps/`,`/crates/`,`/cmd/`,`/internal/`,`/pkg/`,`/src/`];function Ve(e){let t=e.replace(/\\/g,`/`),n=U.reduce((e,n)=>Math.max(e,t.lastIndexOf(n)),-1);return n>=0?t.slice(n+1):t.split(`/`).slice(-3).join(`/`)}function He(e){return[e.symbol?.name,e.line?`L${e.line}`:void 0].filter(Boolean).join(` · `)}function Ue({data:e}){let{t}=i(),{graphNode:n,selected:r,dimmed:a,incoming:o,outgoing:s,isActive:c,activityType:l,activeOperations:u}=e,d=z[n.kind],f=d.icon,m=n.kind!==`symbol`,h=n.kind===`symbol`?`${n.symbolKind??`symbol`}${n.line?` · L${n.line}`:``}`:n.kind===`file`?I(n):`${n.fileCount??0} files · ${n.symbolCount??0} symbols`;return(0,R.jsxs)(`div`,{className:k(`group relative w-[236px] border border-l-[3px] bg-card text-card-foreground shadow-[0_8px_24px_hsl(var(--shadow-color)/0.08)] transition-[opacity,box-shadow,border-color,background-color]`,d.accent,r&&`border-primary bg-primary/5 shadow-[0_0_0_2px_hsl(var(--primary)/0.18),0_16px_36px_hsl(var(--shadow-color)/0.18)]`,n.external&&`border-dashed bg-muted/75`,a&&`opacity-25 grayscale`,c&&l&&B[l]),children:[u.length>0&&(0,R.jsxs)(`div`,{className:`absolute -top-5 left-2 z-20 flex max-w-[210px] items-center gap-1`,children:[u.slice(0,4).map(e=>{let t=e.agentName??e.agent??`External`,n=`${e.sessionId??`none`}:${e.agentId??t}`;return(0,R.jsxs)(`span`,{className:k(`flex h-6 items-center gap-1 border-2 border-background px-1.5 font-mono text-[8px] font-bold shadow-md`,H(n)),title:`${t} · ${e.type} ${He(e)}`,children:[(0,R.jsx)(`span`,{className:`h-1.5 w-1.5 animate-pulse bg-current`}),ze(t),e.symbol&&(0,R.jsx)(`span`,{className:`max-w-[80px] truncate`,children:e.symbol.name})]},e.id??`${n}:${e.filePath}`)}),u.length>4&&(0,R.jsxs)(`span`,{className:`border bg-card px-1 font-mono text-[8px] shadow`,children:[`+`,u.length-4]})]}),(0,R.jsx)(T,{type:`target`,position:p.Left,className:`!h-2.5 !w-2.5 !border-2 !border-card !bg-muted-foreground`}),(0,R.jsxs)(`button`,{type:`button`,className:`block w-full text-left`,onClick:t=>{if(t.shiftKey&&n.file){e.onShowHistory(n.file);return}e.onSelect(n)},onDoubleClick:()=>m&&e.onOpen(n),"aria-label":`${n.kind} ${n.label}`,children:[(0,R.jsxs)(`div`,{className:`flex items-start gap-3 p-3 pr-10`,children:[(0,R.jsx)(`span`,{className:k(`flex h-8 w-8 shrink-0 items-center justify-center border`,d.iconStyle),children:(0,R.jsx)(f,{className:`h-4 w-4`})}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[9px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:[(0,R.jsx)(`span`,{children:n.kind}),n.external&&(0,R.jsx)(`span`,{className:`border border-border px-1 py-0.5 text-[8px] text-warning`,children:`external`}),n.lang&&(0,R.jsx)(`span`,{className:`ml-auto font-mono normal-case tracking-normal`,children:n.lang})]}),(0,R.jsx)(`div`,{className:`truncate font-mono text-[13px] font-semibold`,title:n.label,children:n.label}),(0,R.jsx)(`div`,{className:`mt-1 truncate text-[10px] text-muted-foreground`,title:h,children:h})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3 border-t bg-muted/30 px-3 py-1.5 font-mono text-[9px] text-muted-foreground`,children:[(0,R.jsxs)(`span`,{title:t(`activity:codeMapVisuals.incomingRelationships`),children:[`← `,o]}),(0,R.jsxs)(`span`,{title:t(`activity:codeMapVisuals.outgoingRelationships`),children:[`→ `,s]}),n.symbolCount!==void 0&&n.kind===`file`&&(0,R.jsxs)(`span`,{className:`ml-auto`,children:[n.symbolCount,` sym`]}),c&&(0,R.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-bold text-warning`,children:[(0,R.jsx)(D,{className:`h-2.5 w-2.5 animate-pulse`}),` LIVE`]})]})]}),m&&(0,R.jsx)(`button`,{type:`button`,className:`absolute right-2 top-2 z-10 flex h-7 w-7 items-center justify-center border border-transparent text-muted-foreground opacity-0 transition hover:border-border hover:bg-muted hover:text-foreground group-hover:opacity-100 focus:opacity-100`,onClick:()=>e.onOpen(n),title:n.kind===`package`?`Open file map`:`Open symbol map`,"aria-label":`Open ${n.label} map`,children:(0,R.jsx)(v,{className:`h-3.5 w-3.5`})}),(0,R.jsx)(T,{type:`source`,position:p.Right,className:`!h-2.5 !w-2.5 !border-2 !border-card !bg-muted-foreground`})]})}function We(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Ge(e,t){return e.graphNode===t.graphNode&&e.selected===t.selected&&e.dimmed===t.dimmed&&e.incoming===t.incoming&&e.outgoing===t.outgoing&&e.isActive===t.isActive&&e.activityType===t.activityType&&e.onSelect===t.onSelect&&e.onOpen===t.onOpen&&e.onShowHistory===t.onShowHistory&&We(e.activeOperations,t.activeOperations)}var Ke={codemap:(0,A.memo)(Ue,(e,t)=>Ge(e.data,t.data))},qe={nodes:[],edges:[]};function Je(e){return/Authentication required|Unauthorized/i.test(e)}function Ye({loading:e,error:t,graph:n,canvasNodeCount:r,flowNodes:a,flowEdges:o,onNodesChange:s,onEdgesChange:c,agentTrailCount:l}){let{t:u}=i();return(0,R.jsxs)(R.Fragment,{children:[e&&(0,R.jsxs)(`div`,{className:`absolute inset-0 z-20 flex flex-col items-center justify-center gap-3 bg-background/75 backdrop-blur-sm`,children:[(0,R.jsx)(S,{className:`h-7 w-7 animate-spin text-primary`}),(0,R.jsx)(`span`,{className:`font-mono text-[10px] uppercase tracking-widest text-muted-foreground`,children:u(`activity:codeMap.mappingRelationships`)})]}),t&&!e&&(0,R.jsxs)(`div`,{className:`absolute inset-0 z-20 flex flex-col items-center justify-center gap-3 p-8 text-center`,children:[(0,R.jsx)(O,{className:`h-10 w-10 text-destructive`}),(0,R.jsx)(`p`,{className:`font-mono text-sm text-destructive`,children:t}),!Je(t)&&(0,R.jsxs)(`p`,{className:`max-w-md text-xs text-muted-foreground`,children:[`The map needs a codebase index. Run`,` `,(0,R.jsx)(`code`,{className:`border bg-muted px-1.5 py-0.5`,children:`codebase-index`}),` `,u(`activity:codeMap.onceThenReopenThisView`)]})]}),!e&&!t&&n.nodes.length===0&&(0,R.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-2 text-muted-foreground`,children:[(0,R.jsx)(O,{className:`h-8 w-8 opacity-40`}),(0,R.jsx)(`p`,{className:`text-xs`,children:u(`activity:codeMap.noIndexedNodesAtThisLevel`)})]}),!e&&!t&&n.nodes.length>1&&n.edges.length===0&&(0,R.jsxs)(`div`,{className:`pointer-events-none absolute left-1/2 top-14 z-10 -translate-x-1/2 border border-warning/40 bg-warning/10 px-3 py-2 text-center shadow backdrop-blur`,children:[(0,R.jsx)(`div`,{className:`font-mono text-[9px] font-bold uppercase tracking-wider text-warning`,children:u(`activity:codeMap.noResolvedRelationsInThisScope`)}),(0,R.jsx)(`div`,{className:`mt-0.5 text-[8px] text-muted-foreground`,children:u(`activity:codeMap.theUpgradedIndexWillRebuildAnd`)})]}),!t&&n.nodes.length>0&&(0,R.jsxs)(b,{nodes:a,edges:o,onNodesChange:s,onEdgesChange:c,nodeTypes:Ke,nodesConnectable:!1,nodesDraggable:!1,edgesFocusable:!1,elementsSelectable:!1,onlyRenderVisibleElements:!0,minZoom:.08,maxZoom:2.2,proOptions:{hideAttribution:!0},children:[(0,R.jsx)(ce,{variant:re.Dots,gap:r>60?32:22,size:1,color:`hsl(var(--muted-foreground))`,className:`!opacity-25`}),(0,R.jsx)(m,{position:`bottom-left`,showInteractive:!1,className:`!border !border-border !bg-card !shadow-md [&>button]:!border-border [&>button]:!bg-card [&>button]:!fill-foreground`}),r<=48&&(0,R.jsx)(_,{position:`bottom-right`,pannable:!0,zoomable:!0,className:`!h-[112px] !w-[180px] !border !border-border !bg-card !shadow-md`,maskColor:`hsl(var(--background) / 0.72)`,nodeColor:e=>{let t=e.data?.graphNode.kind;return t===`package`?`hsl(var(--primary))`:t===`file`?`hsl(var(--info))`:`hsl(var(--success))`}})]}),(0,R.jsxs)(`div`,{className:`pointer-events-none absolute bottom-3 left-1/2 z-10 flex -translate-x-1/2 items-center gap-3 border bg-card/90 px-3 py-1.5 font-mono text-[8px] text-muted-foreground shadow backdrop-blur`,children:[Object.entries(Re).map(([e,t])=>(0,R.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,R.jsx)(`span`,{className:`h-0.5 w-3`,style:{backgroundColor:t}}),e.replace(`_`,` `)]},e)),(0,R.jsxs)(`span`,{className:`flex items-center gap-1 text-primary`,"data-testid":`agent-trail-count`,children:[(0,R.jsx)(`span`,{className:`w-4 border-t-2 border-dashed border-primary`}),`agent trail`,l>0?` ×${l}`:``]})]})]})}function Xe({layout:e,canvasMode:t,edgeFilter:n,canvasNodeCount:r,graphNodeCount:a,onLayoutChange:o,onCanvasModeChange:c,onEdgeFilterChange:l}){let{t:u}=i();return(0,R.jsxs)(`div`,{className:`pointer-events-none absolute left-3 right-3 top-3 z-10 flex items-center gap-2`,children:[(0,R.jsxs)(`div`,{className:`pointer-events-auto flex border bg-card/95 shadow-md backdrop-blur`,children:[(0,R.jsxs)(`button`,{type:`button`,className:k(`flex h-8 items-center gap-1.5 border-r px-2.5 text-[9px] font-semibold uppercase tracking-wider`,e===`layers`?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>o(`layers`),children:[(0,R.jsx)(x,{className:`h-3 w-3`}),` `,u(`activity:codeMap.layers`)]}),(0,R.jsxs)(`button`,{type:`button`,className:k(`flex h-8 items-center gap-1.5 px-2.5 text-[9px] font-semibold uppercase tracking-wider`,e===`orbit`?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>o(`orbit`),children:[(0,R.jsx)(s,{className:`h-3 w-3`}),` `,u(`activity:codeMap.relations`)]})]}),(0,R.jsxs)(`div`,{className:`pointer-events-auto flex border bg-card/95 shadow-md backdrop-blur`,children:[(0,R.jsxs)(`button`,{type:`button`,className:k(`h-8 border-r px-2.5 font-mono text-[9px] font-bold`,t===`smart`?`bg-success text-success-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>c(`smart`),title:u(`activity:codeMap.keepTheFullTreeShowTheStrongestRelationsAndSelectedNeighbourhood`),children:[`SMART `,r,`/`,a]}),(0,R.jsx)(`button`,{type:`button`,className:k(`h-8 px-2.5 font-mono text-[9px] font-bold`,t===`all`?`bg-foreground text-background`:`text-muted-foreground hover:bg-muted`),onClick:()=>c(`all`),title:u(`activity:codeMap.renderEveryNodeAndRelationInThisScope`),children:u(`activity:codeMap.all`)})]}),(0,R.jsx)(`div`,{className:`pointer-events-auto ml-auto flex max-w-[60%] overflow-x-auto border bg-card/95 shadow-md backdrop-blur`,children:[`all`,`import`,`call`,`type_ref`,`inherit`,`implement`].map(e=>(0,R.jsx)(`button`,{type:`button`,className:k(`h-8 whitespace-nowrap border-r px-2.5 font-mono text-[9px] last:border-r-0`,n===e?`bg-foreground text-background`:`text-muted-foreground hover:bg-muted`),onClick:()=>l(e),children:e===`all`?`ALL LINKS`:e.replace(`_`,` `).toUpperCase()},e))})]})}function Ze({scope:e,graph:t,agentPresences:n,edgeWeight:r,connectedNodeCount:a,navigate:o}){let{t:s}=i();return(0,R.jsxs)(`header`,{className:`flex h-[62px] shrink-0 items-center gap-4 border-b bg-card px-4`,children:[(0,R.jsxs)(`div`,{className:`flex min-w-[220px] items-center gap-3`,children:[(0,R.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center border border-primary bg-primary/10 text-primary`,children:(0,R.jsx)(O,{className:`h-4 w-4`})}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h1`,{className:`font-display text-sm font-semibold tracking-tight`,children:s(`activity:codeMap.codeAtlas`)}),(0,R.jsx)(`p`,{className:`text-[9px] uppercase tracking-[0.18em] text-muted-foreground`,children:s(`activity:codeMap.architectureIntelligence`)})]})]}),(0,R.jsxs)(`nav`,{className:`flex min-w-0 flex-1 items-center gap-1 font-mono text-[10px]`,"aria-label":s(`activity:codeMap.codeMapBreadcrumb`),children:[e.level!==`packages`&&(0,R.jsx)(`button`,{type:`button`,className:`mr-1 flex h-7 w-7 items-center justify-center border text-muted-foreground hover:bg-muted`,onClick:()=>{e.level===`symbols`?o({level:`files`,package:e.package??`(root)`}):o({level:`packages`})},"aria-label":s(`activity:codeMap.back`),children:(0,R.jsx)(ue,{className:`h-3.5 w-3.5`})}),(0,R.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 px-1.5 py-1 text-muted-foreground hover:text-foreground`,onClick:()=>o({level:`packages`}),children:[(0,R.jsx)(c,{className:`h-3 w-3`}),` workspace`]}),e.level!==`packages`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(d,{className:`h-3 w-3 text-muted-foreground`}),(0,R.jsx)(`button`,{type:`button`,className:`max-w-[220px] truncate px-1.5 py-1 hover:text-primary`,onClick:()=>o({level:`files`,package:e.package??`(root)`}),children:e.package??`(root)`})]}),e.level===`symbols`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(d,{className:`h-3 w-3 text-muted-foreground`}),(0,R.jsx)(`span`,{className:`truncate px-1.5 py-1 text-primary`,children:I({id:``,label:e.file,kind:`file`,file:e.file,package:e.package})})]})]}),(0,R.jsxs)(`div`,{className:`hidden items-center gap-5 xl:flex`,children:[(0,R.jsxs)(`div`,{className:k(`flex h-8 items-center gap-2 border px-2.5`,n.length>0?`border-success/50 bg-success/10 text-success`:`text-muted-foreground`),children:[(0,R.jsx)(D,{className:k(`h-3 w-3`,n.length>0&&`animate-pulse`)}),(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`div`,{className:`font-mono text-[10px] font-bold`,children:[n.length,` LIVE`]}),(0,R.jsx)(`div`,{className:`text-[7px] uppercase tracking-wider`,children:`agents`})]})]}),(0,R.jsxs)(`div`,{className:`text-right`,children:[(0,R.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:t.nodes.length}),(0,R.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`nodes`})]}),(0,R.jsxs)(`div`,{className:`text-right`,children:[(0,R.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:t.edges.length}),(0,R.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`links`})]}),(0,R.jsxs)(`div`,{className:`text-right`,children:[(0,R.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:r}),(0,R.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`references`})]}),(0,R.jsxs)(`div`,{className:`text-right`,children:[(0,R.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:a}),(0,R.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`connected`})]})]})]})}function Qe({activity:e}){return(0,R.jsx)(`span`,{className:k(`shrink-0 border px-1.5 py-0.5 font-mono text-[8px] font-bold uppercase`,e.type===`delete`?`border-destructive/50 bg-destructive/10 text-destructive`:e.type===`read`?`border-info/50 bg-info/10 text-info`:e.type===`search`||e.type===`index`?`border-primary/50 bg-primary/10 text-primary`:`border-warning/50 bg-warning/10 text-warning`),children:e.filePath.startsWith(`(tool:`)?e.toolName:e.type})}function W({activity:e,onLocate:t,showAgent:n=!1}){let{t:r}=i(),o=e.agentName??e.agent??`External process`,s=`${e.sessionId??`none`}:${e.agentId??o}`;return(0,R.jsxs)(`button`,{type:`button`,className:`group flex w-full items-start gap-2 border-b px-3 py-2 text-left last:border-b-0 hover:bg-muted/70`,onClick:()=>!e.filePath.startsWith(`(`)&&t(e),title:`Locate ${e.filePath}`,children:[n&&(0,R.jsx)(`span`,{className:k(`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center font-mono text-[8px] font-black`,H(s)),children:ze(o)}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,R.jsx)(Qe,{activity:e}),n&&(0,R.jsx)(`span`,{className:`truncate text-[9px] font-semibold`,children:o}),e.status===`active`&&(0,R.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-mono text-[8px] font-bold text-success`,children:[(0,R.jsx)(`span`,{className:`h-1.5 w-1.5 animate-pulse bg-success`}),` `,r(`activity:codeMap.live`)]}),e.watcherConfirmed&&(0,R.jsx)(f,{className:`ml-auto h-3 w-3 text-success`,"aria-label":r(`activity:codeMap.filesystemConfirmed`)}),e.attribution===`correlated`&&!e.watcherConfirmed&&(0,R.jsx)(`span`,{className:`ml-auto font-mono text-[7px] uppercase text-warning`,title:r(`activity:codeMap.correlatedFromTheOnlyActiveTool`),children:r(`activity:codeMap.correlated`)}),e.attribution===`external`&&(0,R.jsx)(`span`,{className:`ml-auto font-mono text-[7px] uppercase text-destructive`,children:`external`})]}),(0,R.jsx)(`div`,{className:`mt-1 truncate font-mono text-[9px] font-semibold`,title:e.filePath,children:Ve(e.filePath)}),(e.symbol||e.line)&&(0,R.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-1 truncate font-mono text-[8px] text-success`,children:[(0,R.jsx)(a,{className:`h-2.5 w-2.5 shrink-0`}),e.symbol?.name??`line ${e.line}`,e.symbol?.kind&&(0,R.jsxs)(`span`,{className:`text-muted-foreground`,children:[`· `,e.symbol.kind]})]}),e.change&&(0,R.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 font-mono text-[8px]`,children:[(0,R.jsxs)(`span`,{className:`border border-success/40 bg-success/10 px-1 text-success`,children:[`+`,e.change.added]}),(0,R.jsxs)(`span`,{className:`border border-destructive/40 bg-destructive/10 px-1 text-destructive`,children:[`−`,e.change.removed]}),e.durationMs!==void 0&&(0,R.jsxs)(`span`,{className:`ml-auto text-muted-foreground`,children:[e.durationMs,`ms`]})]}),e.summary&&e.summary!==e.toolName&&(0,R.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[8px] leading-3 text-muted-foreground`,children:e.summary})]}),!e.filePath.startsWith(`(`)&&(0,R.jsx)(v,{className:`mt-1 h-3 w-3 shrink-0 text-muted-foreground opacity-0 group-hover:opacity-100`})]})}function $e({presences:e,onLocate:t}){let{t:n}=i();return e.length===0?null:(0,R.jsxs)(`section`,{className:`pointer-events-auto absolute left-3 top-14 z-20 w-[304px] border bg-card/95 shadow-xl backdrop-blur`,children:[(0,R.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b px-3`,children:[(0,R.jsx)(D,{className:`h-3.5 w-3.5 animate-pulse text-success`}),(0,R.jsx)(`h2`,{className:`text-[9px] font-black uppercase tracking-[0.18em]`,children:n(`activity:codeMap.liveAgentOperations`)}),(0,R.jsxs)(`span`,{className:`ml-auto bg-success px-1.5 py-0.5 font-mono text-[8px] font-bold text-success-foreground`,children:[e.length,` ONLINE`]})]}),(0,R.jsx)(`div`,{className:`max-h-[330px] overflow-y-auto`,children:e.map(e=>(0,R.jsxs)(`div`,{className:`border-b last:border-b-0`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 bg-muted/35 px-3 py-1.5`,children:[(0,R.jsx)(`span`,{className:k(`flex h-6 w-6 items-center justify-center font-mono text-[8px] font-black`,H(e.key)),children:ze(e.agentName)}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`div`,{className:`truncate text-[9px] font-bold`,children:e.agentName}),(0,R.jsxs)(`div`,{className:`truncate font-mono text-[7px] text-muted-foreground`,children:[`session `,e.sessionId.slice(0,12),` · agent `,e.agentId.slice(0,12)]})]}),(0,R.jsxs)(`span`,{className:`font-mono text-[8px] text-success`,children:[e.operations.length,` op`]})]}),e.operations.map(e=>(0,R.jsx)(W,{activity:e,onLocate:t},e.id??`${e.toolUseId}:${e.filePath}`))]},e.key))})]})}function et({paused:e,followLive:t,agentFilter:n,agents:r,onTogglePaused:o,onToggleFollow:s,onAgentFilter:c}){let{t:l}=i();return(0,R.jsxs)(`div`,{className:`pointer-events-auto absolute right-3 top-14 z-20 flex h-9 items-center border bg-card/95 shadow-lg backdrop-blur`,children:[(0,R.jsxs)(`button`,{type:`button`,className:k(`flex h-full items-center gap-1.5 border-r px-2.5 text-[8px] font-bold uppercase tracking-wider`,t?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:s,title:l(`activity:codeMap.automaticallyEnterTheFileFunctionUsedByTheNewestVisibleAgent`),children:[(0,R.jsx)(a,{className:`h-3 w-3`}),` `,l(`activity:codeMap.follow`)]}),(0,R.jsxs)(`button`,{type:`button`,className:k(`flex h-full items-center gap-1.5 border-r px-2.5 text-[8px] font-bold uppercase tracking-wider`,e?`bg-warning text-warning-foreground`:`text-success hover:bg-success/10`),onClick:o,title:e?`Resume the live telemetry stream`:`Freeze the current telemetry frame`,children:[e?(0,R.jsx)(E,{className:`h-3 w-3`}):(0,R.jsx)(C,{className:`h-3 w-3`}),e?`Resume`:`Live`]}),(0,R.jsxs)(`label`,{className:`flex h-full items-center gap-1.5 px-2 text-[8px] uppercase text-muted-foreground`,children:[l(`activity:codeMap.agent`),(0,R.jsxs)(`select`,{"aria-label":l(`activity:codeMap.filterCodemapByAgentAndSession`),className:`h-6 max-w-[170px] border bg-background px-1.5 font-mono text-[8px] text-foreground outline-none focus:border-primary`,value:n,onChange:e=>c(e.target.value),children:[(0,R.jsx)(`option`,{value:`all`,children:l(`activity:codeMap.allAgents`)}),r.map(e=>(0,R.jsxs)(`option`,{value:e.key,children:[e.agentName,` · `,e.sessionId.slice(0,10)]},e.key))]})]})]})}function tt({activeOperations:e,recentActivities:t,activityTotalCount:a,onLocate:o}){let{t:s}=i();return(0,R.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[e.length>0&&(0,R.jsxs)(`section`,{className:`border-b`,children:[(0,R.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b bg-success/5 px-3`,children:[(0,R.jsx)(D,{className:`h-3 w-3 animate-pulse text-success`}),(0,R.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:s(`activity:codeMap.activeNow`)}),(0,R.jsx)(`span`,{className:`ml-auto font-mono text-[9px] text-success`,children:e.length})]}),e.map(e=>(0,R.jsx)(W,{activity:e,onLocate:o,showAgent:!0},e.id??`${e.toolUseId}:${e.filePath}`))]}),(0,R.jsxs)(`section`,{children:[(0,R.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b px-3`,children:[(0,R.jsx)(r,{className:`h-3 w-3 text-muted-foreground`}),(0,R.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:s(`activity:codeMap.eventStream`)}),(0,R.jsxs)(`span`,{className:`ml-auto font-mono text-[8px] text-muted-foreground`,children:[a,` total`]})]}),t.length>0?t.map((e,t)=>(0,R.jsx)(W,{activity:e,onLocate:o,showAgent:!0},e.id??`${e.timestamp}:${t}`)):(0,R.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-7 py-16 text-center`,children:[(0,R.jsx)(`span`,{className:`mb-4 flex h-12 w-12 items-center justify-center border bg-muted text-muted-foreground`,children:(0,R.jsx)(n,{className:`h-5 w-5`})}),(0,R.jsx)(`h3`,{className:`text-xs font-semibold`,children:s(`activity:codeMap.selectANodeOrWaitFor`)}),(0,R.jsx)(`p`,{className:`mt-2 text-[10px] leading-relaxed text-muted-foreground`,children:s(`activity:codeMap.relationsAppearOnSelectionToolCalls`)})]})]})]})}function G({node:e,incomingCount:t,outgoingCount:n,onOpenNode:a,onOpenActivity:o}){let{t:s}=i(),c=z[e.kind].icon;return(0,R.jsxs)(`div`,{className:`border-b bg-muted/25 p-3`,children:[(0,R.jsxs)(`div`,{className:`mb-2 flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:k(`flex h-8 w-8 items-center justify-center border`,z[e.kind].iconStyle),children:(0,R.jsx)(c,{className:`h-4 w-4`})}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxs)(`div`,{className:`text-[8px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:[e.external?`external `:``,e.kind]}),(0,R.jsx)(`div`,{className:`truncate font-mono text-xs font-semibold`,title:e.label,children:e.label})]})]}),(0,R.jsx)(`div`,{className:`break-all font-mono text-[9px] leading-relaxed text-muted-foreground`,children:e.file?I(e):e.package}),e.signature&&(0,R.jsx)(`pre`,{className:`mt-3 overflow-x-auto border bg-background p-2 font-mono text-[9px] leading-relaxed text-foreground`,children:e.signature}),(0,R.jsxs)(`div`,{className:`mt-3 grid grid-cols-3 border`,children:[(0,R.jsx)(nt,{value:t,label:s(`activity:codeMap.incoming`),className:`border-r text-info`}),(0,R.jsx)(nt,{value:n,label:s(`activity:codeMap.outgoing`),className:`border-r text-primary`}),(0,R.jsx)(nt,{value:e.symbolCount??e.fileCount??e.line??`—`,label:e.kind===`package`?`files`:e.kind===`file`?`symbols`:`line`})]}),(0,R.jsxs)(`div`,{className:`mt-2 flex gap-2`,children:[e.kind!==`symbol`&&(0,R.jsxs)(`button`,{type:`button`,className:`flex h-7 flex-1 items-center justify-center gap-1.5 border bg-foreground text-[9px] font-semibold uppercase tracking-wider text-background hover:opacity-90`,onClick:()=>a(e),children:[(0,R.jsx)(v,{className:`h-3 w-3`}),` Open `,e.kind===`package`?`files`:`symbols`]}),e.file&&(0,R.jsxs)(`button`,{type:`button`,className:`flex h-7 items-center justify-center gap-1.5 border px-2 text-[9px] uppercase text-muted-foreground hover:bg-muted`,onClick:()=>o(e.file),children:[(0,R.jsx)(r,{className:`h-3 w-3`}),` `,s(`activity:codeMap.activity`)]})]})]})}function nt({value:e,label:t,className:n}){return(0,R.jsxs)(`div`,{className:k(`p-2 text-center`,n),children:[(0,R.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:e}),(0,R.jsx)(`div`,{className:`text-[8px] uppercase text-muted-foreground`,children:t})]})}function K(e){let{t}=i(),{title:r,subtitle:a,items:s,graph:c,selectedId:l,expanded:u,onToggle:f,onSelect:p}=e;return(0,R.jsxs)(`section`,{className:`border-b py-3`,children:[(0,R.jsxs)(`div`,{className:`mb-2 flex items-end justify-between px-3`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h3`,{className:`text-[10px] font-bold uppercase tracking-[0.16em]`,children:r}),(0,R.jsx)(`p`,{className:`mt-0.5 text-[9px] text-muted-foreground`,children:a})]}),(0,R.jsx)(`span`,{className:`border bg-muted px-1.5 py-0.5 font-mono text-[9px]`,children:s.length})]}),s.length===0?(0,R.jsx)(`p`,{className:`px-3 py-2 text-[10px] text-muted-foreground`,children:t(`activity:codeMap.noRelationshipsInThisView`)}):s.map(e=>{let t=`${r}:${e.node.id}`,i=u.has(t),a=[...ve(c,e.node.id,`incoming`),...ve(c,e.node.id,`outgoing`)].filter((e,t,n)=>e.node.id!==l&&n.findIndex(t=>t.node.id===e.node.id)===t).slice(0,8);return(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`div`,{className:`group flex min-h-9 items-center gap-1 px-2 hover:bg-muted/70`,children:[(0,R.jsx)(`button`,{type:`button`,className:`flex h-6 w-5 shrink-0 items-center justify-center text-muted-foreground`,onClick:()=>a.length>0&&f(t),"aria-label":`${i?`Collapse`:`Expand`} relation ${e.node.label}`,children:a.length>0?i?(0,R.jsx)(o,{className:`h-3 w-3`}):(0,R.jsx)(d,{className:`h-3 w-3`}):(0,R.jsx)(`span`,{className:`h-px w-2 bg-border`})}),(0,R.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 py-1 text-left`,onClick:()=>p(e.node),children:[(0,R.jsx)(`span`,{className:`block truncate font-mono text-[10px] font-semibold`,title:e.node.label,children:e.node.label}),(0,R.jsx)(`span`,{className:`block truncate text-[9px] text-muted-foreground`,children:e.node.package??e.node.symbolKind??e.node.kind})]}),(0,R.jsx)(`span`,{className:`border px-1 py-0.5 font-mono text-[8px] text-muted-foreground`,children:e.edge.refType}),(0,R.jsxs)(`span`,{className:`w-5 text-right font-mono text-[9px] text-muted-foreground`,children:[`×`,e.edge.weight]})]}),i&&a.map(e=>(0,R.jsxs)(`button`,{type:`button`,className:`relative flex h-7 w-full items-center gap-2 border-l border-border pl-11 pr-3 text-left text-[9px] text-muted-foreground hover:bg-muted hover:text-foreground`,onClick:()=>p(e.node),children:[(0,R.jsx)(`span`,{className:`absolute left-7 top-1/2 h-px w-3 bg-border`}),(0,R.jsx)(n,{className:`h-3 w-3 shrink-0`}),(0,R.jsx)(`span`,{className:`truncate font-mono`,children:e.node.label}),(0,R.jsx)(`span`,{className:`ml-auto font-mono opacity-70`,children:e.edge.refType})]},`${t}:${e.node.id}`))]},t)})]})}function rt({selectedNode:e,incoming:t,outgoing:n,filteredGraph:r,expandedRelations:a,activeOperations:o,recentActivities:s,activityTotalCount:c,selectedActivities:l,onClearSelection:u,onOpenNode:d,onOpenActivity:f,onLocateActivity:p,onToggleRelation:m,onSelectNode:h}){let{t:g}=i();return(0,R.jsxs)(`aside`,{className:`flex w-[326px] shrink-0 flex-col border-l bg-card/80`,children:[(0,R.jsxs)(`div`,{className:`flex h-10 items-center justify-between border-b px-3`,children:[(0,R.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.18em]`,children:g(`activity:codeMap.relationInspector`)}),e&&(0,R.jsx)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground`,onClick:u,"aria-label":g(`activity:codeMap.clearSelection`),children:(0,R.jsx)(y,{className:`h-3.5 w-3.5`})})]}),e?(0,R.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,R.jsx)(G,{node:e,incomingCount:t.length,outgoingCount:n.length,onOpenNode:d,onOpenActivity:f}),l.length>0&&(0,R.jsxs)(`section`,{className:`border-b bg-success/5 py-2`,children:[(0,R.jsxs)(`div`,{className:`mb-1 flex items-center gap-2 px-3`,children:[(0,R.jsx)(D,{className:`h-3 w-3 animate-pulse text-success`}),(0,R.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:g(`activity:codeMap.agentsOnThisNode`)}),(0,R.jsx)(`span`,{className:`ml-auto font-mono text-[9px] text-success`,children:l.length})]}),l.map(e=>(0,R.jsx)(W,{activity:e,onLocate:p,showAgent:!0},e.id??`${e.toolUseId}:${e.filePath}`))]}),(0,R.jsx)(K,{title:g(`activity:codeMap.incoming`),subtitle:g(`activity:codeMap.whoDependsOnThis`),items:t,graph:r,selectedId:e.id,expanded:a,onToggle:m,onSelect:h}),(0,R.jsx)(K,{title:g(`activity:codeMap.outgoing`),subtitle:g(`activity:codeMap.whatThisDependsOn`),items:n,graph:r,selectedId:e.id,expanded:a,onToggle:m,onSelect:h})]}):(0,R.jsx)(tt,{activeOperations:o,recentActivities:s,activityTotalCount:c,onLocate:p})]})}function it({node:e,onSelect:t,virtual:n}){let r=z[e.kind].icon;return(0,R.jsxs)(`button`,{type:`button`,"data-index":n?.index,ref:n?e=>n.measureElement(e):void 0,className:k(`min-h-8 items-center gap-2 px-3 py-1 text-left hover:bg-muted`,n?`absolute left-0 flex w-full`:`flex w-full`),style:n?{transform:`translateY(${n.start}px)`}:void 0,onClick:()=>t(e),children:[(0,R.jsx)(r,{className:k(`h-3.5 w-3.5 shrink-0`,e.kind===`package`?`text-primary`:e.kind===`file`?`text-info`:`text-success`)}),(0,R.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`span`,{className:`block truncate font-mono text-[10px]`,children:e.label}),(0,R.jsx)(`span`,{className:`block truncate text-[8px] text-muted-foreground`,children:e.file??e.package??e.symbolKind})]}),(0,R.jsx)(`span`,{className:`text-[8px] uppercase text-muted-foreground`,children:e.kind.slice(0,3)})]},e.id)}var q=80,at=40;function J(e,t){if(!e||t.size===0)return!1;let n=M(e);if(t.has(n))return!0;for(let e of t)if(e.endsWith(`/${n}`)||n.endsWith(`/${e}`))return!0;return!1}var ot=(0,A.memo)(function e(t){let{t:n}=i(),{directory:r,packageName:a,depth:s,expandedDirectories:c,expandedFiles:f,loadingBranches:p,graphForFile:m,onToggleDirectory:g,onToggleFile:_,onSelectFile:y,onOpenFile:b,onSelectSymbol:te,selectedId:x,activeFileNorms:ne,activeSymbolIds:re,revealAllKeys:ie,onRevealAll:C}=t,w=`files:${a}:${r.path||`.`}`,ae=ie.has(w)?r.files:r.files.slice(0,q),oe=r.files.length-ae.length;return(0,R.jsxs)(R.Fragment,{children:[r.directories.map(n=>{let r=`${a}:${n.path}`,i=c.has(r);return(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`button`,{type:`button`,className:`flex h-7 w-full items-center gap-1.5 pr-2 text-left text-[11px] text-muted-foreground hover:bg-muted hover:text-foreground`,style:{paddingLeft:8+s*12},onClick:()=>g(r),children:[i?(0,R.jsx)(o,{className:`h-3 w-3`}):(0,R.jsx)(d,{className:`h-3 w-3`}),i?(0,R.jsx)(u,{className:`h-3.5 w-3.5 text-warning`}):(0,R.jsx)(l,{className:`h-3.5 w-3.5 text-warning`}),(0,R.jsx)(`span`,{className:`truncate`,children:n.name})]}),i&&(0,R.jsx)(e,{...t,directory:n,depth:s+1})]},r)}),ae.map(e=>{let t=f.has(e.file??e.id),r=N({level:`symbols`,file:e.file??e.label}),i=(e.file?m(e.file):void 0)?.nodes.filter(t=>t.kind===`symbol`&&t.file===e.file&&!t.external)??[],a=`symbols:${e.file??e.id}`,c=ie.has(a)?i:i.slice(0,at),l=i.length-c.length,u=J(e.file,ne);return(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`div`,{className:k(`group flex h-7 items-center pr-1 text-[11px] hover:bg-muted`,x===e.id&&`bg-primary/10 text-primary`),style:{paddingLeft:8+s*12},children:[(0,R.jsx)(`button`,{type:`button`,className:`flex h-6 w-4 shrink-0 items-center justify-center text-muted-foreground`,onClick:()=>_(e),"aria-label":`${t?`Collapse`:`Expand`} ${e.label}`,children:p.has(r)?(0,R.jsx)(S,{className:`h-3 w-3 animate-spin`}):t?(0,R.jsx)(o,{className:`h-3 w-3`}):(0,R.jsx)(d,{className:`h-3 w-3`})}),(0,R.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-1.5 text-left`,onClick:()=>y(e),onDoubleClick:()=>b(e),children:[(0,R.jsx)(h,{className:`h-3.5 w-3.5 shrink-0 text-info`}),u&&(0,R.jsx)(`span`,{className:`h-1.5 w-1.5 shrink-0 animate-pulse bg-success`,title:n(`activity:codeMap.liveOperation`)}),(0,R.jsx)(`span`,{className:`truncate font-mono`,title:e.file,children:e.label}),(0,R.jsx)(`span`,{className:`ml-auto text-[9px] text-muted-foreground`,children:e.symbolCount??0})]}),(0,R.jsx)(`button`,{type:`button`,className:`ml-1 hidden h-5 w-5 items-center justify-center text-muted-foreground hover:text-foreground group-hover:flex`,onClick:()=>b(e),title:n(`activity:codeMap.openSymbolMap`),"aria-label":`Open ${e.label} map`,children:(0,R.jsx)(v,{className:`h-3 w-3`})})]}),t&&c.map(e=>(0,R.jsxs)(`button`,{type:`button`,className:k(`flex h-7 w-full items-center gap-1.5 pr-2 text-left text-[10px] hover:bg-muted`,x===e.id?`bg-primary/10 text-primary`:`text-muted-foreground`),style:{paddingLeft:38+s*12},onClick:()=>te(e),children:[(0,R.jsx)(ee,{className:`h-3 w-3 shrink-0 text-success`}),re.has(e.id)&&(0,R.jsx)(D,{className:`h-3 w-3 shrink-0 animate-pulse text-success`}),(0,R.jsx)(`span`,{className:`truncate font-mono`,children:e.label}),e.line&&(0,R.jsxs)(`span`,{className:`ml-auto font-mono text-[8px] opacity-60`,children:[`:`,e.line]})]},e.id)),t&&l>0&&(0,R.jsxs)(`button`,{type:`button`,className:`flex h-7 w-full items-center text-left font-mono text-[9px] text-primary hover:bg-muted`,style:{paddingLeft:38+s*12},onClick:()=>C(a),children:[`Show `,l,` more symbols`]})]},e.id)}),oe>0&&(0,R.jsxs)(`button`,{type:`button`,className:`flex h-7 w-full items-center text-left font-mono text-[9px] text-primary hover:bg-muted`,style:{paddingLeft:8+s*12},onClick:()=>C(w),children:[`Show `,oe,` more files`]})]})});function st({rootGraph:e,search:n,searchInput:r,searchResults:a,virtualizeSearch:s,searchVirtualizer:c,treeScrollRef:l,selectedId:u,expandedPackages:f,expandedDirectories:p,expandedFiles:m,loadingBranches:h,activeFileNorms:_,activeSymbolIds:ee,revealAllKeys:b,packageGraph:te,graphForFile:x,navigate:ne,togglePackage:re,toggleDirectory:ie,toggleFile:C,revealAllTree:w,selectFileFromTree:ae,selectSymbolFromTree:oe,selectSearchResult:se,handleOpenNode:ce,onSearchInputChange:T,onSearchChange:le}){let{t:E}=i();return(0,R.jsxs)(`aside`,{className:`flex w-[286px] shrink-0 flex-col border-r bg-card/70`,children:[(0,R.jsxs)(`div`,{className:`border-b p-3`,children:[(0,R.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,R.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.18em]`,children:E(`activity:codeMapTree.codeTree`)}),(0,R.jsxs)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:[e.nodes.length,` roots`]})]}),(0,R.jsxs)(`label`,{className:`flex h-8 items-center gap-2 border bg-background px-2 focus-within:border-primary`,children:[(0,R.jsx)(g,{className:`h-3.5 w-3.5 text-muted-foreground`}),(0,R.jsx)(`input`,{className:`min-w-0 flex-1 bg-transparent font-mono text-[10px] outline-none placeholder:text-muted-foreground`,value:r,onChange:e=>T(e.target.value),placeholder:E(`activity:codeMapTree.findPackageFileSymbol`)}),r&&(0,R.jsx)(`button`,{type:`button`,onClick:()=>{T(``),le(``)},"aria-label":E(`activity:codeMapTree.clearSearch`),children:(0,R.jsx)(y,{className:`h-3 w-3 text-muted-foreground`})})]})]}),(0,R.jsx)(`div`,{ref:l,className:`min-h-0 flex-1 overflow-y-auto py-2`,children:n.trim()?(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`div`,{className:`px-3 pb-2 text-[9px] text-muted-foreground`,children:[a.length,` loaded-map results`]}),a.length===0?(0,R.jsxs)(`p`,{className:`px-3 py-8 text-center text-[10px] text-muted-foreground`,children:[E(`activity:codeMapTree.noMatchInLoadedBranches`),(0,R.jsx)(`br`,{}),E(`activity:codeMapTree.expandAPackageToSearchIts`)]}):s?(0,R.jsx)(`div`,{style:{height:`${c.getTotalSize()}px`,width:`100%`,position:`relative`},children:c.getVirtualItems().map(e=>{let t=a[e.index];return t?(0,R.jsx)(it,{node:t,onSelect:se,virtual:{index:e.index,start:e.start,measureElement:c.measureElement}},t.id):null})}):a.map(e=>(0,R.jsx)(it,{node:e,onSelect:se},e.id))]}):e.nodes.map(e=>{let n=e.package??e.label,r=f.has(n),i=N({level:`files`,package:n}),a=te(n),s=a?Oe(a.nodes):void 0;return(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`div`,{className:k(`group flex h-8 items-center px-2 hover:bg-muted`,u===e.id&&`bg-primary/10 text-primary`),children:[(0,R.jsx)(`button`,{type:`button`,className:`flex h-6 w-5 items-center justify-center text-muted-foreground`,onClick:()=>re(e),"aria-label":`${r?`Collapse`:`Expand`} ${n}`,children:h.has(i)?(0,R.jsx)(S,{className:`h-3 w-3 animate-spin`}):r?(0,R.jsx)(o,{className:`h-3 w-3`}):(0,R.jsx)(d,{className:`h-3 w-3`})}),(0,R.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 text-left`,onClick:()=>ne({level:`packages`},e.id),onDoubleClick:()=>ne({level:`files`,package:n}),children:[(0,R.jsx)(t,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,R.jsx)(`span`,{className:`truncate font-mono text-[10px] font-semibold`,children:e.label}),(0,R.jsx)(`span`,{className:`ml-auto text-[9px] text-muted-foreground`,children:e.fileCount??0})]}),(0,R.jsx)(`button`,{type:`button`,className:`ml-1 hidden h-5 w-5 items-center justify-center text-muted-foreground hover:text-foreground group-hover:flex`,onClick:()=>ne({level:`files`,package:n}),title:E(`activity:codeMapTree.openFileMap`),"aria-label":`Open ${n} map`,children:(0,R.jsx)(v,{className:`h-3 w-3`})})]}),r&&s&&(0,R.jsx)(ot,{directory:s,packageName:n,depth:1,expandedDirectories:p,expandedFiles:m,loadingBranches:h,graphForFile:x,onToggleDirectory:ie,onToggleFile:C,onSelectFile:ae,onOpenFile:ce,onSelectSymbol:oe,selectedId:u,activeFileNorms:_,activeSymbolIds:ee,revealAllKeys:b,onRevealAll:w})]},e.id)})}),(0,R.jsxs)(`div`,{className:`border-t px-3 py-2 text-[9px] leading-relaxed text-muted-foreground`,children:[E(`activity:codeMapTree.clickToFocusDoubleClickTo`),(0,R.jsx)(`br`,{}),E(`activity:codeMapTree.branchesStayOpenWhileTheMap`)]})]})}function ct(e,t){let n=new Map(e.map(e=>[e.id,e])),r=e.length!==t.length,i=t.map((t,i)=>{let a=n.get(t.id);return a?a.type===t.type&&a.position.x===t.position.x&&a.position.y===t.position.y&&Ge(a.data,t.data)?(e[i]!==a&&(r=!0),a):(r=!0,{...a,...t,measured:a.measured}):(r=!0,t)});return r?i:e}function lt(e){return e.data?.renderKey}function ut(e,t){let n=new Map(e.map(e=>[e.id,e])),r=e.length!==t.length,i=t.map((t,i)=>{let a=n.get(t.id);return a&&lt(a)===lt(t)?(e[i]!==a&&(r=!0),a):(r=!0,t)});return r?i:e}function dt(){let[e,t]=(0,A.useState)({level:`packages`}),n=N(e),[r,i]=(0,A.useState)(qe),[a,o]=(0,A.useState)(!0),[s,c]=(0,A.useState)(null),[l,u]=(0,A.useState)(null),[d,f]=(0,A.useState)(`layers`),[p,m]=(0,A.useState)(`smart`),[h,g]=(0,A.useState)(`all`),[_,ee]=(0,A.useState)(``),[v,y]=(0,A.useState)(``),[b,x]=(0,A.useState)(new Set),[re,S]=(0,A.useState)(new Set),[C,w]=(0,A.useState)(new Set),[ce,T]=(0,A.useState)(new Set),[le,E]=(0,A.useState)(new Set),[ue,D]=(0,A.useState)(new Set),[de,O]=(0,A.useState)(0),[k,ge]=(0,A.useState)(null),[j,be]=(0,A.useState)(!1),[P,xe]=(0,A.useState)(`all`),[F,we]=(0,A.useState)(null),[Te,I]=(0,A.useState)(null),[Ee,De]=(0,A.useState)(0),L=(0,A.useRef)(new Map),z=(0,A.useRef)(null),B=(0,A.useRef)(null),V=(0,A.useRef)(``),H=(0,A.useRef)(``),U=(0,A.useRef)(null),Ve=(0,A.useRef)(new Set),{history:He,pulses:Ue,activeOperationsMap:We,activityTotalCount:Ge,resolveActivitySymbol:Ke,getActivityForFile:Je,sweepActivity:Qe}=fe(ie(e=>({history:e.history,pulses:e.pulses,activeOperationsMap:e.activeOperations,activityTotalCount:e.totalCount,resolveActivitySymbol:e.resolveActivitySymbol,getActivityForFile:e.getActivityForFile,sweepActivity:e._sweep}))),W=(0,A.useMemo)(()=>[...We.values()].flat(),[We]),tt=(0,A.useMemo)(()=>[...Ue.keys()].map(e=>He.get(e)?.[0]).filter(e=>!!e),[He,Ue]),G=(0,A.useMemo)(()=>{let e=[];for(let t of He.values())e.push(...t.slice(0,16));return e.sort((e,t)=>t.timestamp-e.timestamp).slice(0,16)},[He]),nt=(0,A.useMemo)(()=>pe([...W,...G]),[W,G]),K=(0,A.useMemo)(()=>{let e=F??W;return P===`all`?e:e.filter(e=>me(e)===P)},[W,P,F]),it=(0,A.useMemo)(()=>{let e=Te??G;return P===`all`?e:e.filter(e=>me(e)===P)},[P,Te,G]),q=(0,A.useDeferredValue)(K),at=(0,A.useDeferredValue)(it),J=(0,A.useDeferredValue)(tt),ot=(0,A.useMemo)(()=>pe(K),[K]),[lt,dt,ft]=ae([]),[pt,mt,ht]=se([]),{fitView:gt}=ne(),Y=(0,A.useCallback)(async(e,t=!1)=>{let n=N(e),r=L.current.get(n);if(r&&!t)return Ae(L.current,n,r,48),r;let i=await fetch(_e(e),{credentials:`same-origin`});if(!i.ok){if(i.status===401||i.status===403)throw Error(`Authentication required — open this dashboard from its token URL.`);let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error??`HTTP ${i.status}`)}let a=await i.json();return Ae(L.current,n,a,48),O(e=>e+1),a},[]);(0,A.useEffect)(()=>{let e=window.setTimeout(()=>y(_),150);return()=>window.clearTimeout(e)},[_]);let _t=he(e=>e.generation),vt=(0,A.useRef)(0),yt=(0,A.useRef)(null);(0,A.useEffect)(()=>{let t=!1,n=_t>vt.current;return n&&(vt.current=_t,L.current.clear(),O(e=>e+1),x(new Set),S(new Set),w(new Set),E(new Set)),o(!0),c(null),Y(e,n).then(e=>{if(!t){if(i(e),!n){let t=z.current;z.current=null,u(t&&e.nodes.some(e=>e.id===t)?t:null)}o(!1)}}).catch(e=>{t||(c(e instanceof Error?e.message:String(e)),i(qe),o(!1))}),()=>{t=!0}},[n,Y,_t,e]);let X=(0,A.useCallback)((e,r)=>{if(z.current=r??null,N(e)===n){u(r??null),z.current=null;return}t(e)},[n]),bt=(0,A.useCallback)(async e=>{let t=N(e);if(!(L.current.has(t)||ue.has(t))){D(e=>new Set(e).add(t));try{await Y(e)}finally{D(e=>{let n=new Set(e);return n.delete(t),n})}}},[Y,ue]);(0,A.useEffect)(()=>{let e=!1,t=0;for(let n of W){if(t>=2)break;if(n.symbol||!n.toolUseId||n.filePath.startsWith(`(`))continue;let r=n.filePath;Ve.current.has(r)||(Ve.current.add(r),t+=1,Y({level:`symbols`,file:r}).then(t=>{if(e)return;let i=Ie(n,t.nodes);i&&Ke(n.toolUseId,r,{id:i.id,name:i.label,...i.symbolKind?{kind:i.symbolKind}:{},...i.line?{line:i.line}:{}})}).catch(()=>void 0).finally(()=>{Ve.current.delete(r)}))}return()=>{e=!0}},[W,Y,Ke]);let Z=(0,A.useMemo)(()=>({nodes:r.nodes,edges:h===`all`?r.edges:r.edges.filter(e=>e.refType===h)}),[r,h]),Q=r.nodes.find(e=>e.id===l),$=(0,A.useMemo)(()=>Ce(Z,l,p),[p,Z,l]),xt=(0,A.useMemo)(()=>l?ye(Z,l):new Set,[Z,l]),{incomingCounts:St,outgoingCounts:Ct}=(0,A.useMemo)(()=>{let e=new Map,t=new Map;for(let n of Z.edges)t.set(n.source,(t.get(n.source)??0)+1),e.set(n.target,(e.get(n.target)??0)+1);return{incomingCounts:e,outgoingCounts:t}},[Z]),wt=d===`orbit`?l??void 0:void 0,Tt=(0,A.useMemo)(()=>Se($,d,wt),[$,d,wt]),Et=(0,A.useMemo)(()=>[n,d,d===`orbit`?l??``:``,ke($)].join(``),[$,n,d,l]),Dt=(0,A.useCallback)(e=>{u(e.id),T(new Set)},[]),Ot=(0,A.useCallback)(e=>{e.kind===`package`&&X({level:`files`,package:e.package??e.label}),e.kind===`file`&&e.file&&X({level:`symbols`,file:e.file,package:e.package})},[X]),kt=(0,A.useMemo)(()=>[Fe(q),Fe(J),Fe(at)].join(``),[q,J,at]),At=(0,A.useMemo)(()=>{let e=new Set;for(let t of K)e.add(M(t.filePath));return e},[K]),jt=(0,A.useMemo)(()=>{let e=new Set;for(let t of K)t.symbol?.id&&e.add(t.symbol.id);return e},[K]);(0,A.useEffect)(()=>{let e=()=>{let e=Tt.map(({node:e})=>e),t=Pe(e,q),n=Pe(e,J),r=new Set(t.keys()),i=Tt.map(({node:e,position:r})=>{let i=t.get(e.id)??[],a=i[0]??n.get(e.id)?.[0];return{id:e.id,type:`codemap`,position:r,data:{graphNode:e,selected:e.id===l,dimmed:!!l&&!xt.has(e.id),incoming:St.get(e.id)??0,outgoing:Ct.get(e.id)??0,isActive:!!a,...a?{activityType:a.type}:{},activeOperations:i,onSelect:Dt,onOpen:Ot,onShowHistory:ge}}});dt(e=>ct(e,i));let a=6,o=$.edges.map((e,t)=>{let n=!!l&&(e.source===l||e.target===l),i=r.has(e.source)||r.has(e.target),o=i&&(n||a>0);o&&--a;let s=Re[e.refType]??`hsl(var(--muted-foreground))`,c=n||i?`smoothstep`:`default`;return{id:`edge:${e.source}:${e.target}:${t}`,source:e.source,target:e.target,type:c,animated:o,label:n?`${e.refType}${e.weight>1?` ×${e.weight}`:``}`:void 0,markerEnd:{type:te.ArrowClosed,color:s,width:14,height:14},style:{stroke:s,strokeWidth:i?Math.min(2.5+Math.log2(e.weight+1)*.65,5):n?Math.min(1.25+Math.log2(e.weight+1)*.65,4):1,opacity:i?1:l?n?.88:.08:.52},labelStyle:{fontSize:9,fontFamily:`var(--font-mono)`,fill:`hsl(var(--muted-foreground))`},labelBgStyle:{fill:`hsl(var(--card))`,fillOpacity:.92},labelBgPadding:[4,2],zIndex:i?4:n?2:0,data:{renderKey:`${e.refType}:${e.weight}:${l?n?`focused`:`dimmed`:`idle`}:${i?`live`:`still`}:${o?`anim`:`still`}:${c}`}}}),s=new Map,c=new Set(q.map(me));for(let e of[...at].sort((e,t)=>e.timestamp-t.timestamp)){let t=me(e),n=s.get(t);n?n.push(e):s.set(t,[e])}let u=[...s.entries()].map(([e,t])=>({agentKey:e,activities:t,live:c.has(e),latest:t[t.length-1]?.timestamp??0})).sort((e,t)=>Number(t.live)-Number(e.live)||t.latest-e.latest).slice(0,4),d=[];for(let{agentKey:e,activities:t,live:n}of u){let r=t.slice(-7).map(e=>({activity:e,node:$.nodes.find(t=>Ne(e,t))})).filter(e=>!!e.node).filter((e,t,n)=>t===0||e.node.id!==n[t-1]?.node.id),i=Be(e);for(let t=1;t<r.length;t++){let o=r[t-1],s=r[t],c=n&&a>0;c&&--a,d.push({id:`trail:${e}:${o.activity.timestamp}:${s.activity.timestamp}`,source:o.node.id,target:s.node.id,type:`smoothstep`,animated:c,label:t===r.length-1?`${ze(s.activity.agentName??s.activity.agent??`agent`)} TRAIL`:void 0,markerEnd:{type:te.ArrowClosed,color:i,width:13,height:13},style:{stroke:i,strokeWidth:2.5,strokeDasharray:`7 5`,opacity:.9},labelStyle:{fontSize:8,fontWeight:700,fill:i},labelBgStyle:{fill:`hsl(var(--card))`,fillOpacity:.94},labelBgPadding:[4,2],zIndex:6,data:{renderKey:`${i}:${t===r.length-1?`label`:`plain`}:${n?`live`:`still`}:${c?`anim`:`still`}`}})}}De(d.length),mt(e=>ut(e,[...o,...d]))},t=Et,n=H.current!==t;H.current=t,U.current!==null&&(window.clearTimeout(U.current),U.current=null),n?e():U.current=window.setTimeout(()=>{U.current=null,e()},120);let r;return V.current!==Et&&(r=window.setTimeout(()=>{V.current=Et;let e=$.nodes.length>48?0:240;gt({padding:.2,duration:e,maxZoom:1.25})},20)),()=>{U.current!==null&&(window.clearTimeout(U.current),U.current=null),r!==void 0&&window.clearTimeout(r)}},[kt,$,l,q,at,J,Et,xt,gt,Ot,Dt,St,Ct,Tt,mt,dt]),(0,A.useEffect)(()=>{let e=window.setInterval(()=>{Qe()},2e3);return()=>window.clearInterval(e)},[Qe]);let Mt=L.current.get(`packages`)??(e.level===`packages`?r:qe),Nt=(0,A.useCallback)(e=>L.current.get(N({level:`files`,package:e})),[de]),Pt=(0,A.useCallback)(e=>L.current.get(N({level:`symbols`,file:e})),[de]),Ft=(0,A.useCallback)(e=>{let t=e.filePath,n=Me(e.filePath),r=`file:${e.filePath}`;for(let i of L.current.values()){let a=i.nodes.find(t=>t.kind===`file`&&!t.external&&je(t.file,e.filePath));if(a){t=a.file??t,n=a.package??n,r=a.id;break}}if(e.symbol){X({level:`symbols`,file:t,package:n},e.symbol.id);return}X({level:`files`,package:n},r)},[X]);(0,A.useEffect)(()=>{if(!j||F)return;let e=[...K].filter(e=>!e.filePath.startsWith(`(`)).sort((e,t)=>t.timestamp-e.timestamp)[0];if(!e)return;let t=`${e.id??e.toolUseId}:${e.filePath}:${e.symbol?.id??`file`}`;B.current!==t&&(B.current=t,Ft(e))},[K,j,Ft,F]);let It=(0,A.useCallback)(()=>{if(F){we(null),I(null);return}we([...W]),I([...G])},[W,F,G]),Lt=(0,A.useCallback)(e=>{let t=e.package??e.label,n=!b.has(t);x(e=>{let r=new Set(e);return n?r.add(t):r.delete(t),r}),n&&bt({level:`files`,package:t}).then(()=>{let e=L.current.get(N({level:`files`,package:t})),n=e?Oe(e.nodes):void 0;n?.directories.length===1&&n.directories[0]&&S(e=>new Set(e).add(`${t}:${n.directories[0].path}`))}).catch(()=>void 0)},[bt,b]),Rt=(0,A.useCallback)(e=>{if(!e.file)return;let t=!C.has(e.file);w(n=>{let r=new Set(n);return t?r.add(e.file):r.delete(e.file),r}),t&&bt({level:`symbols`,file:e.file,package:e.package}).catch(()=>void 0)},[bt,C]),zt=(0,A.useCallback)(e=>{S(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Bt=(0,A.useCallback)(e=>{E(t=>new Set(t).add(e))},[]),Vt=(0,A.useCallback)(e=>{X({level:`files`,package:e.package??`(root)`},e.id)},[X]),Ht=(0,A.useCallback)(e=>{e.file&&X({level:`symbols`,file:e.file,package:e.package},e.id)},[X]),Ut=(0,A.useMemo)(()=>{let e=v.trim().toLocaleLowerCase();if(!e)return[];let t=new Map;for(let n of L.current.values())for(let r of n.nodes)`${r.label} ${r.file??``} ${r.signature??``} ${r.package??``}`.toLocaleLowerCase().includes(e)&&t.set(r.id,r);return[...t.values()].sort((e,t)=>e.kind.localeCompare(t.kind)||e.label.localeCompare(t.label)).slice(0,80)},[v,de]),Wt=Ut.length>40,Gt=oe({count:Ut.length,getScrollElement:()=>yt.current,estimateSize:()=>40,overscan:8,enabled:Wt}),Kt=(0,A.useCallback)(e=>{e.kind===`package`?X({level:`packages`},e.id):e.kind===`file`?X({level:`files`,package:e.package??`(root)`},e.id):e.file&&X({level:`symbols`,file:e.file,package:e.package},e.id)},[X]),{incoming:qt,outgoing:Jt}=(0,A.useMemo)(()=>({incoming:Q?ve(Z,Q.id,`incoming`):[],outgoing:Q?ve(Z,Q.id,`outgoing`):[]}),[Z,Q]),{edgeWeight:Yt,connectedNodeCount:Xt}=(0,A.useMemo)(()=>{let e=0,t=new Set;for(let n of Z.edges)e+=n.weight,t.add(n.source),t.add(n.target);return{edgeWeight:e,connectedNodeCount:t.size}},[Z]),Zt=Q?K.filter(e=>Ne(e,Q)):[],Qt=k?Je(k):[];return(0,R.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background`,children:[(0,R.jsx)(Ze,{scope:e,graph:r,agentPresences:ot,edgeWeight:Yt,connectedNodeCount:Xt,navigate:X}),(0,R.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,R.jsx)(st,{rootGraph:Mt,search:v,searchInput:_,searchResults:Ut,virtualizeSearch:Wt,searchVirtualizer:Gt,treeScrollRef:yt,selectedId:l,expandedPackages:b,expandedDirectories:re,expandedFiles:C,loadingBranches:ue,activeFileNorms:At,activeSymbolIds:jt,revealAllKeys:le,packageGraph:Nt,graphForFile:Pt,navigate:X,togglePackage:Lt,toggleDirectory:zt,toggleFile:Rt,revealAllTree:Bt,selectFileFromTree:Vt,selectSymbolFromTree:Ht,selectSearchResult:Kt,handleOpenNode:Ot,onSearchInputChange:ee,onSearchChange:y}),(0,R.jsxs)(`main`,{className:`relative min-w-0 flex-1 bg-[radial-gradient(circle_at_50%_0%,hsl(var(--primary)/0.055),transparent_38%)]`,children:[(0,R.jsx)(Xe,{layout:d,canvasMode:p,edgeFilter:h,canvasNodeCount:$.nodes.length,graphNodeCount:r.nodes.length,onLayoutChange:f,onCanvasModeChange:m,onEdgeFilterChange:g}),(0,R.jsx)($e,{presences:ot,onLocate:Ft}),(0,R.jsx)(et,{paused:F!==null,followLive:j,agentFilter:P,agents:nt,onTogglePaused:It,onToggleFollow:()=>{B.current=null,be(e=>!e)},onAgentFilter:e=>{B.current=null,xe(e)}}),(0,R.jsx)(Ye,{loading:a,error:s,graph:r,canvasNodeCount:$.nodes.length,flowNodes:lt,flowEdges:pt,onNodesChange:ft,onEdgesChange:ht,agentTrailCount:Ee})]}),(0,R.jsx)(rt,{selectedNode:Q,incoming:qt,outgoing:Jt,filteredGraph:Z,expandedRelations:ce,activeOperations:K,recentActivities:it,activityTotalCount:Ge,selectedActivities:Zt,onClearSelection:()=>u(null),onOpenNode:Ot,onOpenActivity:ge,onLocateActivity:Ft,onToggleRelation:e=>T(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),onSelectNode:Dt})]}),k&&(0,R.jsx)(Le,{historyFile:k,fileHistory:Qt,onClose:()=>ge(null)})]})}function ft(){return(0,R.jsx)(le,{children:(0,R.jsx)(dt,{})})}export{ft as CodeMap};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{$i as t,In as n,La as r,Pa as i,Zt as a,an as o,dt as s,gi as c,lt as l,za as u}from"./vendor-BuarzSSb.js";import"./i18n-9T7iGYgW.js";import{t as d}from"./useWebSocket-CZSpbA3M.js";import{t as f}from"./utils-B-9lSDIn.js";import{o as p}from"./view-navigation-DIDEcp4V.js";import{c as m}from"./index-FHt-sKVF.js";var h=e(u(),1);function g(e,t,n){return e<t?t:e>n?n:e}function _(e){let t=/^oklch\(\s*([^)]+)\)$/i.exec(e.trim());if(!t?.[1])return null;let n=(t[1].split(`/`)[0]??``).trim().split(/\s+/);if(n.length<3||!n[0]||!n[1]||!n[2])return null;let r=n[0].endsWith(`%`)?Number.parseFloat(n[0])/100:Number.parseFloat(n[0]),i=n[1].endsWith(`%`)?Number.parseFloat(n[1])/100*.4:Number.parseFloat(n[1]),a=Number.parseFloat(n[2].replace(/deg$/i,``));return[r,i,a].every(Number.isFinite)?[g(r,0,1),Math.max(0,i),a]:null}function v(e){return g(e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,0,1)}function y(e){return Math.round(e*255).toString(16).padStart(2,`0`)}function b(e){let t=_(e);if(!t)return null;let[n,r,i]=t,a=i*Math.PI/180,o=r*Math.cos(a),s=r*Math.sin(a),c=n+.3963377774*o+.2158037573*s,l=n-.1055613458*o-.0638541728*s,u=n-.0894841775*o-1.291485548*s,d=c**3,f=l**3,p=u**3,m=4.0767416621*d-3.3077115913*f+.2309699292*p,h=-1.2684380046*d+2.6097574011*f-.3413193965*p,g=-.0041960863*d-.7034186147*f+1.707614701*p;return`#${y(v(m))}${y(v(h))}${y(v(g))}`}function x(e){let t=e.trim(),n=b(t);if(n)return n.toLowerCase();let r=/^#([0-9a-f]{6})([0-9a-f]{2})?$/i.exec(t);if(r?.[1])return`#${r[1].toLowerCase()}`;let i=/^#([0-9a-f]{3})$/i.exec(t);return i?.[1]?`#${i[1].split(``).map(e=>e+e).join(``).toLowerCase()}`:null}var S=l(),C=[`web`,`react-native`,`flutter`,`swiftui`,`compose`],w=[`primary`,`accent`,`bg`,`surface`,`fg`,`border`];function T(e,t,n){let r={...e};for(let[e,i]of Object.entries(t))e.startsWith(`light.`)?n===`light`&&(r[e.slice(6)]=i):e.startsWith(`dark.`)?n===`dark`&&(r[e.slice(5)]=i):r[e]=i;return r}function E({t:e,label:t}){let{t:n}=i(),r=e.bg??`#fff`,a=e.surface??r,o=e.fg??`#111`,s=e.muted??o,c=e.primary??`#3b82f6`,l=e.accent??c,u=e.border??s,d=e[`radius-md`]??e.radius??`0.5rem`,f=e[`font-sans`]??e.fontSans??`system-ui, sans-serif`,p=e[`font-display`]??e.fontDisplay??f,m=e[`shadow-2`]??(e.shadow&&e.shadow!==`none`?e.shadow:void 0);return(0,S.jsxs)(`div`,{style:{background:r,color:o,fontFamily:f},className:`flex min-w-0 flex-col gap-2 overflow-hidden p-3`,children:[(0,S.jsx)(`div`,{className:`text-[9px] uppercase tracking-wide`,style:{color:s},children:t}),(0,S.jsxs)(`div`,{style:{background:a,border:`1px solid ${u}`,borderRadius:d,boxShadow:m},className:`flex min-w-0 flex-col gap-2 p-3`,children:[(0,S.jsx)(`div`,{style:{fontFamily:p},className:`text-base font-bold leading-tight`,children:n(`activity:designStudio.aaHeading`)}),(0,S.jsx)(`div`,{className:`text-[11px] leading-snug`,style:{color:s},children:n(`activity:designStudio.theQuickBrownFoxJumpsOver`)}),(0,S.jsxs)(`div`,{className:`mt-1 flex min-w-0 items-center gap-1.5`,children:[(0,S.jsx)(`span`,{style:{background:c,color:r,borderRadius:d},className:`shrink-0 px-2.5 py-1 text-[10px] font-semibold`,children:n(`activity:designStudio.primary`)}),(0,S.jsx)(`span`,{style:{border:`1px solid ${u}`,color:o,borderRadius:d},className:`shrink-0 px-2 py-1 text-[10px]`,children:n(`activity:designStudio.ghost`)}),(0,S.jsx)(`span`,{style:{background:l,color:r,borderRadius:`999px`},className:`ml-auto shrink-0 px-2 py-0.5 text-[9px] font-semibold`,children:n(`activity:designStudio.badge`)})]}),(0,S.jsx)(`div`,{style:{border:`1px solid ${u}`,borderRadius:d,color:s},className:`text-[10px] px-2 py-1.5 mt-1`,children:n(`activity:designStudio.inputField`)})]})]})}function D({kit:e,overrides:t,onSet:n}){let[r,a]=(0,h.useState)(`light`),{t:o}=i(),s=T(r===`light`?e.light:e.dark,t,r);return(0,S.jsxs)(`div`,{className:`mt-1 rounded-lg border border-border/60 p-2 bg-muted/30`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,S.jsx)(`span`,{className:`text-[10px] font-semibold uppercase text-muted-foreground`,children:o(`activity:design.colors`)}),(0,S.jsx)(`div`,{className:`ml-auto inline-flex rounded border border-border/60 overflow-hidden`,children:[`light`,`dark`].map(e=>(0,S.jsx)(`button`,{type:`button`,onClick:()=>a(e),className:f(`text-[10px] px-1.5 py-0.5`,r===e?`bg-primary text-primary-foreground`:`text-muted-foreground`),children:e},e))})]}),(0,S.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:w.filter(e=>s[e]).map(e=>{let t=x(s[e]??``)??`#000000`;return(0,S.jsxs)(`label`,{className:`flex min-w-[2rem] flex-col items-center gap-0.5`,title:`${e}: ${s[e]}`,children:[(0,S.jsx)(`input`,{type:`color`,value:t,onChange:t=>n(`${r}.${e}`,t.target.value),className:`w-6 h-6 rounded cursor-pointer bg-transparent border border-border/60 p-0`}),(0,S.jsx)(`span`,{className:`text-[8px] text-muted-foreground`,children:e})]},e)})})]})}function O({onTune:e}){let{t}=i(),[n,r]=(0,h.useState)(``),a=({label:t,knob:n,values:r})=>(0,S.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,S.jsx)(`span`,{className:`w-16 shrink-0 text-[9px] uppercase text-muted-foreground`,children:t}),(0,S.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:r.map(t=>(0,S.jsx)(`button`,{type:`button`,onClick:()=>e({[n]:t}),className:`rounded border border-border/60 px-1.5 py-0.5 text-[10px] hover:bg-primary hover:text-primary-foreground`,children:t},t))})]});return(0,S.jsxs)(`div`,{className:`mt-1 flex flex-col gap-1.5 rounded-lg border border-border/60 bg-muted/30 p-2`,children:[(0,S.jsx)(`span`,{className:`text-[10px] font-semibold uppercase text-muted-foreground`,children:t(`activity:designStudio.tune`)}),(0,S.jsx)(a,{label:t(`activity:designStudio.radius`),knob:`radius`,values:[`none`,`sm`,`md`,`lg`,`xl`,`full`]}),(0,S.jsx)(a,{label:t(`activity:designStudio.density`),knob:`density`,values:[`compact`,`cozy`,`comfortable`]}),(0,S.jsx)(a,{label:t(`activity:designStudio.motion`),knob:`motion`,values:[`snappy`,`smooth`,`none`]}),(0,S.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,S.jsx)(`span`,{className:`w-16 shrink-0 text-[9px] uppercase text-muted-foreground`,children:t(`activity:designStudio.font`)}),(0,S.jsx)(`input`,{value:n,onChange:e=>r(e.target.value),onKeyDown:t=>{t.key===`Enter`&&n.trim()&&e({font:n.trim()})},placeholder:t(`activity:designStudio.spaceGrotesk`),className:`h-6 min-w-0 flex-1 rounded border border-border/60 bg-background/70 px-1.5 text-[10px]`}),(0,S.jsx)(`button`,{type:`button`,onClick:()=>n.trim()&&e({font:n.trim()}),className:`rounded border border-border/60 px-1.5 py-0.5 text-[10px] hover:bg-muted`,children:t(`activity:designStudio.set`)})]})]})}function k({className:e}){let{client:l}=d(),{t:u}=i(),[g,_]=(0,h.useState)([]),[v,y]=(0,h.useState)(null),[b,x]=(0,h.useState)({}),[w,k]=(0,h.useState)(`web`),[A,j]=(0,h.useState)(``),[M,N]=(0,h.useState)(null);(0,h.useEffect)(()=>{if(!l)return;let e=e=>{let t=e.payload;_(t?.kits??[]),y(t?.activeKit??null),x(t?.overrides??{})},t=e=>{let t=e.payload;t?.ok&&t.kit&&(y(t.kit),x(t.overrides??{}))},n=e=>{let t=e.payload;t?.ok&&t.overrides&&x(t.overrides)},i=e=>{let t=e.payload;t?.ok&&t.overrides?(x(t.overrides),N(`Tuned`)):t?.error&&N(`Tune failed: ${t.error}`)},a=e=>{let t=e.payload;t?.ok&&t.kit&&(y(t.kit),x(t.overrides??{}),N(`Swapped to ${t.kit}`))},o=e=>{let t=e.payload;N(t?.ok?r.t(`activity:design.wrote`,{path:t.path}):r.t(`activity:design.materializeFailed`,{error:t?.error??`error`}))},s=e=>{let t=e.payload;if(!t?.ok){N(r.t(`activity:design.verifyError`,{error:t?.error??`error`}));return}let n=Math.round((t.score??1)*100);N(t.violationCount?r.t(`activity:design.verifyOffPalette`,{pct:n,count:t.violationCount,files:t.filesScanned}):r.t(`activity:design.verifyClean`,{files:t.filesScanned}))};return l.on(`design.list`,e),l.on(`design.use`,t),l.on(`design.set`,n),l.on(`design.tune`,i),l.on(`design.swap`,a),l.on(`design.materialize`,o),l.on(`design.verify`,s),l.send({type:`design.list`}),()=>{l.off(`design.list`,e),l.off(`design.use`,t),l.off(`design.set`,n),l.off(`design.tune`,i),l.off(`design.swap`,a),l.off(`design.materialize`,o),l.off(`design.verify`,s)}},[l]);let P=(0,h.useCallback)(e=>l?.send({type:`design.use`,payload:{kit:e,stack:w}}),[l,w]),F=(0,h.useCallback)((e,t)=>{x(n=>({...n,[e]:t})),l?.send({type:`design.set`,payload:{overrides:{[e]:t}}})},[l]),I=(0,h.useCallback)(e=>l?.send({type:`design.tune`,payload:{tune:e}}),[l]),L=(0,h.useCallback)(()=>{N(r.t(`activity:design.writing`)),l?.send({type:`design.materialize`,payload:{stack:w}})},[l,w]),R=(0,h.useCallback)(()=>{N(r.t(`activity:design.scanning`)),l?.send({type:`design.verify`})},[l]),z=(0,h.useMemo)(()=>{let e=A.trim().toLowerCase();return[...e?g.filter(t=>t.id.includes(e)||t.name.toLowerCase().includes(e)||t.aesthetic.toLowerCase().includes(e)||t.tags.some(t=>t.includes(e))):g].sort((e,t)=>e.name.localeCompare(t.name))},[g,A]);return(0,S.jsxs)(`div`,{className:f(`flex h-full min-h-0 min-w-0 flex-col overflow-hidden bg-[hsl(var(--surface-2)/0.45)]`,e),children:[(0,S.jsx)(`div`,{className:`border-b border-border/60 p-3`,children:(0,S.jsx)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-3 shadow-sm`,children:(0,S.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-center`,children:[(0,S.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,S.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,children:(0,S.jsx)(n,{className:`h-4 w-4`})}),(0,S.jsxs)(`div`,{className:`min-w-0`,children:[(0,S.jsx)(`h2`,{className:`truncate text-sm font-semibold`,children:u(`activity:design.heading`)}),(0,S.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:u(`activity:design.kitsCount`,{count:z.length})})]})]}),(0,S.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2 sm:flex-row sm:items-center lg:justify-end`,children:[(0,S.jsxs)(`label`,{className:`relative min-w-0 flex-1 sm:max-w-xs`,children:[(0,S.jsx)(o,{className:`pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground/70`}),(0,S.jsx)(`input`,{value:A,onChange:e=>j(e.target.value),placeholder:u(`activity:design.searchPlaceholder`),className:`h-9 w-full rounded-md border border-border/70 bg-background/70 pl-8 pr-3 text-sm shadow-sm outline-none transition focus:border-primary/40 focus:ring-2 focus:ring-ring/30`})]}),(0,S.jsx)(`select`,{value:w,onChange:e=>k(e.target.value),className:`h-9 rounded-md border border-border/70 bg-background/70 px-2 text-sm shadow-sm`,title:u(`activity:design.stackTitle`),children:C.map(e=>(0,S.jsx)(`option`,{value:e,children:e},e))}),M&&(0,S.jsx)(`span`,{className:`min-w-0 truncate rounded-md border border-border/60 bg-muted/40 px-2 py-1 text-[11px] text-muted-foreground sm:max-w-56`,children:M}),(0,S.jsx)(`button`,{type:`button`,onClick:()=>p(`chat`),className:`inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground`,title:u(`common:action.close`),children:(0,S.jsx)(s,{className:`h-4 w-4`})})]})]})})}),(0,S.jsx)(`div`,{ref:m(`design-gallery`),className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain p-3 sm:p-4`,children:z.length===0?(0,S.jsxs)(`div`,{className:`ws-surface mx-auto mt-8 flex max-w-md flex-col items-center gap-3 rounded-xl p-6 text-center text-muted-foreground`,children:[(0,S.jsx)(n,{className:`h-8 w-8 text-primary/60`}),(0,S.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:u(`activity:design.kitsCount`,{count:0})}),(0,S.jsx)(`p`,{className:`text-xs`,children:u(`activity:design.searchPlaceholder`)})]}):(0,S.jsx)(`div`,{className:`grid gap-4 [grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))]`,children:z.map(e=>{let n=v===e.id,r=n?b:{};return(0,S.jsxs)(`div`,{className:f(`flex min-w-0 flex-col overflow-hidden rounded-xl border bg-card/75 shadow-sm`,n?`border-primary/60 ring-1 ring-primary/30`:`border-border/70`),children:[(0,S.jsxs)(`div`,{className:`grid min-h-[12rem] grid-cols-1 sm:grid-cols-2`,children:[(0,S.jsx)(E,{t:T(e.light,r,`light`),label:u(`activity:designStudio.light`)}),(0,S.jsx)(E,{t:T(e.dark,r,`dark`),label:u(`activity:designStudio.dark`)})]}),(0,S.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 border-t border-border/60 bg-card p-3`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,S.jsx)(`h3`,{className:`text-sm font-semibold truncate`,children:e.name}),(0,S.jsx)(`code`,{className:`text-[10px] text-muted-foreground`,children:e.id}),n&&(0,S.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 text-[9px] font-semibold uppercase text-primary ml-auto`,children:[(0,S.jsx)(t,{className:`w-3 h-3`}),` `,u(`activity:design.active`)]})]}),(0,S.jsx)(`p`,{className:`text-[11px] text-muted-foreground leading-snug`,children:e.aesthetic}),(0,S.jsxs)(`div`,{className:`mt-1 flex min-w-0 flex-wrap items-center gap-2`,children:[(0,S.jsx)(`button`,{type:`button`,onClick:()=>P(e.id),className:f(`rounded-md px-2.5 py-1 text-[11px] font-medium transition`,n?`bg-primary/10 text-primary`:`bg-primary text-primary-foreground hover:opacity-90`),children:u(n?`activity:design.reapply`:`activity:design.use`)}),n&&(0,S.jsxs)(`button`,{type:`button`,onClick:L,className:`inline-flex items-center gap-1 rounded-md border border-border/60 px-2 py-1 text-[11px] font-medium hover:bg-muted`,title:u(`activity:design.materializeTitle`,{stack:w}),children:[(0,S.jsx)(c,{className:`w-3 h-3`}),` `,u(`activity:design.materialize`)]}),n&&(0,S.jsxs)(`button`,{type:`button`,onClick:R,className:`inline-flex items-center gap-1 rounded-md border border-border/60 px-2 py-1 text-[11px] font-medium hover:bg-muted`,title:u(`activity:design.verifyTitle`),children:[(0,S.jsx)(a,{className:`w-3 h-3`}),` `,u(`activity:design.verify`)]}),(0,S.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[10px] text-muted-foreground`,children:e.bestFor})]}),n&&(0,S.jsx)(D,{kit:e,overrides:r,onSet:F}),n&&(0,S.jsx)(O,{onTune:I})]})]},e.id)})})})]})}export{k as DesignGalleryView};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./chat-store-DbxFVDwi.js";import{Ai as n,Bt as r,Cn as i,Ct as a,Et as o,Fi as s,Ii as c,La as l,Pa as u,Ti as d,Wi as f,dn as p,dt as m,gr as h,hn as g,ir as _,kn as v,lt as y,mn as b,ut as x,wn as S,za as C}from"./vendor-BuarzSSb.js";import"./i18n-9T7iGYgW.js";import{t as ee}from"./useWebSocket-CZSpbA3M.js";import{t as w}from"./utils-B-9lSDIn.js";import{_ as T,t as E,v as D}from"./stores-vuG0AaKy.js";import{o as O}from"./view-navigation-DIDEcp4V.js";import{t as k}from"./button-Dcy288Mc.js";import{a as A}from"./ConfirmModal-CdKg3EOQ.js";import{h as j,m as te,p as ne}from"./index-FHt-sKVF.js";var M=e(C(),1),N=y(),P={pending:{icon:(0,N.jsx)(s,{className:`w-4 h-4`}),color:`text-muted-foreground`},in_progress:{icon:(0,N.jsx)(n,{className:`w-4 h-4 animate-spin`}),color:`text-primary`},blocked:{icon:(0,N.jsx)(v,{className:`w-4 h-4`}),color:`text-warning`},failed:{icon:(0,N.jsx)(c,{className:`w-4 h-4`}),color:`text-destructive`},review:{icon:(0,N.jsx)(b,{className:`w-4 h-4`}),color:`text-info`},completed:{icon:(0,N.jsx)(f,{className:`w-4 h-4`}),color:`text-success`}},F={critical:`bg-destructive/15 text-destructive`,high:`bg-warning/15 text-warning`,medium:`bg-info/15 text-info`,low:`bg-muted text-muted-foreground`},I={feature:`bg-success/15 text-success`,bugfix:`bg-destructive/15 text-destructive`,refactor:`bg-primary/15 text-primary`,docs:`bg-info/15 text-info`,test:`bg-primary/15 text-primary`,chore:`bg-muted text-muted-foreground`};function L(e){if(!e)return``;let t=Math.floor(e/6e4);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;return r>0?`${n}h ${r}m`:`${n}h`}function R({task:e,onStatusChange:t,onRetry:r,agents:i,onAssign:o,compact:s,className:c}){let{t:l}=u(),d=P[e.status],[f,p]=(0,M.useState)(!1),m=e.status===`in_progress`;return(0,N.jsxs)(`div`,{className:w(`w-full text-left rounded-lg border p-3 transition-all hover:shadow-sm`,m?`border-primary/40 bg-primary/5`:e.status===`completed`?`border-success/35 bg-success/6`:e.status===`failed`?`border-destructive/40 bg-destructive/5`:`border-border bg-card`,c),children:[(0,N.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,N.jsx)(`span`,{className:w(`mt-0.5`,d.color),role:`img`,"aria-label":m?l(`common:status.inProgress`):void 0,children:d.icon}),(0,N.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,N.jsx)(`span`,{className:`text-sm font-medium`,children:e.title}),(0,N.jsx)(`span`,{className:w(`px-1.5 py-0.5 rounded text-[10px] font-medium`,F[e.priority]),children:e.priority}),(0,N.jsx)(`span`,{className:w(`px-1.5 py-0.5 rounded text-[10px] font-medium`,I[e.type]),children:e.type})]}),e.description&&(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1 line-clamp-2`,children:e.description})]})]}),e.assignee&&(0,N.jsxs)(`div`,{className:w(`mt-2 inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 text-[10px] font-medium`,m?`bg-primary/15 text-primary`:`bg-muted text-muted-foreground`),children:[m&&(0,N.jsx)(n,{className:`w-3 h-3 animate-spin`,"aria-label":l(`common:status.working`)}),(0,N.jsx)(`span`,{children:e.assignee})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-3 mt-2 text-xs text-muted-foreground`,children:[e.estimateHours?(0,N.jsxs)(`span`,{children:[`~`,e.estimateHours,`h`]}):null,e.actualHours?(0,N.jsxs)(`span`,{children:[`• `,e.actualHours,`h`]}):null,e.startedAt?(0,N.jsxs)(`span`,{children:[`• `,L(Date.now()-e.startedAt)]}):null]}),e.tags.length>0&&(0,N.jsx)(`div`,{className:`flex flex-wrap gap-1 mt-2`,children:e.tags.map(e=>(0,N.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] bg-muted text-muted-foreground`,children:e},e))}),!s&&(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1 mt-2`,children:[t&&e.status!==`in_progress`&&e.status!==`completed`&&(0,N.jsx)(`button`,{type:`button`,onClick:()=>t(e.id,`in_progress`),className:`px-2 py-0.5 text-[10px] rounded bg-primary/15 text-primary hover:bg-primary/25 transition-colors`,children:l(`activity:task.start`)}),t&&e.status===`in_progress`&&(0,N.jsx)(`button`,{type:`button`,onClick:()=>t(e.id,`completed`),className:`px-2 py-0.5 text-[10px] rounded bg-success/15 text-success hover:bg-success/25 transition-colors`,children:l(`activity:task.complete`)}),r&&(e.status===`failed`||e.status===`completed`)&&(0,N.jsxs)(`button`,{type:`button`,onClick:()=>r(e.id),className:`px-2 py-0.5 text-[10px] rounded bg-muted text-muted-foreground hover:bg-muted/70 transition-colors inline-flex items-center gap-1`,children:[(0,N.jsx)(b,{className:`w-3 h-3`}),` `,l(`activity:task.retry`)]}),o&&i&&i.length>0&&(f?(0,N.jsxs)(`select`,{defaultValue:e.assignee??``,onChange:t=>{o(e.id,t.target.value),p(!1)},onBlur:()=>p(!1),className:`px-1 py-0.5 text-[10px] rounded border border-border bg-card`,children:[(0,N.jsx)(`option`,{value:``,children:l(`activity:task.unassigned`)}),i.map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))]}):(0,N.jsxs)(`button`,{type:`button`,onClick:()=>p(!0),className:`px-2 py-0.5 text-[10px] rounded bg-muted text-muted-foreground hover:bg-muted/70 transition-colors inline-flex items-center gap-1`,title:l(`activity:task.assignTitle`),children:[(0,N.jsx)(a,{className:`w-3 h-3`}),` `,l(`activity:task.assign`)]}))]})]})}var z=[{key:`pending`,match:[`pending`,`blocked`]},{key:`in_progress`,match:[`in_progress`]},{key:`review`,match:[`review`]},{key:`failed`,match:[`failed`]},{key:`completed`,match:[`completed`]}],B={pending:`bg-muted text-muted-foreground`,ready:`bg-info/15 text-info`,running:`bg-primary/15 text-primary`,paused:`bg-warning/15 text-warning`,completed:`bg-success/15 text-success`,failed:`bg-destructive/15 text-destructive`,skipped:`bg-muted text-muted-foreground`};function re(){let{client:e}=ee(),{t}=u(),n=T(e=>e.phases),r=T(e=>e.multiBoard),[i,a]=(0,M.useState)(`phase`),[o,s]=(0,M.useState)(null),[c,l]=(0,M.useState)(null),[f,m]=(0,M.useState)(0),h=Math.min(f,Math.max(0,n.length-1)),g=r?n[h]:void 0,_=(0,M.useMemo)(()=>n.flatMap(e=>(e.tasks??[]).map(t=>({...t,phaseId:e.id}))),[n]),v=(0,M.useMemo)(()=>[...new Set(_.map(e=>e.assignee).filter(e=>!!e))],[_]),y=(0,M.useCallback)(t=>e?.send?.(t),[e]),b=(0,M.useCallback)((e,t)=>y({type:`goal.taskStatus`,payload:{taskId:e,status:t}}),[y]),x=(0,M.useCallback)(e=>y({type:`goal.retryTask`,payload:{taskId:e}}),[y]),S=(0,M.useCallback)((e,t)=>y({type:`goal.assignTask`,payload:{taskId:e,agentName:t||void 0}}),[y]),C=(0,M.useCallback)(e=>{A({title:t(`activity:board.newTaskTitle`),placeholder:t(`activity:board.newTaskPlaceholder`),confirmLabel:t(`activity:board.addTask`)}).then(t=>{t&&y({type:`goal.addTask`,payload:{phaseId:e,title:t}})})},[y]),E=(0,M.useCallback)(e=>{o&&y({type:`goal.moveTask`,payload:{taskId:o,toPhaseId:e}}),s(null),l(null)},[o,y]),D=(0,M.useCallback)(e=>{o&&y({type:`goal.taskStatus`,payload:{taskId:o,status:e}}),s(null),l(null)},[o,y]),O={onStatusChange:b,onRetry:x,agents:v,onAssign:S};function k(e){return{draggable:!0,onDragStart:t=>{s(e),t.dataTransfer.effectAllowed=`move`},onDragEnd:()=>{s(null),l(null)}}}function j(e,t){return{onDragOver:t=>{t.preventDefault(),t.dataTransfer.dropEffect=`move`,c!==e&&l(e)},onDragLeave:()=>l(t=>t===e?null:t),onDrop:e=>{e.preventDefault(),t()},"data-hover":c===e||void 0}}return n.length===0?(0,N.jsx)(`div`,{className:`flex h-full min-h-0 min-w-0 items-center justify-center text-muted-foreground`,children:(0,N.jsx)(`p`,{className:`text-sm`,children:t(`activity:board.empty`)})}):(0,N.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-4 py-2`,children:[(0,N.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:t(`activity:board.summary`,{phases:n.length,tasks:_.length})}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1 rounded-md border border-border p-0.5`,children:[(0,N.jsxs)(`button`,{type:`button`,onClick:()=>a(`phase`),className:w(`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors`,i===`phase`?`bg-primary/15 text-primary`:`text-muted-foreground hover:text-foreground`),children:[(0,N.jsx)(d,{className:`h-3.5 w-3.5`}),` `,t(`activity:board.phases`)]}),(0,N.jsxs)(`button`,{type:`button`,onClick:()=>a(`status`),className:w(`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors`,i===`status`?`bg-primary/15 text-primary`:`text-muted-foreground hover:text-foreground`),children:[(0,N.jsx)(p,{className:`h-3.5 w-3.5`}),` `,t(`activity:board.statusTab`)]})]})]}),r&&g?(0,N.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,N.jsx)(`div`,{className:`flex shrink-0 gap-1 overflow-x-auto border-b border-border px-3 py-1.5`,children:n.map((e,t)=>(0,N.jsxs)(`button`,{type:`button`,onClick:()=>m(t),className:w(`shrink-0 rounded-t px-3 py-1.5 text-xs font-medium transition-colors`,t===h?`border-primary/40 bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted hover:text-foreground`),children:[(0,N.jsx)(`span`,{className:`truncate`,children:e.name}),(0,N.jsxs)(`span`,{className:`ml-1.5 text-[10px] text-muted-foreground`,children:[e.completedTasks,`/`,e.taskCount]})]},e.id))}),(0,N.jsx)(U,{phase:g,allTasks:_,layout:i,dragId:o,hoverKey:c,callbacks:O,draggable:k,dropZone:j,dropToPhase:E,dropToStatus:D,onAddTask:C})]}):(0,N.jsx)(H,{phases:n,allTasks:_,layout:i,dragId:o,hoverKey:c,callbacks:O,draggable:k,dropZone:j,dropToPhase:E,dropToStatus:D,onAddTask:C})]})}function V({phase:e,phaseTasks:t,callbacks:n,draggable:r,dropZone:a,dropToPhase:o,onAddTask:s,dragId:c,hoverKey:l}){let{t:d}=u();return(0,N.jsxs)(`div`,{...a(`phase:${e.id}`,()=>o(e.id)),className:w(`flex min-h-0 w-80 shrink-0 flex-col rounded-lg border bg-muted/30 transition-colors`,l===`phase:${e.id}`?`border-primary/60 bg-primary/5`:`border-border`),children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b border-border px-3 py-2`,children:[(0,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`span`,{className:`truncate text-sm font-semibold`,children:e.name}),(0,N.jsx)(`span`,{className:w(`rounded px-1.5 py-0.5 text-[10px] font-medium capitalize`,B[e.status]),children:e.status})]}),(0,N.jsxs)(`span`,{className:`text-[11px] text-muted-foreground`,children:[e.completedTasks,`/`,e.taskCount,` · `,e.progressPercent,`%`]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>s(e.id),title:d(`activity:board.addTask`),className:`rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground`,children:(0,N.jsx)(i,{className:`h-4 w-4`})})]}),(0,N.jsx)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto overscroll-contain p-2`,children:t.length===0?(0,N.jsx)(`p`,{className:`px-1 py-4 text-center text-[11px] text-muted-foreground`,children:d(`activity:board.dropHere`)}):t.map(e=>(0,N.jsx)(`div`,{...r(e.id),className:w(c===e.id&&`opacity-50`),children:(0,N.jsx)(R,{task:e,...n})},e.id))})]})}function H({phases:e,allTasks:t,layout:n,dragId:r,hoverKey:i,callbacks:a,draggable:o,dropZone:s,dropToPhase:c,dropToStatus:l,onAddTask:u}){return(0,N.jsx)(N.Fragment,{children:n===`phase`?(0,N.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 gap-3 overflow-x-auto p-3`,children:e.map(e=>(0,N.jsx)(V,{phase:e,phaseTasks:t.filter(t=>t.phaseId===e.id),callbacks:a,draggable:o,dropZone:s,dropToPhase:c,onAddTask:u,dragId:r,hoverKey:i},e.id))}):(0,N.jsx)(W,{phases:e,allTasks:t,dragId:r,hoverKey:i,callbacks:a,draggable:o,dropZone:s,dropToStatus:l})})}function U({phase:e,allTasks:t,layout:n,dragId:r,hoverKey:i,callbacks:a,draggable:o,dropZone:s,dropToPhase:c,dropToStatus:l,onAddTask:d}){let f=t.filter(t=>t.phaseId===e.id),{t:p}=u();return n===`phase`?(0,N.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 gap-3 overflow-x-auto p-3`,children:(0,N.jsx)(V,{phase:e,phaseTasks:f,callbacks:a,draggable:o,dropZone:s,dropToPhase:c,onAddTask:d,dragId:r,hoverKey:i})}):(0,N.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-auto overscroll-contain p-3`,children:(0,N.jsxs)(`div`,{className:`grid min-w-[900px] gap-2`,style:{gridTemplateColumns:`9rem repeat(${z.length}, minmax(0, 1fr))`},children:[(0,N.jsx)(`div`,{}),z.map(e=>(0,N.jsx)(`div`,{className:`px-2 pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:p(`activity:board.status.${e.key}`)},e.key)),(0,N.jsxs)(G,{children:[(0,N.jsx)(`div`,{className:`flex items-center pr-2`,children:(0,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsx)(`div`,{className:`truncate text-sm font-medium`,children:e.name}),(0,N.jsx)(`span`,{className:w(`mt-0.5 inline-block rounded px-1.5 py-0.5 text-[10px] capitalize`,B[e.status]),children:e.status})]})}),z.map(t=>{let n=f.filter(e=>t.match.includes(e.status)),c=`cell:${e.id}:${t.key}`;return(0,N.jsx)(`div`,{...s(c,()=>l(t.key)),className:w(`min-h-[4rem] space-y-2 rounded-md border p-1.5 transition-colors`,i===c?`border-primary/60 bg-primary/5`:`border-border bg-muted/20`),children:n.map(e=>(0,N.jsx)(`div`,{...o(e.id),className:w(r===e.id&&`opacity-50`),children:(0,N.jsx)(R,{task:e,compact:!0,...a})},e.id))},t.key)})]},e.id)]})})}function W({phases:e,allTasks:t,dragId:n,hoverKey:r,callbacks:i,draggable:a,dropZone:o,dropToStatus:s}){let{t:c}=u();return(0,N.jsxs)(`div`,{className:`grid min-w-[900px] gap-2`,style:{gridTemplateColumns:`9rem repeat(${z.length}, minmax(0, 1fr))`},children:[(0,N.jsx)(`div`,{}),z.map(e=>(0,N.jsx)(`div`,{className:`px-2 pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:c(`activity:board.status.${e.key}`)},e.key)),e.map(e=>(0,N.jsxs)(G,{children:[(0,N.jsx)(`div`,{className:`flex items-center pr-2`,children:(0,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsx)(`div`,{className:`truncate text-sm font-medium`,children:e.name}),(0,N.jsx)(`span`,{className:w(`mt-0.5 inline-block rounded px-1.5 py-0.5 text-[10px] capitalize`,B[e.status]),children:e.status})]})}),z.map(c=>{let l=t.filter(t=>t.phaseId===e.id&&c.match.includes(t.status)),u=`cell:${e.id}:${c.key}`;return(0,N.jsx)(`div`,{...o(u,()=>s(c.key)),className:w(`min-h-[4rem] space-y-2 rounded-md border p-1.5 transition-colors`,r===u?`border-primary/60 bg-primary/5`:`border-border bg-muted/20`),children:l.map(e=>(0,N.jsx)(`div`,{...a(e.id),className:w(n===e.id&&`opacity-50`),children:(0,N.jsx)(R,{task:e,compact:!0,...i})},e.id))},c.key)})]},e.id))]})}function G({children:e}){return(0,N.jsx)(N.Fragment,{children:e})}function K({onClose:e}){let{client:n}=ee(),{t:a}=u(),s=T(e=>e.phases),c=T(e=>e.overallPercent),d=T(e=>e.autonomous),f=T(e=>e.title),p=T(e=>e.goal),y=T(e=>e.status),b=T(e=>e.lastError),C=T(e=>e.graphs);(0,M.useEffect)(()=>{n?.send?.({type:`goal.list`}),n?.send?.({type:`goal.state`})},[n]);let A=E(e=>e.worktrees),P=E(e=>e.baseBranch),[F,I]=(0,M.useState)(``),[L,R]=(0,M.useState)(null),[z,B]=(0,M.useState)(!1),[V,H]=(0,M.useState)(!0),[U,W]=(0,M.useState)(!1),[G,K]=(0,M.useState)(!1),[q,ie]=(0,M.useState)(!1),J=D(e=>e.result),Y=D(e=>e.loading),X=(0,M.useRef)(null);(0,M.useEffect)(()=>{if(X.current&&clearTimeout(X.current),!F.trim()){D.getState().clear();return}return X.current=setTimeout(()=>{D.getState().setLoading();let e=D.getState().nextSeq();n?.send?.({type:`goal.assess`,payload:{goal:F,seq:e}})},800),()=>{X.current&&clearTimeout(X.current)}},[F,n]),(0,M.useEffect)(()=>{!F.trim()&&!L&&D.getState().clear()},[F,L]);let Z=s.length>0,ae=L!=null&&!Z;(0,M.useEffect)(()=>{Z&&R(null)},[Z]);let Q=(0,M.useCallback)(()=>{let e=F.trim();if(!e||L!=null)return;let r=t.getState();r.addMessage({role:`user`,content:e}),r.addMessage({role:`assistant`,content:l.t(`activity:goalRun.planningAck`)}),R(e),I(``),n?.send?.({type:`goal.start`,payload:{title:e,autonomous:!0,worktrees:V,multiBoard:U,verifyTasks:G,chimeraReview:q}}),O(`chat`)},[F,L,n,V]),oe=(0,M.useCallback)(()=>{n?.send?.({type:`goal.stop`,payload:{}}),R(null)},[n]),se=(0,M.useCallback)(()=>{n?.send?.({type:`goal.toggleAutonomous`,payload:{}})},[n]),ce=(0,M.useCallback)(()=>{n?.send?.(y===`paused`?{type:`goal.resume`,payload:{}}:{type:`goal.pause`,payload:{}})},[n,y]),le=(0,M.useCallback)(()=>{n?.send?.({type:`goal.stop`,payload:{}})},[n]),ue=(0,M.useCallback)(()=>{n?.send?.({type:`goal.clear`,payload:{}}),T.getState().clear(),R(null),I(``)},[n]),[de,$]=(0,M.useState)(!1),fe=(0,M.useCallback)(()=>{n?.send?.({type:`goal.revert`,payload:{}}),$(!1)},[n]),pe=y===`running`||y===`paused`,me=y===`stopped`||y===`completed`||y===`failed`,he=(0,M.useCallback)(e=>{e&&n?.send?.({type:`goal.load`,payload:{graphId:e}})},[n]);return(0,N.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col bg-background`,children:[(0,N.jsxs)(`header`,{className:`flex shrink-0 flex-col gap-2 border-b bg-card px-4 py-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,N.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,N.jsx)(h,{className:`h-5 w-5 text-muted-foreground`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h1`,{className:`text-lg font-semibold`,children:Z&&f||`Goal`}),Z&&(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a(`activity:goalRun.summary`,{count:s.length,pct:c})})]}),Z&&(0,N.jsx)(`span`,{className:w(`rounded border px-2 py-0.5 text-[11px] font-medium capitalize`,y===`failed`?`border-destructive/40 bg-destructive/10 text-destructive`:y===`paused`||y===`stopped`?`border-warning/40 bg-warning/10 text-warning`:y===`completed`?`border-success/40 bg-success/10 text-success`:`border-primary/30 bg-primary/10 text-primary`),title:b??void 0,children:y})]}),(0,N.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2 sm:justify-end`,children:[C.length>0&&(0,N.jsxs)(`select`,{value:Z?C.find(e=>e.title===f)?.id??``:``,onChange:e=>he(e.target.value),title:a(`activity:goalRun.switchBoard`),className:`min-w-0 flex-1 rounded border border-border bg-card px-2 py-1 text-xs text-foreground sm:w-72 sm:flex-none`,children:[(0,N.jsx)(`option`,{value:``,disabled:!0,children:a(`activity:goalRun.boardsCount`,{count:C.length})}),C.map(e=>(0,N.jsxs)(`option`,{value:e.id,children:[e.title,` · `,e.status]},e.id))]}),Z&&(0,N.jsxs)(`button`,{type:`button`,onClick:se,title:a(`activity:goalRun.toggleAutonomousTitle`),className:w(`inline-flex items-center gap-1 rounded border px-2 py-1 text-xs transition-colors`,d?`border-primary/30 bg-primary/10 text-primary`:`border-border text-muted-foreground hover:text-foreground`),children:[(0,N.jsx)(x,{className:`h-3.5 w-3.5`}),` `,a(d?`activity:goalRun.autonomous`:`activity:goalRun.manual`)]}),pe&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`button`,{type:`button`,onClick:ce,title:a(y===`paused`?`activity:goalRun.resumeTitle`:`activity:goalRun.pauseTitle`),className:`inline-flex items-center gap-1 rounded border border-border px-2 py-1 text-xs text-muted-foreground transition-colors hover:text-foreground`,children:[y===`paused`?(0,N.jsx)(S,{className:`h-3.5 w-3.5`}):(0,N.jsx)(v,{className:`h-3.5 w-3.5`}),a(y===`paused`?`activity:goalRun.resume`:`activity:goalRun.pause`)]}),(0,N.jsxs)(`button`,{type:`button`,onClick:le,title:a(`activity:goalRun.stopTitle`),className:`inline-flex items-center gap-1 rounded border border-destructive/40 bg-destructive/10 px-2 py-1 text-xs font-medium text-destructive transition-colors hover:bg-destructive/20`,children:[(0,N.jsx)(r,{className:`h-3.5 w-3.5 fill-current`}),` `,a(`activity:goalRun.stop`)]})]}),Z&&me&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`button`,{type:`button`,onClick:ue,title:a(`activity:goalRun.newTitle`),className:`inline-flex items-center gap-1 rounded border border-primary/30 bg-primary/10 px-2 py-1 text-xs font-medium text-primary transition-colors hover:bg-primary/20`,children:[(0,N.jsx)(i,{className:`h-3.5 w-3.5`}),` `,a(`activity:goalRun.newLabel`)]}),de?(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border border-warning/40 bg-warning/10 px-1.5 py-0.5 text-xs`,children:[(0,N.jsx)(`span`,{className:`text-warning`,children:a(`activity:goalRun.revertConfirm`)}),(0,N.jsx)(`button`,{type:`button`,onClick:fe,className:`rounded bg-destructive/15 px-1.5 py-0.5 font-medium text-destructive hover:bg-destructive/25`,children:a(`common:action.yes`)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>$(!1),className:`rounded px-1.5 py-0.5 text-muted-foreground hover:text-foreground`,children:a(`common:action.no`)})]}):(0,N.jsxs)(`button`,{type:`button`,onClick:()=>$(!0),title:a(`activity:goalRun.revertTitle`),className:`inline-flex items-center gap-1 rounded border border-border px-2 py-1 text-xs text-muted-foreground transition-colors hover:text-foreground`,children:[(0,N.jsx)(o,{className:`h-3.5 w-3.5`}),` `,a(`activity:goalRun.revert`)]})]}),(0,N.jsx)(k,{variant:`ghost`,size:`icon`,onClick:e,children:(0,N.jsx)(m,{className:`h-4 w-4`})})]})]}),Z&&p&&(0,N.jsxs)(`div`,{className:`shrink-0 border-b border-border/60 bg-muted/20 px-4 py-2.5`,children:[(0,N.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,N.jsx)(g,{className:`h-3 w-3`}),` `,a(`activity:goalRun.goal`)]}),(0,N.jsx)(`p`,{className:`whitespace-pre-wrap text-sm leading-relaxed text-foreground/90`,children:p})]}),Z?(0,N.jsx)(`div`,{className:`flex min-h-0 flex-1`,children:(0,N.jsx)(re,{})}):ae?(0,N.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-8`,children:(0,N.jsxs)(`div`,{className:`max-w-lg w-full space-y-5 text-center`,children:[(0,N.jsx)(_,{className:`h-10 w-10 mx-auto animate-spin text-primary/70`}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsx)(`h2`,{className:`text-xl font-semibold`,children:a(`activity:goalRun.planning`)}),(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:a(`activity:goalRun.planningBody`)})]}),(0,N.jsxs)(`div`,{className:`rounded-lg border border-border bg-card px-4 py-3 text-left`,children:[(0,N.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,N.jsx)(g,{className:`h-3 w-3`}),` `,a(`activity:goalRun.goal`)]}),(0,N.jsx)(`p`,{className:`whitespace-pre-wrap text-sm leading-relaxed text-foreground/90`,children:L})]}),(0,N.jsxs)(k,{variant:`outline`,onClick:oe,className:`gap-2`,children:[(0,N.jsx)(r,{className:`h-4 w-4 fill-current`}),` `,a(`common:action.cancel`)]})]})}):(0,N.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-8`,children:(0,N.jsxs)(`div`,{className:`max-w-lg w-full space-y-6`,children:[(0,N.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,N.jsx)(g,{className:`h-10 w-10 mx-auto text-primary/60`}),(0,N.jsx)(`h2`,{className:`text-xl font-semibold`,children:a(`activity:goalRun.startHeading`)}),(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:a(`activity:goalRun.startBody`)})]}),(0,N.jsx)(`textarea`,{value:F,onChange:e=>I(e.target.value),placeholder:a(`activity:goalRun.startPlaceholder`),rows:5,className:`w-full rounded-lg border border-border bg-card px-4 py-3 text-sm resize-none focus:outline-none focus:ring-2 focus:ring-primary/30 placeholder:text-muted-foreground/70`,onKeyDown:e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),Q())}}),Y&&(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,N.jsx)(_,{className:`h-3 w-3 animate-spin`}),a(`activity:goalRun.assess.analyzing`)]}),!Y&&J&&!J.parseFailed&&(0,N.jsxs)(`div`,{className:w(`rounded-lg border px-3 py-2 text-xs space-y-1.5`,J.realistic?`border-success/40 bg-success/10`:`border-warning/40 bg-warning/10`),children:[(0,N.jsx)(`div`,{className:`flex items-center gap-1.5 font-medium`,children:J.realistic?(0,N.jsx)(`span`,{className:`text-success`,children:a(`activity:goalRun.assess.realistic`)}):(0,N.jsx)(`span`,{className:`text-warning`,children:a(`activity:goalRun.assess.durationConcern`)})}),J.durationClaimed&&(0,N.jsx)(`p`,{className:`text-muted-foreground`,children:a(`activity:goalRun.assess.durationClaimed`,{duration:J.durationClaimed})}),(0,N.jsx)(`p`,{className:`text-muted-foreground`,children:J.explanation}),J.recommendedDuration&&(0,N.jsx)(`p`,{className:`text-muted-foreground`,children:a(`activity:goalRun.assess.recommendation`,{duration:J.recommendedDuration})}),J.concerns.length>0&&(0,N.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,N.jsx)(`p`,{className:`font-medium text-foreground/80`,children:a(`activity:goalRun.assess.concerns`)}),(0,N.jsx)(`ul`,{className:`list-disc pl-4 space-y-0.5 text-muted-foreground`,children:J.concerns.map((e,t)=>(0,N.jsx)(`li`,{children:e},t))})]})]}),!Y&&J?.parseFailed&&(0,N.jsx)(`div`,{className:`rounded-lg border border-border/40 bg-muted/20 px-3 py-2 text-xs text-muted-foreground`,children:a(`activity:goalRun.assess.analysisFailed`)}),(0,N.jsxs)(`label`,{className:`flex cursor-pointer items-center justify-center gap-2 text-xs text-muted-foreground`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:V,onChange:e=>H(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),a(`activity:goalRun.isolateLabel`)]}),(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-3 text-xs text-muted-foreground`,children:[(0,N.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-1.5`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:U,onChange:e=>W(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),a(`activity:goalRun.multiBoardLabel`)]}),(0,N.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-1.5`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:G,onChange:e=>K(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),a(`activity:goalRun.verifyTasksLabel`)]}),(0,N.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-1.5`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:q,onChange:e=>ie(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),a(`activity:goalRun.chimeraReviewLabel`)]})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[!Y&&J&&!J.realistic&&!J.parseFailed&&(0,N.jsx)(`button`,{type:`button`,onClick:()=>D.getState().clear(),className:`shrink-0 rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:text-foreground transition-colors`,title:a(`activity:goalRun.assess.overrideTitle`),children:a(`activity:goalRun.assess.override`)}),(0,N.jsxs)(k,{onClick:Q,disabled:!F.trim()||L!=null||Y||!Y&&J!=null&&!J.parseFailed&&!J.realistic,className:`flex-1 gap-2`,title:F.trim()&&!Y&&J&&!J.parseFailed&&!J.realistic?a(`activity:goalRun.assess.disableTitle`):``,children:[(0,N.jsx)(S,{className:`h-4 w-4`}),a(`activity:goalRun.startButton`)]})]}),(0,N.jsxs)(`p`,{className:`text-xs text-muted-foreground text-center`,children:[a(`activity:goalRun.ctrlHint`),` ·`,` `,a(V?`activity:goalRun.isolateOn`:`activity:goalRun.isolateOff`)]})]})}),A.length>0&&(0,N.jsxs)(`div`,{className:`border-t bg-card/50 shrink-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-end gap-2 px-4 pt-2 text-xs`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:()=>B(!1),className:w(`rounded px-2 py-0.5 border transition-colors`,z?`border-border text-muted-foreground hover:text-foreground`:`bg-primary/10 border-primary/30 text-primary`),children:a(`activity:goalRun.lanes`)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>B(!0),className:w(`rounded px-2 py-0.5 border transition-colors`,z?`bg-primary/10 border-primary/30 text-primary`:`border-border text-muted-foreground hover:text-foreground`),children:a(`activity:goalRun.graph`)})]}),(0,N.jsxs)(`div`,{className:`space-y-2 px-4 pb-3`,children:[(0,N.jsx)(ne,{}),z?(0,N.jsx)(j,{worktrees:A,baseBranch:P}):(0,N.jsx)(te,{worktrees:A,baseBranch:P})]})]})]})}export{K as GoalView};