@aoagents/ao-web 0.2.4 → 0.3.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 (305) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +296 -223
  3. package/.next/app-path-routes-manifest.json +16 -8
  4. package/.next/build-manifest.json +14 -14
  5. package/.next/next-minimal-server.js.nft.json +1 -1
  6. package/.next/next-server.js.nft.json +1 -1
  7. package/.next/prerender-manifest.json +31 -31
  8. package/.next/react-loadable-manifest.json +18 -18
  9. package/.next/required-server-files.json +9 -4
  10. package/.next/routes-manifest.json +33 -0
  11. package/.next/server/app/_not-found/page.js +2 -2
  12. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +15 -15
  16. package/.next/server/app/api/backlog/route.js +1 -1
  17. package/.next/server/app/api/backlog/route.js.nft.json +1 -1
  18. package/.next/server/app/api/backlog/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/browse-directory/route.js +1 -0
  20. package/.next/server/app/api/browse-directory/route.js.nft.json +1 -0
  21. package/.next/server/app/api/browse-directory/route_client-reference-manifest.js +1 -0
  22. package/.next/server/app/api/events/route.js +3 -3
  23. package/.next/server/app/api/events/route.js.nft.json +1 -1
  24. package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/filesystem/browse/route.js +1 -0
  26. package/.next/server/app/api/filesystem/browse/route.js.nft.json +1 -0
  27. package/.next/server/app/api/filesystem/browse/route_client-reference-manifest.js +1 -0
  28. package/.next/server/app/api/issues/route.js +1 -1
  29. package/.next/server/app/api/issues/route.js.nft.json +1 -1
  30. package/.next/server/app/api/issues/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/observability/route.js +1 -1
  32. package/.next/server/app/api/observability/route.js.nft.json +1 -1
  33. package/.next/server/app/api/observability/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/orchestrators/route.js +1 -1
  35. package/.next/server/app/api/orchestrators/route.js.nft.json +1 -1
  36. package/.next/server/app/api/orchestrators/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/projects/[id]/route.js +1 -0
  38. package/.next/server/app/api/projects/[id]/route.js.nft.json +1 -0
  39. package/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -0
  40. package/.next/server/app/api/projects/reload/route.js +1 -0
  41. package/.next/server/app/api/projects/reload/route.js.nft.json +1 -0
  42. package/.next/server/app/api/projects/reload/route_client-reference-manifest.js +1 -0
  43. package/.next/server/app/api/projects/route.js +1 -1
  44. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  45. package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/prs/[id]/merge/route.js +1 -1
  47. package/.next/server/app/api/prs/[id]/merge/route.js.nft.json +1 -1
  48. package/.next/server/app/api/prs/[id]/merge/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/runtime/terminal/route.js +1 -1
  50. package/.next/server/app/api/runtime/terminal/route.js.nft.json +1 -1
  51. package/.next/server/app/api/runtime/terminal/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/sessions/[id]/kill/route.js +1 -1
  53. package/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
  54. package/.next/server/app/api/sessions/[id]/kill/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/sessions/[id]/message/route.js +1 -1
  56. package/.next/server/app/api/sessions/[id]/message/route.js.nft.json +1 -1
  57. package/.next/server/app/api/sessions/[id]/message/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/sessions/[id]/remap/route.js +1 -1
  59. package/.next/server/app/api/sessions/[id]/remap/route.js.nft.json +1 -1
  60. package/.next/server/app/api/sessions/[id]/remap/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/sessions/[id]/restore/route.js +1 -1
  62. package/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
  63. package/.next/server/app/api/sessions/[id]/restore/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  65. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  66. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/sessions/[id]/send/route.js +1 -1
  68. package/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
  69. package/.next/server/app/api/sessions/[id]/send/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/sessions/patches/route.js +1 -0
  71. package/.next/server/app/api/sessions/patches/route.js.nft.json +1 -0
  72. package/.next/server/app/api/sessions/patches/route_client-reference-manifest.js +1 -0
  73. package/.next/server/app/api/sessions/route.js +1 -1
  74. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  75. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/setup-labels/route.js +1 -1
  77. package/.next/server/app/api/setup-labels/route.js.nft.json +1 -1
  78. package/.next/server/app/api/setup-labels/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/spawn/route.js +1 -1
  80. package/.next/server/app/api/spawn/route.js.nft.json +1 -1
  81. package/.next/server/app/api/spawn/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/verify/route.js +1 -1
  83. package/.next/server/app/api/verify/route.js.nft.json +1 -1
  84. package/.next/server/app/api/verify/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/webhooks/[...slug]/route.js +1 -1
  86. package/.next/server/app/api/webhooks/[...slug]/route.js.nft.json +1 -1
  87. package/.next/server/app/api/webhooks/[...slug]/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/apple-icon/route.js +1 -1
  89. package/.next/server/app/apple-icon/route.js.nft.json +1 -1
  90. package/.next/server/app/apple-icon/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/dev/terminal-test/page.js +3 -3
  92. package/.next/server/app/dev/terminal-test/page.js.nft.json +1 -1
  93. package/.next/server/app/dev/terminal-test/page_client-reference-manifest.js +1 -1
  94. package/.next/server/app/dev/terminal-test.html +1 -1
  95. package/.next/server/app/dev/terminal-test.rsc +17 -17
  96. package/.next/server/app/icon/route.js +1 -1
  97. package/.next/server/app/icon/route.js.nft.json +1 -1
  98. package/.next/server/app/icon/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/icon-192/route.js +1 -1
  100. package/.next/server/app/icon-192/route.js.nft.json +1 -1
  101. package/.next/server/app/icon-192/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/icon-512/route.js +1 -1
  103. package/.next/server/app/icon-512/route.js.nft.json +1 -1
  104. package/.next/server/app/icon-512/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  106. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  107. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/manifest.webmanifest.body +1 -1
  109. package/.next/server/app/orchestrators/page.js +2 -2
  110. package/.next/server/app/orchestrators/page.js.nft.json +1 -1
  111. package/.next/server/app/orchestrators/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/page.js +2 -2
  113. package/.next/server/app/page.js.nft.json +1 -1
  114. package/.next/server/app/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/projects/[projectId]/page.js +2 -0
  116. package/.next/server/app/projects/[projectId]/page.js.nft.json +1 -0
  117. package/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -0
  118. package/.next/server/app/projects/[projectId]/sessions/[id]/page.js +2 -0
  119. package/.next/server/app/projects/[projectId]/sessions/[id]/page.js.nft.json +1 -0
  120. package/.next/server/app/projects/[projectId]/sessions/[id]/page_client-reference-manifest.js +1 -0
  121. package/.next/server/app/projects/[projectId]/settings/page.js +2 -0
  122. package/.next/server/app/projects/[projectId]/settings/page.js.nft.json +1 -0
  123. package/.next/server/app/projects/[projectId]/settings/page_client-reference-manifest.js +1 -0
  124. package/.next/server/app/prs/page.js +2 -2
  125. package/.next/server/app/prs/page.js.nft.json +1 -1
  126. package/.next/server/app/prs/page_client-reference-manifest.js +1 -1
  127. package/.next/server/app/sessions/[id]/page.js +2 -12
  128. package/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  129. package/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  130. package/.next/server/app/test-direct/page.js +2 -2
  131. package/.next/server/app/test-direct/page.js.nft.json +1 -1
  132. package/.next/server/app/test-direct/page_client-reference-manifest.js +1 -1
  133. package/.next/server/app/test-direct.html +1 -1
  134. package/.next/server/app/test-direct.rsc +17 -17
  135. package/.next/server/app-paths-manifest.json +16 -8
  136. package/.next/server/chunks/1172.js +1 -0
  137. package/.next/server/chunks/1271.js +1 -0
  138. package/.next/server/chunks/2106.js +1 -0
  139. package/.next/server/chunks/252.js +11 -0
  140. package/.next/server/chunks/2810.js +1 -0
  141. package/.next/server/chunks/3602.js +382 -0
  142. package/.next/server/chunks/3667.js +277 -0
  143. package/.next/server/chunks/3714.js +1 -0
  144. package/.next/server/chunks/4520.js +1 -0
  145. package/.next/server/chunks/6086.js +25 -0
  146. package/.next/server/chunks/6172.js +9 -0
  147. package/.next/server/chunks/8367.js +3 -0
  148. package/.next/server/chunks/8386.js +1 -0
  149. package/.next/server/chunks/8803.js +6 -0
  150. package/.next/server/chunks/9561.js +22 -0
  151. package/.next/server/middleware-build-manifest.js +1 -1
  152. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  153. package/.next/server/next-font-manifest.js +1 -1
  154. package/.next/server/next-font-manifest.json +1 -1
  155. package/.next/server/pages/404.html +1 -1
  156. package/.next/server/pages/500.html +1 -1
  157. package/.next/server/pages/_app.js +1 -1
  158. package/.next/server/pages/_app.js.nft.json +1 -1
  159. package/.next/server/pages/_document.js +1 -1
  160. package/.next/server/pages/_document.js.nft.json +1 -1
  161. package/.next/server/pages/_error.js +3 -3
  162. package/.next/server/pages/_error.js.nft.json +1 -1
  163. package/.next/server/server-reference-manifest.json +1 -1
  164. package/.next/server/webpack-runtime.js +1 -1
  165. package/.next/static/chunks/1461-af7c54935f21d56d.js +1 -0
  166. package/.next/static/chunks/1d2d5650.1ef8611b5325bd83.js +18 -0
  167. package/.next/static/chunks/{9393.acf1934a190d793b.js → 2529.32352c1ce5253e3e.js} +1 -1
  168. package/.next/static/chunks/3697.4d6d86c5f0caf73e.js +1 -0
  169. package/.next/static/chunks/4465-aaba60a6355de914.js +1 -0
  170. package/.next/static/chunks/{7411.ecda44797fb514a0.js → 5491.fd98884d48631149.js} +1 -1
  171. package/.next/static/chunks/6078.47ce88bee96cfaee.js +1 -0
  172. package/.next/static/chunks/6607-405ce4d15e595f4a.js +1 -0
  173. package/.next/static/chunks/7008-71ebb186f0549f41.js +1 -0
  174. package/.next/static/chunks/7317.685aa5231218e8d3.js +1 -0
  175. package/.next/static/chunks/8713-d3d663f55dc00e48.js +1 -0
  176. package/.next/static/chunks/88a6fc35-f836b4b72df5eafa.js +1 -0
  177. package/.next/static/chunks/9331-fcdd652218ac6f68.js +1 -0
  178. package/.next/static/chunks/app/_not-found/page-e2dea9178b4af8db.js +1 -0
  179. package/.next/static/chunks/app/api/backlog/route-e2dea9178b4af8db.js +1 -0
  180. package/.next/static/chunks/app/api/browse-directory/route-e2dea9178b4af8db.js +1 -0
  181. package/.next/static/chunks/app/api/events/route-e2dea9178b4af8db.js +1 -0
  182. package/.next/static/chunks/app/api/filesystem/browse/route-e2dea9178b4af8db.js +1 -0
  183. package/.next/static/chunks/app/api/issues/route-e2dea9178b4af8db.js +1 -0
  184. package/.next/static/chunks/app/api/observability/route-e2dea9178b4af8db.js +1 -0
  185. package/.next/static/chunks/app/api/orchestrators/route-e2dea9178b4af8db.js +1 -0
  186. package/.next/static/chunks/app/api/projects/[id]/route-e2dea9178b4af8db.js +1 -0
  187. package/.next/static/chunks/app/api/projects/reload/route-e2dea9178b4af8db.js +1 -0
  188. package/.next/static/chunks/app/api/projects/route-e2dea9178b4af8db.js +1 -0
  189. package/.next/static/chunks/app/api/prs/[id]/merge/route-e2dea9178b4af8db.js +1 -0
  190. package/.next/static/chunks/app/api/runtime/terminal/route-e2dea9178b4af8db.js +1 -0
  191. package/.next/static/chunks/app/api/sessions/[id]/kill/route-e2dea9178b4af8db.js +1 -0
  192. package/.next/static/chunks/app/api/sessions/[id]/message/route-e2dea9178b4af8db.js +1 -0
  193. package/.next/static/chunks/app/api/sessions/[id]/remap/route-e2dea9178b4af8db.js +1 -0
  194. package/.next/static/chunks/app/api/sessions/[id]/restore/route-e2dea9178b4af8db.js +1 -0
  195. package/.next/static/chunks/app/api/sessions/[id]/route-e2dea9178b4af8db.js +1 -0
  196. package/.next/static/chunks/app/api/sessions/[id]/send/route-e2dea9178b4af8db.js +1 -0
  197. package/.next/static/chunks/app/api/sessions/patches/route-e2dea9178b4af8db.js +1 -0
  198. package/.next/static/chunks/app/api/sessions/route-e2dea9178b4af8db.js +1 -0
  199. package/.next/static/chunks/app/api/setup-labels/route-e2dea9178b4af8db.js +1 -0
  200. package/.next/static/chunks/app/api/spawn/route-e2dea9178b4af8db.js +1 -0
  201. package/.next/static/chunks/app/api/verify/route-e2dea9178b4af8db.js +1 -0
  202. package/.next/static/chunks/app/api/webhooks/[...slug]/route-e2dea9178b4af8db.js +1 -0
  203. package/.next/static/chunks/app/apple-icon/route-e2dea9178b4af8db.js +1 -0
  204. package/.next/static/chunks/app/dev/terminal-test/page-5765f0465db56fed.js +1 -0
  205. package/.next/static/chunks/app/error-670f1d8bf2b6859c.js +1 -0
  206. package/.next/static/chunks/app/{global-error-7b5c8ae45329c659.js → global-error-ca06d2b1be2d4ae0.js} +1 -1
  207. package/.next/static/chunks/app/icon/route-e2dea9178b4af8db.js +1 -0
  208. package/.next/static/chunks/app/icon-192/route-e2dea9178b4af8db.js +1 -0
  209. package/.next/static/chunks/app/icon-512/route-e2dea9178b4af8db.js +1 -0
  210. package/.next/static/chunks/app/layout-ddf79478d9a673bb.js +1 -0
  211. package/.next/static/chunks/app/loading-e2dea9178b4af8db.js +1 -0
  212. package/.next/static/chunks/app/manifest.webmanifest/route-e2dea9178b4af8db.js +1 -0
  213. package/.next/static/chunks/app/{not-found-3772c2e09c29d80f.js → not-found-824d5d3c6e296eeb.js} +1 -1
  214. package/.next/static/chunks/app/orchestrators/page-4c190484788aaaa3.js +1 -0
  215. package/.next/static/chunks/app/page-d3b83ad5f09b6ec7.js +1 -0
  216. package/.next/static/chunks/app/projects/[projectId]/loading-e2dea9178b4af8db.js +1 -0
  217. package/.next/static/chunks/app/projects/[projectId]/page-9f3dfbea006747cf.js +1 -0
  218. package/.next/static/chunks/app/projects/[projectId]/sessions/[id]/page-a7090a06948f9a6b.js +1 -0
  219. package/.next/static/chunks/app/projects/[projectId]/settings/page-219df6dcbc6d1107.js +1 -0
  220. package/.next/static/chunks/app/prs/page-a285e930235a23af.js +1 -0
  221. package/.next/static/chunks/app/sessions/[id]/error-eb0973907da68a37.js +1 -0
  222. package/.next/static/chunks/app/sessions/[id]/loading-e2dea9178b4af8db.js +1 -0
  223. package/.next/static/chunks/app/sessions/[id]/{not-found-3772c2e09c29d80f.js → not-found-824d5d3c6e296eeb.js} +1 -1
  224. package/.next/static/chunks/app/sessions/[id]/page-98f398b822092218.js +1 -0
  225. package/.next/static/chunks/app/test-direct/page-f9bff7d7b4dfe728.js +1 -0
  226. package/.next/static/chunks/framework-7060e2ac4971c604.js +1 -0
  227. package/.next/static/chunks/main-app-690acf9d5d2050c9.js +1 -0
  228. package/.next/static/chunks/main-ed1610689fbd6f0d.js +1 -0
  229. package/.next/static/chunks/pages/_app-f4baf4dbe88f6f54.js +1 -0
  230. package/.next/static/chunks/pages/_error-a7f6723f42093f29.js +1 -0
  231. package/.next/static/chunks/{webpack-e12ceebeb7a1cc7e.js → webpack-d4ff5ed5e153ca3e.js} +1 -1
  232. package/.next/static/css/577ea7f5ad4f0576.css +1 -0
  233. package/.next/static/css/659eccb5db697b76.css +1 -0
  234. package/.next/static/q6yh3n8jgvyI9JIbexzuH/_buildManifest.js +1 -0
  235. package/dist-server/direct-terminal-ws.js +33 -236
  236. package/dist-server/mux-websocket.js +516 -0
  237. package/dist-server/start-all.js +0 -2
  238. package/next.config.js +5 -0
  239. package/package.json +18 -15
  240. package/.next/server/chunks/27.js +0 -438
  241. package/.next/server/chunks/377.js +0 -1
  242. package/.next/server/chunks/393.js +0 -1
  243. package/.next/server/chunks/627.js +0 -391
  244. package/.next/server/chunks/639.js +0 -6
  245. package/.next/server/chunks/693.js +0 -1
  246. package/.next/server/chunks/705.js +0 -22
  247. package/.next/server/chunks/787.js +0 -29
  248. package/.next/server/chunks/796.js +0 -1
  249. package/.next/server/chunks/934.js +0 -1
  250. package/.next/server/chunks/956.js +0 -9
  251. package/.next/static/WS8DHHp9haunZGhtE8L33/_buildManifest.js +0 -1
  252. package/.next/static/chunks/1250-e7cf6b069fbb03ed.js +0 -1
  253. package/.next/static/chunks/2205.498806f73783aa54.js +0 -1
  254. package/.next/static/chunks/3698-9c12c45b8184022c.js +0 -1
  255. package/.next/static/chunks/6381.1541d5695a727108.js +0 -1
  256. package/.next/static/chunks/7505-2d2422d31862995f.js +0 -1
  257. package/.next/static/chunks/8597-1385f90ec1cebf47.js +0 -1
  258. package/.next/static/chunks/8762.f3d526855363db16.js +0 -1
  259. package/.next/static/chunks/a51c26f2-a21e680a5df6764e.js +0 -1
  260. package/.next/static/chunks/app/_not-found/page-2224bc1d3dce1b3e.js +0 -1
  261. package/.next/static/chunks/app/api/backlog/route-2224bc1d3dce1b3e.js +0 -1
  262. package/.next/static/chunks/app/api/events/route-2224bc1d3dce1b3e.js +0 -1
  263. package/.next/static/chunks/app/api/issues/route-2224bc1d3dce1b3e.js +0 -1
  264. package/.next/static/chunks/app/api/observability/route-2224bc1d3dce1b3e.js +0 -1
  265. package/.next/static/chunks/app/api/orchestrators/route-2224bc1d3dce1b3e.js +0 -1
  266. package/.next/static/chunks/app/api/projects/route-2224bc1d3dce1b3e.js +0 -1
  267. package/.next/static/chunks/app/api/prs/[id]/merge/route-2224bc1d3dce1b3e.js +0 -1
  268. package/.next/static/chunks/app/api/runtime/terminal/route-2224bc1d3dce1b3e.js +0 -1
  269. package/.next/static/chunks/app/api/sessions/[id]/kill/route-2224bc1d3dce1b3e.js +0 -1
  270. package/.next/static/chunks/app/api/sessions/[id]/message/route-2224bc1d3dce1b3e.js +0 -1
  271. package/.next/static/chunks/app/api/sessions/[id]/remap/route-2224bc1d3dce1b3e.js +0 -1
  272. package/.next/static/chunks/app/api/sessions/[id]/restore/route-2224bc1d3dce1b3e.js +0 -1
  273. package/.next/static/chunks/app/api/sessions/[id]/route-2224bc1d3dce1b3e.js +0 -1
  274. package/.next/static/chunks/app/api/sessions/[id]/send/route-2224bc1d3dce1b3e.js +0 -1
  275. package/.next/static/chunks/app/api/sessions/route-2224bc1d3dce1b3e.js +0 -1
  276. package/.next/static/chunks/app/api/setup-labels/route-2224bc1d3dce1b3e.js +0 -1
  277. package/.next/static/chunks/app/api/spawn/route-2224bc1d3dce1b3e.js +0 -1
  278. package/.next/static/chunks/app/api/verify/route-2224bc1d3dce1b3e.js +0 -1
  279. package/.next/static/chunks/app/api/webhooks/[...slug]/route-2224bc1d3dce1b3e.js +0 -1
  280. package/.next/static/chunks/app/apple-icon/route-2224bc1d3dce1b3e.js +0 -1
  281. package/.next/static/chunks/app/dev/terminal-test/page-ac0ce5b046fcad82.js +0 -1
  282. package/.next/static/chunks/app/error-4896c9d3b7681a80.js +0 -1
  283. package/.next/static/chunks/app/icon/route-2224bc1d3dce1b3e.js +0 -1
  284. package/.next/static/chunks/app/icon-192/route-2224bc1d3dce1b3e.js +0 -1
  285. package/.next/static/chunks/app/icon-512/route-2224bc1d3dce1b3e.js +0 -1
  286. package/.next/static/chunks/app/layout-023f2083204e4f68.js +0 -1
  287. package/.next/static/chunks/app/loading-2224bc1d3dce1b3e.js +0 -1
  288. package/.next/static/chunks/app/manifest.webmanifest/route-2224bc1d3dce1b3e.js +0 -1
  289. package/.next/static/chunks/app/orchestrators/page-df85236df674fc5a.js +0 -1
  290. package/.next/static/chunks/app/page-e97da633b7ef25f2.js +0 -1
  291. package/.next/static/chunks/app/prs/page-8cc0fce584d238c5.js +0 -1
  292. package/.next/static/chunks/app/sessions/[id]/error-90bc99b777fecabf.js +0 -1
  293. package/.next/static/chunks/app/sessions/[id]/loading-2224bc1d3dce1b3e.js +0 -1
  294. package/.next/static/chunks/app/sessions/[id]/page-c9c95a8604786cff.js +0 -1
  295. package/.next/static/chunks/app/test-direct/page-16ceeb9f7664394a.js +0 -1
  296. package/.next/static/chunks/df4ed4d4.6a752eba3933e9a8.js +0 -3
  297. package/.next/static/chunks/framework-f8b8ba0f71d38056.js +0 -1
  298. package/.next/static/chunks/main-2bc85c765bf1fc49.js +0 -1
  299. package/.next/static/chunks/main-app-93fb36c3bd1a6739.js +0 -1
  300. package/.next/static/chunks/pages/_app-a0b975794f15bd68.js +0 -1
  301. package/.next/static/chunks/pages/_error-5f4e3b5eea57917d.js +0 -1
  302. package/.next/static/css/6ef2fa08dd043252.css +0 -1
  303. package/.next/static/css/908f93fdd7ffba42.css +0 -1
  304. package/dist-server/terminal-websocket.js +0 -375
  305. /package/.next/static/{WS8DHHp9haunZGhtE8L33 → q6yh3n8jgvyI9JIbexzuH}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9393],{9393:(e,t,r)=>{r.r(t),r.d(t,{FitAddon:()=>i});var i=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(0===e.css.cell.width||0===e.css.cell.height)return;let t=0===this._terminal.options.scrollback?0:this._terminal.options.overviewRuler?.width||14,r=window.getComputedStyle(this._terminal.element.parentElement),i=parseInt(r.getPropertyValue("height")),s=Math.max(0,parseInt(r.getPropertyValue("width"))),l=window.getComputedStyle(this._terminal.element),n={top:parseInt(l.getPropertyValue("padding-top")),bottom:parseInt(l.getPropertyValue("padding-bottom")),right:parseInt(l.getPropertyValue("padding-right")),left:parseInt(l.getPropertyValue("padding-left"))},a=n.top+n.bottom;return{cols:Math.max(2,Math.floor((s-(n.right+n.left)-t)/e.css.cell.width)),rows:Math.max(1,Math.floor((i-a)/e.css.cell.height))}}}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2529],{2529:(e,t,r)=>{r.r(t),r.d(t,{FitAddon:()=>i});var i=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(0===e.css.cell.width||0===e.css.cell.height)return;let t=0===this._terminal.options.scrollback?0:this._terminal.options.overviewRuler?.width||14,r=window.getComputedStyle(this._terminal.element.parentElement),i=parseInt(r.getPropertyValue("height")),s=Math.max(0,parseInt(r.getPropertyValue("width"))),l=window.getComputedStyle(this._terminal.element),n={top:parseInt(l.getPropertyValue("padding-top")),bottom:parseInt(l.getPropertyValue("padding-bottom")),right:parseInt(l.getPropertyValue("padding-right")),left:parseInt(l.getPropertyValue("padding-left"))},a=n.top+n.bottom;return{cols:Math.max(2,Math.floor((s-(n.right+n.left)-t)/e.css.cell.width)),rows:Math.max(1,Math.floor((i-a)/e.css.cell.height))}}}}}]);
