@aoagents/ao-web 0.3.0 → 0.5.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 (269) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +123 -131
  3. package/.next/app-path-routes-manifest.json +8 -9
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +31 -31
  6. package/.next/react-loadable-manifest.json +14 -14
  7. package/.next/server/app/_not-found/page.js +1 -1
  8. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_not-found.html +1 -1
  11. package/.next/server/app/_not-found.rsc +6 -9
  12. package/.next/server/app/api/backlog/route.js +1 -1
  13. package/.next/server/app/api/backlog/route.js.nft.json +1 -1
  14. package/.next/server/app/api/backlog/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/browse-directory/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/filesystem/browse/route.js +1 -1
  17. package/.next/server/app/api/filesystem/browse/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/issues/route.js +1 -1
  19. package/.next/server/app/api/issues/route.js.nft.json +1 -1
  20. package/.next/server/app/api/issues/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/observability/route.js +1 -1
  22. package/.next/server/app/api/observability/route.js.nft.json +1 -1
  23. package/.next/server/app/api/observability/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/orchestrators/route.js +1 -1
  25. package/.next/server/app/api/orchestrators/route.js.nft.json +1 -1
  26. package/.next/server/app/api/orchestrators/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/projects/[id]/route.js +1 -1
  28. package/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/projects/reload/route.js +1 -1
  31. package/.next/server/app/api/projects/reload/route.js.nft.json +1 -1
  32. package/.next/server/app/api/projects/reload/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/projects/route.js +1 -1
  34. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  35. package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/prs/[id]/merge/route.js +1 -1
  37. package/.next/server/app/api/prs/[id]/merge/route.js.nft.json +1 -1
  38. package/.next/server/app/api/prs/[id]/merge/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/runtime/terminal/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/sessions/[id]/kill/route.js +1 -1
  41. package/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
  42. package/.next/server/app/api/sessions/[id]/kill/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/sessions/[id]/message/route.js +1 -1
  44. package/.next/server/app/api/sessions/[id]/message/route.js.nft.json +1 -1
  45. package/.next/server/app/api/sessions/[id]/message/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/sessions/[id]/remap/route.js +1 -1
  47. package/.next/server/app/api/sessions/[id]/remap/route.js.nft.json +1 -1
  48. package/.next/server/app/api/sessions/[id]/remap/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/sessions/[id]/restore/route.js +1 -1
  50. package/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
  51. package/.next/server/app/api/sessions/[id]/restore/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  53. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  54. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/sessions/[id]/send/route.js +1 -1
  56. package/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
  57. package/.next/server/app/api/sessions/[id]/send/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/sessions/patches/route.js +1 -1
  59. package/.next/server/app/api/sessions/patches/route.js.nft.json +1 -1
  60. package/.next/server/app/api/sessions/patches/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/sessions/route.js +1 -1
  62. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  63. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/setup-labels/route.js +1 -1
  65. package/.next/server/app/api/setup-labels/route.js.nft.json +1 -1
  66. package/.next/server/app/api/setup-labels/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/spawn/route.js +1 -1
  68. package/.next/server/app/api/spawn/route.js.nft.json +1 -1
  69. package/.next/server/app/api/spawn/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/verify/route.js +1 -1
  71. package/.next/server/app/api/verify/route.js.nft.json +1 -1
  72. package/.next/server/app/api/verify/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/webhooks/[...slug]/route.js +1 -1
  74. package/.next/server/app/api/webhooks/[...slug]/route.js.nft.json +1 -1
  75. package/.next/server/app/api/webhooks/[...slug]/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/apple-icon/route.js +1 -1
  77. package/.next/server/app/apple-icon/route.js.nft.json +1 -1
  78. package/.next/server/app/apple-icon/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/apple-icon.body +0 -0
  80. package/.next/server/app/dev/terminal-test/page.js +3 -3
  81. package/.next/server/app/dev/terminal-test/page.js.nft.json +1 -1
  82. package/.next/server/app/dev/terminal-test/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/dev/terminal-test.html +1 -1
  84. package/.next/server/app/dev/terminal-test.rsc +7 -10
  85. package/.next/server/app/icon/route.js +1 -1
  86. package/.next/server/app/icon/route.js.nft.json +1 -1
  87. package/.next/server/app/icon/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/icon-192/route.js +1 -1
  89. package/.next/server/app/icon-192/route.js.nft.json +1 -1
  90. package/.next/server/app/icon-192/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/icon-512/route.js +1 -1
  92. package/.next/server/app/icon-512/route.js.nft.json +1 -1
  93. package/.next/server/app/icon-512/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/icon.body +0 -0
  95. package/.next/server/app/manifest.webmanifest/route.js +1 -1
  96. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  97. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/manifest.webmanifest.body +1 -1
  99. package/.next/server/app/orchestrators/page.js +2 -2
  100. package/.next/server/app/orchestrators/page.js.nft.json +1 -1
  101. package/.next/server/app/orchestrators/page_client-reference-manifest.js +1 -1
  102. package/.next/server/app/page.js +1 -1
  103. package/.next/server/app/page.js.nft.json +1 -1
  104. package/.next/server/app/page_client-reference-manifest.js +1 -1
  105. package/.next/server/app/projects/[projectId]/page.js +1 -1
  106. package/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  107. package/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  108. package/.next/server/app/projects/[projectId]/sessions/[id]/page.js +2 -2
  109. package/.next/server/app/projects/[projectId]/sessions/[id]/page.js.nft.json +1 -1
  110. package/.next/server/app/projects/[projectId]/sessions/[id]/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app/projects/[projectId]/settings/page.js +1 -1
  112. package/.next/server/app/projects/[projectId]/settings/page.js.nft.json +1 -1
  113. package/.next/server/app/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  114. package/.next/server/app/prs/page.js +1 -1
  115. package/.next/server/app/prs/page.js.nft.json +1 -1
  116. package/.next/server/app/prs/page_client-reference-manifest.js +1 -1
  117. package/.next/server/app/sessions/[id]/page.js +2 -2
  118. package/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  119. package/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  120. package/.next/server/app/test-direct/page.js +1 -1
  121. package/.next/server/app/test-direct/page.js.nft.json +1 -1
  122. package/.next/server/app/test-direct/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/test-direct.html +1 -1
  124. package/.next/server/app/test-direct.rsc +7 -10
  125. package/.next/server/app-paths-manifest.json +8 -9
  126. package/.next/server/chunks/1172.js +1 -1
  127. package/.next/server/chunks/1271.js +1 -1
  128. package/.next/server/chunks/{6172.js → 1876.js} +2 -2
  129. package/.next/server/chunks/3131.js +3 -0
  130. package/.next/server/chunks/3714.js +1 -1
  131. package/.next/server/chunks/4520.js +1 -1
  132. package/.next/server/chunks/7167.js +1 -0
  133. package/.next/server/chunks/7173.js +9 -0
  134. package/.next/server/chunks/801.js +658 -0
  135. package/.next/server/chunks/9223.js +440 -0
  136. package/.next/server/middleware-build-manifest.js +1 -1
  137. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  138. package/.next/server/next-font-manifest.js +1 -1
  139. package/.next/server/next-font-manifest.json +1 -1
  140. package/.next/server/pages/404.html +1 -1
  141. package/.next/server/pages/500.html +1 -1
  142. package/.next/server/server-reference-manifest.json +1 -1
  143. package/.next/static/YR6Xi4DC5A7S7E2PoZuif/_buildManifest.js +1 -0
  144. package/.next/static/chunks/1383.c891a8ba72ee600c.js +1 -0
  145. package/.next/static/chunks/3764.89a5955e46eb74b4.js +1 -0
  146. package/.next/static/chunks/3780-52c4733ce6591b8d.js +1 -0
  147. package/.next/static/chunks/4465-17154f7a01abfe85.js +1 -0
  148. package/.next/static/chunks/5795-b96fd46c8c7344fc.js +1 -0
  149. package/.next/static/chunks/7008-6e85da85f12f9858.js +1 -0
  150. package/.next/static/chunks/app/_not-found/page-3b8a01e726e988c8.js +1 -0
  151. package/.next/static/chunks/app/api/backlog/route-3b8a01e726e988c8.js +1 -0
  152. package/.next/static/chunks/app/api/browse-directory/route-3b8a01e726e988c8.js +1 -0
  153. package/.next/static/chunks/app/api/filesystem/browse/route-3b8a01e726e988c8.js +1 -0
  154. package/.next/static/chunks/app/api/issues/route-3b8a01e726e988c8.js +1 -0
  155. package/.next/static/chunks/app/api/observability/route-3b8a01e726e988c8.js +1 -0
  156. package/.next/static/chunks/app/api/orchestrators/route-3b8a01e726e988c8.js +1 -0
  157. package/.next/static/chunks/app/api/projects/[id]/route-3b8a01e726e988c8.js +1 -0
  158. package/.next/static/chunks/app/api/projects/reload/route-3b8a01e726e988c8.js +1 -0
  159. package/.next/static/chunks/app/api/projects/route-3b8a01e726e988c8.js +1 -0
  160. package/.next/static/chunks/app/api/prs/[id]/merge/route-3b8a01e726e988c8.js +1 -0
  161. package/.next/static/chunks/app/api/runtime/terminal/route-3b8a01e726e988c8.js +1 -0
  162. package/.next/static/chunks/app/api/sessions/[id]/kill/route-3b8a01e726e988c8.js +1 -0
  163. package/.next/static/chunks/app/api/sessions/[id]/message/route-3b8a01e726e988c8.js +1 -0
  164. package/.next/static/chunks/app/api/sessions/[id]/remap/route-3b8a01e726e988c8.js +1 -0
  165. package/.next/static/chunks/app/api/sessions/[id]/restore/route-3b8a01e726e988c8.js +1 -0
  166. package/.next/static/chunks/app/api/sessions/[id]/route-3b8a01e726e988c8.js +1 -0
  167. package/.next/static/chunks/app/api/sessions/[id]/send/route-3b8a01e726e988c8.js +1 -0
  168. package/.next/static/chunks/app/api/sessions/patches/route-3b8a01e726e988c8.js +1 -0
  169. package/.next/static/chunks/app/api/sessions/route-3b8a01e726e988c8.js +1 -0
  170. package/.next/static/chunks/app/api/setup-labels/route-3b8a01e726e988c8.js +1 -0
  171. package/.next/static/chunks/app/api/spawn/route-3b8a01e726e988c8.js +1 -0
  172. package/.next/static/chunks/app/api/verify/route-3b8a01e726e988c8.js +1 -0
  173. package/.next/static/chunks/app/api/webhooks/[...slug]/route-3b8a01e726e988c8.js +1 -0
  174. package/.next/static/chunks/app/apple-icon/route-3b8a01e726e988c8.js +1 -0
  175. package/.next/static/chunks/app/dev/terminal-test/page-5819e40b3d4754ef.js +1 -0
  176. package/.next/static/chunks/app/error-da1d10c96ff5dd29.js +1 -0
  177. package/.next/static/chunks/app/icon/route-3b8a01e726e988c8.js +1 -0
  178. package/.next/static/chunks/app/icon-192/route-3b8a01e726e988c8.js +1 -0
  179. package/.next/static/chunks/app/icon-512/route-3b8a01e726e988c8.js +1 -0
  180. package/.next/static/chunks/app/layout-bb6db479523cb3d6.js +1 -0
  181. package/.next/static/chunks/app/loading-3b8a01e726e988c8.js +1 -0
  182. package/.next/static/chunks/app/manifest.webmanifest/route-3b8a01e726e988c8.js +1 -0
  183. package/.next/static/chunks/app/orchestrators/page-f07983413ed1a44b.js +1 -0
  184. package/.next/static/chunks/app/{page-d3b83ad5f09b6ec7.js → page-6aa506a579ac9949.js} +1 -1
  185. package/.next/static/chunks/app/projects/[projectId]/loading-3b8a01e726e988c8.js +1 -0
  186. package/.next/static/chunks/app/projects/[projectId]/{page-9f3dfbea006747cf.js → page-49eb5b990c74ca8f.js} +1 -1
  187. package/.next/static/chunks/app/projects/[projectId]/sessions/[id]/page-2450704c6b66a4b4.js +1 -0
  188. package/.next/static/chunks/app/projects/[projectId]/settings/page-d1da671e72a7bd5e.js +1 -0
  189. package/.next/static/chunks/app/prs/page-2332a7180a47f28c.js +1 -0
  190. package/.next/static/chunks/app/sessions/[id]/error-8de5b24e86eeae7b.js +1 -0
  191. package/.next/static/chunks/app/sessions/[id]/loading-3b8a01e726e988c8.js +1 -0
  192. package/.next/static/chunks/app/sessions/[id]/page-b60b49ccbafe51c9.js +1 -0
  193. package/.next/static/chunks/app/test-direct/page-eb366dde03fab6a7.js +1 -0
  194. package/.next/static/chunks/{webpack-d4ff5ed5e153ca3e.js → webpack-d2dfbd3e9262b74e.js} +1 -1
  195. package/.next/static/css/fcafd381715071b8.css +1 -0
  196. package/dist-server/mux-websocket.js +138 -127
  197. package/dist-server/tmux-utils.js +99 -9
  198. package/next.config.js +6 -0
  199. package/package.json +18 -16
  200. package/.next/server/app/api/events/route.js +0 -9
  201. package/.next/server/app/api/events/route.js.nft.json +0 -1
  202. package/.next/server/app/api/events/route_client-reference-manifest.js +0 -1
  203. package/.next/server/chunks/252.js +0 -11
  204. package/.next/server/chunks/2810.js +0 -1
  205. package/.next/server/chunks/3602.js +0 -382
  206. package/.next/server/chunks/3667.js +0 -277
  207. package/.next/server/chunks/8367.js +0 -3
  208. package/.next/static/chunks/3697.4d6d86c5f0caf73e.js +0 -1
  209. package/.next/static/chunks/4465-aaba60a6355de914.js +0 -1
  210. package/.next/static/chunks/6078.47ce88bee96cfaee.js +0 -1
  211. package/.next/static/chunks/6607-405ce4d15e595f4a.js +0 -1
  212. package/.next/static/chunks/7008-71ebb186f0549f41.js +0 -1
  213. package/.next/static/chunks/9331-fcdd652218ac6f68.js +0 -1
  214. package/.next/static/chunks/app/_not-found/page-e2dea9178b4af8db.js +0 -1
  215. package/.next/static/chunks/app/api/backlog/route-e2dea9178b4af8db.js +0 -1
  216. package/.next/static/chunks/app/api/browse-directory/route-e2dea9178b4af8db.js +0 -1
  217. package/.next/static/chunks/app/api/events/route-e2dea9178b4af8db.js +0 -1
  218. package/.next/static/chunks/app/api/filesystem/browse/route-e2dea9178b4af8db.js +0 -1
  219. package/.next/static/chunks/app/api/issues/route-e2dea9178b4af8db.js +0 -1
  220. package/.next/static/chunks/app/api/observability/route-e2dea9178b4af8db.js +0 -1
  221. package/.next/static/chunks/app/api/orchestrators/route-e2dea9178b4af8db.js +0 -1
  222. package/.next/static/chunks/app/api/projects/[id]/route-e2dea9178b4af8db.js +0 -1
  223. package/.next/static/chunks/app/api/projects/reload/route-e2dea9178b4af8db.js +0 -1
  224. package/.next/static/chunks/app/api/projects/route-e2dea9178b4af8db.js +0 -1
  225. package/.next/static/chunks/app/api/prs/[id]/merge/route-e2dea9178b4af8db.js +0 -1
  226. package/.next/static/chunks/app/api/runtime/terminal/route-e2dea9178b4af8db.js +0 -1
  227. package/.next/static/chunks/app/api/sessions/[id]/kill/route-e2dea9178b4af8db.js +0 -1
  228. package/.next/static/chunks/app/api/sessions/[id]/message/route-e2dea9178b4af8db.js +0 -1
  229. package/.next/static/chunks/app/api/sessions/[id]/remap/route-e2dea9178b4af8db.js +0 -1
  230. package/.next/static/chunks/app/api/sessions/[id]/restore/route-e2dea9178b4af8db.js +0 -1
  231. package/.next/static/chunks/app/api/sessions/[id]/route-e2dea9178b4af8db.js +0 -1
  232. package/.next/static/chunks/app/api/sessions/[id]/send/route-e2dea9178b4af8db.js +0 -1
  233. package/.next/static/chunks/app/api/sessions/patches/route-e2dea9178b4af8db.js +0 -1
  234. package/.next/static/chunks/app/api/sessions/route-e2dea9178b4af8db.js +0 -1
  235. package/.next/static/chunks/app/api/setup-labels/route-e2dea9178b4af8db.js +0 -1
  236. package/.next/static/chunks/app/api/spawn/route-e2dea9178b4af8db.js +0 -1
  237. package/.next/static/chunks/app/api/verify/route-e2dea9178b4af8db.js +0 -1
  238. package/.next/static/chunks/app/api/webhooks/[...slug]/route-e2dea9178b4af8db.js +0 -1
  239. package/.next/static/chunks/app/apple-icon/route-e2dea9178b4af8db.js +0 -1
  240. package/.next/static/chunks/app/dev/terminal-test/page-5765f0465db56fed.js +0 -1
  241. package/.next/static/chunks/app/error-670f1d8bf2b6859c.js +0 -1
  242. package/.next/static/chunks/app/icon/route-e2dea9178b4af8db.js +0 -1
  243. package/.next/static/chunks/app/icon-192/route-e2dea9178b4af8db.js +0 -1
  244. package/.next/static/chunks/app/icon-512/route-e2dea9178b4af8db.js +0 -1
  245. package/.next/static/chunks/app/layout-ddf79478d9a673bb.js +0 -1
  246. package/.next/static/chunks/app/loading-e2dea9178b4af8db.js +0 -1
  247. package/.next/static/chunks/app/manifest.webmanifest/route-e2dea9178b4af8db.js +0 -1
  248. package/.next/static/chunks/app/orchestrators/page-4c190484788aaaa3.js +0 -1
  249. package/.next/static/chunks/app/projects/[projectId]/loading-e2dea9178b4af8db.js +0 -1
  250. package/.next/static/chunks/app/projects/[projectId]/sessions/[id]/page-a7090a06948f9a6b.js +0 -1
  251. package/.next/static/chunks/app/projects/[projectId]/settings/page-219df6dcbc6d1107.js +0 -1
  252. package/.next/static/chunks/app/prs/page-a285e930235a23af.js +0 -1
  253. package/.next/static/chunks/app/sessions/[id]/error-eb0973907da68a37.js +0 -1
  254. package/.next/static/chunks/app/sessions/[id]/loading-e2dea9178b4af8db.js +0 -1
  255. package/.next/static/chunks/app/sessions/[id]/page-98f398b822092218.js +0 -1
  256. package/.next/static/chunks/app/test-direct/page-f9bff7d7b4dfe728.js +0 -1
  257. package/.next/static/css/46a7e8e962075e54.css +0 -1
  258. package/.next/static/css/577ea7f5ad4f0576.css +0 -1
  259. package/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  260. package/.next/static/media/558ca1a6aa3cb55e-s.p.woff2 +0 -0
  261. package/.next/static/media/64d784ea54a4acde-s.woff2 +0 -0
  262. package/.next/static/media/6d831b18ae5b01dc-s.woff2 +0 -0
  263. package/.next/static/media/8d697b304b401681-s.woff2 +0 -0
  264. package/.next/static/media/ac0e76ddaeeb7981-s.woff2 +0 -0
  265. package/.next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  266. package/.next/static/media/edc640959b0c7826-s.woff2 +0 -0
  267. package/.next/static/media/ff71da380fbe67dd-s.woff2 +0 -0
  268. package/.next/static/q6yh3n8jgvyI9JIbexzuH/_buildManifest.js +0 -1
  269. /package/.next/static/{q6yh3n8jgvyI9JIbexzuH → YR6Xi4DC5A7S7E2PoZuif}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- exports.id=8367,exports.ids=[8367],exports.modules={2191:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f}),c(81249),c(13081);var d=c(6181);let e={size:{width:32,height:32},contentType:"image/png"};async function f(a){let{__metadata_id__:b,...c}=await a.params,f=(0,d.fillMetadataSegment)(".",c,"icon"),{generateImageMetadata:g}=e;function h(a,b){let c={alt:a.alt,type:a.contentType||"image/png",url:f+(b?"/"+b:"")+"?fde4afff4688df3a"},{size:d}=a;return d&&(c.sizes=d.width+"x"+d.height),c}return g?(await g({params:c})).map((a,b)=>{let c=(a.id||b)+"";return h(a,c)}):[h(e,"")]}},3964:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,57035,23)),Promise.resolve().then(c.t.bind(c,57543,23)),Promise.resolve().then(c.t.bind(c,970,23)),Promise.resolve().then(c.t.bind(c,84702,23)),Promise.resolve().then(c.t.bind(c,18706,23)),Promise.resolve().then(c.t.bind(c,11194,23)),Promise.resolve().then(c.t.bind(c,33151,23)),Promise.resolve().then(c.t.bind(c,75210,23))},8556:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(68844);function e(){return(0,d.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-[var(--color-bg-base)]",children:(0,d.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,d.jsx)("svg",{className:"h-5 w-5 animate-spin text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M12 3a9 9 0 1 0 9 9"})}),(0,d.jsx)("p",{className:"text-[13px] text-[var(--color-text-tertiary)]",children:"Loading…"})]})})}},13081:(a,b,c)=>{"use strict";c.d(b,{Kk:()=>f,uy:()=>e});var d=c(68844);function e(a){return a.replace(/[^\w\s-]/g,"").slice(0,50)||"AO"}function f(a,b){let c=(b.charAt(0)||"A").toUpperCase(),e=function(a){let b=0;for(let c=0;c<a.length;c++)b=a.charCodeAt(c)+((b<<5)-b);return(b%360+360)%360}(b),f=Math.round(.19*a),g=Math.round(.625*a);return(0,d.jsx)("div",{style:{width:`${a}px`,height:`${a}px`,borderRadius:`${f}px`,background:`hsl(${e}, 60%, 45%)`,display:"flex",alignItems:"center",justifyContent:"center",color:"white",fontSize:`${g}px`,fontWeight:700,fontFamily:"sans-serif"},children:c})}},16819:(a,b,c)=>{"use strict";c.d(b,{ErrorDisplay:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call ErrorDisplay() from the server but ErrorDisplay is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/components/ErrorDisplay.tsx","ErrorDisplay")},23041:(a,b,c)=>{"use strict";c.d(b,{ErrorDisplay:()=>j});var d=c(33666),e=c(47489),f=c.n(e);let g={error:{accent:"var(--color-status-error)",bg:"var(--color-tint-red)",border:"color-mix(in srgb, var(--color-status-error) 24%, transparent)",label:"error"},warning:{accent:"var(--color-status-attention)",bg:"var(--color-tint-yellow)",border:"color-mix(in srgb, var(--color-status-attention) 24%, transparent)",label:"warning"},"not-found":{accent:"var(--color-accent)",bg:"var(--color-tint-blue)",border:"color-mix(in srgb, var(--color-accent) 24%, transparent)",label:"missing"}};function h({accent:a}){return(0,d.jsx)("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl border",style:{background:`linear-gradient(180deg, color-mix(in srgb, ${a} 16%, var(--color-bg-elevated)) 0%, var(--color-bg-surface) 100%)`,borderColor:`color-mix(in srgb, ${a} 18%, var(--color-border-default))`,boxShadow:"var(--detail-card-shadow)"},children:(0,d.jsxs)("svg",{className:"h-7 w-7",fill:"none",stroke:"currentColor",strokeWidth:"1.6",style:{color:a},viewBox:"0 0 24 24",children:[(0,d.jsx)("rect",{x:"2.5",y:"4.5",width:"19",height:"15",rx:"3"}),(0,d.jsx)("path",{d:"M6.5 9.5l3.25 2.5-3.25 2.5M12.75 15h4.75"})]})})}function i({action:a,primary:b=!1}){let c=b?"inline-flex items-center justify-center rounded-full border px-4 py-2 text-[12px] font-semibold transition-colors hover:no-underline":"inline-flex items-center justify-center rounded-full border px-4 py-2 text-[12px] font-medium transition-colors hover:no-underline",e=b?{background:"var(--color-accent)",color:"var(--color-text-inverse)",borderColor:"color-mix(in srgb, var(--color-accent) 72%, transparent)"}:{background:"var(--color-bg-surface)",color:"var(--color-text-secondary)",borderColor:"var(--color-border-default)"};return a.href?(0,d.jsx)(f(),{href:a.href,className:c,style:e,children:a.label}):(0,d.jsx)("button",{type:"button",onClick:a.onClick,className:c,style:e,children:a.label})}function j({title:a,message:b,tone:c="error",detailsTitle:e="Technical details",error:f,primaryAction:j,secondaryAction:k,compact:l=!1,chrome:m="page",children:n}){let o=g[c],p=!!(f?.digest||f?.message||f?.stack);return(0,d.jsx)("div",{className:`flex w-full items-center justify-center px-6 py-10 ${l?"min-h-[calc(100vh-4rem)]":"min-h-screen"}`,style:{background:"page"===m?"radial-gradient(circle at top, var(--color-body-gradient-blue), transparent 35%), var(--color-bg-base)":"transparent"},children:(0,d.jsx)("div",{className:"w-full max-w-[36rem] rounded-[28px] border p-6 sm:p-8",style:{background:"linear-gradient(180deg, color-mix(in srgb, var(--color-bg-elevated) 88%, transparent) 0%, var(--color-bg-surface) 100%)",borderColor:"var(--color-border-default)",boxShadow:"var(--detail-card-shadow)"},children:(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start",children:[(0,d.jsx)(h,{accent:o.accent}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"mb-3 inline-flex items-center rounded-full border px-2.5 py-1 font-[var(--font-mono)] text-[10px] font-medium uppercase tracking-[0.22em]",style:{color:o.accent,background:o.bg,borderColor:o.border},children:o.label}),(0,d.jsx)("h1",{className:"text-[24px] font-semibold tracking-[-0.04em] text-[var(--color-text-primary)]",children:a}),(0,d.jsx)("p",{className:"mt-2 max-w-[34rem] text-[14px] leading-6 text-[var(--color-text-secondary)]",children:b})]})]}),(j||k)&&(0,d.jsxs)("div",{className:"flex flex-wrap gap-3",children:[j?(0,d.jsx)(i,{action:j,primary:!0}):null,k?(0,d.jsx)(i,{action:k}):null]}),n,p?(0,d.jsxs)("details",{className:"rounded-2xl border",style:{background:"color-mix(in srgb, var(--color-bg-elevated) 84%, transparent)",borderColor:"var(--color-border-subtle)"},children:[(0,d.jsx)("summary",{className:"cursor-pointer list-none px-4 py-3 text-[12px] font-medium text-[var(--color-text-secondary)]",children:e}),(0,d.jsxs)("div",{className:"border-t px-4 py-4",style:{borderColor:"var(--color-border-subtle)"},children:[f?.digest?(0,d.jsxs)("p",{className:"mb-3 font-[var(--font-mono)] text-[11px] text-[var(--color-text-tertiary)]",children:["digest: ",f.digest]}):null,f?.message?(0,d.jsx)("p",{className:"mb-3 text-[12px] leading-5 text-[var(--color-text-secondary)]",children:f.message}):null,f?.stack?(0,d.jsx)("pre",{className:"overflow-x-auto whitespace-pre-wrap font-[var(--font-mono)] text-[11px] leading-5 text-[var(--color-text-tertiary)]",children:f.stack}):null]})]}):null]})})})}},24553:()=>{},26400:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(33666);c(81115);var e=c(23041);function f({error:a,reset:b}){return(0,d.jsx)("html",{lang:"en",className:"dark",children:(0,d.jsx)("body",{className:"bg-[var(--color-bg-base)] text-[var(--color-text-primary)] antialiased",children:(0,d.jsx)(e.ErrorDisplay,{title:"Something broke at the app shell",message:"The dashboard could not recover from this error at the layout level. Try again first, then reload the page if it still fails.",tone:"error",primaryAction:{label:"Try again",onClick:b},secondaryAction:{label:"Reload page",onClick:()=>window.location.reload()},error:a})})})}},27926:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/equinox/agent-orchestrator/packages/web/src/app/global-error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/app/global-error.tsx","default")},37728:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f}),c(81249),c(13081);var d=c(6181);let e={size:{width:180,height:180},contentType:"image/png"};async function f(a){let{__metadata_id__:b,...c}=await a.params,f=(0,d.fillMetadataSegment)(".",c,"apple-icon"),{generateImageMetadata:g}=e;function h(a,b){let c={alt:a.alt,type:a.contentType||"image/png",url:f+(b?"/"+b:"")+"?95aeb60ec7acf330"},{size:d}=a;return d&&(c.sizes=d.width+"x"+d.height),c}return g?(await g({params:c})).map((a,b)=>{let c=(a.id||b)+"";return h(a,c)}):[h(e,"")]}},41936:(a,b,c)=>{Promise.resolve().then(c.bind(c,27926))},49905:(a,b,c)=>{"use strict";function d(){return null}c.d(b,{ServiceWorkerRegistrar:()=>d}),c(81115)},51664:(a,b,c)=>{Promise.resolve().then(c.bind(c,26400))},54433:(a,b,c)=>{Promise.resolve().then(c.bind(c,16819))},55659:(a,b,c)=>{Promise.resolve().then(c.bind(c,88496)),Promise.resolve().then(c.bind(c,49905))},58976:(a,b,c)=>{"use strict";c.d(b,{eT:()=>h,i2:()=>i});var d=c(33666),e=c(81115),f=c.n(e);let g=f().createContext(void 0);function h(){return f().useContext(g)}function i({children:a}){let b=(0,e.useRef)(null),c=(0,e.useRef)(new Map),f=(0,e.useRef)(new Set),[h,i]=(0,e.useState)("connecting"),[j,k]=(0,e.useState)([]),l=(0,e.useRef)(0),m=(0,e.useRef)(null),n=(0,e.useRef)({}),o=(0,e.useRef)(!1),p=(0,e.useCallback)(()=>{if(!b.current){i("connecting");try{let a=function(a){let b=window.location,c="https:"===b.protocol?"wss:":"ws:",d=a.proxyWsPath??process.env.NEXT_PUBLIC_TERMINAL_WS_PATH;if(d){let a=d.replace(/\/ws\/?$/,"");return`${c}//${b.host}${a}/mux`}if(""===b.port||"443"===b.port||"80"===b.port)return`${c}//${b.hostname}/ao-terminal-mux`;let e=a.directTerminalPort??process.env.NEXT_PUBLIC_DIRECT_TERMINAL_PORT??"14801";return`${c}//${b.hostname}:${e}/mux`}(n.current);console.log("[MuxProvider] Connecting to",a);let d=new WebSocket(a);b.current=d,d.addEventListener("open",()=>{if(o.current)return void d.close();for(let a of(console.log("[MuxProvider] Connected"),i("connected"),l.current=0,f.current)){let b={ch:"terminal",id:a,type:"open"};d.send(JSON.stringify(b))}d.send(JSON.stringify({ch:"subscribe",topics:["sessions"]}))}),d.addEventListener("message",a=>{try{let b=JSON.parse(a.data);if("terminal"===b.ch)if("data"===b.type){let a=c.current.get(b.id);if(a)for(let c of a)c(b.data)}else if("opened"===b.type)f.current.add(b.id);else if("exited"===b.type){f.current.delete(b.id);let a=c.current.get(b.id);if(a){let c=`\r
2
- \x1b[31m[Terminal exited with code ${b.code}]\x1b[0m\r
3
- `;for(let b of a)b(c)}}else"error"===b.type&&console.error(`[MuxProvider] Terminal error for ${b.id}:`,b.message);else"sessions"===b.ch&&"snapshot"===b.type&&k(b.sessions)}catch(a){console.error("[MuxProvider] Error processing message:",a)}}),d.addEventListener("error",a=>{console.error("[MuxProvider] WebSocket error:",a)}),d.addEventListener("close",()=>{if(console.log("[MuxProvider] Disconnected"),b.current===d&&(b.current=null),o.current)return;let a=Math.min(1e3*Math.pow(2,l.current),3e4);l.current+=1,i("reconnecting"),m.current=setTimeout(()=>{console.log(`[MuxProvider] Reconnecting (attempt ${l.current})...`),p()},a)})}catch(a){console.error("[MuxProvider] Failed to create WebSocket:",a),i("disconnected")}}},[]),q=(0,e.useCallback)((a,d)=>{let e=c.current.get(a);return e||(e=new Set,c.current.set(a,e)),e.add(d),f.current.has(a)||b.current?.readyState!==WebSocket.OPEN||b.current.send(JSON.stringify({ch:"terminal",id:a,type:"open"})),()=>{let b=c.current.get(a);b&&(b.delete(d),0===b.size&&c.current.delete(a))}},[]),r=(0,e.useCallback)((a,c)=>{b.current?.readyState===WebSocket.OPEN&&b.current.send(JSON.stringify({ch:"terminal",id:a,type:"data",data:c}))},[]),s=(0,e.useCallback)(a=>{f.current.add(a),b.current?.readyState===WebSocket.OPEN&&b.current.send(JSON.stringify({ch:"terminal",id:a,type:"open"}))},[]),t=(0,e.useCallback)(a=>{f.current.delete(a),b.current?.readyState===WebSocket.OPEN&&b.current.send(JSON.stringify({ch:"terminal",id:a,type:"close"}))},[]),u=(0,e.useCallback)((a,c,d)=>{b.current?.readyState===WebSocket.OPEN&&b.current.send(JSON.stringify({ch:"terminal",id:a,type:"resize",cols:c,rows:d}))},[]),v=(0,e.useMemo)(()=>({subscribeTerminal:q,writeTerminal:r,openTerminal:s,closeTerminal:t,resizeTerminal:u,status:h,sessions:j}),[q,r,s,t,u,h,j]);return(0,d.jsx)(g.Provider,{value:v,children:a})}},62108:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,8125,23)),Promise.resolve().then(c.t.bind(c,6125,23)),Promise.resolve().then(c.t.bind(c,74148,23)),Promise.resolve().then(c.t.bind(c,10236,23)),Promise.resolve().then(c.t.bind(c,97760,23)),Promise.resolve().then(c.t.bind(c,9528,23)),Promise.resolve().then(c.t.bind(c,20225,23)),Promise.resolve().then(c.bind(c,23240))},62886:(a,b,c)=>{Promise.resolve().then(c.bind(c,89252))},63028:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(68844),e=c(16819);function f(){return(0,d.jsx)(e.ErrorDisplay,{title:"Page not found",message:"This route does not exist in the dashboard. Return to the main view to pick an active project or session.",tone:"not-found",primaryAction:{label:"Back to dashboard",href:"/"}})}},69648:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>n,generateMetadata:()=>m,viewport:()=>l});var d=c(68844),e=c(34445),f=c.n(e),g=c(84544),h=c.n(g),i=c(81249),j=c(81871),k=c(94666);c(24553);let l={width:"device-width",initialScale:1,viewportFit:"cover",themeColor:[{media:"(prefers-color-scheme: light)",color:"#f5f3f0"},{media:"(prefers-color-scheme: dark)",color:"#121110"}]};async function m(){let a=(0,i.P_)();return{title:{template:`%s | ${a}`,default:`ao | ${a}`},description:"Dashboard for managing parallel AI coding agents",appleWebApp:{capable:!0,statusBarStyle:"black-translucent",title:`ao | ${a}`}}}function n({children:a}){return(0,d.jsx)("html",{lang:"en",className:`dark ${f().variable} ${h().variable}`,suppressHydrationWarning:!0,children:(0,d.jsxs)("body",{className:"h-screen overflow-hidden bg-[var(--color-bg-base)] text-[var(--color-text-primary)] antialiased",children:[(0,d.jsx)(k.Providers,{children:a}),(0,d.jsx)(j.ServiceWorkerRegistrar,{})]})})}},71134:(a,b,c)=>{Promise.resolve().then(c.bind(c,82834))},81249:(a,b,c)=>{"use strict";c.d(b,{Bq:()=>h,P_:()=>g,cf:()=>i});var d=c(29685),e=c(2499);function f(){let a=(0,e.NoB)();try{return(0,e.Z9L)(a)}catch(a){if(a instanceof e.kw3||a instanceof Error&&"code"in a&&"ENOENT"===a.code)return(0,e.Z9L)();throw a}}let g=(0,d.cache)(()=>{try{let a=f(),b=Object.keys(a.projects)[0];if(b)return(a.projects[b].name??b)||b||"ao"}catch{}return"ao"}),h=(0,d.cache)(()=>{try{let a=f(),b=Object.keys(a.projects)[0];if(b)return b}catch{}return"ao"}),i=(0,d.cache)(()=>{try{let a=f();return[...Object.entries(a.projects).map(([a,b])=>({id:a,name:b.name??a,sessionPrefix:b.sessionPrefix??a})),...Object.entries(a.degradedProjects).map(([a,b])=>({id:a,name:a,sessionPrefix:a,resolveError:b.resolveError}))]}catch{return[]}})},81871:(a,b,c)=>{"use strict";c.d(b,{ServiceWorkerRegistrar:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call ServiceWorkerRegistrar() from the server but ServiceWorkerRegistrar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/components/ServiceWorkerRegistrar.tsx","ServiceWorkerRegistrar")},82834:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/equinox/agent-orchestrator/packages/web/src/app/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/app/error.tsx","default")},88496:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>g});var d=c(33666),e=c(93463),f=c(58976);function g({children:a}){return(0,d.jsx)(e.N,{attribute:"class",defaultTheme:"dark",enableSystem:!1,children:(0,d.jsx)(f.i2,{children:a})})}},89252:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(33666),e=c(50436);c(81115);var f=c(23041);function g({error:a,reset:b}){let c=(0,e.useRouter)();return(0,d.jsx)(f.ErrorDisplay,{title:"Something went wrong",message:"The dashboard hit an unexpected error. Try reloading the route data or head back to the main dashboard.",tone:"warning",primaryAction:{label:"Try again",onClick:()=>{b(),c.refresh()}},secondaryAction:{label:"Back to dashboard",href:"/"},error:a,compact:!0,chrome:"card"})}},90881:(a,b,c)=>{Promise.resolve().then(c.bind(c,23041))},94666:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call Providers() from the server but Providers is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/app/providers.tsx","Providers")},95411:(a,b,c)=>{Promise.resolve().then(c.bind(c,94666)),Promise.resolve().then(c.bind(c,81871))}};
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3697],{5611:()=>{},6078:(e,t,r)=>{"use strict";r.r(t),r.d(t,{DirectTerminal:()=>f,buildTerminalThemes:()=>m,resolveMonoFontFamily:()=>h});var n=r(3817),o=r(6749),l=r(7594),a=r(2286),s=r(4901),i=r(5184);let c={deadZone:8,verticalDominance:1.5,maxLinesPerEvent:6,speedMultiplier:3,tmuxPrefix:"\x02"};r(5611);let d="ao-terminal-font-size",u='"JetBrains Mono", "SF Mono", Menlo, Monaco, "Courier New", monospace';function h(){try{let e=getComputedStyle(document.documentElement).getPropertyValue("--font-jetbrains-mono").trim();return e?"".concat(e,", ").concat(u):u}catch(e){return u}}function m(e){let t="#5b7ef8",r="rgba(91, 126, 248, 0.30)",n="rgba(91, 126, 248, 0.25)";return{dark:{background:"#0a0a0f",foreground:"#d4d4d8",cursor:t,cursorAccent:"#0a0a0f",selectionBackground:r,selectionInactiveBackground:"rgba(128, 128, 128, 0.2)",black:"#1a1a24",red:"#ef4444",green:"#22c55e",yellow:"#f59e0b",blue:"#5b7ef8",magenta:"#a371f7",cyan:"#22d3ee",white:"#d4d4d8",brightBlack:"#50506a",brightRed:"#f87171",brightGreen:"#4ade80",brightYellow:"#fbbf24",brightBlue:"#7b9cfb",brightMagenta:"#c084fc",brightCyan:"#67e8f9",brightWhite:"#eeeef5"},light:{background:"#fafafa",foreground:"#24292f",cursor:t,cursorAccent:"#fafafa",selectionBackground:n,selectionInactiveBackground:"rgba(128, 128, 128, 0.15)",black:"#24292f",red:"#b42318",green:"#1f7a3d",yellow:"#8a5a00",blue:"#175cd3",magenta:"#8e24aa",cyan:"#0b7285",white:"#4b5563",brightBlack:"#374151",brightRed:"#912018",brightGreen:"#176639",brightYellow:"#6f4a00",brightBlue:"#1d4ed8",brightMagenta:"#7b1fa2",brightCyan:"#155e75",brightWhite:"#374151"}}}function f(e){let{sessionId:t,startFullscreen:u=!1,variant:f="agent",appearance:p="theme",height:x="max(440px, calc(100dvh - 440px))",isOpenCodeSession:b=!1,reloadCommand:v,chromeless:g=!1,autoFocus:y=!1}=e,w=(0,l.useRouter)(),j=(0,l.usePathname)(),k=(0,l.useSearchParams)(),{resolvedTheme:C}=(0,a.D)(),S=(0,o.useMemo)(()=>m(f),[f]),{subscribeTerminal:E,writeTerminal:N,resizeTerminal:T,openTerminal:M,closeTerminal:L,status:A}=(0,i.Ug)(),F=(0,o.useRef)(null),R=(0,o.useRef)(null),B=(0,o.useRef)(null),P=(0,o.useRef)(A);P.current=A;let[I,z]=(0,o.useState)(u),[D,O]=(0,o.useState)(null),[_,H]=(0,o.useState)(!1),[W,K]=(0,o.useState)(null),[q,Y]=(0,o.useState)(function(){try{let e=localStorage.getItem(d);if(e){let t=parseInt(e,10);if(!Number.isNaN(t))return Math.max(9,Math.min(18,t))}}catch(e){}return 13}()),U=(0,o.useRef)(!0),[X,J]=(0,o.useState)(!0);async function V(){if(b&&!_){K(null),H(!0);try{let e=v;if(!e){let r=await fetch("/api/sessions/".concat(encodeURIComponent(t),"/remap"),{method:"POST"});if(!r.ok)throw Error("Failed to remap OpenCode session: ".concat(r.status));let n=await r.json();if("string"!=typeof n.opencodeSessionId||0===n.opencodeSessionId.length)throw Error("Missing OpenCode session id after remap");e="/exit\nopencode --session ".concat(n.opencodeSessionId,"\n")}let r=await fetch("/api/sessions/".concat(encodeURIComponent(t),"/send"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e})});if(!r.ok)throw Error("Failed to send reload command: ".concat(r.status))}catch(e){K(e instanceof Error?e.message:"Failed to reload OpenCode session")}finally{H(!1)}}}(0,o.useEffect)(()=>{let e=new URLSearchParams(k.toString());I?e.set("fullscreen","true"):e.delete("fullscreen");let t=e.toString()?"".concat(j,"?").concat(e.toString()):j;w.replace(t,{scroll:!1})},[I,j,w,k]),(0,o.useEffect)(()=>{if(!F.current)return;let e=!0,n=null,o=null,l=null;return Promise.all([r.e(4560).then(r.bind(r,5627)).then(e=>e.Terminal),r.e(2529).then(r.bind(r,2529)).then(e=>e.FitAddon),r.e(5491).then(r.bind(r,5491)).then(e=>e.WebLinksAddon),document.fonts.ready]).then(r=>{var a,s;let[i,d,u]=r;if(!e||!F.current)return;let m="dark"===p||"light"!==C,f=m?S.dark:S.light,x=new i({cursorBlink:!0,fontSize:q,fontFamily:h(),lineHeight:1.2,theme:f,minimumContrastRatio:m?1:7,scrollback:1e4,allowProposedApi:!0,fastScrollSensitivity:3,scrollSensitivity:1}),b=new d;x.loadAddon(b),B.current=b;let v=new u;x.loadAddon(v),x.parser.registerCsiHandler({prefix:">",final:"q"},()=>(x.write("\x1bP>|XTerm(370)\x1b\\"),console.log("[DirectTerminal] Sent XDA response for clipboard support"),!0)),x.parser.registerOscHandler(52,e=>{let t=e.split(";");if(t.length<2)return!1;let r=t[t.length-1];try{var n;let e=atob(r),t=Uint8Array.from(e,e=>e.charCodeAt(0)),o=new TextDecoder().decode(t);null==(n=navigator.clipboard)||n.writeText(o).catch(()=>{})}catch(e){}return!0}),x.open(F.current),R.current=x,y&&x.focus(),b.fit();let g=setTimeout(()=>{if(e&&B.current)try{B.current.fit(),T(t,x.cols,x.rows)}catch(e){}},100),w=()=>{if(e&&B.current&&R.current)try{var r,n;R.current.options.fontFamily=h(),null==(r=(n=R.current).clearTextureAtlas)||r.call(n),B.current.fit(),T(t,R.current.cols,R.current.rows)}catch(e){}},j="undefined"!=typeof document?document.fonts:void 0,k=!!j&&"function"==typeof j.addEventListener;k&&j.addEventListener("loadingdone",w);let A=null!=(s=null==(a=x.element)?void 0:a.querySelector(".xterm-viewport"))?s:null,P=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={...c,...r},o=e.element;if(!o)return()=>{};let l=o.style.touchAction;o.style.touchAction="none";let a=o.querySelector(".xterm-viewport");a&&(a.style.touchAction="none");let s=0,i=0,d=0,u=null,h=!1,m=e=>{"touch"===e.pointerType&&(s=e.clientX,i=e.clientY,d=e.clientY,u=null,h=!1)},f=l=>{var a,c,m;if("touch"!==l.pointerType)return;let f=l.clientX-s,p=l.clientY-i,x=Math.abs(f),b=Math.abs(p);if(null===u){if(Math.max(x,b)<n.deadZone)return;if(b<n.verticalDominance*x){u=!1;return}u=!0;try{o.setPointerCapture(l.pointerId)}catch(e){}}if(!0!==u)return;l.preventDefault();let v=Math.round((l.clientY-d)/((null!=(m=e.options.fontSize)?m:13)*1.2));if(v>n.maxLinesPerEvent&&(v=n.maxLinesPerEvent),v<-n.maxLinesPerEvent&&(v=-n.maxLinesPerEvent),0===v)return;d=l.clientY;let g=v*n.speedMultiplier;if(v>0?null==(a=r.onScrollAway)||a.call(r):null==(c=r.onScrollTowardLatest)||c.call(r),"normal"===e.buffer.active.type)e.scrollLines(-g);else{h||(h=!0,t(n.tmuxPrefix+"["));let e=v>0?"\x1b[A":"\x1b[B",r=Math.abs(g);for(let n=0;n<r;n++)t(e)}},p=e=>{if("touch"===e.pointerType){try{o.hasPointerCapture(e.pointerId)&&o.releasePointerCapture(e.pointerId)}catch(e){}u=null}},x={capture:!0},b={capture:!0,passive:!1};return o.addEventListener("pointerdown",m,x),o.addEventListener("pointermove",f,b),o.addEventListener("pointerup",p,x),o.addEventListener("pointercancel",p,x),()=>{o.removeEventListener("pointerdown",m,x),o.removeEventListener("pointermove",f,b),o.removeEventListener("pointerup",p,x),o.removeEventListener("pointercancel",p,x),o.style.touchAction=l}}(x,e=>{N(t,e)},{onScrollAway:()=>{U.current=!1,J(!1)},onScrollTowardLatest:()=>{U.current=!0,J(!0)}}),I=null;F.current&&(I=new ResizeObserver(()=>{if(e&&B.current)try{B.current.fit(),T(t,x.cols,x.rows)}catch(e){}})).observe(F.current);let z=[],D=!1,O=null,_=0,H=()=>{O&&(clearTimeout(O),O=null),z.length>0&&(x.write(z.join("")),z.length=0,_=0)},W=x.onSelectionChange(()=>{x.hasSelection()?(D=!0,O||(O=setTimeout(()=>{D=!1,H()},5e3))):(D=!1,H())});x.attachCustomKeyEventHandler(e=>{if("keydown"!==e.type)return!0;if((e.metaKey&&!e.ctrlKey&&!e.altKey&&"KeyC"===e.code||e.ctrlKey&&e.shiftKey&&"KeyC"===e.code)&&x.hasSelection()){var t;return null==(t=navigator.clipboard)||t.writeText(x.getSelection()).catch(()=>{}),x.clearSelection(),!1}return!0}),M(t),l=E(t,e=>{D?(z.push(e),(_+=e.length)>1048576&&(D=!1,H())):(x.write(e),U.current&&A&&(K=!0,A.scrollTop=A.scrollHeight))});let K=!1,Y=()=>{if(A){if(K){K=!1;return}A.scrollHeight-A.scrollTop-A.clientHeight<24?(U.current=!0,J(!0)):(U.current=!1,J(!1))}};null==A||A.addEventListener("scroll",Y,{passive:!0});let X=()=>{b&&(b.fit(),T(t,x.cols,x.rows))};window.addEventListener("resize",X),o=x.onData(e=>{N(t,e)}),T(t,x.cols,x.rows),n=()=>{clearTimeout(g),null==I||I.disconnect(),P(),W.dispose(),O&&clearTimeout(O),window.removeEventListener("resize",X),k&&j&&j.removeEventListener("loadingdone",w),null==A||A.removeEventListener("scroll",Y),null==o||o.dispose(),o=null,null==l||l(),L(t),x.dispose()}}).catch(e=>{console.error("[DirectTerminal] Failed to load xterm.js:",e),O("Failed to load terminal")}),()=>{e=!1,null==n||n()}},[p,t,f,C,S,E,N,T,M,L]),(0,o.useEffect)(()=>{if("connected"!==A)return;let e=B.current,r=R.current;e&&r&&(e.fit(),T(t,r.cols,r.rows))},[A,t,T]),(0,o.useEffect)(()=>{let e=R.current;if(!e)return;let t="dark"===p||"light"!==C;e.options.theme=t?S.dark:S.light,e.options.minimumContrastRatio=t?1:7},[p,C,S]),(0,o.useEffect)(()=>{let e=R.current,r=B.current;if(e&&r){e.options.fontSize=q;try{localStorage.setItem(d,String(q))}catch(e){}r.fit(),T(t,e.cols,e.rows)}},[q,t,T]),(0,o.useEffect)(()=>{let e=B.current,r=R.current,n=F.current;if(!e||!r||"connected"!==P.current||!n)return;let o=0,l=!1,a=0,s=-1,i=()=>{if(l)return;o++;let c=n.getBoundingClientRect().height,d=s>=0&&1>Math.abs(c-s);if(s=c,!d&&o<60){a=requestAnimationFrame(i);return}r.refresh(0,r.rows-1),e.fit(),r.refresh(0,r.rows-1),T(t,r.cols,r.rows)};a=requestAnimationFrame(i);let c=e=>{l||e.target===n.parentElement&&(o=0,s=-1,setTimeout(()=>{l||(a=requestAnimationFrame(i))},50))},d=n.parentElement;null==d||d.addEventListener("transitionend",c);let u=setTimeout(()=>{l||(o=0,s=-1,i())},300),h=setTimeout(()=>{l||(o=0,s=-1,i())},600);return()=>{l=!0,cancelAnimationFrame(a),null==d||d.removeEventListener("transitionend",c),clearTimeout(u),clearTimeout(h)}},[I,t,T]);let G="var(--color-accent)",Z=D?"error":A,Q="dark"===p||"light"!==C,$=(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)("button",{onClick:()=>Y(e=>Math.max(9,e-1)),disabled:q<=9,className:"w-5 h-5 text-xs flex items-center justify-center rounded hover:bg-white/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":"Decrease font size",children:"−"}),(0,n.jsxs)("span",{className:"w-9 text-center text-xs font-medium text-[var(--color-text-secondary)]",children:[q,"px"]}),(0,n.jsx)("button",{onClick:()=>Y(e=>Math.min(18,e+1)),disabled:q>=18,className:"w-5 h-5 text-xs flex items-center justify-center rounded hover:bg-white/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":"Increase font size",children:"+"})]}),ee=(0,n.jsx)("button",{onClick:()=>z(!I),className:(0,s.cn)("flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)]",!b&&!g&&"ml-auto"),"aria-label":I?"exit fullscreen":"fullscreen",children:I?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3"})}),"exit fullscreen"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3"})}),"fullscreen"]})});return(0,n.jsxs)("div",{className:(0,s.cn)("overflow-hidden border border-[var(--color-border-default)] flex flex-col",I?"fixed inset-0 z-50 rounded-none border-0":"relative h-full",Q?"bg-[#0a0a0f]":"bg-[#fafafa]",g&&"border-0"),children:[g?null:(0,n.jsxs)("div",{className:"terminal-chrome-bar flex items-center gap-2 border-b border-[var(--color-border-subtle)] bg-[var(--color-bg-elevated)] px-3 py-2",children:[(0,n.jsx)("span",{className:"terminal-chrome-pane-label",children:"TERMINAL"}),(0,n.jsxs)("div",{className:"terminal-chrome-identity",children:[(0,n.jsx)("span",{className:"terminal-chrome-session-id font-[var(--font-mono)] text-[11px]",style:{color:G},children:t}),(0,n.jsxs)("div",{className:"terminal-chrome-status-row",children:[(0,n.jsx)("div",{className:(0,s.cn)("h-2 w-2 shrink-0 rounded-full","connected"===Z?"bg-[var(--color-status-ready)]":"error"===Z||"disconnected"===Z?"bg-[var(--color-status-error)]":"bg-[var(--color-status-attention)] animate-[pulse_1.5s_ease-in-out_infinite]")}),(0,n.jsx)("span",{className:(0,s.cn)("text-[10px] font-medium uppercase tracking-[0.06em]","connected"===Z?"text-[var(--color-status-ready)]":"error"===Z||"disconnected"===Z?"text-[var(--color-status-error)]":"text-[var(--color-text-tertiary)]"),children:"connected"===Z?"Connected":"error"===Z?null!=D?D:"Error":"disconnected"===Z?"Disconnected":"Connecting…"}),(0,n.jsx)("span",{className:"px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-[0.06em]",style:{color:G,background:"color-mix(in srgb, ".concat(G," 12%, transparent)")},children:"XDA"})]})]}),(0,n.jsx)("div",{className:"flex-1"}),$,b?(0,n.jsx)("button",{onClick:V,disabled:_||"connected"!==A,title:"Restart OpenCode session (/exit then resume mapped session)","aria-label":"Restart OpenCode session",className:"flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-70",children:_?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3 animate-spin",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 3a9 9 0 109 9"})}),"restarting"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{d:"M21 12a9 9 0 11-2.64-6.36"}),(0,n.jsx)("path",{d:"M21 3v6h-6"})]}),"restart"]})}):null,W?(0,n.jsx)("span",{className:"max-w-[40ch] truncate text-[10px] font-medium text-[var(--color-status-error)]",title:W,children:W}):null,ee]}),g?(0,n.jsxs)("div",{className:"absolute right-3 top-3 z-10 flex items-center gap-1 rounded-[6px] border border-[var(--color-border-subtle)] bg-[color-mix(in_srgb,var(--color-bg-elevated)_92%,transparent)] px-1.5 py-1 shadow-[0_8px_24px_rgba(0,0,0,0.18)] backdrop-blur-sm",children:[b?(0,n.jsx)("button",{onClick:V,disabled:_||"connected"!==A,title:"Restart OpenCode session (/exit then resume mapped session)","aria-label":"Restart OpenCode session",className:"flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-70",children:_?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3 animate-spin",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 3a9 9 0 109 9"})}),"restarting"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{d:"M21 12a9 9 0 11-2.64-6.36"}),(0,n.jsx)("path",{d:"M21 3v6h-6"})]}),"restart"]})}):null,ee]}):null,(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[X?null:(0,n.jsx)("button",{type:"button",onClick:()=>{U.current=!0,J(!0);let e=R.current;if(e){var t;let r=null==(t=e.element)?void 0:t.querySelector(".xterm-viewport");r&&(r.scrollTop=r.scrollHeight)}},className:"absolute bottom-3 right-3 z-20 flex h-8 w-8 items-center justify-center rounded-full border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] text-[var(--color-text-primary)] shadow-md active:scale-95","aria-label":"Jump to latest",title:"Jump to latest",children:(0,n.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M19 14l-7 7m0 0l-7-7m7 7V3"})})}),(0,n.jsx)("div",{ref:F,className:"w-full flex flex-col flex-1 min-h-0 overflow-hidden"})]})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4465],{2466:(e,s,r)=>{r.d(s,{I:()=>a});let a=(0,r(6749).createContext)(null)},4465:(e,s,r)=>{r.d(s,{Dashboard:()=>A});var a=r(3817),t=r(6749),n=r(8713),o=r.n(n),l=r(7594),i=r(9120),c=r(545),d=r(4901),h=r(7387),x=r(4906),u=r(1237),p=r(8450);let m=(0,t.memo)(function(e){var s,r,n,o,l,i;let{session:m,onSend:v,onKill:g,onMerge:b,onRestore:j}=e,[f,_]=(0,t.useState)(!1),[k,y]=(0,t.useState)(null),[N,w]=(0,t.useState)(null),[C,M]=(0,t.useState)(null),[S,P]=(0,t.useState)(null),[R,W]=(0,t.useState)(!1),[I,T]=(0,t.useState)(""),B=(0,t.useRef)(null),D=(0,t.useRef)(null),A=(0,c.ng)(m),O=m.pr,F=async e=>{let s=e.trim();if(!s||null!==C)return!1;M(s),P(null);try{return await Promise.resolve(null==v?void 0:v(m.id,s)),P(s),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>P(null),2e3),!0}catch(e){return!1}finally{M(null)}},L=async e=>{"Enter"===e.key&&!e.shiftKey&&(e.preventDefault(),await F(I)&&T(""))};(0,t.useEffect)(()=>()=>{B.current&&clearTimeout(B.current),D.current&&clearTimeout(D.current)},[]);let E=async(e,s)=>{if(null===k){y(e),w(null);try{await Promise.resolve(null==v?void 0:v(m.id,s)),B.current&&clearTimeout(B.current),B.current=setTimeout(()=>y(null),2e3)}catch(s){y(null),w(e),B.current&&clearTimeout(B.current),B.current=setTimeout(()=>w(null),2e3)}}},H=!!O&&(0,c.fZ)(O),K=!!O&&(0,c.sZ)(O),Z=function(e){var s,r,t,n,o;let l=e.pr;if(!l||"open"!==l.state||(0,c.fZ)(l)||(0,c.sZ)(l))return[];let i=e.metadata,d=[],h=null!=(r=null==(s=e.lifecycle)?void 0:s.prReason)?r:null,x=i.status,u=l.ciStatus===c.U1.FAILING||"ci_failing"===h||"ci_failed"===x,p="changes_requested"===l.reviewDecision||"changes_requested"===h||"changes_requested"===x,m=!l.mergeability.noConflicts;if(u){let e=l.ciChecks.find(e=>"failed"===e.status),s=l.ciChecks.filter(e=>"failed"===e.status).length;0===s&&l.ciStatus!==c.U1.FAILING?d.push({key:"ci-fail",type:"ci",icon:"✗",label:"CI failing",url:l.url+"/checks",notified:!!i.lastCIFailureDispatchHash,actionLabel:"Ask to fix",actionMessage:"Please fix the failing CI checks on ".concat(l.url)}):0===s?d.push({key:"ci-unknown",type:"ci",icon:"?",label:"CI unknown",url:l.url+"/checks"}):d.push({key:"ci-fail",type:"ci",icon:"✗",count:s,label:"check".concat(s>1?"s":""," failing"),url:null!=(t=null==e?void 0:e.url)?t:l.url+"/checks",notified:!!i.lastCIFailureDispatchHash,actionLabel:"Ask to fix",actionMessage:"Please fix the failing CI checks on ".concat(l.url)})}if(p?d.push({key:"changes",type:"changes",icon:"↻",label:"changes requested",url:l.url,notified:!!i.lastPendingReviewDispatchHash,actionLabel:"Ask to address",actionMessage:"Please address the requested changes on ".concat(l.url)}):l.isDraft||"pending"!==l.reviewDecision&&"none"!==l.reviewDecision||d.push({key:"review",type:"review",icon:(0,a.jsxs)("svg",{width:"9",height:"9",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"}),(0,a.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,a.jsx)("path",{d:"M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"})]}),label:"needs review",url:l.url,actionLabel:"Ask to post",actionMessage:"Post ".concat(l.url," on slack asking for a review.")}),m&&d.push({key:"conflict",type:"conflict",icon:"⚠",label:"merge conflict",url:l.url,notified:"true"===i.lastMergeConflictDispatched,actionLabel:"Ask to fix",actionMessage:"Please resolve the merge conflicts on ".concat(l.url," by rebasing on the base branch")}),l.unresolvedThreads>0){let e=null!=(o=null==(n=l.unresolvedComments[0])?void 0:n.url)?o:l.url+"/files";d.push({key:"comments",type:"comment",icon:"\uD83D\uDCAC",label:"unresolved comments",count:l.unresolvedThreads,url:e,actionLabel:"Ask to resolve",actionMessage:"Please address all unresolved review comments on ".concat(l.url)})}return d}(m),U=!H&&(null==O?void 0:O.mergeability.mergeable)&&"open"===O.state,q=(0,c.nH)(m),z=(0,c.wy)(m),V=(0,h.Pn)(m),G=(n=m,o=A,U||"merge"===o?"mergeable":(null==(l=n.lifecycle)?void 0:l.sessionState)==="detecting"?"detecting":"respond"===o?(0,c.Ou)(n):(null==(i=n.lifecycle)?void 0:i.prReason)==="ci_failing"||"ci_failed"===n.status?"ci failing":"review"===o?(0,c.of)(n):(0,c.Ou)(n)),J=H||!O||K?[]:O.ciChecks.filter(e=>"passed"===e.status).slice(0,3),$=(0,c.dG)(m)||"done"===A,Q=m.lifecycle?["Session ".concat((0,c.Ou)(m)),"PR ".concat((0,c.of)(m)),"Runtime ".concat((0,c.Kw)(m))].join(" \xb7 "):null,X=(0,c.p$)(m),Y=m.issueLabel?"".concat(m.issueLabel).concat(m.issueTitle?" \xb7 ".concat(m.issueTitle):""):null!=(s=m.issueTitle)?s:m.summary&&m.summary!==V?m.summary:null,ee=U?"session-card--merge-frame":Z.length>0?"session-card--alert-frame":"session-card--fixed",es=U?"session-card--accent-merge":"working"===A?"session-card--accent-working":"respond"===A?"session-card--accent-respond":"review"===A||"pending"===A?"session-card--accent-attention":"session-card--accent-default";if($){let e=function(e){var s,r,t,n;let o=e.activity,l=e.status,i=null!=(n=null==(s=e.lifecycle)?void 0:s.prState)?n:null==(r=e.pr)?void 0:r.state;return"merged"===i||"merged"===l?{label:"merged",pillClass:"done-status-pill--merged",icon:(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",className:"h-3 w-3",children:(0,a.jsx)("path",{d:"M20 6 9 17l-5-5"})})}:"closed"===i?{label:"closed",pillClass:"done-status-pill--exited",icon:(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-3 w-3",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,a.jsx)("path",{d:"M9 12h6"})]})}:(null==(t=e.lifecycle)?void 0:t.sessionState)==="terminated"||"killed"===l||"terminated"===l?{label:(0,c.Ou)(e),pillClass:"done-status-pill--killed",icon:(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",className:"h-3 w-3",children:(0,a.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})}:{label:"exited"===o?"exited":(0,c.Ou)(e),pillClass:"done-status-pill--exited",icon:(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-3 w-3",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,a.jsx)("path",{d:"M9 12h6"})]})}}(m);return(0,a.jsxs)("div",{className:(0,d.cn)("session-card-done",f&&"done-expanded"),onClick:e=>{e.target.closest("a, button, textarea")||_(!f)},children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-3 pb-1.5",children:[(0,a.jsxs)("span",{className:(0,d.cn)("done-status-pill",e.pillClass),children:[e.icon,e.label]}),(0,a.jsx)("span",{className:"font-[var(--font-mono)] text-[10px] tracking-wide text-[var(--color-text-muted)]",children:m.id}),(0,a.jsx)("div",{className:"flex-1"}),z&&(0,a.jsxs)("button",{onClick:e=>{e.stopPropagation(),null==j||j(m.id)},className:"done-restore-btn",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-3 w-3",children:[(0,a.jsx)("polyline",{points:"1 4 1 10 7 10"}),(0,a.jsx)("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})]}),"restore"]})]}),(0,a.jsx)("div",{className:"px-3.5 pb-2",children:(0,a.jsx)("p",{className:"session-card-done__title text-[13px] font-semibold leading-snug [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:2] overflow-hidden",children:V})}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 px-3.5 pb-3",children:[m.branch&&(0,a.jsxs)("span",{className:"done-meta-chip font-[var(--font-mono)]",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-2.5 w-2.5 opacity-50",children:[(0,a.jsx)("path",{d:"M6 3v12M18 9a3 3 0 0 1-3 3H9a3 3 0 0 0-3 3"}),(0,a.jsx)("circle",{cx:"18",cy:"6",r:"3"})]}),m.branch]}),O&&(0,a.jsxs)("a",{href:O.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"done-meta-chip font-[var(--font-mono)] font-bold text-[var(--color-text-primary)] no-underline underline-offset-2 hover:underline",children:["#",O.number]}),O&&!H&&(K?(0,a.jsx)("span",{className:"inline-block h-[14px] w-16 animate-pulse rounded-full bg-[var(--color-bg-subtle)]"}):(0,a.jsxs)("span",{className:"done-meta-chip font-[var(--font-mono)]",children:[(0,a.jsxs)("span",{className:"text-[var(--color-status-ready)]",children:["+",O.additions]})," ",(0,a.jsxs)("span",{className:"text-[var(--color-status-error)]",children:["-",O.deletions]})," ",(0,u.i_)(O.additions,O.deletions),(0,a.jsx)("span",{className:"sr-only",children:"+".concat(O.additions," -").concat(O.deletions," ").concat((0,u.i_)(O.additions,O.deletions))})]}))]}),f&&(0,a.jsxs)("div",{className:"done-expand-section px-3.5 py-3",children:[m.summary&&(null==O?void 0:O.title)&&m.summary!==O.title&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsxs)("div",{className:"done-detail-heading",children:[(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M4 6h16M4 12h16M4 18h10"})}),"Summary"]}),(0,a.jsx)("p",{className:"text-[12px] leading-relaxed text-[var(--color-text-secondary)]",children:m.summary})]}),m.issueUrl&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsxs)("div",{className:"done-detail-heading",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,a.jsx)("path",{d:"M12 8v4M12 16h.01"})]}),"Issue"]}),(0,a.jsxs)("a",{href:m.issueUrl,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"text-[12px] text-[var(--color-accent)] hover:underline",children:[m.issueLabel||m.issueUrl,m.issueTitle&&": ".concat(m.issueTitle)]})]}),O&&O.ciChecks.length>0&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsxs)("div",{className:"done-detail-heading",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("path",{d:"M9 12l2 2 4-4"}),(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"})]}),"CI Checks"]}),(0,a.jsx)(x.zm,{checks:O.ciChecks})]}),O&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsxs)("div",{className:"done-detail-heading",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65S8.93 17.38 9 18v4"}),(0,a.jsx)("path",{d:"M9 18c-4.51 2-5-2-7-2"})]}),"PR"]}),(0,a.jsxs)("p",{className:"text-[12px] text-[var(--color-text-secondary)]",children:[(0,a.jsx)("a",{href:O.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"hover:underline",children:O.title}),K?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("br",{}),(0,a.jsxs)("span",{className:"mt-1 inline-flex items-center gap-2 text-[10px] text-[var(--color-text-muted)]",children:[(0,a.jsx)("span",{className:"inline-block h-3 w-12 animate-pulse rounded bg-[var(--color-bg-subtle)]"}),(0,a.jsx)("span",{children:"PR details loading..."})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("br",{}),(0,a.jsxs)("span",{className:"mt-1 inline-flex items-center gap-2",children:[(0,a.jsxs)("span",{className:"done-meta-chip font-[var(--font-mono)]",children:[(0,a.jsxs)("span",{className:"text-[var(--color-status-ready)]",children:["+",O.additions]})," ",(0,a.jsxs)("span",{className:"text-[var(--color-status-error)]",children:["-",O.deletions]})]}),(0,a.jsx)("span",{className:"text-[var(--color-text-muted)]",children:"\xb7"}),(0,a.jsxs)("span",{className:"text-[10px] text-[var(--color-text-muted)]",children:["mergeable: ",O.mergeability.mergeable?"yes":"no"]}),(0,a.jsx)("span",{className:"text-[var(--color-text-muted)]",children:"\xb7"}),(0,a.jsxs)("span",{className:"text-[10px] text-[var(--color-text-muted)]",children:["review: ",O.reviewDecision]})]})]})]})]}),!O&&(0,a.jsx)("p",{className:"text-[12px] text-[var(--color-text-tertiary)]",children:"No PR associated with this session."})]})]})}let er=q?"exited":U||"merge"===A||"review"===A?"ready":"respond"===A?"waiting":"pending"===A?"idle":"working"===A?"working":"idle";return(0,a.jsxs)("div",{className:(0,d.cn)("session-card kanban-card-enter border",ee,es,U&&"card-merge-ready"),children:[(0,a.jsxs)("div",{className:"session-card__header",children:[(0,a.jsx)("span",{className:(0,d.cn)("card__adot","working"===er&&"card__adot--working","ready"===er&&"card__adot--ready","idle"===er&&"card__adot--idle","waiting"===er&&"card__adot--waiting","exited"===er&&"card__adot--exited")}),(0,a.jsx)("span",{className:"card__id",children:m.id}),(0,a.jsx)("div",{className:"flex-1"}),z&&(0,a.jsxs)("button",{onClick:e=>{e.stopPropagation(),null==j||j(m.id)},className:"inline-flex items-center gap-1 border border-[color-mix(in_srgb,var(--color-accent)_35%,transparent)] px-2 py-0.5 text-[11px] text-[var(--color-accent)] transition-colors hover:bg-[var(--color-tint-blue)]",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-3 w-3",children:[(0,a.jsx)("polyline",{points:"1 4 1 10 7 10"}),(0,a.jsx)("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})]}),"restore"]}),!q&&(0,a.jsxs)("a",{href:(0,p.$l)(m.projectId,m.id,"#session-terminal-section"),onClick:e=>e.stopPropagation(),className:"session-card__control session-card__terminal-link",children:[(0,a.jsxs)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2"}),(0,a.jsx)("path",{d:"M6 10l4 2-4 2"}),(0,a.jsx)("path",{d:"M14 14h4"})]}),"terminal"]})]}),(0,a.jsxs)("div",{className:"session-card__body flex min-h-0 flex-1 flex-col",children:[(0,a.jsx)("div",{className:"card__title-wrap",children:(0,a.jsx)("p",{className:"card__title",children:V})}),(0,a.jsxs)("div",{className:"card__meta",children:[m.branch&&(0,a.jsx)("span",{className:"card__branch",children:m.branch}),m.branch&&O?(0,a.jsx)("span",{className:"card__meta-sep","aria-hidden":"true",children:"\xb7"}):null,O&&(0,a.jsxs)("a",{href:O.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"card__pr",children:["#",O.number]}),O&&!H&&(K?(0,a.jsx)("span",{className:"inline-block h-[14px] w-16 animate-pulse rounded-full bg-[var(--color-bg-subtle)]"}):(0,a.jsxs)("span",{className:"card__diff inline-flex items-center",children:[(0,a.jsxs)("span",{className:"card__diff-add",children:["+",O.additions]})," ",(0,a.jsxs)("span",{className:"card__diff-del",children:["-",O.deletions]})," ",(0,a.jsx)("span",{className:"card__diff-size",children:(0,u.i_)(O.additions,O.deletions)}),(0,a.jsx)("span",{className:"sr-only",children:"+".concat(O.additions," -").concat(O.deletions," ").concat((0,u.i_)(O.additions,O.deletions))})]}))]}),Y&&(0,a.jsx)("div",{className:"px-[10px] pb-[5px]",children:"merge"===A||U?(0,a.jsxs)("p",{className:"session-card__secondary session-card__secondary--merge",children:[(0,a.jsx)("svg",{width:"9",height:"9",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M20 6 9 17l-5-5"})}),(0,a.jsx)("span",{children:Y})]}):(0,a.jsx)("p",{className:"session-card__secondary",children:Y})}),Q&&(0,a.jsx)("div",{className:"px-[10px] pb-[5px]",children:(0,a.jsx)("p",{className:"text-[10px] leading-relaxed text-[var(--color-text-tertiary)]",children:Q})}),X&&(0,a.jsx)("div",{className:"px-[10px] pb-[6px]",children:(0,a.jsx)("p",{className:"inline-flex items-center gap-1 rounded-full border border-[color-mix(in_srgb,var(--color-status-attention)_35%,transparent)] bg-[color-mix(in_srgb,var(--color-status-attention)_9%,transparent)] px-2 py-1 text-[10px] leading-none text-[var(--color-status-attention)]",children:X})}),H&&(null==O?void 0:O.state)==="open"&&(0,a.jsx)("div",{className:"px-[10px] pb-[5px]",children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-[var(--color-text-muted)]",children:[(0,a.jsxs)("svg",{className:"h-3 w-3 text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,a.jsx)("path",{d:"M12 8v4M12 16h.01"})]}),"PR data rate limited"]})}),J.length>0&&(0,a.jsx)("div",{className:"card__ci",children:J.map(e=>{let s=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("svg",{width:"8",height:"8",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M20 6 9 17l-5-5"})}),e.name]});return e.url?(0,a.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"ci-chip ci-chip--pass",onClick:e=>e.stopPropagation(),children:s},e.name):(0,a.jsx)("span",{className:"ci-chip ci-chip--pass",children:s},e.name)})}),!H&&Z.length>0&&(0,a.jsx)("div",{className:"card__alerts flex flex-col",children:Z.slice(0,3).map(e=>(0,a.jsxs)("div",{className:(0,d.cn)("alert-row","alert-row--".concat(e.type)),children:[(0,a.jsx)("span",{className:"alert-row__icon",children:e.icon}),(0,a.jsxs)("span",{className:"alert-row__text",children:[(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:[void 0!==e.count&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"font-bold",children:e.count})," "]}),e.label]}),e.notified&&(0,a.jsxs)("span",{className:"alert-row__notified",title:"Agent has been notified",children:[" ","\xb7 notified"]})]}),e.actionLabel&&(0,a.jsx)("button",{onClick:s=>{var r;s.stopPropagation(),E(e.key,null!=(r=e.actionMessage)?r:"")},disabled:k===e.key,className:"alert-row__action",children:k===e.key?"sent!":N===e.key?"failed":e.actionLabel})]},e.key))}),"respond"===A&&(0,a.jsxs)("div",{className:"quick-reply",onClick:e=>e.stopPropagation(),children:[m.summary&&!m.summaryIsFallback&&(0,a.jsxs)("div",{className:"card__agent-msg",children:[(0,a.jsx)("svg",{className:"card__agent-msg-icon",width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})}),(0,a.jsx)("span",{children:m.summary})]}),(0,a.jsx)("a",{href:(0,p.Nc)(m.projectId,m.id),onClick:e=>e.stopPropagation(),className:"card__view-context",children:"View current context →"}),(0,a.jsxs)("div",{className:"card__presets",children:[(0,a.jsx)("button",{className:"card__preset",onClick:()=>void F("continue"),disabled:null!==C,children:"continue"===C?"Sending...":"continue"===S?"Sent":"Continue"}),(0,a.jsx)("button",{className:"card__preset",onClick:()=>void F("abort"),disabled:null!==C,children:"abort"===C?"Sending...":"abort"===S?"Sent":"Abort"}),(0,a.jsx)("button",{className:"card__preset",onClick:()=>void F("skip"),disabled:null!==C,children:"skip"===C?"Sending...":"skip"===S?"Sent":"Skip"})]}),(0,a.jsx)("div",{className:"card__reply-wrap",children:(0,a.jsx)("textarea",{className:"card__reply",placeholder:null!==C?"Sending...":"Type a reply... (Enter to send)","aria-label":"Type a reply to the agent",value:I,onChange:e=>T(e.target.value),onKeyDown:e=>{L(e)},rows:1,disabled:null!==C})})]}),(0,a.jsxs)("div",{className:"session-card__footer",children:[(0,a.jsx)("span",{className:"card__status min-w-0 truncate",title:null!=(r=m.userPrompt)?r:void 0,children:!m.issueUrl&&m.userPrompt?m.userPrompt.length>60?m.userPrompt.slice(0,60)+"…":m.userPrompt:G}),U&&O?(0,a.jsxs)("button",{onClick:e=>{e.stopPropagation(),null==b||b(O.number)},className:"session-card__control session-card__merge-control",children:[(0,a.jsxs)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"18",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"6",r:"2"}),(0,a.jsx)("path",{d:"M8 6h5a3 3 0 0 1 3 3v7"})]}),"Merge PR #",O.number]}):!q&&(0,a.jsx)("button",{onClick:e=>{if(e.stopPropagation(),!R)return void W(!0);W(!1),null==g||g(m.id)},onMouseLeave:()=>W(!1),onBlur:()=>W(!1),"aria-label":R?"Confirm terminate session":"Terminate session",className:(0,d.cn)("session-card__control session-card__terminate btn--danger",R&&"is-confirming"),children:R?(0,a.jsx)("span",{className:"font-mono text-[10px] font-semibold tracking-[0.04em]",children:"kill?"}):(0,a.jsxs)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("path",{d:"M3 6h18"}),(0,a.jsx)("path",{d:"M8 6V4h8v2"}),(0,a.jsx)("path",{d:"M19 6l-1 14H6L5 6"})]})})]})]})]})},function(e,s){return e.session===s.session&&e.onSend===s.onSend&&e.onKill===s.onKill&&e.onMerge===s.onMerge&&e.onRestore===s.onRestore}),v={merge:{label:"Ready",emptyMessage:"Nothing cleared to land yet."},action:{label:"Action",emptyMessage:"No agents need your input."},respond:{label:"Respond",emptyMessage:"No agents need your input."},review:{label:"Review",emptyMessage:"No code waiting for review."},pending:{label:"Pending",emptyMessage:"Nothing blocked."},working:{label:"Working",emptyMessage:"No agents running."},done:{label:"Done",emptyMessage:"No completed sessions."}},g=(0,t.memo)(function(e){let{level:s,sessions:r,onSend:n,onKill:o,onMerge:l,onRestore:i,collapsed:c,onToggle:d,compactMobile:h,onPreview:x,resetKey:u}=e,p=v[s],g=void 0!==d,[j,f]=(0,t.useState)(!1),_=g&&h&&!j?r.slice(0,5):r,k=r.length-_.length;return((0,t.useEffect)(()=>{c&&f(!1)},[c]),(0,t.useEffect)(()=>{f(!1)},[u]),g)?(0,a.jsxs)("div",{className:"accordion-section".concat(c?" accordion-section--collapsed":" accordion-section--expanded"),"data-level":s,children:[(0,a.jsxs)("button",{type:"button",className:"accordion-header",onClick:()=>d(s),"aria-expanded":!c,"aria-controls":"accordion-body-".concat(s),children:[(0,a.jsx)("span",{className:"accordion-header__dot","data-level":s}),(0,a.jsx)("span",{className:"accordion-header__label",children:p.label}),(0,a.jsx)("span",{className:"accordion-header__count",children:r.length}),(0,a.jsx)("span",{className:"accordion-header__chevron","aria-hidden":"true",children:"▶"})]}),(0,a.jsx)("div",{id:"accordion-body-".concat(s),className:"accordion-body",children:r.length>0?(0,a.jsxs)("div",{className:h?"mobile-session-list":"flex flex-col gap-2 p-3",children:[_.map(e=>h?(0,a.jsx)(b,{session:e,level:s,onPreview:x},e.id):(0,a.jsx)(m,{session:e,onSend:n,onKill:o,onMerge:l,onRestore:i},e.id)),h&&k>0?(0,a.jsxs)("button",{type:"button",className:"mobile-session-list__view-all",onClick:()=>f(!0),children:["View all ",r.length]}):null]}):h?(0,a.jsx)("div",{className:"mobile-session-list",children:(0,a.jsx)("div",{className:"mobile-session-list__empty",children:p.emptyMessage})}):null})]}):(0,a.jsxs)("div",{className:"kanban-column","data-level":s,children:[(0,a.jsx)("div",{className:"kanban-column__header",children:(0,a.jsxs)("div",{className:"kanban-column__title-row",children:[(0,a.jsx)("div",{className:"kanban-column__dot","data-level":s}),(0,a.jsx)("span",{className:"kanban-column__title",children:p.label}),(0,a.jsx)("span",{className:"kanban-column__count",children:r.length})]})}),(0,a.jsx)("div",{className:"kanban-column-body",children:r.length>0?(0,a.jsx)("div",{className:"kanban-column__stack",children:r.map(e=>(0,a.jsx)(m,{session:e,onSend:n,onKill:o,onMerge:l,onRestore:i},e.id))}):null})]})},function(e,s){return e.level===s.level&&e.collapsed===s.collapsed&&e.onToggle===s.onToggle&&e.onSend===s.onSend&&e.onKill===s.onKill&&e.onMerge===s.onMerge&&e.onRestore===s.onRestore&&e.compactMobile===s.compactMobile&&e.onPreview===s.onPreview&&e.resetKey===s.resetKey&&e.sessions.length===s.sessions.length&&e.sessions.every((e,r)=>e===s.sessions[r])});function b(e){let{session:s,level:r,onPreview:t}=e,n=[s.branch,s.pr?"PR #".concat(s.pr.number):null,s.issueLabel].filter(Boolean);return(0,a.jsxs)("div",{className:"mobile-session-row",children:[(0,a.jsxs)("button",{type:"button",className:"mobile-session-row__preview",onClick:()=>null==t?void 0:t(s),"aria-label":"Open ".concat((0,h.Pn)(s)),children:[(0,a.jsxs)("div",{className:"mobile-session-row__line",children:[(0,a.jsx)("span",{className:"mobile-session-row__dot","data-level":r,"aria-hidden":"true"}),(0,a.jsx)("span",{className:"mobile-session-row__title",children:(0,h.Pn)(s)})]}),(0,a.jsx)("div",{className:"mobile-session-row__meta",children:n.length>0?n.join(" \xb7 "):"No branch or PR metadata"})]}),(0,a.jsxs)("div",{className:"mobile-session-row__side",children:[(0,a.jsx)(j,{session:s,level:r}),(0,a.jsx)("a",{href:(0,p.Nc)(s.projectId,s.id),className:"mobile-session-row__open","aria-label":"Go to ".concat((0,h.Pn)(s)),children:(0,a.jsxs)("svg",{className:"mobile-session-row__open-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M4 17V7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2Z"}),(0,a.jsx)("path",{d:"m8 10 2 2-2 2M12 14h4"})]})})]})]})}function j(e){var s,r,t,n;let{session:o,level:l}=e,i=v[l].label.toLowerCase();return"merge"===l&&o.pr&&(0,c.QN)(o.pr)?i="ready":"action"===l?i="needs_input"===o.status?"needs input":"stuck"===o.status?"stuck":"errored"===o.status?"errored":"waiting_input"===o.activity?"waiting":"exited"===o.activity?"crashed":"blocked"===o.activity?"blocked":"ci_failed"===o.status?"ci failed":"changes_requested"===o.status?"changes":(null==(t=o.pr)?void 0:t.ciStatus)==="failing"?"ci failed":(null==(n=o.pr)?void 0:n.reviewDecision)==="changes_requested"?"changes":o.pr&&!o.pr.mergeability.noConflicts?"conflicts":"action":"respond"===l?i="waiting_input"===o.activity?"waiting":"needs input":"review"===l?i=(null==(s=o.pr)?void 0:s.reviewDecision)==="changes_requested"?"changes":"review":"pending"===l?i=(null==(r=o.pr)?void 0:r.unresolvedThreads)?"threads":"pending":"working"===l&&(i="idle"===o.activity?"idle":"active"),(0,a.jsx)("span",{className:"mobile-session-row__chip",children:i})}var f=r(7848),_=r(5309),k=r(5184),y=r(9293);let N=["Working","Pending","Review","Respond","Merge"];function w(e){let{message:s,orchestratorHref:r,onSpawnOrchestrator:t=null,spawnLabel:n="Spawn Orchestrator",spawnDisabled:o=!1}=e;return(0,a.jsxs)("div",{className:"board-wrapper",children:[(0,a.jsx)("div",{className:"kanban-ghost","aria-hidden":"true",children:N.map(e=>(0,a.jsx)("div",{className:"kanban-ghost__col",children:(0,a.jsx)("div",{className:"kanban-ghost__head",children:e})},e))}),(0,a.jsx)("div",{className:"board-center",children:(0,a.jsxs)("div",{className:"empty-state",role:"status",children:[(0,a.jsx)("div",{className:"empty-state__icon",children:(0,a.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5.5",r:"2.5",fill:"rgba(249,115,22,0.18)",stroke:"#f97316",strokeWidth:"1.5"}),(0,a.jsx)("circle",{cx:"5.5",cy:"17",r:"2.5",fill:"var(--color-bg-subtle)",stroke:"var(--color-border-strong)",strokeWidth:"1.5"}),(0,a.jsx)("circle",{cx:"18.5",cy:"17",r:"2.5",fill:"var(--color-bg-subtle)",stroke:"var(--color-border-strong)",strokeWidth:"1.5"}),(0,a.jsx)("line",{x1:"12",y1:"8",x2:"6.7",y2:"14.8",stroke:"rgba(249,115,22,0.22)",strokeWidth:"1",strokeDasharray:"2.5 2"}),(0,a.jsx)("line",{x1:"12",y1:"8",x2:"17.3",y2:"14.8",stroke:"rgba(249,115,22,0.22)",strokeWidth:"1",strokeDasharray:"2.5 2"}),(0,a.jsx)("line",{x1:"7.8",y1:"17",x2:"16.2",y2:"17",stroke:"var(--color-border-subtle)",strokeWidth:"1",strokeDasharray:"2.5 2"})]})}),s?(0,a.jsx)("p",{className:"empty-state__text",children:s}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"empty-state__headline",children:"Ready to orchestrate"}),(0,a.jsx)("p",{className:"empty-state__hint",children:"Open the main orchestrator to start a session and fan out parallel agents across your codebase."}),r?(0,a.jsxs)("a",{href:r,className:"empty-state__cta",children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,a.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,a.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),"Open Orchestrator"]}):t?(0,a.jsxs)("button",{type:"button",className:"empty-state__cta",onClick:t,disabled:o,children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,a.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,a.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),n]}):null]})]})})]})}var C=r(2446);function M(e){let{status:s}=e;return"connected"===s?null:"disconnected"===s?(0,a.jsx)("button",{type:"button",className:"connection-bar connection-bar--disconnected","aria-live":"assertive","aria-atomic":"true",onClick:()=>window.location.reload(),children:"Offline \xb7 tap to retry"}):(0,a.jsx)("div",{className:"connection-bar connection-bar--reconnecting",role:"status","aria-live":"polite","aria-atomic":"true",children:"Reconnecting…"})}let S=[/\bBearer\s+[A-Za-z0-9._\-+/=]+\b/gi,/\bsk-[A-Za-z0-9]{10,}\b/g,/\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\b/g];function P(e){let{projectId:s}=e,{showToast:r}=(0,C.d)(),[n,o]=(0,t.useState)(!1),l=(0,t.useCallback)(async()=>{if(!n){o(!0);try{let e,a=await fetch("/api/observability",{credentials:"same-origin"});if(!a.ok)return void r("Could not fetch observability snapshot","error");let t=a.headers.get("x-correlation-id");try{e=await a.json()}catch(e){r("Could not parse observability snapshot","error");return}let n=function e(s){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new WeakSet;if("string"==typeof s)return S.reduce((e,s)=>e.replace(s,"[REDACTED]"),s);if(Array.isArray(s))return s.map(s=>e(s,r));if(s&&"object"==typeof s){if(r.has(s))return"[Circular]";r.add(s);let a={};for(let[t,n]of Object.entries(s))a[t]=e(n,r);return a}return s}(function(e,s){if(!s||!e||"object"!=typeof e)return e;let r={...e},a=r.projects;if(a&&"object"==typeof a&&!Array.isArray(a)){let e=a[s];r.projects=void 0===e?{}:{[s]:e}}return r}(e,s)),o={copiedAt:new Date().toISOString(),pageHref:"".concat(window.location.origin).concat(window.location.pathname),projectId:null!=s?s:null,correlationId:t,userAgent:navigator.userAgent,observability:n};await navigator.clipboard.writeText(JSON.stringify(o,null,2)),r("Debug bundle copied to clipboard","success")}catch(e){r("Could not copy debug bundle","error")}finally{o(!1)}}},[n,s,r]);return(0,a.jsxs)("button",{type:"button",className:"orchestrator-btn flex min-h-[44px] min-w-[44px] items-center gap-2 px-4 py-2 text-[12px] font-semibold text-[var(--color-text-secondary)] transition-colors hover:bg-[var(--color-bg-hover)] disabled:opacity-50",onClick:()=>void l(),disabled:n,"aria-label":"Copy debug bundle for issue reports",children:[(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:[(0,a.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,a.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy debug info"]})}var R=r(2466);let W=["working","pending","action","merge"],I=["working","pending","review","respond","merge"],T=[];function B(e){var s;let{session:r,onRestore:t}=e,n=!r.summaryIsFallback&&r.summary||r.issueTitle||r.summary||r.id,o=(null==(s=r.pr)?void 0:s.state)==="merged"||"merged"===r.status,l="killed"===r.status||"terminated"===r.status,i=!c.N_.has(r.status);return(0,a.jsxs)("div",{className:"done-card",children:[(0,a.jsx)("p",{className:"done-card__title",children:n}),(0,a.jsxs)("div",{className:"done-card__meta",children:[(0,a.jsx)("span",{className:"done-card__badge ".concat(l?"done-card__badge--terminated":"done-card__badge--merged"),children:o?"merged":l?"terminated":"done"}),r.pr?(0,a.jsxs)("a",{href:r.pr.url,target:"_blank",rel:"noopener noreferrer",className:"done-card__pr",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("svg",{width:"9",height:"9",fill:"none",stroke:"currentColor",strokeWidth:"1.8",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"18",cy:"18",r:"3"}),(0,a.jsx)("circle",{cx:"6",cy:"6",r:"3"}),(0,a.jsx)("path",{d:"M6 9v3a6 6 0 0 0 6 6h3"})]}),"#",r.pr.number]}):null,(0,a.jsx)("span",{className:"done-card__age",children:function(e){if(!e)return"just now";let s=new Date(e).getTime();if(!Number.isFinite(s))return"just now";let r=Date.now()-s;if(r<=0)return"just now";let a=Math.floor(r/1e3),t=Math.floor(a/60),n=Math.floor(t/60),o=Math.floor(n/24);return a<60?"".concat(a,"s ago"):t<60?"".concat(t,"m ago"):n<24?"".concat(n,"h ago"):"".concat(o,"d ago")}(r.lastActivityAt)}),i&&!o?(0,a.jsx)("button",{type:"button",className:"done-card__restore",onClick:e=>{e.stopPropagation(),t(r.id)},children:"Restore"}):null]})]})}function D(e){var s,r,n,d;let{initialSessions:h,projectId:x,projectName:u,projects:m=[],orchestrators:v,attentionZones:b="simple",dashboardLoadError:j}=e,N=null!=v?v:T,S=(0,k.eT)(),D="detailed"===b?I:W,A=(0,t.useMemo)(()=>{let e={};for(let s of h)e[s.id]=(0,c.ng)(s,b);return e},[h,b]),{sessions:F,connectionStatus:L,sseAttentionLevels:E,liveSessionsResolved:H}=(0,_.D)({initialSessions:h,project:x,muxSessions:(null==S?void 0:S.status)==="connected"?S.sessions:void 0,initialAttentionLevels:A,attentionZones:b}),K=j&&H?void 0:j,Z=(0,l.useSearchParams)(),U=null!=(s=Z.get("session"))?s:void 0,[q,z]=(0,t.useState)(!1),[V,G]=(0,t.useState)(N),[J,$]=(0,t.useState)([]),[Q,X]=(0,t.useState)({}),[Y,ee]=(0,t.useState)(!1),[es,er]=(0,t.useState)(!1),ea=(0,i.U)(i.D),et=Z.get("debug"),en=m.length>=1,{showToast:eo}=(0,C.d)(),[el,ei]=(0,t.useState)(!1),ec=(0,t.useRef)(F);ec.current=F;let ed=m.length>1&&en&&void 0===x,eh=(0,t.useMemo)(()=>{var e;return x&&null!=(e=V.find(e=>e.projectId===x))?e:null},[V,x]),ex=eh?(0,p.Nc)(eh.projectId,eh.id):null,eu=!ed&&!!x&&m.some(e=>e.id===x&&!e.resolveError)&&!ex,ep=x&&null!=(r=m.find(e=>e.id===x))?r:null,em=!!x&&J.includes(x),ev=x&&null!=(n=Q[x])?n:null,eg=(0,t.useMemo)(()=>ed||!U?F:F.filter(e=>e.id===U),[F,ed,U]);(0,t.useEffect)(()=>{G(e=>(function(e,s){let r=new Map(e.map(e=>[e.projectId,e]));for(let e of s)r.set(e.projectId,e);return[...r.values()]})(e,N))},[N]),(0,t.useEffect)(()=>{let e=(0,f.S)(E),s=null!=u?u:"ao";document.title=e>0?"".concat(s," (").concat(e," need attention)"):s},[E,u]),(0,t.useEffect)(()=>{er(!1)},[Z]);let eb=(0,t.useMemo)(()=>{let e={merge:[],action:[],respond:[],review:[],pending:[],working:[],done:[]};for(let s of eg)e[(0,c.ng)(s,b)].push(s);return e},[eg,b]),ej=(0,t.useMemo)(()=>{let e=new Map;for(let s of F){let r=e.get(s.projectId);if(r){r.push(s);continue}e.set(s.projectId,[s])}return e},[F]),ef=(0,t.useMemo)(()=>ed?m.map(e=>{var s,r;let a=null!=(s=ej.get(e.id))?s:[],t={merge:0,action:0,respond:0,review:0,pending:0,working:0,done:0};for(let e of a)t[(0,c.ng)(e,b)]++;return{project:e,orchestrator:null!=(r=V.find(s=>s.projectId===e.id))?r:null,sessionCount:a.length,openPRCount:a.filter(e=>{var s;return(null==(s=e.pr)?void 0:s.state)==="open"}).length,counts:t}}):[],[V,ed,b,m,ej]),e_=(0,t.useCallback)(async(e,s)=>{try{let r=await fetch("/api/sessions/".concat(encodeURIComponent(e),"/send"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:s})});if(!r.ok){let s=await r.text()||"Unknown error";console.error("Failed to send message to ".concat(e,":"),s),eo("Send failed: ".concat(s),"error");let a=Error(s);throw a.toastShown=!0,a}}catch(s){throw s instanceof Error&&"toastShown"in s&&s.toastShown||(console.error("Network error sending message to ".concat(e,":"),s),eo("Network error while sending message","error")),s}},[eo]),ek=(0,t.useCallback)(async e=>{try{let s=await fetch("/api/sessions/".concat(encodeURIComponent(e),"/kill"),{method:"POST"});if(s.ok)eo("Session terminated","success");else{let r=await s.text();console.error("Failed to kill ".concat(e,":"),r),eo("Terminate failed: ".concat(r),"error")}}catch(s){console.error("Network error killing ".concat(e,":"),s),eo("Network error while terminating session","error")}},[eo]),ey=(0,t.useCallback)(e=>{var s;let r=null!=(s=ec.current.find(s=>s.id===e))?s:null;r&&ek(r.id)},[ek]),eN=(0,t.useCallback)(async e=>{try{let s=await fetch("/api/prs/".concat(e,"/merge"),{method:"POST"});if(s.ok)eo("PR #".concat(e," merged"),"success");else{let r=await s.text();console.error("Failed to merge PR #".concat(e,":"),r),eo("Merge failed: ".concat(r),"error");return}}catch(s){console.error("Network error merging PR #".concat(e,":"),s),eo("Network error while merging PR","error")}},[eo]),ew=(0,t.useCallback)(async e=>{try{let s=await fetch("/api/sessions/".concat(encodeURIComponent(e),"/restore"),{method:"POST"});if(s.ok)eo("Session restored","success");else{let r=await s.text();console.error("Failed to restore ".concat(e,":"),r),eo("Restore failed: ".concat(r),"error")}}catch(s){console.error("Network error restoring ".concat(e,":"),s),eo("Network error while restoring session","error")}},[eo]),eC=async e=>{$(s=>s.includes(e.id)?s:[...s,e.id]),X(s=>{let{[e.id]:r,...a}=s;return a});try{let r=await fetch("/api/orchestrators",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e.id})}),a=await r.json().catch(()=>null);if(!r.ok||!(null==a?void 0:a.orchestrator)){var s;throw Error(null!=(s=null==a?void 0:a.error)?s:"Failed to spawn orchestrator for ".concat(e.name))}let t=a.orchestrator;G(s=>{let r=s.filter(s=>s.projectId!==e.id);return r.push(t),r})}catch(r){let s=r instanceof Error?r.message:"Failed to spawn orchestrator";X(r=>({...r,[e.id]:s})),console.error("Failed to spawn orchestrator for ".concat(e.id,":"),r)}finally{$(s=>s.filter(s=>s!==e.id))}},eM=D.some(e=>eb[e].length>0),eS=!ed&&!eM&&!K,eP=K?(0,a.jsxs)("div",{className:"dashboard-alert mb-6 flex flex-col gap-1.5 border border-[color-mix(in_srgb,var(--color-status-error)_28%,transparent)] bg-[color-mix(in_srgb,var(--color-status-error)_10%,transparent)] px-3.5 py-2.5 text-[11px] md:mb-4",role:"alert","aria-live":"assertive",children:[(0,a.jsx)("span",{className:"font-semibold text-[var(--color-status-error)]",children:"Orchestrator failed to load"}),(0,a.jsx)("span",{className:"break-words text-[var(--color-text-secondary)]",children:K}),(0,a.jsxs)("span",{className:"text-[var(--color-text-secondary)]",children:["Confirm ",(0,a.jsx)("span",{className:"font-mono text-[10px]",children:"agent-orchestrator.yaml"})," exists and is valid, then run"," ",(0,a.jsx)("span",{className:"font-mono text-[10px]",children:"ao doctor"})," for diagnostics."]})]}):null,eR=(0,t.useMemo)(()=>F.some(e=>e.pr&&(0,c.fZ)(e.pr)),[F]),eW="agent orchestrator"===(null==u?void 0:u.trim().toLowerCase())?null!=(d=null!=x?x:u)?d:ed?"All projects":"Dashboard":null!=u?u:ed?"All projects":"Dashboard",eI=!ed&&eW.trim().length>0,eT=()=>{window.innerWidth<768?er(e=>!e):ee(e=>!e)};return(0,a.jsx)(R.I.Provider,{value:{onToggleSidebar:eT,mobileSidebarOpen:es},children:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(M,{status:L}),(0,a.jsxs)("div",{className:"dashboard-app-shell",children:[(0,a.jsxs)("header",{className:"dashboard-app-header",children:[en?(0,a.jsx)("button",{type:"button",className:"dashboard-app-sidebar-toggle",onClick:eT,"aria-label":"Toggle sidebar",children:ea?(0,a.jsx)("svg",{width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M4 6h16M4 12h16M4 18h16"})}):(0,a.jsxs)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,a.jsx)("path",{d:"M9 3v18"})]})}):null,(0,a.jsxs)("div",{className:"dashboard-app-header__brand",children:[(0,a.jsx)("span",{className:"dashboard-app-header__brand-dot","aria-hidden":"true"}),(0,a.jsx)("span",{children:"Agent Orchestrator"})]}),eI?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"dashboard-app-header__sep","aria-hidden":"true"}),(0,a.jsx)("span",{className:"dashboard-app-header__project",children:eW})]}):null,ea||"1"!==et&&"true"!==et?null:(0,a.jsx)(P,{projectId:x}),(0,a.jsx)("div",{className:"dashboard-app-header__spacer"}),(0,a.jsx)("div",{className:"dashboard-app-header__actions",children:!ed&&ex?(0,a.jsxs)(o(),{href:ex,className:"dashboard-app-btn dashboard-app-btn--amber","aria-label":"Orchestrator",children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,a.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,a.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),"Orchestrator"]}):eu&&ep?(0,a.jsxs)("button",{type:"button",className:"dashboard-app-btn dashboard-app-btn--amber","aria-label":"Spawn Orchestrator",onClick:()=>void eC(ep),disabled:em,children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,a.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,a.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),em?"Spawning...":"Spawn Orchestrator"]}):null})]}),(0,a.jsxs)("div",{className:"dashboard-shell dashboard-shell--desktop".concat(Y?" dashboard-shell--sidebar-collapsed":""),children:[en&&(0,a.jsx)("div",{className:"sidebar-wrapper".concat(es?" sidebar-wrapper--mobile-open":""),children:(0,a.jsx)(y.u,{projects:m,sessions:F,activeProjectId:x,activeSessionId:U,collapsed:Y,onToggleCollapsed:()=>ee(e=>!e),onMobileClose:()=>er(!1)})}),es&&(0,a.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>er(!1)}),(0,a.jsxs)("main",{className:"dashboard-main dashboard-main--desktop overflow-y-auto",children:[(0,a.jsx)(f.u,{sseAttentionLevels:E,projectName:u}),(0,a.jsxs)("div",{className:"dashboard-main__subhead",children:[(0,a.jsx)("h1",{className:"dashboard-main__title",children:"Dashboard"}),(0,a.jsx)("p",{className:"dashboard-main__subtitle",children:"Live agent sessions, pull requests, and merge status."})]}),(0,a.jsxs)("div",{className:"dashboard-main__body",children:[eP,eR&&!q&&(0,a.jsxs)("div",{className:"dashboard-alert mb-4 flex items-center gap-2.5 border border-[color-mix(in_srgb,var(--color-status-attention)_25%,transparent)] bg-[var(--color-tint-yellow)] px-3.5 py-2.5 text-[11px] text-[var(--color-status-attention)]",children:[(0,a.jsxs)("svg",{className:"h-3.5 w-3.5 shrink-0",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,a.jsx)("path",{d:"M12 8v4M12 16h.01"})]}),(0,a.jsx)("span",{className:"flex-1",children:"GitHub API rate limited — PR data (CI status, review state, sizes) may be stale. Will retry automatically on next refresh."}),(0,a.jsx)("button",{onClick:()=>z(!0),className:"ml-1 shrink-0 opacity-60 hover:opacity-100","aria-label":"Dismiss",children:(0,a.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),ed&&(0,a.jsx)(O,{overviews:ef,onSpawnOrchestrator:eC,spawningProjectIds:J,spawnErrors:Q,attentionZones:b}),!ed&&eM&&(0,a.jsx)("div",{className:"kanban-board-wrap",children:(0,a.jsx)("div",{className:"kanban-board",children:D.map(e=>(0,a.jsx)(g,{level:e,sessions:eb[e],onSend:e_,onKill:ey,onMerge:eN,onRestore:ew},e))})}),eS?(0,a.jsx)(w,{orchestratorHref:ex,onSpawnOrchestrator:eu&&ep?()=>{eC(ep)}:null,spawnLabel:em?"Spawning...":"Spawn Orchestrator",spawnDisabled:em}):null,!ed&&ev?(0,a.jsx)("p",{className:"mt-3 text-[11px] text-[var(--color-status-error)]",children:ev}):null,!ed&&eb.done.length>0&&(0,a.jsxs)("div",{className:"done-bar mt-6",children:[(0,a.jsxs)("button",{type:"button",className:"done-bar__toggle",onClick:()=>ei(e=>!e),"aria-expanded":el,children:[(0,a.jsx)("svg",{className:"done-bar__chevron".concat(el?" done-bar__chevron--open":""),fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"m9 18 6-6-6-6"})}),(0,a.jsx)("span",{className:"done-bar__label",children:"Done / Terminated"}),(0,a.jsx)("span",{className:"done-bar__count",children:eb.done.length})]}),el&&(0,a.jsx)("div",{className:"done-bar__cards",children:eb.done.map(e=>(0,a.jsx)(B,{session:e,onRestore:ew},e.id))})]})]})]})]})]})]})})}function A(e){return(0,a.jsx)(C.t,{children:(0,a.jsx)(D,{...e})})}function O(e){let{overviews:s,onSpawnOrchestrator:r,spawningProjectIds:t,spawnErrors:n,attentionZones:l}=e;return(0,a.jsx)("div",{className:"mb-8 grid gap-4 md:grid-cols-2 xl:grid-cols-3",children:s.map(e=>{let{project:s,orchestrator:i,sessionCount:c,openPRCount:d,counts:h}=e,x=!!s.resolveError,u=(0,p.bn)(s.id);return(0,a.jsxs)("section",{className:"border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] p-4",children:[(0,a.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-[14px] font-semibold text-[var(--color-text-primary)]",children:s.name}),(0,a.jsx)("div",{className:"mt-1 text-[11px] text-[var(--color-text-muted)]",children:x?"Config needs repair":(0,a.jsxs)(a.Fragment,{children:[c," active session",1!==c?"s":"",d>0?" \xb7 ".concat(d," open PR").concat(1!==d?"s":""):""]})})]}),(0,a.jsx)(o(),{href:u,className:"border border-[var(--color-border-default)] px-3 py-1.5 text-[11px] font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-bg-hover)] hover:no-underline",children:"Open project"})]}),(0,a.jsxs)("div",{className:"mb-4 flex flex-wrap gap-2",children:[(0,a.jsx)(F,{label:"Merge",value:h.merge,tone:"ready"}),"detailed"===l?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(F,{label:"Respond",value:h.respond,tone:"error"}),(0,a.jsx)(F,{label:"Review",value:h.review,tone:"orange"})]}):(0,a.jsx)(F,{label:"Action",value:h.action,tone:"orange"}),(0,a.jsx)(F,{label:"Pending",value:h.pending,tone:"attention"}),(0,a.jsx)(F,{label:"Working",value:h.working,tone:"working"})]}),(0,a.jsxs)("div",{className:"border-t border-[var(--color-border-subtle)] pt-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,a.jsx)("div",{className:"text-[11px] text-[var(--color-text-muted)]",children:x?"Project config could not be resolved":i?"Per-project orchestrator available":"No running orchestrator"}),x?(0,a.jsx)(o(),{href:u,className:"border border-[var(--color-border-default)] px-3 py-1.5 text-[11px] font-semibold text-[var(--color-text-secondary)] hover:bg-[var(--color-bg-hover)] hover:no-underline",children:"Repair project"}):i?(0,a.jsxs)(o(),{href:(0,p.Nc)(i.projectId,i.id),className:"orchestrator-btn flex items-center gap-2 px-3 py-1.5 text-[11px] font-semibold hover:no-underline",children:[(0,a.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--color-accent)] opacity-80"}),"orchestrator"]}):(0,a.jsx)("button",{type:"button",onClick:()=>void r(s),disabled:t.includes(s.id),className:"orchestrator-btn px-3 py-1.5 text-[11px] font-semibold disabled:cursor-wait disabled:opacity-70",children:t.includes(s.id)?"Spawning...":"Spawn Orchestrator"})]}),n[s.id]?(0,a.jsx)("p",{className:"mt-2 text-[11px] text-[var(--color-status-error)]",children:n[s.id]}):null]})]},s.id)})})}function F(e){let{label:s,value:r,tone:t}=e;return(0,a.jsxs)("div",{className:"min-w-[78px] border border-[var(--color-border-subtle)] px-2.5 py-2",children:[(0,a.jsx)("div",{className:"text-[10px] uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:s}),(0,a.jsx)("div",{className:"project-metric__value mt-1 text-[18px] font-semibold tabular-nums","data-tone":t,children:r})]})}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3697,6078],{2286:(e,t,r)=>{"use strict";r.d(t,{D:()=>u,N:()=>d});var n=r(6749),o=(e,t,r,n,o,l,a,s)=>{let i=document.documentElement,c=["light","dark"];function u(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&l?o.map(e=>l[e]||e):o;r?(i.classList.remove(...n),i.classList.add(l&&l[t]?l[t]:t)):i.setAttribute(e,t)}),r=t,s&&c.includes(r)&&(i.style.colorScheme=r)}if(n)u(n);else try{let e=localStorage.getItem(t)||r,n=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;u(n)}catch(e){}},l=["light","dark"],a="(prefers-color-scheme: dark)",s="undefined"==typeof window,i=n.createContext(void 0),c={setTheme:e=>{},themes:[]},u=()=>{var e;return null!=(e=n.useContext(i))?e:c},d=e=>n.useContext(i)?n.createElement(n.Fragment,null,e.children):n.createElement(h,{...e}),m=["light","dark"],h=e=>{let{forcedTheme:t,disableTransitionOnChange:r=!1,enableSystem:o=!0,enableColorScheme:s=!0,storageKey:c="theme",themes:u=m,defaultTheme:d=o?"system":"light",attribute:h="data-theme",value:g,children:b,nonce:y,scriptProps:w}=e,[S,k]=n.useState(()=>p(c,d)),[E,C]=n.useState(()=>"system"===S?x():S),T=g?Object.values(g):u,N=n.useCallback(e=>{let t=e;if(!t)return;"system"===e&&o&&(t=x());let n=g?g[t]:t,a=r?v(y):null,i=document.documentElement,c=e=>{"class"===e?(i.classList.remove(...T),n&&i.classList.add(n)):e.startsWith("data-")&&(n?i.setAttribute(e,n):i.removeAttribute(e))};if(Array.isArray(h)?h.forEach(c):c(h),s){let e=l.includes(d)?d:null,r=l.includes(t)?t:e;i.style.colorScheme=r}null==a||a()},[y]),j=n.useCallback(e=>{let t="function"==typeof e?e(S):e;k(t);try{localStorage.setItem(c,t)}catch(e){}},[S]),M=n.useCallback(e=>{C(x(e)),"system"===S&&o&&!t&&N("system")},[S,t]);n.useEffect(()=>{let e=window.matchMedia(a);return e.addListener(M),M(e),()=>e.removeListener(M)},[M]),n.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?k(e.newValue):j(d))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[j]),n.useEffect(()=>{N(null!=t?t:S)},[t,S]);let P=n.useMemo(()=>({theme:S,setTheme:j,forcedTheme:t,resolvedTheme:"system"===S?E:S,themes:o?[...u,"system"]:u,systemTheme:o?E:void 0}),[S,j,t,E,o,u]);return n.createElement(i.Provider,{value:P},n.createElement(f,{forcedTheme:t,storageKey:c,attribute:h,enableSystem:o,enableColorScheme:s,defaultTheme:d,value:g,themes:u,nonce:y,scriptProps:w}),b)},f=n.memo(e=>{let{forcedTheme:t,storageKey:r,attribute:l,enableSystem:a,enableColorScheme:s,defaultTheme:i,value:c,themes:u,nonce:d,scriptProps:m}=e,h=JSON.stringify([l,r,i,t,u,c,a,s]).slice(1,-1);return n.createElement("script",{...m,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?d:"",dangerouslySetInnerHTML:{__html:"(".concat(o.toString(),")(").concat(h,")")}})}),p=(e,t)=>{let r;if(!s){try{r=localStorage.getItem(e)||void 0}catch(e){}return r||t}},v=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},x=e=>(e||(e=window.matchMedia(a)),e.matches?"dark":"light")},4901:(e,t,r)=>{"use strict";function n(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter(Boolean).join(" ")}r.d(t,{cn:()=>n})},5184:(e,t,r)=>{"use strict";r.d(t,{Ug:()=>s,eT:()=>i,i2:()=>c});var n=r(3817),o=r(6749),l=r(1806);let a=o.createContext(void 0);function s(){let e=o.useContext(a);if(!e)throw Error("useMux() must be used within <MuxProvider>");return e}function i(){return o.useContext(a)}function c(e){let{children:t}=e,r=(0,o.useRef)(null),s=(0,o.useRef)(new Map),i=(0,o.useRef)(new Set),[c,u]=(0,o.useState)("connecting"),[d,m]=(0,o.useState)([]),h=(0,o.useRef)(0),f=(0,o.useRef)(null),p=(0,o.useRef)({}),v=(0,o.useRef)(!1),x=(0,o.useCallback)(()=>{if(!r.current){u("connecting");try{let e=function(e){var t,r,n;let o=window.location,a="https:"===o.protocol?"wss:":"ws:",s=null!=(t=e.proxyWsPath)?t:l.env.NEXT_PUBLIC_TERMINAL_WS_PATH;if(s){let e=s.replace(/\/ws\/?$/,"");return"".concat(a,"//").concat(o.host).concat(e,"/mux")}if(""===o.port||"443"===o.port||"80"===o.port)return"".concat(a,"//").concat(o.hostname,"/ao-terminal-mux");let i=null!=(n=null!=(r=e.directTerminalPort)?r:l.env.NEXT_PUBLIC_DIRECT_TERMINAL_PORT)?n:"14801";return"".concat(a,"//").concat(o.hostname,":").concat(i,"/mux")}(p.current);console.log("[MuxProvider] Connecting to",e);let t=new WebSocket(e);r.current=t,t.addEventListener("open",()=>{if(v.current)return void t.close();for(let e of(console.log("[MuxProvider] Connected"),u("connected"),h.current=0,i.current)){let r={ch:"terminal",id:e,type:"open"};t.send(JSON.stringify(r))}t.send(JSON.stringify({ch:"subscribe",topics:["sessions"]}))}),t.addEventListener("message",e=>{try{let t=JSON.parse(e.data);if("terminal"===t.ch)if("data"===t.type){let e=s.current.get(t.id);if(e)for(let r of e)r(t.data)}else if("opened"===t.type)i.current.add(t.id);else if("exited"===t.type){i.current.delete(t.id);let e=s.current.get(t.id);if(e){let r="\r\n\x1b[31m[Terminal exited with code ".concat(t.code,"]\x1b[0m\r\n");for(let t of e)t(r)}}else"error"===t.type&&console.error("[MuxProvider] Terminal error for ".concat(t.id,":"),t.message);else"sessions"===t.ch&&"snapshot"===t.type&&m(t.sessions)}catch(e){console.error("[MuxProvider] Error processing message:",e)}}),t.addEventListener("error",e=>{console.error("[MuxProvider] WebSocket error:",e)}),t.addEventListener("close",()=>{if(console.log("[MuxProvider] Disconnected"),r.current===t&&(r.current=null),v.current)return;let e=Math.min(1e3*Math.pow(2,h.current),3e4);h.current+=1,u("reconnecting"),f.current=setTimeout(()=>{console.log("[MuxProvider] Reconnecting (attempt ".concat(h.current,")...")),x()},e)})}catch(e){console.error("[MuxProvider] Failed to create WebSocket:",e),u("disconnected")}}},[]);(0,o.useEffect)(()=>{v.current=!1;let e=!1;return(async()=>{try{let e=await fetch("/api/runtime/terminal");if(e.ok){let t=await e.json();p.current={directTerminalPort:function(e){if("string"!=typeof e&&"number"!=typeof e)return;let t=Number.parseInt(String(e),10);if(Number.isInteger(t)&&!(t<=0)&&!(t>65535))return String(t)}(t.directTerminalPort),proxyWsPath:function(e){if("string"!=typeof e)return;let t=e.trim();if(t.startsWith("/"))return t}(t.proxyWsPath)}}}catch(e){}e||x()})(),()=>{var t;e=!0,v.current=!0,f.current&&clearTimeout(f.current),null==(t=r.current)||t.close()}},[x]);let g=(0,o.useCallback)((e,t)=>{var n;let o=s.current.get(e);return o||(o=new Set,s.current.set(e,o)),o.add(t),i.current.has(e)||(null==(n=r.current)?void 0:n.readyState)!==WebSocket.OPEN||r.current.send(JSON.stringify({ch:"terminal",id:e,type:"open"})),()=>{let r=s.current.get(e);r&&(r.delete(t),0===r.size&&s.current.delete(e))}},[]),b=(0,o.useCallback)((e,t)=>{var n;(null==(n=r.current)?void 0:n.readyState)===WebSocket.OPEN&&r.current.send(JSON.stringify({ch:"terminal",id:e,type:"data",data:t}))},[]),y=(0,o.useCallback)(e=>{var t;i.current.add(e),(null==(t=r.current)?void 0:t.readyState)===WebSocket.OPEN&&r.current.send(JSON.stringify({ch:"terminal",id:e,type:"open"}))},[]),w=(0,o.useCallback)(e=>{var t;i.current.delete(e),(null==(t=r.current)?void 0:t.readyState)===WebSocket.OPEN&&r.current.send(JSON.stringify({ch:"terminal",id:e,type:"close"}))},[]),S=(0,o.useCallback)((e,t,n)=>{var o;(null==(o=r.current)?void 0:o.readyState)===WebSocket.OPEN&&r.current.send(JSON.stringify({ch:"terminal",id:e,type:"resize",cols:t,rows:n}))},[]),k=(0,o.useMemo)(()=>({subscribeTerminal:g,writeTerminal:b,openTerminal:y,closeTerminal:w,resizeTerminal:S,status:c,sessions:d}),[g,b,y,w,S,c,d]);return(0,n.jsx)(a.Provider,{value:k,children:t})}},5611:()=>{},6078:(e,t,r)=>{"use strict";r.r(t),r.d(t,{DirectTerminal:()=>f,buildTerminalThemes:()=>h,resolveMonoFontFamily:()=>m});var n=r(3817),o=r(6749),l=r(7594),a=r(2286),s=r(4901),i=r(5184);let c={deadZone:8,verticalDominance:1.5,maxLinesPerEvent:6,speedMultiplier:3,tmuxPrefix:"\x02"};r(5611);let u="ao-terminal-font-size",d='"JetBrains Mono", "SF Mono", Menlo, Monaco, "Courier New", monospace';function m(){try{let e=getComputedStyle(document.documentElement).getPropertyValue("--font-jetbrains-mono").trim();return e?"".concat(e,", ").concat(d):d}catch(e){return d}}function h(e){let t="#5b7ef8",r="rgba(91, 126, 248, 0.30)",n="rgba(91, 126, 248, 0.25)";return{dark:{background:"#0a0a0f",foreground:"#d4d4d8",cursor:t,cursorAccent:"#0a0a0f",selectionBackground:r,selectionInactiveBackground:"rgba(128, 128, 128, 0.2)",black:"#1a1a24",red:"#ef4444",green:"#22c55e",yellow:"#f59e0b",blue:"#5b7ef8",magenta:"#a371f7",cyan:"#22d3ee",white:"#d4d4d8",brightBlack:"#50506a",brightRed:"#f87171",brightGreen:"#4ade80",brightYellow:"#fbbf24",brightBlue:"#7b9cfb",brightMagenta:"#c084fc",brightCyan:"#67e8f9",brightWhite:"#eeeef5"},light:{background:"#fafafa",foreground:"#24292f",cursor:t,cursorAccent:"#fafafa",selectionBackground:n,selectionInactiveBackground:"rgba(128, 128, 128, 0.15)",black:"#24292f",red:"#b42318",green:"#1f7a3d",yellow:"#8a5a00",blue:"#175cd3",magenta:"#8e24aa",cyan:"#0b7285",white:"#4b5563",brightBlack:"#374151",brightRed:"#912018",brightGreen:"#176639",brightYellow:"#6f4a00",brightBlue:"#1d4ed8",brightMagenta:"#7b1fa2",brightCyan:"#155e75",brightWhite:"#374151"}}}function f(e){let{sessionId:t,startFullscreen:d=!1,variant:f="agent",appearance:p="theme",height:v="max(440px, calc(100dvh - 440px))",isOpenCodeSession:x=!1,reloadCommand:g,chromeless:b=!1,autoFocus:y=!1}=e,w=(0,l.useRouter)(),S=(0,l.usePathname)(),k=(0,l.useSearchParams)(),{resolvedTheme:E}=(0,a.D)(),C=(0,o.useMemo)(()=>h(f),[f]),{subscribeTerminal:T,writeTerminal:N,resizeTerminal:j,openTerminal:M,closeTerminal:P,status:L}=(0,i.Ug)(),A=(0,o.useRef)(null),R=(0,o.useRef)(null),O=(0,o.useRef)(null),I=(0,o.useRef)(L);I.current=L;let[W,F]=(0,o.useState)(d),[B,_]=(0,o.useState)(null),[z,D]=(0,o.useState)(!1),[H,J]=(0,o.useState)(null),[K,U]=(0,o.useState)(function(){try{let e=localStorage.getItem(u);if(e){let t=parseInt(e,10);if(!Number.isNaN(t))return Math.max(9,Math.min(18,t))}}catch(e){}return 13}()),q=(0,o.useRef)(!0),[X,Y]=(0,o.useState)(!0);async function V(){if(x&&!z){J(null),D(!0);try{let e=g;if(!e){let r=await fetch("/api/sessions/".concat(encodeURIComponent(t),"/remap"),{method:"POST"});if(!r.ok)throw Error("Failed to remap OpenCode session: ".concat(r.status));let n=await r.json();if("string"!=typeof n.opencodeSessionId||0===n.opencodeSessionId.length)throw Error("Missing OpenCode session id after remap");e="/exit\nopencode --session ".concat(n.opencodeSessionId,"\n")}let r=await fetch("/api/sessions/".concat(encodeURIComponent(t),"/send"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e})});if(!r.ok)throw Error("Failed to send reload command: ".concat(r.status))}catch(e){J(e instanceof Error?e.message:"Failed to reload OpenCode session")}finally{D(!1)}}}(0,o.useEffect)(()=>{let e=new URLSearchParams(k.toString());W?e.set("fullscreen","true"):e.delete("fullscreen");let t=e.toString()?"".concat(S,"?").concat(e.toString()):S;w.replace(t,{scroll:!1})},[W,S,w,k]),(0,o.useEffect)(()=>{if(!A.current)return;let e=!0,n=null,o=null,l=null;return Promise.all([r.e(4560).then(r.bind(r,5627)).then(e=>e.Terminal),r.e(2529).then(r.bind(r,2529)).then(e=>e.FitAddon),r.e(5491).then(r.bind(r,5491)).then(e=>e.WebLinksAddon),document.fonts.ready]).then(r=>{var a,s;let[i,u,d]=r;if(!e||!A.current)return;let h="dark"===p||"light"!==E,f=h?C.dark:C.light,v=new i({cursorBlink:!0,fontSize:K,fontFamily:m(),lineHeight:1.2,theme:f,minimumContrastRatio:h?1:7,scrollback:1e4,allowProposedApi:!0,fastScrollSensitivity:3,scrollSensitivity:1}),x=new u;v.loadAddon(x),O.current=x;let g=new d;v.loadAddon(g),v.parser.registerCsiHandler({prefix:">",final:"q"},()=>(v.write("\x1bP>|XTerm(370)\x1b\\"),console.log("[DirectTerminal] Sent XDA response for clipboard support"),!0)),v.parser.registerOscHandler(52,e=>{let t=e.split(";");if(t.length<2)return!1;let r=t[t.length-1];try{var n;let e=atob(r),t=Uint8Array.from(e,e=>e.charCodeAt(0)),o=new TextDecoder().decode(t);null==(n=navigator.clipboard)||n.writeText(o).catch(()=>{})}catch(e){}return!0}),v.open(A.current),R.current=v,y&&v.focus(),x.fit();let b=setTimeout(()=>{if(e&&O.current)try{O.current.fit(),j(t,v.cols,v.rows)}catch(e){}},100),w=()=>{if(e&&O.current&&R.current)try{var r,n;R.current.options.fontFamily=m(),null==(r=(n=R.current).clearTextureAtlas)||r.call(n),O.current.fit(),j(t,R.current.cols,R.current.rows)}catch(e){}},S="undefined"!=typeof document?document.fonts:void 0,k=!!S&&"function"==typeof S.addEventListener;k&&S.addEventListener("loadingdone",w);let L=null!=(s=null==(a=v.element)?void 0:a.querySelector(".xterm-viewport"))?s:null,I=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={...c,...r},o=e.element;if(!o)return()=>{};let l=o.style.touchAction;o.style.touchAction="none";let a=o.querySelector(".xterm-viewport");a&&(a.style.touchAction="none");let s=0,i=0,u=0,d=null,m=!1,h=e=>{"touch"===e.pointerType&&(s=e.clientX,i=e.clientY,u=e.clientY,d=null,m=!1)},f=l=>{var a,c,h;if("touch"!==l.pointerType)return;let f=l.clientX-s,p=l.clientY-i,v=Math.abs(f),x=Math.abs(p);if(null===d){if(Math.max(v,x)<n.deadZone)return;if(x<n.verticalDominance*v){d=!1;return}d=!0;try{o.setPointerCapture(l.pointerId)}catch(e){}}if(!0!==d)return;l.preventDefault();let g=Math.round((l.clientY-u)/((null!=(h=e.options.fontSize)?h:13)*1.2));if(g>n.maxLinesPerEvent&&(g=n.maxLinesPerEvent),g<-n.maxLinesPerEvent&&(g=-n.maxLinesPerEvent),0===g)return;u=l.clientY;let b=g*n.speedMultiplier;if(g>0?null==(a=r.onScrollAway)||a.call(r):null==(c=r.onScrollTowardLatest)||c.call(r),"normal"===e.buffer.active.type)e.scrollLines(-b);else{m||(m=!0,t(n.tmuxPrefix+"["));let e=g>0?"\x1b[A":"\x1b[B",r=Math.abs(b);for(let n=0;n<r;n++)t(e)}},p=e=>{if("touch"===e.pointerType){try{o.hasPointerCapture(e.pointerId)&&o.releasePointerCapture(e.pointerId)}catch(e){}d=null}},v={capture:!0},x={capture:!0,passive:!1};return o.addEventListener("pointerdown",h,v),o.addEventListener("pointermove",f,x),o.addEventListener("pointerup",p,v),o.addEventListener("pointercancel",p,v),()=>{o.removeEventListener("pointerdown",h,v),o.removeEventListener("pointermove",f,x),o.removeEventListener("pointerup",p,v),o.removeEventListener("pointercancel",p,v),o.style.touchAction=l}}(v,e=>{N(t,e)},{onScrollAway:()=>{q.current=!1,Y(!1)},onScrollTowardLatest:()=>{q.current=!0,Y(!0)}}),W=null;A.current&&(W=new ResizeObserver(()=>{if(e&&O.current)try{O.current.fit(),j(t,v.cols,v.rows)}catch(e){}})).observe(A.current);let F=[],B=!1,_=null,z=0,D=()=>{_&&(clearTimeout(_),_=null),F.length>0&&(v.write(F.join("")),F.length=0,z=0)},H=v.onSelectionChange(()=>{v.hasSelection()?(B=!0,_||(_=setTimeout(()=>{B=!1,D()},5e3))):(B=!1,D())});v.attachCustomKeyEventHandler(e=>{if("keydown"!==e.type)return!0;if((e.metaKey&&!e.ctrlKey&&!e.altKey&&"KeyC"===e.code||e.ctrlKey&&e.shiftKey&&"KeyC"===e.code)&&v.hasSelection()){var t;return null==(t=navigator.clipboard)||t.writeText(v.getSelection()).catch(()=>{}),v.clearSelection(),!1}return!0}),M(t),l=T(t,e=>{B?(F.push(e),(z+=e.length)>1048576&&(B=!1,D())):(v.write(e),q.current&&L&&(J=!0,L.scrollTop=L.scrollHeight))});let J=!1,U=()=>{if(L){if(J){J=!1;return}L.scrollHeight-L.scrollTop-L.clientHeight<24?(q.current=!0,Y(!0)):(q.current=!1,Y(!1))}};null==L||L.addEventListener("scroll",U,{passive:!0});let X=()=>{x&&(x.fit(),j(t,v.cols,v.rows))};window.addEventListener("resize",X),o=v.onData(e=>{N(t,e)}),j(t,v.cols,v.rows),n=()=>{clearTimeout(b),null==W||W.disconnect(),I(),H.dispose(),_&&clearTimeout(_),window.removeEventListener("resize",X),k&&S&&S.removeEventListener("loadingdone",w),null==L||L.removeEventListener("scroll",U),null==o||o.dispose(),o=null,null==l||l(),P(t),v.dispose()}}).catch(e=>{console.error("[DirectTerminal] Failed to load xterm.js:",e),_("Failed to load terminal")}),()=>{e=!1,null==n||n()}},[p,t,f,E,C,T,N,j,M,P]),(0,o.useEffect)(()=>{if("connected"!==L)return;let e=O.current,r=R.current;e&&r&&(e.fit(),j(t,r.cols,r.rows))},[L,t,j]),(0,o.useEffect)(()=>{let e=R.current;if(!e)return;let t="dark"===p||"light"!==E;e.options.theme=t?C.dark:C.light,e.options.minimumContrastRatio=t?1:7},[p,E,C]),(0,o.useEffect)(()=>{let e=R.current,r=O.current;if(e&&r){e.options.fontSize=K;try{localStorage.setItem(u,String(K))}catch(e){}r.fit(),j(t,e.cols,e.rows)}},[K,t,j]),(0,o.useEffect)(()=>{let e=O.current,r=R.current,n=A.current;if(!e||!r||"connected"!==I.current||!n)return;let o=0,l=!1,a=0,s=-1,i=()=>{if(l)return;o++;let c=n.getBoundingClientRect().height,u=s>=0&&1>Math.abs(c-s);if(s=c,!u&&o<60){a=requestAnimationFrame(i);return}r.refresh(0,r.rows-1),e.fit(),r.refresh(0,r.rows-1),j(t,r.cols,r.rows)};a=requestAnimationFrame(i);let c=e=>{l||e.target===n.parentElement&&(o=0,s=-1,setTimeout(()=>{l||(a=requestAnimationFrame(i))},50))},u=n.parentElement;null==u||u.addEventListener("transitionend",c);let d=setTimeout(()=>{l||(o=0,s=-1,i())},300),m=setTimeout(()=>{l||(o=0,s=-1,i())},600);return()=>{l=!0,cancelAnimationFrame(a),null==u||u.removeEventListener("transitionend",c),clearTimeout(d),clearTimeout(m)}},[W,t,j]);let G="var(--color-accent)",Z=B?"error":L,$="dark"===p||"light"!==E,Q=(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)("button",{onClick:()=>U(e=>Math.max(9,e-1)),disabled:K<=9,className:"w-5 h-5 text-xs flex items-center justify-center rounded hover:bg-white/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":"Decrease font size",children:"−"}),(0,n.jsxs)("span",{className:"w-9 text-center text-xs font-medium text-[var(--color-text-secondary)]",children:[K,"px"]}),(0,n.jsx)("button",{onClick:()=>U(e=>Math.min(18,e+1)),disabled:K>=18,className:"w-5 h-5 text-xs flex items-center justify-center rounded hover:bg-white/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":"Increase font size",children:"+"})]}),ee=(0,n.jsx)("button",{onClick:()=>F(!W),className:(0,s.cn)("flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)]",!x&&!b&&"ml-auto"),"aria-label":W?"exit fullscreen":"fullscreen",children:W?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3"})}),"exit fullscreen"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3"})}),"fullscreen"]})});return(0,n.jsxs)("div",{className:(0,s.cn)("overflow-hidden border border-[var(--color-border-default)] flex flex-col",W?"fixed inset-0 z-50 rounded-none border-0":"relative h-full",$?"bg-[#0a0a0f]":"bg-[#fafafa]",b&&"border-0"),children:[b?null:(0,n.jsxs)("div",{className:"terminal-chrome-bar flex items-center gap-2 border-b border-[var(--color-border-subtle)] bg-[var(--color-bg-elevated)] px-3 py-2",children:[(0,n.jsx)("span",{className:"terminal-chrome-pane-label",children:"TERMINAL"}),(0,n.jsxs)("div",{className:"terminal-chrome-identity",children:[(0,n.jsx)("span",{className:"terminal-chrome-session-id font-[var(--font-mono)] text-[11px]",style:{color:G},children:t}),(0,n.jsxs)("div",{className:"terminal-chrome-status-row",children:[(0,n.jsx)("div",{className:(0,s.cn)("h-2 w-2 shrink-0 rounded-full","connected"===Z?"bg-[var(--color-status-ready)]":"error"===Z||"disconnected"===Z?"bg-[var(--color-status-error)]":"bg-[var(--color-status-attention)] animate-[pulse_1.5s_ease-in-out_infinite]")}),(0,n.jsx)("span",{className:(0,s.cn)("text-[10px] font-medium uppercase tracking-[0.06em]","connected"===Z?"text-[var(--color-status-ready)]":"error"===Z||"disconnected"===Z?"text-[var(--color-status-error)]":"text-[var(--color-text-tertiary)]"),children:"connected"===Z?"Connected":"error"===Z?null!=B?B:"Error":"disconnected"===Z?"Disconnected":"Connecting…"}),(0,n.jsx)("span",{className:"px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-[0.06em]",style:{color:G,background:"color-mix(in srgb, ".concat(G," 12%, transparent)")},children:"XDA"})]})]}),(0,n.jsx)("div",{className:"flex-1"}),Q,x?(0,n.jsx)("button",{onClick:V,disabled:z||"connected"!==L,title:"Restart OpenCode session (/exit then resume mapped session)","aria-label":"Restart OpenCode session",className:"flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-70",children:z?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3 animate-spin",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 3a9 9 0 109 9"})}),"restarting"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{d:"M21 12a9 9 0 11-2.64-6.36"}),(0,n.jsx)("path",{d:"M21 3v6h-6"})]}),"restart"]})}):null,H?(0,n.jsx)("span",{className:"max-w-[40ch] truncate text-[10px] font-medium text-[var(--color-status-error)]",title:H,children:H}):null,ee]}),b?(0,n.jsxs)("div",{className:"absolute right-3 top-3 z-10 flex items-center gap-1 rounded-[6px] border border-[var(--color-border-subtle)] bg-[color-mix(in_srgb,var(--color-bg-elevated)_92%,transparent)] px-1.5 py-1 shadow-[0_8px_24px_rgba(0,0,0,0.18)] backdrop-blur-sm",children:[x?(0,n.jsx)("button",{onClick:V,disabled:z||"connected"!==L,title:"Restart OpenCode session (/exit then resume mapped session)","aria-label":"Restart OpenCode session",className:"flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-70",children:z?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3 animate-spin",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 3a9 9 0 109 9"})}),"restarting"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{d:"M21 12a9 9 0 11-2.64-6.36"}),(0,n.jsx)("path",{d:"M21 3v6h-6"})]}),"restart"]})}):null,ee]}):null,(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[X?null:(0,n.jsx)("button",{type:"button",onClick:()=>{q.current=!0,Y(!0);let e=R.current;if(e){var t;let r=null==(t=e.element)?void 0:t.querySelector(".xterm-viewport");r&&(r.scrollTop=r.scrollHeight)}},className:"absolute bottom-3 right-3 z-20 flex h-8 w-8 items-center justify-center rounded-full border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] text-[var(--color-text-primary)] shadow-md active:scale-95","aria-label":"Jump to latest",title:"Jump to latest",children:(0,n.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M19 14l-7 7m0 0l-7-7m7 7V3"})})}),(0,n.jsx)("div",{ref:A,className:"w-full flex flex-col flex-1 min-h-0 overflow-hidden"})]})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6607],{1712:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r}});let a=s(1903)._(s(5864));function r(e,t){var s;let r={};"function"==typeof e&&(r.loader=e);let n={...r,...t};return(0,a.default)({...n,modules:null==(s=n.loadableGenerated)?void 0:s.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2466:(e,t,s)=>{s.d(t,{I:()=>a});let a=(0,s(6749).createContext)(null)},2537:(e,t,s)=>{s.d(t,{X:()=>l});var a=s(3817),r=s(8713),n=s.n(r);function l(e){let{ariaLabel:t,activeTab:s,dashboardHref:r,prsHref:l,showOrchestrator:i=!0,orchestratorHref:o=null}=e;return(0,a.jsxs)("nav",{className:"mobile-bottom-nav","aria-label":t,children:[(0,a.jsxs)(n(),{href:r,className:"mobile-bottom-nav__item","data-active":"dashboard"===s?"true":"false","aria-current":"dashboard"===s?"page":void 0,children:[(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M3 13h8V3H3zm10 8h8V11h-8zM3 21h8v-6H3zm10-10h8V3h-8z"})}),(0,a.jsx)("span",{children:"Dashboard"})]}),(0,a.jsxs)(n(),{href:l,className:"mobile-bottom-nav__item","data-active":"prs"===s?"true":"false","aria-current":"prs"===s?"page":void 0,children:[(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01"})}),(0,a.jsx)("span",{children:"PRs"})]}),i?o?(0,a.jsxs)(n(),{href:o,className:"mobile-bottom-nav__item","data-active":"orchestrator"===s?"true":"false","aria-current":"orchestrator"===s?"page":void 0,children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M9 3H5a2 2 0 0 0-2 2v4m16 0V5a2 2 0 0 0-2-2h-4m0 18h4a2 2 0 0 0 2-2v-4M3 15v4a2 2 0 0 0 2 2h4"}),(0,a.jsx)("path",{d:"M9 9h6v6H9z"})]}),(0,a.jsx)("span",{children:"Orchestrator"})]}):(0,a.jsxs)("button",{type:"button",className:"mobile-bottom-nav__item",disabled:!0,children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M9 3H5a2 2 0 0 0-2 2v4m16 0V5a2 2 0 0 0-2-2h-4m0 18h4a2 2 0 0 0 2-2v-4M3 15v4a2 2 0 0 0 2 2h4"}),(0,a.jsx)("path",{d:"M9 9h6v6H9z"})]}),(0,a.jsx)("span",{children:"Orchestrator"})]}):null]})}},5468:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var s in t)Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}(t,{bindSnapshot:function(){return l},createAsyncLocalStorage:function(){return n},createSnapshot:function(){return i}});let s=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class a{disable(){throw s}getStore(){}run(){throw s}exit(){throw s}enterWith(){throw s}static bind(e){return e}}let r="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function n(){return r?new r:new a}function l(e){return r?r.bind(e):a.bind(e)}function i(){return r?r.snapshot():function(e,...t){return e(...t)}}},5864:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let a=s(3817),r=s(6749),n=s(6943);function l(e){return{default:e&&"default"in e?e.default:e}}s(6418);let i={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},o=function(e){let t={...i,...e},s=(0,r.lazy)(()=>t.loader().then(l)),o=t.loading;function c(e){let l=o?(0,a.jsx)(o,{isLoading:!0,pastDelay:!0,error:null}):null,i=!t.ssr||!!t.loading,c=i?r.Suspense:r.Fragment,d=t.ssr?(0,a.jsxs)(a.Fragment,{children:[null,(0,a.jsx)(s,{...e})]}):(0,a.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(s,{...e})});return(0,a.jsx)(c,{...i?{fallback:l}:{},children:d})}return c.displayName="LoadableComponent",c}},6313:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return a.workAsyncStorageInstance}});let a=s(8394)},6418:(e,t,s)=>{function a(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return a}}),s(3817),s(4768),s(6313),s(5152)},6607:(e,t,s)=>{s.r(t),s.d(t,{default:()=>R});var a=s(3817),r=s(6749),n=s(7594),l=s(5425),i=s(9120),o=s(545),c=s(4901),d=s(9891),u=s(7387),h=s(2466),p=s(8450),m=s(9293),f=s(2537);let b=(0,d.default)(()=>Promise.all([s.e(8944),s.e(3697)]).then(s.bind(s,6078)).then(e=>({default:e.DirectTerminal})),{loadableGenerated:{webpack:()=>[6078]},ssr:!1,loading:()=>(0,a.jsx)("div",{className:"h-full w-full animate-pulse rounded bg-[var(--color-bg-primary)]"})}),v={active:{label:"Active",color:"var(--color-status-working)"},ready:{label:"Ready",color:"var(--color-status-ready)"},idle:{label:"Idle",color:"var(--color-status-idle)"},waiting_input:{label:"Waiting for input",color:"var(--color-status-attention)"},blocked:{label:"Blocked",color:"var(--color-status-error)"},exited:{label:"Exited",color:"var(--color-status-error)"}};function x(e){if(e.includes("\x3c!-- DESCRIPTION START --\x3e")||e.includes("### ")){let t=e.match(/###\s+(.+?)(?:\n|$)/),s=t?t[1].replace(/\*\*/g,"").trim():"Comment",a=e.match(/<!-- DESCRIPTION START -->\s*([\s\S]*?)\s*<!-- DESCRIPTION END -->/);return{title:s,description:a?a[1].trim():e.split("\n")[0]||"No description"}}return{title:"Comment",description:e.trim()}}function j(e){return"https://github.com/".concat(e.owner,"/").concat(e.repo,"/tree/").concat(e.branch)}function g(e){let{headline:t,crumbId:s,activityLabel:r,activityColor:n,branch:l,pr:i,crumbHref:o,crumbLabel:c,rightSlot:d}=e;return(0,a.jsxs)("div",{className:"session-detail-top-strip",children:[(0,a.jsxs)("div",{className:"session-detail-crumbs",children:[(0,a.jsxs)("a",{href:o,className:"session-detail-crumb-back",children:[(0,a.jsx)("svg",{className:"h-3 w-3 opacity-60",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M15 18l-6-6 6-6"})}),c]}),(0,a.jsx)("span",{className:"session-detail-crumb-sep",children:"/"}),(0,a.jsx)("span",{className:"session-detail-crumb-id",children:s}),(0,a.jsx)("span",{className:"session-detail-mode-badge",children:"orchestrator"})]}),(0,a.jsxs)("div",{className:"session-detail-identity",children:[(0,a.jsxs)("div",{className:"session-detail-identity__info",children:[(0,a.jsx)("h1",{className:"session-detail-identity__title",children:t}),(0,a.jsxs)("div",{className:"session-detail-identity__pills",children:[(0,a.jsxs)("div",{className:"session-detail-status-pill",children:[(0,a.jsx)("span",{className:"session-detail-status-pill__dot",style:{background:n}}),(0,a.jsx)("span",{className:"session-detail-status-pill__label",children:r})]}),l?i?(0,a.jsx)("a",{href:j(i),target:"_blank",rel:"noopener noreferrer",className:"session-detail-link-pill session-detail-link-pill--branch session-detail-link-pill--branch-link hover:no-underline",children:l}):(0,a.jsx)("span",{className:"session-detail-link-pill session-detail-link-pill--branch",children:l}):null,i?(0,a.jsxs)("a",{href:i.url,target:"_blank",rel:"noopener noreferrer",className:"session-detail-link-pill session-detail-link-pill--pr hover:no-underline",children:["PR #",i.number]}):null,i&&(i.additions>0||i.deletions>0)?(0,a.jsxs)("span",{className:"session-detail-link-pill session-detail-link-pill--diff",children:[(0,a.jsxs)("span",{className:"session-detail-diff--add",children:["+",i.additions]})," ",(0,a.jsxs)("span",{className:"session-detail-diff--del",children:["-",i.deletions]})]}):null]})]}),d?(0,a.jsx)("div",{className:"session-detail-identity__actions session-detail-identity__actions--custom",children:d}):null]})]})}async function y(e,t,s,a){try{let{title:a,description:r}=x(t.body),n="Please address this review comment:\n\nFile: ".concat(t.path,"\nComment: ").concat(a,"\nDescription: ").concat(r,"\n\nComment URL: ").concat(t.url,"\n\nAfter fixing, mark the comment as resolved at ").concat(t.url),l=await fetch("/api/sessions/".concat(encodeURIComponent(e),"/message"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:n})});if(!l.ok)throw Error("HTTP ".concat(l.status));s()}catch(e){console.error("Failed to send message to agent:",e),a()}}function w(e){let{zones:t,createdAt:s,headline:n,activityLabel:l,activityColor:i,branch:o,pr:c,crumbHref:d,crumbLabel:u}=e,[h,p]=(0,r.useState)("");(0,r.useEffect)(()=>{let e=()=>{let e=Date.now()-new Date(s).getTime(),t=Math.floor(e/36e5),a=Math.floor(e%36e5/6e4);p(t>0?"".concat(t,"h ").concat(a,"m"):"".concat(a,"m"))};e();let t=setInterval(e,3e4);return()=>clearInterval(t)},[s]);let m=[{value:t.merge,label:"merge-ready",color:"var(--color-status-ready)",bg:"color-mix(in srgb, var(--color-status-ready) 10%, transparent)"},{value:t.respond,label:"responding",color:"var(--color-status-error)",bg:"color-mix(in srgb, var(--color-status-error) 10%, transparent)"},{value:t.review,label:"review",color:"var(--color-accent-orange)",bg:"color-mix(in srgb, var(--color-accent-orange) 10%, transparent)"},{value:t.working,label:"working",color:"var(--color-accent-blue)",bg:"color-mix(in srgb, var(--color-accent-blue) 10%, transparent)"},{value:t.pending,label:"pending",color:"var(--color-status-attention)",bg:"color-mix(in srgb, var(--color-status-attention) 10%, transparent)"},{value:t.done,label:"done",color:"var(--color-text-tertiary)",bg:"color-mix(in srgb, var(--color-text-tertiary) 14%, transparent)"}].filter(e=>e.value>0),f=t.merge+t.respond+t.review+t.working+t.pending+t.done;return(0,a.jsx)("div",{className:"mx-auto max-w-[1180px] px-5 pt-5 lg:px-8",children:(0,a.jsx)(g,{headline:n,crumbId:n,activityLabel:l,activityColor:i,branch:o,pr:c,crumbHref:d,crumbLabel:u,rightSlot:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3 lg:justify-end",children:[(0,a.jsxs)("div",{className:"flex items-baseline gap-1.5 mr-2",children:[(0,a.jsx)("span",{className:"text-[22px] font-bold leading-none tabular-nums text-[var(--color-text-primary)]",children:f}),(0,a.jsx)("span",{className:"text-[11px] text-[var(--color-text-tertiary)]",children:"agents"})]}),(0,a.jsx)("div",{className:"h-5 w-px bg-[var(--color-border-subtle)] mr-1"}),m.length>0?m.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-1.5 px-2.5 py-1",style:{background:e.bg},children:[(0,a.jsx)("span",{className:"text-[15px] font-bold leading-none tabular-nums",style:{color:e.color},children:e.value}),(0,a.jsx)("span",{className:"text-[10px] font-medium",style:{color:e.color,opacity:.8},children:e.label})]},e.label)):(0,a.jsx)("span",{className:"text-[12px] text-[var(--color-text-tertiary)]",children:"no active agents"}),h&&(0,a.jsxs)("span",{className:"ml-auto font-[var(--font-mono)] text-[11px] text-[var(--color-text-tertiary)]",children:["up ",h]})]})})})}function N(e){var t,s,d,x;let{session:g,isOrchestrator:y=!1,orchestratorZones:N,projectOrchestratorId:k=null,projects:S=[],sidebarSessions:C=[],sidebarLoading:I=!1,sidebarError:M=!1,onRetrySidebar:P}=e,T=(0,n.useRouter)(),E=(0,n.useSearchParams)(),R=(0,i.U)(i.D),O="true"===E.get("fullscreen"),[D,A]=(0,r.useState)(!1),[F,L]=(0,r.useState)(!1),[H,B]=(0,r.useState)(!1),W=g.pr,U=o.CM.has(g.status),z=U&&!o.N_.has(g.status),J=null!=(d=g.activity&&v[g.activity])?d:{label:null!=(s=g.activity)?s:"unknown",color:"var(--color-text-muted)"},V=(0,u.Pn)(g),q=y?"orchestrator":"agent",G="opencode"===g.metadata.agent,Z="string"==typeof g.metadata.opencodeSessionId&&g.metadata.opencodeSessionId.length>0?g.metadata.opencodeSessionId:void 0,K=g.projectId?(0,p.bn)(g.projectId):"/",X=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/sessions/".concat(encodeURIComponent(g.id),"/kill"),{method:"POST"});if(!e.ok)throw Error("HTTP ".concat(e.status));if(k)return void T.push((0,p.Nc)(g.projectId,k));T.push(K)}catch(e){console.error("Failed to kill session:",e)}},[K,k,T,g.id,g.projectId]),Q=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/sessions/".concat(encodeURIComponent(g.id),"/restore"),{method:"POST"});if(!e.ok)throw Error("HTTP ".concat(e.status));window.location.reload()}catch(e){console.error("Failed to restore session:",e)}},[g.id]),$=!!W&&(0,o.QN)(W),[Y,ee]=(0,r.useState)(!1),et=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(!Y)return;let e=e=>{et.current&&!et.current.contains(e.target)&&ee(!1)},t=e=>{"Escape"===e.key&&ee(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[Y]);let es=null!=(x=null==(t=S.find(e=>e.id===g.projectId))?void 0:t.name)?x:g.projectId,ea="agent orchestrator"!==es.trim().toLowerCase(),er=(0,r.useMemo)(()=>y?(0,p.Nc)(g.projectId,g.id):k?(0,p.Nc)(g.projectId,k):null,[y,k,g.id,g.projectId]);(0,r.useEffect)(()=>{let e=window.requestAnimationFrame(()=>B(!0));return()=>{window.cancelAnimationFrame(e),B(!1)}},[g.id]);let en=(0,r.useCallback)(()=>{R?L(e=>!e):A(e=>!e)},[R]);return(0,a.jsx)(h.I.Provider,{value:{onToggleSidebar:en,mobileSidebarOpen:F},children:(0,a.jsxs)("div",{className:"dashboard-app-shell",children:[(0,a.jsxs)("header",{className:"dashboard-app-header",children:[S.length>0?(0,a.jsx)("button",{type:"button",className:"dashboard-app-sidebar-toggle",onClick:en,"aria-label":"Toggle sidebar",children:R?(0,a.jsx)("svg",{width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M4 6h16M4 12h16M4 18h16"})}):(0,a.jsxs)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,a.jsx)("path",{d:"M9 3v18"})]})}):null,(0,a.jsx)("div",{className:"dashboard-app-header__brand dashboard-app-header__brand--hide-mobile",children:(0,a.jsx)("span",{children:"Agent Orchestrator"})}),ea&&(0,a.jsx)("span",{className:"dashboard-app-header__sep topbar-desktop-only","aria-hidden":"true"}),(0,a.jsxs)("div",{className:"topbar-project-pills-group",children:[(0,a.jsxs)("div",{className:"topbar-project-line",children:[ea&&(0,a.jsx)("span",{className:"dashboard-app-header__project",children:es}),!y&&(0,a.jsx)("span",{className:"dashboard-app-header__session-id topbar-mobile-only",children:g.id})]}),!y&&(0,a.jsxs)("div",{className:"topbar-session-pills",children:[(0,a.jsxs)("div",{className:(0,c.cn)("topbar-status-pill","topbar-status-pill--".concat(J.label.toLowerCase().replace(/\s+/g,"-"))),children:[(0,a.jsx)("span",{className:"topbar-status-pill__dot",style:{background:J.color}}),(0,a.jsx)("span",{className:"topbar-status-pill__label",children:J.label})]}),g.branch?W?(0,a.jsx)("a",{href:j(W),target:"_blank",rel:"noopener noreferrer",className:"topbar-branch-pill topbar-branch-pill--link",children:g.branch}):(0,a.jsx)("span",{className:"topbar-branch-pill",children:g.branch}):null]})]}),!y&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"dashboard-app-header__sep topbar-desktop-only","aria-hidden":"true"}),(0,a.jsx)("span",{className:"dashboard-app-header__session-title topbar-desktop-only",children:V}),(0,a.jsx)("span",{className:"dashboard-app-header__session-id topbar-desktop-only",children:g.id})]}),(0,a.jsx)("div",{className:"dashboard-app-header__spacer"}),(0,a.jsxs)("div",{className:"dashboard-app-header__actions",children:[W?(0,a.jsxs)("div",{className:"topbar-pr-btn-wrap",ref:et,children:[(0,a.jsxs)("a",{href:W.url,target:"_blank",rel:"noopener noreferrer",className:(0,c.cn)("dashboard-app-btn topbar-pr-btn",Y&&"topbar-pr-btn--open"),onClick:e=>{e.metaKey||e.ctrlKey||e.shiftKey||1===e.button||(e.preventDefault(),ee(e=>!e))},"aria-expanded":Y,"aria-label":"PR #".concat(W.number),children:[(0,a.jsx)("span",{className:(0,c.cn)("topbar-pr-dot",$?"topbar-pr-dot--green":W.ciStatus===l.U1.FAILING||"changes_requested"===W.reviewDecision?"topbar-pr-dot--red":"topbar-pr-dot--amber")}),"PR #",W.number,(0,a.jsx)("svg",{width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:Y?"M18 15l-6-6-6 6":"M6 9l6 6 6-6"})})]}),Y&&(0,a.jsx)("div",{className:"topbar-pr-popover",children:(0,a.jsx)(_,{pr:W,sessionId:g.id,metadata:g.metadata})})]}):null,z?(0,a.jsxs)("button",{type:"button",className:"dashboard-app-btn",onClick:Q,children:[(0,a.jsxs)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("polyline",{points:"1 4 1 10 7 10"}),(0,a.jsx)("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})]}),(0,a.jsx)("span",{className:"topbar-btn-label",children:"Restore"})]}):y||U?null:(0,a.jsxs)("button",{type:"button",className:"dashboard-app-btn dashboard-app-btn--danger",onClick:X,children:[(0,a.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})}),(0,a.jsx)("span",{className:"topbar-btn-label",children:"Kill"})]}),!y&&er?(0,a.jsxs)("a",{href:er,className:"dashboard-app-btn dashboard-app-btn--amber topbar-desktop-only","aria-label":"Orchestrator",children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,a.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,a.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),(0,a.jsx)("span",{className:"topbar-btn-label",children:"Orchestrator"})]}):null]})]}),(0,a.jsxs)("div",{className:"dashboard-shell dashboard-shell--desktop".concat(D?" dashboard-shell--sidebar-collapsed":""),children:[S.length>0?(0,a.jsx)("div",{className:"sidebar-wrapper".concat(F?" sidebar-wrapper--mobile-open":""),children:(0,a.jsx)(m.u,{projects:S,sessions:C,loading:I,error:M,onRetry:P,activeProjectId:g.projectId,activeSessionId:g.id,collapsed:D,onToggleCollapsed:()=>A(e=>!e),onMobileClose:()=>L(!1)})}):null,F&&(0,a.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>L(!1)}),(0,a.jsx)("div",{className:"dashboard-main dashboard-main--desktop",children:(0,a.jsxs)("main",{className:"session-detail-page flex-1 min-h-0 flex flex-col bg-[var(--color-bg-base)]",children:[y&&N&&(0,a.jsx)(w,{zones:N,createdAt:g.createdAt,headline:V,activityLabel:J.label,activityColor:J.color,branch:g.branch,pr:W,crumbHref:K,crumbLabel:"Dashboard"}),(0,a.jsx)("div",{className:"flex-1 min-h-0 flex flex-col",children:H?U?(0,a.jsx)("div",{className:"terminal-exited-placeholder h-full",children:(0,a.jsx)("span",{className:"terminal-exited-placeholder__text",children:"Terminal session has ended"})}):(0,a.jsx)(b,{sessionId:g.id,startFullscreen:O,variant:q,appearance:"dark",height:"100%",isOpenCodeSession:G,reloadCommand:G&&Z?"/exit\nopencode --session ".concat(Z,"\n"):void 0,autoFocus:!0}):(0,a.jsx)("div",{className:"session-detail-terminal-placeholder h-full"})})]})})]}),(0,a.jsx)(f.X,{ariaLabel:"Session navigation",activeTab:y?"orchestrator":void 0,dashboardHref:K,prsHref:g.projectId?"/?project=".concat(encodeURIComponent(g.projectId),"&tab=prs"):"/",showOrchestrator:!!er,orchestratorHref:er})]})})}function _(e){var t;let{pr:s,sessionId:n,metadata:i}=e,[d,u]=(0,r.useState)(new Set),[h,p]=(0,r.useState)(new Set),[m,f]=(0,r.useState)(new Set),[b,v]=(0,r.useState)(!1),j=(0,r.useRef)(new Map);(0,r.useEffect)(()=>()=>{j.current.forEach(e=>window.clearTimeout(e)),j.current.clear()},[]);let g=async e=>{p(t=>{let s=new Set(t);return s.delete(e.url),s}),f(t=>{let s=new Set(t);return s.delete(e.url),s}),u(t=>new Set(t).add(e.url)),await y(n,e,()=>{u(t=>{let s=new Set(t);return s.delete(e.url),s}),p(t=>new Set(t).add(e.url));let t=j.current.get(e.url);void 0!==t&&window.clearTimeout(t);let s=window.setTimeout(()=>{p(t=>{let s=new Set(t);return s.delete(e.url),s}),j.current.delete(e.url)},3e3);j.current.set(e.url,s)},()=>{u(t=>{let s=new Set(t);return s.delete(e.url),s}),f(t=>new Set(t).add(e.url));let t=j.current.get(e.url);void 0!==t&&window.clearTimeout(t);let s=window.setTimeout(()=>{f(t=>{let s=new Set(t);return s.delete(e.url),s}),j.current.delete(e.url)},3e3);j.current.set(e.url,s)})},w=(0,o.QN)(s),N=function(e,t){let s=[],a=!!t.lastCIFailureDispatchHash,r="true"===t.lastMergeConflictDispatched,n=!!t.lastPendingReviewDispatchHash,i=t.status,c=e.ciStatus===l.U1.FAILING||"ci_failed"===i,d="changes_requested"===e.reviewDecision||"changes_requested"===i,u=!(0,o.sZ)(e)&&!(0,o.fZ)(e)&&"merged"!==e.state&&!e.mergeability.noConflicts;if(c){let t=e.ciChecks.filter(e=>"failed"===e.status).length;s.push({icon:"✗",variant:"fail",text:t>0?"".concat(t," check").concat(1!==t?"s":""," failing"):"CI failing",notified:a})}else e.ciStatus===l.U1.PENDING&&s.push({icon:"●",variant:"warn",text:"CI pending"});return d?s.push({icon:"✗",variant:"fail",text:"Changes requested",notified:n}):e.mergeability.approved||s.push({icon:"○",variant:"muted",text:"Awaiting reviewer"}),u&&s.push({icon:"✗",variant:"fail",text:"Merge conflicts",notified:r}),e.isDraft&&s.push({icon:"○",variant:"muted",text:"Draft"}),s}(s,i),_=null!=(t=s.changedFiles)?t:0,k=!(0,o.sZ)(s)&&!(0,o.fZ)(s)&&"merged"!==s.state&&!s.mergeability.noConflicts&&"open"===s.state,S=k?function(e){let t=encodeURIComponent(e.owner),s=encodeURIComponent(e.repo),a=encodeURIComponent(e.baseBranch),r=encodeURIComponent(e.branch);return"https://github.com/".concat(t,"/").concat(s,"/compare/").concat(a,"...").concat(r)}(s):"";return(0,a.jsxs)("div",{className:(0,c.cn)("session-detail-pr-card",w&&"session-detail-pr-card--green"),children:[(0,a.jsxs)("div",{className:"session-detail-pr-card__row",children:[(0,a.jsxs)("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",className:"session-detail-pr-card__title-link",children:["PR #",s.number,": ",s.title]}),(0,a.jsxs)("span",{className:"session-detail-pr-card__diff-stats",children:[(0,a.jsxs)("span",{className:"session-detail-diff--add",children:["+",s.additions]})," ",(0,a.jsxs)("span",{className:"session-detail-diff--del",children:["-",s.deletions]})]}),_>0&&(0,a.jsxs)("span",{className:"session-detail-pr-card__diff-label",children:[_," file",1!==_?"s":""]}),s.isDraft&&(0,a.jsx)("span",{className:"session-detail-pr-card__diff-label",children:"Draft"}),"merged"===s.state&&(0,a.jsx)("span",{className:"session-detail-pr-card__diff-label",children:"Merged"})]}),k?(0,a.jsxs)("div",{className:"session-detail-pr-card__merge-actions",role:"group","aria-label":"Resolve merge conflicts",children:[(0,a.jsx)("a",{href:S,target:"_blank",rel:"noopener noreferrer",className:"session-detail-pr-merge-action",children:"Compare with base branch"}),(0,a.jsx)("button",{type:"button",onClick:()=>{var e;let t=null==(e=navigator.clipboard)?void 0:e.writeText(s.branch);t&&t.then(()=>{v(!0);let e="__copy-branch",t=j.current.get(e);void 0!==t&&window.clearTimeout(t);let s=window.setTimeout(()=>{v(!1),j.current.delete(e)},2e3);j.current.set(e,s)}).catch(()=>{})},"aria-label":b?"Head branch name copied":"Copy head branch name",className:"session-detail-pr-merge-action session-detail-pr-merge-action--btn",children:b?"Copied branch name":"Copy head branch name"})]}):null,(0,a.jsxs)("div",{className:"session-detail-pr-card__details",children:[w?(0,a.jsxs)("div",{className:"session-detail-merge-banner",children:[(0,a.jsx)("svg",{width:"11",height:"11",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M20 6L9 17l-5-5"})}),"Ready to merge"]}):N.map(e=>(0,a.jsxs)("span",{className:(0,c.cn)("session-detail-blocker-chip","fail"===e.variant&&"session-detail-blocker-chip--fail","warn"===e.variant&&"session-detail-blocker-chip--warn","muted"===e.variant&&"session-detail-blocker-chip--muted"),children:[e.icon," ",e.text,e.notified&&(0,a.jsx)("span",{className:"session-detail-blocker-chip__note",children:"\xb7 notified"})]},e.text)),s.ciChecks.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"session-detail-pr-sep"}),s.ciChecks.map(e=>{let t=(0,a.jsxs)("span",{className:(0,c.cn)("session-detail-ci-chip","passed"===e.status&&"session-detail-ci-chip--pass","failed"===e.status&&"session-detail-ci-chip--fail","pending"===e.status&&"session-detail-ci-chip--pending","passed"!==e.status&&"failed"!==e.status&&"pending"!==e.status&&"session-detail-ci-chip--queued"),children:["passed"===e.status?"✓":"failed"===e.status?"✗":"pending"===e.status?"●":"○"," ",e.name]});return e.url?(0,a.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"hover:no-underline",onClick:e=>e.stopPropagation(),children:t},e.name):(0,a.jsx)("span",{children:t},e.name)})]})]}),s.unresolvedComments.length>0&&(0,a.jsxs)("details",{className:"session-detail-comments-strip",children:[(0,a.jsx)("summary",{children:(0,a.jsxs)("div",{className:"session-detail-comments-strip__toggle",children:[(0,a.jsx)("svg",{className:"session-detail-comments-strip__chevron",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M9 5l7 7-7 7"})}),(0,a.jsx)("span",{className:"session-detail-comments-strip__label",children:"Unresolved Comments"}),(0,a.jsx)("span",{className:"session-detail-comments-strip__count",children:s.unresolvedThreads}),(0,a.jsx)("span",{className:"session-detail-comments-strip__hint",children:"click to expand"})]})}),(0,a.jsx)("div",{className:"session-detail-comments-strip__body",children:s.unresolvedComments.map((e,t)=>{let{title:s,description:r}=x(e.body);return(0,a.jsxs)("details",{className:"session-detail-comment",open:0===t,children:[(0,a.jsx)("summary",{children:(0,a.jsxs)("div",{className:"session-detail-comment__row",children:[(0,a.jsx)("svg",{className:"session-detail-comment__chevron",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M9 5l7 7-7 7"})}),(0,a.jsx)("span",{className:"session-detail-comment__title",children:s}),(0,a.jsxs)("span",{className:"session-detail-comment__author",children:["\xb7 ",e.author]}),(0,a.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"session-detail-comment__view",children:"view →"})]})}),(0,a.jsxs)("div",{className:"session-detail-comment__body",children:[(0,a.jsx)("div",{className:"session-detail-comment__file",children:e.path}),(0,a.jsx)("p",{className:"session-detail-comment__text",children:r}),(0,a.jsx)("button",{onClick:()=>g(e),disabled:d.has(e.url),className:(0,c.cn)("session-detail-comment__fix-btn",h.has(e.url)&&"session-detail-comment__fix-btn--sent",m.has(e.url)&&"session-detail-comment__fix-btn--error"),children:d.has(e.url)?"Sending…":h.has(e.url)?"Sent ✓":m.has(e.url)?"Failed":"Ask Agent to Fix"})]})]},e.url)})})]})]})}let k={active:"⚡",ready:"\uD83D\uDFE2",idle:"\uD83D\uDCA4",waiting_input:"❓",blocked:"\uD83D\uDEA7",exited:"\uD83D\uDC80"};var S=s(5184);let C=null,I=null,M=new Set(Object.values(l.SB)),P=new Set(Object.values(l.u3)),T=new Set;function E(e,t){if(!e||0===t.length)return e;let s=new Map(t.map(e=>[e.id,e])),a=!1,r=e.map(e=>{var t,r;let n=s.get(e.id);if(!n)return e;if(t=n.status,!M.has(t)){let t="status:".concat(n.status);return T.has(t)||(T.add(t),console.warn("Ignoring mux session patch with unknown status",{sessionId:n.id,status:n.status})),e}if(null!==n.activity&&(r=n.activity,!P.has(r))){let t="activity:".concat(n.activity);return T.has(t)||(T.add(t),console.warn("Ignoring mux session patch with unknown activity",{sessionId:n.id,activity:n.activity})),e}return e.status===n.status&&e.activity===n.activity&&e.lastActivityAt===n.lastActivityAt?e:(a=!0,{...e,status:n.status,activity:n.activity,lastActivityAt:n.lastActivityAt})});return a?r:e}function R(){var e;let t=(0,n.useParams)(),s=(0,n.usePathname)(),i=(0,n.useRouter)(),c=t.id,d="string"==typeof t.projectId?t.projectId:Array.isArray(t.projectId)?t.projectId[0]:null,h=(0,S.eT)(),m=(()=>{if("undefined"==typeof sessionStorage)return null;try{let e=sessionStorage.getItem("ao-session-nav:".concat(c));if(e)return sessionStorage.removeItem("ao-session-nav:".concat(c)),JSON.parse(e)}catch(e){}return null})(),[f,b]=(0,r.useState)(m),[v,x]=(0,r.useState)(null),[j,g]=(0,r.useState)(void 0),[y,w]=(0,r.useState)([]),[_,M]=(0,r.useState)(()=>I),[P,T]=(0,r.useState)(null===m),[R,O]=(0,r.useState)(null),[D,A]=(0,r.useState)(!1),[F,L]=(0,r.useState)(!1),[H,B]=(0,r.useState)(new Map),W=null!=(e=null==f?void 0:f.projectId)?e:null,U=[...H.values()],z=!!f&&(0,l.tT)(f,H.get(f.projectId),U),J=(0,r.useRef)(null),V=(0,r.useRef)(!1),q=(0,r.useRef)(null),G=(0,r.useRef)(new Map),Z=(0,r.useRef)(null!==m),K=(0,r.useRef)(null),X=(0,r.useRef)(!1),Q=(0,r.useRef)(!1),$=(0,r.useRef)(!1);(0,r.useEffect)(()=>{G.current=H},[H]);let Y=(0,r.useCallback)(async()=>{C&&(w(C),B(new Map(C.map(e=>{var t;return[e.id,null!=(t=e.sessionPrefix)?t:e.id]}))));try{var e,t;let s=await fetch("/api/projects");if(!s.ok)return void console.error("Failed to fetch projects:",Error("HTTP ".concat(s.status)));let a=await s.json();if(!(null==a?void 0:a.projects))return;e=C,t=a.projects,e&&e.length===t.length&&e.every((e,s)=>{let a=t[s];return JSON.stringify(e)===JSON.stringify(a)})||(C=a.projects,w(a.projects),B(new Map(a.projects.map(e=>{var t;return[e.id,null!=(t=e.sessionPrefix)?t:e.id]}))))}catch(e){console.error("Failed to fetch projects:",e)}},[]),ee=function(e,t){let[s,a]=(0,r.useState)(null);return(0,r.useEffect)(()=>{a(null);let t=new EventSource("/api/events"),s=!1;return t.onmessage=t=>{if(!s)try{let s=JSON.parse(t.data);if("snapshot"!==s.type)return;let r=s.sessions.find(t=>t.id===e);if(!r)return;a(e=>e&&e.activity===r.activity?e:{activity:r.activity})}catch(e){return}},()=>{s=!0,t.close()}},[e,void 0]),s}(c);(0,r.useEffect)(()=>{f?document.title=function(e,t,s){var a,r;let n,i=e.id,o=void 0!==s?s:e.activity,c=o&&null!=(a=k[o])?a:"",d=[...t.values()];return(0,l.tT)(e,t.get(e.projectId),d)?n="Orchestrator Terminal":(r=(0,u.Pn)(e),n=r.length>40?r.slice(0,40)+"...":r),c?"".concat(c," ").concat(i," | ").concat(n):"".concat(i," | ").concat(n)}(f,H,null==ee?void 0:ee.activity):document.title="".concat(c," | Session Detail")},[f,c,H,ee]),(0,r.useEffect)(()=>{J.current=W},[W]),(0,r.useEffect)(()=>{if(f&&y.some(e=>e.id===f.projectId)){if(null==s?void 0:s.startsWith("/sessions/"))return void i.replace((0,p.Nc)(f.projectId,f.id));(null==s?void 0:s.startsWith("/projects/"))&&d&&f.projectId!==d&&i.replace((0,p.Nc)(f.projectId,f.id))}},[d,s,y,i,f]),(0,r.useEffect)(()=>{V.current=z},[z]);let et=(0,r.useCallback)(async()=>{if(!X.current){X.current=!0;try{let e=await fetch("/api/sessions/".concat(encodeURIComponent(c)));if(404===e.status){Z.current||A(!0),T(!1);return}if(!e.ok)throw Error("HTTP ".concat(e.status));let t=await e.json();b(t),O(null),A(!1),Z.current=!0}catch(e){console.error("Failed to fetch session:",e),Z.current||O(e instanceof Error?e:Error("Failed to load session"))}finally{T(!1),X.current=!1}}},[c]),es=(0,r.useCallback)(async()=>{if(Q.current)return;let e=J.current;if(!e)return;let t=V.current,s="".concat(e,":").concat(t?"orchestrator":"worker");if(t||q.current!==s){Q.current=!0;try{var a,r,n,i,c;let d=t?"/api/sessions?project=".concat(encodeURIComponent(e),"&fresh=true"):"/api/sessions?project=".concat(encodeURIComponent(e),"&orchestratorOnly=true&fresh=true"),u=await fetch(d);if(!u.ok)return void console.error("Failed to fetch project sessions for",e,Error("HTTP ".concat(u.status)));let h=await u.json(),p=null!=(n=h.sessions)?n:[],m=null!=(c=null!=(i=h.orchestratorId)?i:null==(r=h.orchestrators)||null==(a=r.find(t=>t.projectId===e))?void 0:a.id)?c:null;if(g(e=>e===m?e:m),!t){q.current=s;return}let f={merge:0,respond:0,review:0,pending:0,working:0,done:0},b=[...G.current.values()];for(let e of p)if(!(0,l.tT)(e,G.current.get(e.projectId),b)){let t=(0,o.ng)(e);if("action"===t)continue;f[t]++}x(f)}catch(e){}finally{Q.current=!1}}},[]),ea=(0,r.useCallback)(async()=>{if(!$.current){$.current=!0;try{var e,t,s;let a=await fetch("/api/sessions?fresh=true");if(!a.ok)throw Error("HTTP ".concat(a.status));let r=await a.json(),n=null!=(e=null==r?void 0:r.sessions)?e:[],l=null!=(s=E(n,null!=(t=K.current)?t:[]))?s:n;I=l,L(!1),M(e=>e&&e.length===l.length&&e.every((e,t)=>{let s=l[t];return JSON.stringify(e)===JSON.stringify(s)})?e:l)}catch(e){console.error("Failed to fetch sidebar sessions:",e),L(!0),M(e=>null===e?[]:e)}finally{$.current=!1}}},[]);if((0,r.useEffect)(()=>{if(!(null==h?void 0:h.sessions))return;if("connected"!==h.status){K.current=null;return}K.current=h.sessions;let e=E(I,h.sessions);if(e!==I&&(I=e,M(e)),0===h.sessions.length||!I)return;let t=new Set(I.map(e=>e.id)),s=new Set(h.sessions.map(e=>e.id));if(t.size!==s.size)return void ea();for(let e of s)if(!t.has(e))return void ea()},[ea,null==h?void 0:h.sessions,null==h?void 0:h.status]),(0,r.useEffect)(()=>{z||x(null)},[z]),(0,r.useEffect)(()=>{Promise.all([Y(),et(),ea()])},[Y,et,ea]),(0,r.useEffect)(()=>{W&&es()},[es,z,W]),(0,r.useEffect)(()=>{let e=setInterval(()=>{et(),es(),ea()},2e3);return()=>clearInterval(e)},[et,es,ea]),P)return(0,a.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-[var(--color-bg-base)]",children:(0,a.jsx)("div",{className:"text-[13px] text-[var(--color-text-tertiary)]",children:"Loading session…"})});if(D)return(0,n.notFound)(),null;if(R)throw R;if(!f)throw Error("Session data was unavailable after loading completed");return(0,a.jsx)(N,{session:f,isOrchestrator:z,orchestratorZones:null!=v?v:void 0,projectOrchestratorId:j,projects:y,sidebarSessions:_,sidebarLoading:null===_,sidebarError:F,onRetrySidebar:ea})}},6943:(e,t,s)=>{function a(e){let{reason:t,children:s}=e;return s}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return a}}),s(1763)},8394:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return a}});let a=(0,s(5468).createAsyncLocalStorage)()},9891:(e,t,s)=>{s.d(t,{default:()=>r.a});var a=s(1712),r=s.n(a)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7008],{1237:(e,t,r)=>{r.d(t,{dG:()=>o,i_:()=>c,j6:()=>l});var n=r(3817),s=r(545),a=r(4906);function c(e,t){let r=e+t;return r>1e3?"XL":r>500?"L":r>200?"M":r>50?"S":"XS"}function l(e){let{pr:t,muted:r=!1}=e,l=c(t.additions,t.deletions),o=(0,s.fZ)(t),i=(0,s.sZ)(t),u=o||i,d=u?"—":"merged"===t.state?"merged":"closed"===t.state?"closed":t.isDraft?"draft":"approved"===t.reviewDecision?"approved":"changes_requested"===t.reviewDecision?"changes requested":"needs review",p=u?"text-[var(--color-text-tertiary)]":t.isDraft?"text-[var(--color-text-muted)]":"approved"===t.reviewDecision?"text-[var(--color-accent-green)]":"changes_requested"===t.reviewDecision?"text-[var(--color-accent-red)]":"text-[var(--color-accent-yellow)]",m=(0,n.jsx)("span",{className:"inline-block h-3 w-12 animate-pulse rounded bg-[var(--color-bg-subtle)]"});return(0,n.jsxs)("tr",{className:"border-b border-[var(--color-border-subtle)] transition-colors hover:bg-[var(--color-bg-subtle)]".concat(r?" opacity-60 hover:opacity-100":""),children:[(0,n.jsx)("td",{className:"px-3 py-2.5 text-sm",children:(0,n.jsxs)("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",className:"hover:underline",children:["#",t.number]})}),(0,n.jsx)("td",{className:"max-w-[420px] truncate px-3 py-2.5 text-sm font-medium",children:(0,n.jsx)("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",className:"hover:underline",children:t.title})}),(0,n.jsx)("td",{className:"px-3 py-2.5 text-sm",children:i?m:o?(0,n.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:"—"}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("span",{className:"text-[var(--color-accent-green)]",children:["+",t.additions]})," ",(0,n.jsxs)("span",{className:"text-[var(--color-accent-red)]",children:["-",t.deletions]})," ",(0,n.jsx)("span",{className:"text-[var(--color-text-muted)]",children:l})]})}),(0,n.jsx)("td",{className:"px-3 py-2.5",children:i?m:o?(0,n.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:"—"}):(0,n.jsx)(a.wX,{status:t.ciStatus,checks:t.ciChecks,compact:!0})}),(0,n.jsx)("td",{className:"px-3 py-2.5 text-xs font-semibold ".concat(p),children:i?m:d}),(0,n.jsx)("td",{className:"px-3 py-2.5 text-center text-sm font-bold ".concat(i?"":t.unresolvedThreads>0?"text-[var(--color-accent-red)]":"text-[var(--color-border-default)]"),children:i?m:t.unresolvedThreads})]})}function o(e){let{pr:t,muted:r=!1}=e,a=(0,s.fZ)(t),c=(0,s.sZ)(t),l=a||c,o=l?"—":"passing"===t.ciStatus?"passing":"failing"===t.ciStatus?"failed":"pending",i=l?"—":"merged"===t.state?"merged":"closed"===t.state?"closed":t.isDraft?"draft":"approved"===t.reviewDecision?"approved":"changes_requested"===t.reviewDecision?"changes":"needs review",u=(0,n.jsx)("span",{className:"inline-block h-3 w-10 animate-pulse rounded bg-[var(--color-bg-subtle)]"}),d=l?null:"+".concat(t.additions," -").concat(t.deletions),p="merged"===t.state?"mobile-pr-card__meta--merged":"closed"===t.state?"mobile-pr-card__meta--closed":"changes_requested"===t.reviewDecision?"mobile-pr-card__meta--changes":"approved"===t.reviewDecision?"mobile-pr-card__meta--approved":"mobile-pr-card__meta--open";return(0,n.jsxs)("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",className:"mobile-pr-card".concat(r?" mobile-pr-card--muted":""),children:[(0,n.jsxs)("div",{className:"mobile-pr-card__line",children:[(0,n.jsxs)("span",{className:"mobile-pr-card__number",children:["#",t.number]}),(0,n.jsx)("span",{className:"mobile-pr-card__title",children:t.title})]}),(0,n.jsxs)("div",{className:"mobile-pr-card__meta ".concat(p),children:[c?u:(0,n.jsxs)("span",{className:"mobile-pr-card__metric-value",children:[(0,n.jsx)("span",{className:"mobile-pr-card__ci-dot",style:{background:l?"var(--color-text-tertiary)":"passing"===t.ciStatus?"var(--color-accent-green)":"failing"===t.ciStatus?"var(--color-accent-red)":"var(--color-status-attention)"}}),(0,n.jsx)("span",{style:{color:l?void 0:"passing"===t.ciStatus?"var(--color-accent-green)":"failing"===t.ciStatus?"var(--color-accent-red)":"var(--color-text-secondary)"},children:o})]}),(0,n.jsx)("span",{className:"mobile-pr-card__review",style:{color:l?void 0:"approved"===t.reviewDecision?"var(--color-accent-green)":"changes_requested"===t.reviewDecision?"var(--color-accent-red)":"var(--color-text-secondary)"},children:c?u:i}),(0,n.jsx)("span",{className:"mobile-pr-card__diff",children:l?u:d})]})]})}},4906:(e,t,r)=>{r.d(t,{wX:()=>a,zm:()=>o});var n=r(3817);let s={passing:{label:"CI passing",className:"bg-[rgba(63,185,80,0.1)] text-[var(--color-accent-green)]",icon:"✓"},failing:{label:"CI failing",className:"bg-[rgba(248,81,73,0.15)] text-[var(--color-accent-red)]",icon:"✗"},pending:{label:"CI pending",className:"bg-[rgba(210,153,34,0.1)] text-[var(--color-accent-yellow)]",icon:"●"},none:{label:"—",className:"text-[var(--color-text-muted)]",icon:""}};function a(e){var t;let{status:r,checks:a,compact:c}=e,l=s[r],o=null!=(t=null==a?void 0:a.filter(e=>"failed"===e.status).length)?t:0;if("none"===r)return(0,n.jsx)("span",{className:"text-xs text-[var(--color-text-muted)]",children:"—"});let i="failing"===r&&o>0?"".concat(o," check").concat(o>1?"s":""," failing"):l.label;return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-semibold tracking-wide ".concat(l.className),children:[!c&&(0,n.jsx)("span",{children:l.icon}),i]})}let c={passed:{icon:"✓",color:"var(--color-accent-green)"},failed:{icon:"✗",color:"var(--color-accent-red)"},running:{icon:"●",color:"var(--color-accent-yellow)"},pending:{icon:"○",color:"var(--color-text-muted)"},skipped:{icon:"○",color:"var(--color-text-muted)"}},l={failed:0,running:1,pending:2,passed:3,skipped:4};function o(e){let{checks:t,layout:r="vertical"}=e,s=[...t].sort((e,t)=>l[e.status]-l[t.status]);return"inline"===r?(0,n.jsx)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1",children:s.map(e=>{let{icon:t,color:r}=c[e.status],s=(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs",children:[(0,n.jsx)("span",{style:{color:r},children:t}),(0,n.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:e.name})]});return e.url?(0,n.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"hover:no-underline",children:s},e.name):(0,n.jsx)("span",{children:s},e.name)})}):"expanded"===r?(0,n.jsx)("div",{className:"space-y-1",children:s.map(e=>{let{icon:t,color:r}=c[e.status],s=(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs",children:[(0,n.jsx)("span",{style:{color:r},children:t}),(0,n.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:e.name})]});return(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[e.url?(0,n.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"hover:no-underline",children:s}):s,e.url&&(0,n.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"text-[11px] text-[var(--color-accent-blue)] hover:underline",children:"view"})]},e.name)})}):(0,n.jsx)("div",{className:"space-y-1",children:s.map(e=>{let{icon:t,color:r}=c[e.status];return(0,n.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,n.jsx)("span",{style:{color:r},className:"w-3.5 shrink-0 text-center",children:t}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--color-text-secondary)]",children:e.name}),e.url&&(0,n.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"shrink-0 text-[11px] text-[var(--color-accent-blue)] hover:underline",children:"view"})]},e.name)})})}},5309:(e,t,r)=>{r.d(t,{D:()=>l});var n=r(6749),s=r(545);function a(e,t){switch(t.type){case"reset":return{...e,sessions:t.sessions,...void 0!==t.sseAttentionLevels?{sseAttentionLevels:t.sseAttentionLevels}:{}};case"markLiveSessionsResolved":if(e.liveSessionsResolved)return e;return{...e,liveSessionsResolved:!0};case"setConnection":return{...e,connectionStatus:t.status};case"snapshot":{let r=new Map(t.patches.map(e=>[e.id,e])),n=!1,s=e.sessions.map(e=>{let t=r.get(e.id);return t&&(e.status!==t.status||e.activity!==t.activity||e.lastActivityAt!==t.lastActivityAt)?(n=!0,{...e,status:t.status,activity:t.activity,lastActivityAt:t.lastActivityAt}):e}),a={};for(let e of t.patches)a[e.id]=e.attentionLevel;let c=n,l=Object.keys(a).length!==Object.keys(e.sseAttentionLevels).length||t.patches.some(t=>e.sseAttentionLevels[t.id]!==t.attentionLevel);if(!c&&!l)return e;return{...e,sessions:c?s:e.sessions,sseAttentionLevels:l?a:e.sseAttentionLevels}}}}function c(e){return e.map(e=>e.id).sort().join("\0")}function l(e){let{initialSessions:t,project:r,muxSessions:l,initialAttentionLevels:o,disabled:i=!1,attentionZones:u}=e,[d,p]=(0,n.useReducer)(a,{sessions:t,connectionStatus:"connected",sseAttentionLevels:null!=o?o:{},liveSessionsResolved:!1}),m=(0,n.useRef)(d.sessions),v=(0,n.useRef)(o);v.current=o;let x=(0,n.useRef)(null),f=(0,n.useRef)(null),h=(0,n.useRef)(0),g=(0,n.useRef)(0),b=(0,n.useRef)(null),y=(0,n.useRef)(null);(0,n.useEffect)(()=>{m.current=d.sessions},[d.sessions]),(0,n.useEffect)(()=>{var e;p({type:"reset",sessions:t,sseAttentionLevels:null!=(e=v.current)?e:{}})},[t]);let j=void 0!==l,w=(0,n.useCallback)(()=>{x.current||Date.now()-g.current<500||null===y.current&&(x.current=setTimeout(()=>{if(x.current=null,null!==y.current)return;let e=f.current,t=new AbortController;y.current=t,g.current=Date.now(),fetch(r?"/api/sessions?project=".concat(encodeURIComponent(r)):"/api/sessions",{signal:t.signal,cache:"no-store"}).then(e=>e.ok?e.json():null).then(e=>{if(t.signal.aborted||!(null==e?void 0:e.sessions)){t.signal.aborted||(h.current=Date.now());return}h.current=Date.now(),p({type:"markLiveSessionsResolved"});let r=Object.fromEntries(e.sessions.map(e=>[e.id,(0,s.ng)(e,u)]));p({type:"reset",sessions:e.sessions,sseAttentionLevels:r})}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||(console.warn("[useSessionEvents] refresh failed:",e),h.current=Date.now())}).finally(()=>{if(y.current===t&&(y.current=null),t.signal.aborted){null!==f.current&&w();return}if(null!==f.current&&f.current!==e)return void w();f.current=null})},120))},[r,u]);return(0,n.useEffect)(()=>{if(i||!l)return;let e=new Set(m.current.map(e=>e.id)),t=l.filter(t=>e.has(t.id)),r=l.some(t=>!e.has(t.id));p({type:"markLiveSessionsResolved"}),p({type:"snapshot",patches:t});let n=c(m.current),s=c(t);return r||n!==s?(f.current=s,w()):Date.now()-h.current>=15e3&&w(),()=>{var e;null==(e=y.current)||e.abort(),y.current=null}},[i,l,w]),(0,n.useEffect)(()=>{if(i)return;if(j)return p({type:"setConnection",status:"connected"}),()=>{var e;x.current&&(clearTimeout(x.current),x.current=null),f.current=null,null==(e=y.current)||e.abort(),y.current=null};h.current=0;let e=new EventSource(r?"/api/events?project=".concat(encodeURIComponent(r)):"/api/events"),t=!1,n=()=>{b.current&&(clearTimeout(b.current),b.current=null)};return e.onmessage=e=>{try{let t=JSON.parse(e.data);if("snapshot"===t.type){p({type:"markLiveSessionsResolved"}),p({type:"snapshot",patches:t.sessions});let e=c(m.current),r=c(t.sessions);if(e!==r){f.current=r,w();return}Date.now()-h.current>=15e3&&w()}}catch(e){return}},e.onopen=()=>{n(),t||p({type:"setConnection",status:"connected"})},e.onerror=()=>{if(!t){if(e.readyState===EventSource.CLOSED){n(),p({type:"setConnection",status:"disconnected"});return}p({type:"setConnection",status:"reconnecting"}),null===b.current&&(b.current=setTimeout(()=>{b.current=null,t||e.readyState===EventSource.OPEN||p({type:"setConnection",status:"disconnected"})},4e3))}},()=>{var r;t=!0,null==(r=y.current)||r.abort(),y.current=null,f.current=null,x.current&&(clearTimeout(x.current),x.current=null),n(),e.close()}},[i,r,j,w]),d}},7848:(e,t,r)=>{r.d(t,{S:()=>a,u:()=>c});var n=r(6749);let s={green:"#22c55e",yellow:"#eab308",red:"#ef4444"};function a(e){let t=0;for(let r of Object.values(e))("respond"===r||"review"===r||"action"===r||"merge"===r)&&t++;return t}function c(e){let{sseAttentionLevels:t,projectName:r="A"}=e,a=r.charAt(0).toUpperCase();return(0,n.useEffect)(()=>{let e=function(e,t){let r='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">\n <rect width="32" height="32" rx="6" fill="'.concat(t,'"/>\n <text x="16" y="23" text-anchor="middle" fill="white" font-family="sans-serif" font-weight="700" font-size="20">').concat(e,"</text>\n </svg>");return"data:image/svg+xml,".concat(encodeURIComponent(r))}(a,s[function(e){let t=Object.values(e);if(0===t.length)return"green";let r=!1;for(let e of t){if("respond"===e)return"red";("review"===e||"action"===e||"merge"===e)&&(r=!0)}return r?"yellow":"green"}(t)]),r=document.querySelector('link[rel="icon"]');r||((r=document.createElement("link")).rel="icon",document.head.appendChild(r)),r.type="image/svg+xml",r.href=e},[t,a]),null}}}]);