@@ -0,0 +1 @@
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"})]})]})}}}]);
@@ -0,0 +1 @@
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 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7411],{7411:(e,t,r)=>{r.r(t),r.d(t,{WebLinksAddon:()=>a});var i=class{constructor(e,t,r,i={}){this._terminal=e,this._regex=t,this._handler=r,this._options=i}provideLinks(e,t){let r=n.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(r))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(t,r)=>{if(this._options.hover){let{range:i}=e;this._options.hover(t,r,i)}},e))}},n=class e{static computeLink(t,r,i,n){let s=RegExp(r.source,(r.flags||"")+"g"),[o,a]=e._getWindowedLineStrings(t-1,i),l=o.join(""),h,c=[];for(;h=s.exec(l);){let t=h[0];if(!function(e){try{let t=new URL(e),r=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(r.toLocaleLowerCase())}catch{return!1}}(t))continue;let[r,s]=e._mapStrIdx(i,a,0,h.index),[o,l]=e._mapStrIdx(i,r,s,t.length);if(-1===r||-1===s||-1===o||-1===l)continue;let p={start:{x:s+1,y:r+1},end:{x:l,y:o+1}};c.push({range:p,text:t,activate:n})}return c}static _getWindowedLineStrings(e,t){let r,i=e,n=e,s=0,o="",a=[];if(r=t.buffer.active.getLine(e)){let e=r.translateToString(!0);if(r.isWrapped&&" "!==e[0]){for(s=0;(r=t.buffer.active.getLine(--i))&&s<2048&&(s+=(o=r.translateToString(!0)).length,a.push(o),!(!r.isWrapped||-1!==o.indexOf(" "))););a.reverse()}for(a.push(e),s=0;(r=t.buffer.active.getLine(++n))&&r.isWrapped&&s<2048&&(s+=(o=r.translateToString(!0)).length,a.push(o),-1===o.indexOf(" ")););}return[a,i]}static _mapStrIdx(e,t,r,i){let n=e.buffer.active,s=n.getNullCell(),o=r;for(;i;){let e=n.getLine(t);if(!e)return[-1,-1];for(let r=o;r<e.length;++r){e.getCell(r,s);let o=s.getChars();if(s.getWidth()&&(i-=o.length||1,r===e.length-1&&""===o)){let e=n.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,s),2===s.getWidth()&&(i+=1))}if(i<0)return[t,r]}t++,o=0}return[t,o]}},s=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function o(e,t){let r=window.open();if(r){try{r.opener=null}catch{}r.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}var a=class{constructor(e=o,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,r=t.urlRegex||s;this._linkProvider=this._terminal.registerLinkProvider(new i(this._terminal,r,this._handler,t))}dispose(){this._linkProvider?.dispose()}}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5491],{5491:(e,t,r)=>{r.r(t),r.d(t,{WebLinksAddon:()=>a});var i=class{constructor(e,t,r,i={}){this._terminal=e,this._regex=t,this._handler=r,this._options=i}provideLinks(e,t){let r=n.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(r))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(t,r)=>{if(this._options.hover){let{range:i}=e;this._options.hover(t,r,i)}},e))}},n=class e{static computeLink(t,r,i,n){let s=RegExp(r.source,(r.flags||"")+"g"),[o,a]=e._getWindowedLineStrings(t-1,i),l=o.join(""),h,c=[];for(;h=s.exec(l);){let t=h[0];if(!function(e){try{let t=new URL(e),r=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(r.toLocaleLowerCase())}catch{return!1}}(t))continue;let[r,s]=e._mapStrIdx(i,a,0,h.index),[o,l]=e._mapStrIdx(i,r,s,t.length);if(-1===r||-1===s||-1===o||-1===l)continue;let p={start:{x:s+1,y:r+1},end:{x:l,y:o+1}};c.push({range:p,text:t,activate:n})}return c}static _getWindowedLineStrings(e,t){let r,i=e,n=e,s=0,o="",a=[];if(r=t.buffer.active.getLine(e)){let e=r.translateToString(!0);if(r.isWrapped&&" "!==e[0]){for(s=0;(r=t.buffer.active.getLine(--i))&&s<2048&&(s+=(o=r.translateToString(!0)).length,a.push(o),!(!r.isWrapped||-1!==o.indexOf(" "))););a.reverse()}for(a.push(e),s=0;(r=t.buffer.active.getLine(++n))&&r.isWrapped&&s<2048&&(s+=(o=r.translateToString(!0)).length,a.push(o),-1===o.indexOf(" ")););}return[a,i]}static _mapStrIdx(e,t,r,i){let n=e.buffer.active,s=n.getNullCell(),o=r;for(;i;){let e=n.getLine(t);if(!e)return[-1,-1];for(let r=o;r<e.length;++r){e.getCell(r,s);let o=s.getChars();if(s.getWidth()&&(i-=o.length||1,r===e.length-1&&""===o)){let e=n.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,s),2===s.getWidth()&&(i+=1))}if(i<0)return[t,r]}t++,o=0}return[t,o]}},s=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function o(e,t){let r=window.open();if(r){try{r.opener=null}catch{}r.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}var a=class{constructor(e=o,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,r=t.urlRegex||s;this._linkProvider=this._terminal.registerLinkProvider(new i(this._terminal,r,this._handler,t))}dispose(){this._linkProvider?.dispose()}}}}]);
@@ -0,0 +1 @@
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"})]})]})}}}]);
@@ -0,0 +1 @@
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)}}]);
@@ -0,0 +1 @@
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}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7317],{4901:(e,t,r)=>{r.d(t,{cn:()=>o});function o(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter(Boolean).join(" ")}},7317:(e,t,r)=>{r.r(t),r.d(t,{Terminal:()=>c});var o=r(3817),l=r(6749),n=r(4901),a=r(1806);function c(e){let{sessionId:t}=e,[r,c]=(0,l.useState)(!1),[s,i]=(0,l.useState)(null),[d,u]=(0,l.useState)(null);return(0,l.useEffect)(()=>{var e;let r=null!=(e=a.env.NEXT_PUBLIC_TERMINAL_PORT)?e:"14800",o=window.location.protocol,l=window.location.hostname;fetch("".concat(o,"//").concat(l,":").concat(r,"/terminal?session=").concat(encodeURIComponent(t))).then(e=>{if(!e.ok)throw Error("HTTP ".concat(e.status));return e.json()}).then(e=>{i(e.url)}).catch(e=>{console.error("[Terminal] Failed to get terminal URL:",e),u("Failed to connect to terminal server")})},[t]),(0,o.jsxs)("div",{className:(0,n.cn)("overflow-hidden rounded-[2px] border border-[var(--color-border-default)] bg-black",r&&"fixed inset-0 z-50 rounded-none border-0"),children:[(0,o.jsxs)("div",{className:"flex items-center gap-2 border-b border-[var(--color-border-default)] bg-[var(--color-bg-tertiary)] px-3 py-2",children:[(0,o.jsx)("div",{className:(0,n.cn)("h-2 w-2 rounded-full",s?"bg-[#3fb950]":d?"bg-[#f85149]":"bg-[#d29922] animate-pulse")}),(0,o.jsx)("span",{className:"font-[var(--font-mono)] text-xs text-[var(--color-text-muted)]",children:t}),(0,o.jsx)("span",{className:(0,n.cn)("text-[10px] font-medium uppercase tracking-wide",s?"text-[var(--color-accent-green)]":d?"text-[var(--color-accent-red)]":"text-[var(--color-text-muted)]"),children:s?"Connected":null!=d?d:"Connecting..."}),(0,o.jsx)("button",{onClick:()=>c(!r),className:"ml-auto rounded-[2px] px-2 py-0.5 text-[11px] text-[var(--color-text-muted)] transition-colors hover:bg-[var(--color-bg-secondary)] hover:text-[var(--color-text-primary)]",children:r?"exit fullscreen":"fullscreen"})]}),(0,o.jsx)("div",{className:"w-full",style:{height:r?"calc(100dvh - 40px)":"max(440px, calc(100dvh - 440px))"},children:s?(0,o.jsx)("iframe",{src:s,className:"h-full w-full border-0",title:"Terminal: ".concat(t),allow:"clipboard-read; clipboard-write",sandbox:"allow-scripts allow-same-origin allow-forms allow-popups"}):(0,o.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--color-text-muted)]",children:null!=d?d:"Connecting to terminal..."})})]})}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8713],{1911:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},3769:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=r(9518),o=r(6991);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},5701:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(6749);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("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)},5952:(e,t)=>{function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(r,n(e));else t.set(r,n(o));return t}function u(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{assign:function(){return u},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return o}})},8713:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return g},useLinkStatus:function(){return b}});let n=r(7628),o=r(3817),u=n._(r(6749)),a=r(9936),i=r(1790),l=r(5701),f=r(9518),c=r(6404);r(3799);let s=r(921),p=r(3769),d=r(6485);r(1911);let h=r(9006);function y(e){return"string"==typeof e?e:(0,a.formatUrl)(e)}function g(e){var t;let r,n,a,[g,b]=(0,u.useOptimistic)(s.IDLE_LINK_STATUS),P=(0,u.useRef)(null),{href:_,as:v,children:E,prefetch:O=null,passHref:j,replace:S,shallow:C,scroll:N,onClick:T,onMouseEnter:x,onTouchStart:A,legacyBehavior:M=!1,onNavigate:R,ref:L,unstable_dynamicOnHover:k,...I}=e;r=E,M&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let U=u.default.useContext(i.AppRouterContext),w=!1!==O,F=!1!==O?null===(t=O)||"auto"===t?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,{href:D,as:K}=u.default.useMemo(()=>{let e=y(_);return{href:e,as:v?y(v):e}},[_,v]);M&&(n=u.default.Children.only(r));let B=M?n&&"object"==typeof n&&n.ref:L,z=u.default.useCallback(e=>(null!==U&&(P.current=(0,s.mountLinkInstance)(e,D,U,F,w,b)),()=>{P.current&&((0,s.unmountLinkForCurrentNavigation)(P.current),P.current=null),(0,s.unmountPrefetchableInstance)(e)}),[w,D,U,F,b]),Q={ref:(0,l.useMergedRef)(z,B),onClick(e){M||"function"!=typeof T||T(e),M&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),U&&(e.defaultPrevented||function(e,t,r,n,o,a,i){let{nodeName:l}=e.currentTarget;if(!("A"===l.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,p.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}u.default.startTransition(()=>{(0,d.dispatchNavigateAction)(r||t,o?"replace":"push",null==a||a,n.current)})}}(e,D,K,P,S,N,R))},onMouseEnter(e){M||"function"!=typeof x||x(e),M&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),U&&w&&(0,s.onNavigationIntent)(e.currentTarget,!0===k)},onTouchStart:function(e){M||"function"!=typeof A||A(e),M&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),U&&w&&(0,s.onNavigationIntent)(e.currentTarget,!0===k)}};return(0,f.isAbsoluteUrl)(K)?Q.href=K:M&&!j&&("a"!==n.type||"href"in n.props)||(Q.href=(0,c.addBasePath)(K)),a=M?u.default.cloneElement(n,Q):(0,o.jsx)("a",{...I,...Q,children:r}),(0,o.jsx)(m.Provider,{value:g,children:a})}let m=(0,u.createContext)(s.IDLE_LINK_STATUS),b=()=>(0,u.useContext)(m);("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)},9518:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return h},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return m},NormalizeError:function(){return y},PageNotFoundError:function(){return g},SP:function(){return p},ST:function(){return d},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return l},getLocationOrigin:function(){return a},getURL:function(){return i},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return s},normalizeRepeatedSlashes:function(){return c},stringifyError:function(){return P}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),u=0;u<n;u++)o[u]=arguments[u];return r||(r=!0,t=e(...o)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>o.test(e);function a(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function i(){let{href:e}=window.location,t=a();return e.substring(t.length)}function l(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function c(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function s(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await s(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error('"'+l(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let p="undefined"!=typeof performance,d=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class y extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class m extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},9936:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return u},formatWithValidation:function(){return i},urlObjectKeys:function(){return a}});let n=r(7628)._(r(5952)),o=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,u=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",f=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?f=t+e.host:r&&(f=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(f+=":"+e.port)),l&&"object"==typeof l&&(l=String(n.urlQueryToSearchParams(l)));let c=e.search||l&&"?"+l||"";return u&&!u.endsWith(":")&&(u+=":"),e.slashes||(!u||o.test(u))&&!1!==f?(f="//"+(f||""),a&&"/"!==a[0]&&(a="/"+a)):f||(f=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),""+u+f+(a=a.replace(/[?#]/g,encodeURIComponent))+(c=c.replace("#","%23"))+i}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function i(e){return u(e)}}}]);