commandmate 0.45.1 → 0.46.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 (296) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +302 -298
  3. package/.next/app-path-routes-manifest.json +15 -15
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +9 -9
  6. package/.next/react-loadable-manifest.json +4 -4
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/server/app/_not-found/page.js +1 -1
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/capabilities/route.js +1 -1
  20. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +3 -3
  69. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +3 -3
  75. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +3 -3
  118. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +3 -3
  120. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
  122. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/route.js +1 -1
  152. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/login/page.js +1 -1
  154. package/.next/server/app/login/page.js.nft.json +1 -1
  155. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  156. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/more/page.js +1 -1
  158. package/.next/server/app/more/page.js.nft.json +1 -1
  159. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  160. package/.next/server/app/offline/page.js +1 -1
  161. package/.next/server/app/offline/page.js.nft.json +1 -1
  162. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  163. package/.next/server/app/page.js +1 -1
  164. package/.next/server/app/page.js.nft.json +1 -1
  165. package/.next/server/app/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/repositories/page.js +2 -2
  168. package/.next/server/app/repositories/page.js.nft.json +1 -1
  169. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  170. package/.next/server/app/review/page.js +1 -1
  171. package/.next/server/app/review/page.js.nft.json +1 -1
  172. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  173. package/.next/server/app/sessions/page.js +1 -1
  174. package/.next/server/app/sessions/page.js.nft.json +1 -1
  175. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  176. package/.next/server/app/skills/[skillId]/page.js +1 -1
  177. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  178. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  179. package/.next/server/app/skills/installed/page.js +1 -1
  180. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  181. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  182. package/.next/server/app/skills/page.js +1 -1
  183. package/.next/server/app/skills/page.js.nft.json +1 -1
  184. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  185. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  186. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  187. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  188. package/.next/server/app/worktrees/[id]/page.js +12 -9
  189. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  190. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  191. package/.next/server/app/worktrees/[id]/terminal/page.js +1 -1
  192. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  193. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  194. package/.next/server/app-paths-manifest.json +15 -15
  195. package/.next/server/chunks/1341.js +1 -1
  196. package/.next/server/chunks/1501.js +2 -2
  197. package/.next/server/chunks/2119.js +1 -1
  198. package/.next/server/chunks/2283.js +15 -13
  199. package/.next/server/chunks/2404.js +4 -4
  200. package/.next/server/chunks/2445.js +1 -1
  201. package/.next/server/chunks/2560.js +1 -1
  202. package/.next/server/chunks/3543.js +1 -1
  203. package/.next/server/chunks/3945.js +1 -1
  204. package/.next/server/chunks/4072.js +15 -0
  205. package/.next/server/chunks/4207.js +1 -1
  206. package/.next/server/chunks/4718.js +3 -3
  207. package/.next/server/chunks/4837.js +3 -3
  208. package/.next/server/chunks/5625.js +1 -1
  209. package/.next/server/chunks/6130.js +1 -1
  210. package/.next/server/chunks/6345.js +1 -0
  211. package/.next/server/chunks/6401.js +1 -1
  212. package/.next/server/chunks/6722.js +1 -0
  213. package/.next/server/chunks/8098.js +1 -1
  214. package/.next/server/chunks/8356.js +1 -1
  215. package/.next/server/chunks/8581.js +25 -29
  216. package/.next/server/chunks/8728.js +1 -1
  217. package/.next/server/chunks/8800.js +4 -4
  218. package/.next/server/chunks/9731.js +1 -1
  219. package/.next/server/middleware-build-manifest.js +1 -1
  220. package/.next/server/middleware-manifest.json +5 -5
  221. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  222. package/.next/server/pages/500.html +1 -1
  223. package/.next/server/pages/_error.js +2 -2
  224. package/.next/server/server-reference-manifest.json +1 -1
  225. package/.next/static/chunks/{2407-86890b00eeecf391.js → 2407-acb644c5487e1720.js} +1 -1
  226. package/.next/static/chunks/{2619-a305ad4810f1393a.js → 2619-04bc32f026a0d946.js} +1 -1
  227. package/.next/static/chunks/2717.21abf5b6bbd45520.js +1 -0
  228. package/.next/static/chunks/2770-db80aedf6384d594.js +1 -0
  229. package/.next/static/chunks/2863-6a07ec82fb52f4dd.js +1 -0
  230. package/.next/static/chunks/3201-c01f1feed69020e6.js +1 -0
  231. package/.next/static/chunks/4768-ad6f82f034f21eae.js +1 -0
  232. package/.next/static/chunks/5371-a94ed618148287a0.js +1 -0
  233. package/.next/static/chunks/5794-947fb4934d8be193.js +1 -0
  234. package/.next/static/chunks/5927-54315d21f323e204.js +1 -0
  235. package/.next/static/chunks/602-25e45a2422d2a3ea.js +1 -0
  236. package/.next/static/chunks/6606-02ddc006686a6b7d.js +1 -0
  237. package/.next/static/chunks/6654-f3534f35f16644bc.js +1 -0
  238. package/.next/static/chunks/7730-011e137be64403ae.js +1 -0
  239. package/.next/static/chunks/8165-263172c17ae8e8c3.js +1 -0
  240. package/.next/static/chunks/8606-cf6bdbff44a764cf.js +1 -0
  241. package/.next/static/chunks/934-a37509667baa86ee.js +1 -0
  242. package/.next/static/chunks/9465-e5a351baa941f31b.js +1 -0
  243. package/.next/static/chunks/app/layout-ae30ce63569c22be.js +1 -0
  244. package/.next/static/chunks/app/repositories/page-71f5a5ac29b0370d.js +1 -0
  245. package/.next/static/chunks/app/review/page-e2fd4a590646a2d8.js +1 -0
  246. package/.next/static/chunks/app/sessions/page-9859ed61e93e6890.js +1 -0
  247. package/.next/static/chunks/app/skills/[skillId]/page-52ba58712faf3378.js +1 -0
  248. package/.next/static/chunks/app/worktrees/[id]/page-2eb1d0fd0a077b7e.js +1 -0
  249. package/.next/static/chunks/app/worktrees/[id]/terminal/{page-c601f3b3ece6557e.js → page-373ea37b16d930c7.js} +1 -1
  250. package/.next/static/chunks/{webpack-ee3ccbe378c4aa06.js → webpack-c0b821f340afdebf.js} +1 -1
  251. package/.next/static/css/743f79ff19ab91e9.css +1 -0
  252. package/.next/trace +13 -13
  253. package/dist/server/locales/en/worktree.json +46 -16
  254. package/dist/server/locales/ja/worktree.json +46 -16
  255. package/dist/server/src/config/activity-bar-config.js +56 -9
  256. package/dist/server/src/lib/polling/prompt-dedup-state.js +26 -7
  257. package/dist/server/src/lib/polling/prompt-dedup.js +50 -22
  258. package/dist/server/src/lib/polling/response-checker.js +14 -1
  259. package/dist/server/src/lib/polling/response-dedup.js +104 -20
  260. package/dist/server/src/lib/polling/response-poller-core.js +47 -26
  261. package/dist/server/src/lib/session/next-action-helper.js +2 -15
  262. package/dist/server/src/lib/verification/env-clean-gate.js +14 -1
  263. package/dist/server/src/lib/verification/gate-runner.js +17 -11
  264. package/dist/server/src/lib/verification/scope-gate.js +169 -3
  265. package/dist/server/src/types/sidebar.js +1 -0
  266. package/docs/en/architecture.md +26 -14
  267. package/docs/en/user-guide/webapp-guide.md +31 -18
  268. package/package.json +1 -1
  269. package/release-notes/0.46.0.json +110 -0
  270. package/.next/server/chunks/1674.js +0 -15
  271. package/.next/server/chunks/6927.js +0 -1
  272. package/.next/server/chunks/9355.js +0 -1
  273. package/.next/static/chunks/1642-0f1bf8fb8161e10a.js +0 -1
  274. package/.next/static/chunks/2770-827a64760bab8a3a.js +0 -1
  275. package/.next/static/chunks/3922.0bc2e4e168d2b522.js +0 -1
  276. package/.next/static/chunks/4727-4c69d1aa4118cc09.js +0 -1
  277. package/.next/static/chunks/4768-fc0aa1d0891cac08.js +0 -1
  278. package/.next/static/chunks/5371-af1c2b68e983da61.js +0 -1
  279. package/.next/static/chunks/5521-c358c31f60e5e689.js +0 -1
  280. package/.next/static/chunks/6192-a67df090838b9aad.js +0 -1
  281. package/.next/static/chunks/6322-f1b30ed0ee43518f.js +0 -1
  282. package/.next/static/chunks/6654-ac431270fac1a283.js +0 -1
  283. package/.next/static/chunks/8165-3525fb42f1b4976e.js +0 -1
  284. package/.next/static/chunks/8318-01e7d1e5ad0a15a3.js +0 -1
  285. package/.next/static/chunks/8606-79c36d4c204bbd38.js +0 -1
  286. package/.next/static/chunks/9619-6c17a271f7f98fbb.js +0 -1
  287. package/.next/static/chunks/998-2eb5883186abd0bd.js +0 -1
  288. package/.next/static/chunks/app/layout-eaa6365f8f942e88.js +0 -1
  289. package/.next/static/chunks/app/repositories/page-6f7511f4ac8449e2.js +0 -1
  290. package/.next/static/chunks/app/review/page-95f749caae382f46.js +0 -1
  291. package/.next/static/chunks/app/sessions/page-ebfed2c80e916fb8.js +0 -1
  292. package/.next/static/chunks/app/skills/[skillId]/page-e4b14031f946c007.js +0 -1
  293. package/.next/static/chunks/app/worktrees/[id]/page-3372b78fde232b1f.js +0 -1
  294. package/.next/static/css/6faeb04a0b6819d4.css +0 -1
  295. /package/.next/static/{vYIpFRCU_Mt0wtG8F_3-6 → zI2nQ6WKboSbFbMF4EtrJ}/_buildManifest.js +0 -0
  296. /package/.next/static/{vYIpFRCU_Mt0wtG8F_3-6 → zI2nQ6WKboSbFbMF4EtrJ}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{13673:()=>{},23252:(e,t,n)=>{"use strict";n.d(t,{AppProviders:()=>M});var r=n(95155),s=n(20063);n(95704);let a=["/login","/api/auth/login","/api/auth/logout","/api/auth/status","/api/remote/pair","/manifest.webmanifest","/sw.js","/offline"];var i=n(3809),l=n(5379),o=n(32916),d=n(65380),c=n(22592),u=n(92614),m=n(70628),h=n(66966),x=n(89275),f=n(60199),p=n(36402),b=n(63470),g=n(40823),v=n(58165),w=n(94442),j=n(72604),y=n(95275),k=n(79832),N=n(12115),C=n(18955),S=n(89559),I=n(59854),T=n(77016);function A(){let e=(0,C.c)("pwa"),[t,n]=(0,N.useState)(null),s=(0,N.useRef)(!1),a=(0,T.W)();return((0,N.useEffect)(()=>{if("undefined"==typeof navigator||!("serviceWorker"in navigator))return;let e=!1,t=t=>{e||n(t)};navigator.serviceWorker.register("/sw.js").then(e=>{e.waiting&&navigator.serviceWorker.controller&&t(e.waiting),e.addEventListener("updatefound",()=>{let n=e.installing;n&&n.addEventListener("statechange",()=>{"installed"===n.state&&navigator.serviceWorker.controller&&t(n)})})}).catch(()=>{});let r=()=>{s.current||(s.current=!0,window.location.reload())};return navigator.serviceWorker.addEventListener("controllerchange",r),()=>{e=!0,navigator.serviceWorker.removeEventListener("controllerchange",r)}},[]),!t||a)?null:(0,r.jsx)("div",{"data-testid":"pwa-update-toast",role:"status","aria-live":"polite",className:"pointer-events-none fixed bottom-0 right-0 flex max-w-full justify-end px-4 pb-safe",style:{zIndex:I.M.TOAST},children:(0,r.jsxs)("div",{"data-testid":"pwa-update-toast-card",className:"pointer-events-auto mb-4 flex items-center gap-3 rounded-lg border border-border bg-surface px-4 py-3 shadow-lg",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:e("update.available")}),(0,r.jsxs)("button",{type:"button",onClick:()=>{t.postMessage({type:"SKIP_WAITING"})},className:"inline-flex items-center gap-1.5 rounded-md bg-accent-600 px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-accent-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background dark:bg-accent-500 dark:hover:bg-accent-600",children:[(0,r.jsx)(S.A,{className:"h-4 w-4"}),e("update.reload")]})]})})}function M(e){var t;let{children:n,locale:N,messages:C,timeZone:S,authEnabled:I=!1}=e,T=(t=(0,s.usePathname)(),!I||!a.includes(null!=t?t:""));return(0,r.jsx)(i.default,{locale:N,messages:C,timeZone:S,children:(0,r.jsx)(w.tE,{children:(0,r.jsx)(l.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,r.jsx)(d.O,{authEnabled:I,children:(0,r.jsx)(c.W5,{children:(0,r.jsx)(o.GB,{children:(0,r.jsx)(f.tS,{enabled:T,children:(0,r.jsxs)(h.g7,{enabled:T,children:[(0,r.jsx)(j.rM,{}),(0,r.jsx)(k.o,{}),(0,r.jsx)(y.H,{}),(0,r.jsx)(u.E,{children:(0,r.jsx)(m.S,{children:(0,r.jsx)(p.aF,{children:(0,r.jsx)(b.y2,{enabled:T,children:(0,r.jsxs)(g.NS,{children:[(0,r.jsx)(x.Bo,{children:n}),(0,r.jsx)(A,{}),(0,r.jsx)(v.gZ,{})]})})})})})]})})})})})})})})}},60322:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});let r=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function s(e){var t;if(!e||0===e.trim().length)return;let n=e.replace(r,"");if(null==(t=navigator.clipboard)?void 0:t.writeText)try{await navigator.clipboard.writeText(n);return}catch(e){}let s=document.createElement("textarea");s.value=n,s.style.position="fixed",s.style.left="-9999px",s.style.top="-9999px",s.style.opacity="0",document.body.appendChild(s),s.focus(),s.select();try{document.execCommand("copy")}finally{document.body.removeChild(s)}}},65380:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,O:()=>i});var r=n(95155),s=n(12115);let a=(0,s.createContext)(!1);function i(e){let{children:t,authEnabled:n}=e;return(0,r.jsx)(a.Provider,{value:n,children:t})}function l(){return(0,s.useContext)(a)}},77016:(e,t,n)=>{"use strict";n.d(t,{W:()=>g,n:()=>v});var r=n(95155),s=n(12115),a=n(18955),i=n(52056),l=n(89559),o=n(65229),d=n(59854),c=n(60199),u=n(52703);let m=0,h=new Set;function x(){for(let e of h)e()}function f(e){return h.add(e),()=>{h.delete(e)}}function p(){return m>0}function b(){return!1}function g(){return(0,s.useSyncExternalStore)(f,p,b)}function v(){let e=(0,a.c)("common"),[t,n]=(0,s.useState)(null),[h,f]=(0,s.useState)(null),p=(0,s.useCallback)(e=>{if(e.type!==u.Oo)return;let{serverVersion:t,clientVersion:r}=e;"string"==typeof t&&"string"==typeof r&&t&&r&&t!==h&&n({serverVersion:t,clientVersion:r})},[h]);(0,c.T3)(p);let b=null!==t;(0,s.useEffect)(()=>{if(b)return m+=1,x(),()=>{m-=1,x()}},[b]);let g=(0,s.useCallback)(()=>{window.location.reload()},[]),v=(0,s.useCallback)(()=>{n(e=>(e&&f(e.serverVersion),null))},[]);return t?(0,r.jsxs)("div",{"data-testid":"version-mismatch-banner",role:"alert","aria-live":"assertive",className:"fixed top-3 left-1/2 -translate-x-1/2 flex items-start gap-3 max-w-[92vw] rounded-lg border border-warning-border bg-warning-subtle px-4 py-3 text-warning-foreground shadow-lg",style:{zIndex:d.M.TOAST},children:[(0,r.jsx)(i.A,{className:"h-5 w-5 shrink-0 mt-0.5","aria-hidden":"true"}),(0,r.jsxs)("div",{className:"flex flex-col gap-0.5 text-sm",children:[(0,r.jsx)("span",{className:"font-semibold",children:e("versionMismatch.title")}),(0,r.jsx)("span",{children:e("versionMismatch.description",{serverVersion:t.serverVersion,clientVersion:t.clientVersion})})]}),(0,r.jsxs)("button",{type:"button","data-testid":"version-mismatch-reload",onClick:g,className:"shrink-0 inline-flex items-center gap-1.5 rounded-md border border-warning-border px-3 py-1.5 text-sm font-medium hover:opacity-80 focus:outline-none focus:ring-2 focus:ring-offset-2",children:[(0,r.jsx)(l.A,{className:"h-4 w-4","aria-hidden":"true"}),e("versionMismatch.reload")]}),(0,r.jsx)("button",{type:"button","data-testid":"version-mismatch-dismiss",onClick:v,"aria-label":e("versionMismatch.dismiss"),className:"shrink-0 hover:opacity-70 focus:outline-none focus:ring-2 focus:ring-offset-2",children:(0,r.jsx)(o.A,{className:"h-4 w-4","aria-hidden":"true"})})]}):null}},80903:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,22311,23)),Promise.resolve().then(n.t.bind(n,7183,23)),Promise.resolve().then(n.t.bind(n,13673,23)),Promise.resolve().then(n.bind(n,91476)),Promise.resolve().then(n.bind(n,23252))},91476:(e,t,n)=>{"use strict";n.d(t,{AppShellGate:()=>tD});var r=n(95155),s=n(20063),a=n(12115),i=n(32916),l=n(38218);let o={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},d=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var c=n(22592),u=n(52619),m=n.n(u),h=n(89275);let x=(0,a.forwardRef)(function(e,t){let{href:n,onClick:a,target:i,...l}=e,o=(0,s.usePathname)(),d=(0,h.Hq)();return(0,r.jsx)(m(),{ref:t,href:n,target:i,onClick:e=>{var t;null==a||a(e),e.defaultPrevented||0!==(t=e).button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||void 0!==i&&"_self"!==i||/^([a-z][a-z0-9+.-]*:)?\/\//i.test(n)||/^(mailto:|tel:)/i.test(n)||(e.preventDefault(),n!==o&&d.push(n))},...l})});var f=n(18955),p=n(66685),b=n(85710),g=n(61362),v=n(15870),w=n(17787),j=n(49027),y=n(27587),k=n(39649),N=n(46615),C=n(76471),S=n(70532),I=n(44308),T=n(38606);let A=(0,a.memo)(function(e){let{worktrees:t,visibleWorktreeIds:n,selectedWorktreeId:s,onSelect:a,onNavigate:i}=e,l=(0,f.c)("common"),o=t.length;if(0===o)return null;let d=t.slice(0,3),c=o-d.length;return(0,r.jsxs)("section",{"data-testid":"sidebar-needs-attention","aria-label":l("sidebar.needsAttention"),className:"flex-shrink-0 px-2 pt-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-2 pb-1 text-xs text-sidebar-muted",children:[(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:l("sidebar.needsAttention")}),(0,r.jsx)("span",{"data-testid":"sidebar-needs-attention-count","aria-label":l("attention.badgeLabel",{count:o}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 font-semibold leading-5 tabular-nums text-warning-foreground",children:o>99?"99+":o})]}),(0,r.jsx)("ul",{className:"space-y-0.5",children:d.map(e=>{let t=(0,T.XK)(e),i=!n.has(e.id),o=e.id===s;return(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button","data-testid":"sidebar-attention-item","data-hidden-repository":i?"true":void 0,onClick:()=>a(e.id),"aria-current":o?"true":void 0,title:"".concat(t.name," \xb7 ").concat(t.repositoryName),className:"flex h-[34px] w-full min-w-0 items-center gap-2 rounded-md px-2 text-left transition-colors hover:bg-sidebar-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ".concat(o?"bg-sidebar-hover":""),children:[(0,r.jsx)("span",{className:"flex w-4 flex-shrink-0 items-center justify-center",children:(0,r.jsx)(C.Ej,{status:"waiting",waitingKind:t.waitingKind})}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm text-sidebar-foreground",children:t.name}),(0,r.jsx)("span",{className:"min-w-0 max-w-[40%] flex-shrink truncate text-xs text-sidebar-muted",children:t.repositoryName}),i&&(0,r.jsx)(S.A,{"data-testid":"sidebar-attention-hidden-repository",className:"h-3.5 w-3.5 flex-shrink-0 text-sidebar-muted","aria-label":l("sidebar.hiddenRepository"),role:"img"})]})},e.id)})}),(0,r.jsx)(x,{href:I.ks,"data-testid":"sidebar-needs-attention-review-link",onClick:i,className:"mt-0.5 flex min-w-0 items-center rounded-md px-2 py-1 text-xs text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,r.jsx)("span",{className:"min-w-0 truncate",children:c>0?l("sidebar.attentionMoreInReview",{count:c}):l("sidebar.openInReview")})})]})}),M=(0,a.memo)(function(e){let{branches:t,selectedWorktreeId:n,onBranchClick:s,forceExpanded:i}=e,l=(0,f.c)("common"),[o,d]=(0,a.useState)(!1),c=i||o;return(0,r.jsxs)("div",{"data-testid":"branch-group-other",children:[(0,r.jsx)("div",{className:N.R8,children:(0,r.jsxs)("button",{type:"button","data-testid":"branch-group-other-toggle","aria-expanded":c,disabled:i,onClick:()=>d(e=>!e),className:"flex h-[30px] w-full min-w-0 items-center gap-2 rounded-[10px] px-3 text-left text-xs text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-default disabled:hover:bg-transparent",children:[(0,r.jsx)("svg",{className:"h-3 w-3 flex-shrink-0 transition-transform ".concat(c?"rotate-90":""),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,"aria-hidden":"true",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})}),(0,r.jsx)("span",{className:"min-w-0 truncate",children:l("sidebar.otherBranches",{count:t.length})})]})}),c&&t.map(e=>(0,r.jsx)(N.yP,{branch:e,isSelected:e.id===n,onClick:()=>s(e.id),showRepositoryName:!1},e.id))]})});var E=n(48407),L=n(73464),P=n(26232),B=n(7636),K=n(87531);let R=[{mode:"grouped",labelKey:"sidebar.viewMode.grouped"},{mode:"flat",labelKey:"sidebar.viewMode.flat"},{mode:"sessions",labelKey:"sidebar.viewMode.sessions"}],O=[{key:"updatedAt",labelKey:"sort.updatedAt"},{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"branchName",labelKey:"sort.branchName"},{key:"status",labelKey:"sort.status"}],D={updatedAt:"desc"},F={updatedAt:{asc:"sort.direction.oldestFirst",desc:"sort.direction.newestFirst"},repositoryName:{asc:"sort.direction.aToZ",desc:"sort.direction.zToA"},branchName:{asc:"sort.direction.aToZ",desc:"sort.direction.zToA"},status:{asc:"sort.direction.attentionFirst",desc:"sort.direction.attentionLast"}},W={asc:"sort.ascending",desc:"sort.descending"};function z(e){var t;return null!=(t=D[e])?t:"asc"}function _(e){e.preventDefault()}let H=(0,a.memo)(function(e){var t,n,s,l;let{viewMode:o,onViewModeChange:d}=e,c=(0,f.c)("common"),{sortKey:u,sortDirection:m,setSortKey:h,setSortDirection:x}=(0,i.VF)(),p=(0,a.useId)(),b=(0,a.useId)(),g=(0,a.useMemo)(()=>{var e;let t=null!=(e=F[u])?e:W;return e=>c(t[e])},[u,c]),v=c(null!=(s=null==(t=R.find(e=>e.mode===o))?void 0:t.labelKey)?s:"sidebar.viewMode.grouped"),w=c(null!=(l=null==(n=O.find(e=>e.key===u))?void 0:n.labelKey)?l:"sort.".concat(u)),j=c("sidebar.listOptionsSummary",{view:v,sort:w,direction:g(m)}),y=o===i.e8&&u===i.P0&&m===i.RA,k=z(u);return(0,r.jsxs)(P.rI,{children:[(0,r.jsx)(P.ty,{asChild:!0,children:(0,r.jsxs)("button",{type:"button","data-testid":"sidebar-list-options","data-view-mode":o,"data-sort-key":u,"data-sort-direction":m,"aria-label":c("sidebar.listOptionsLabel",{summary:j}),title:j,className:"relative flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-md text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring data-[state=open]:bg-sidebar-hover data-[state=open]:text-sidebar-foreground",children:[(0,r.jsx)(L.A,{className:"h-4 w-4","aria-hidden":"true"}),!y&&(0,r.jsx)("span",{"data-testid":"sidebar-list-options-indicator","aria-hidden":"true",className:"absolute right-1 top-1 h-1.5 w-1.5 rounded-full bg-accent-500"})]})}),(0,r.jsxs)(P.SQ,{"data-testid":"sidebar-list-options-menu",align:"end",collisionPadding:8,className:(0,K.cn)("w-52 max-w-[calc(100vw-16px)]","max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto"),children:[(0,r.jsx)(P.lp,{id:p,children:c("sidebar.viewLabel")}),(0,r.jsx)(P.Hr,{"data-testid":"view-mode-options","aria-labelledby":p,value:o,onValueChange:e=>{(0,B.$m)(e)&&e!==o&&d(e)},children:R.map(e=>{let{mode:t,labelKey:n}=e;return(0,r.jsx)(P.Ht,{value:t,onSelect:_,children:c(n)},t)})}),(0,r.jsx)(P.mB,{}),(0,r.jsx)(P.lp,{id:b,children:c("sort.label")}),(0,r.jsx)(P.Hr,{"data-testid":"sort-key-options","aria-labelledby":b,value:u,onValueChange:e=>{let t=O.find(t=>t.key===e);t&&t.key!==u&&(h(t.key),x(z(t.key)))},children:O.map(e=>{let{key:t,labelKey:n}=e;return(0,r.jsx)(P.Ht,{value:t,onSelect:_,children:c(n)},t)})}),(0,r.jsx)(P.mB,{}),(0,r.jsx)(P.Hr,{"data-testid":"sort-direction-options","aria-label":c("sort.directionLabel"),value:m,onValueChange:e=>{("asc"===e||"desc"===e)&&x(e)},children:("asc"===k?["asc","desc"]:["desc","asc"]).map(e=>(0,r.jsx)(P.Ht,{value:e,onSelect:_,children:g(e)},e))})]})]})}),V=(0,a.memo)(function(e){let{searchQuery:t,onSearchChange:n,viewMode:s,onViewModeChange:a}=e,i=(0,f.c)("common");return(0,r.jsxs)("div",{"data-testid":"sidebar-list-toolbar",className:"flex flex-shrink-0 items-center gap-1 px-3 pt-2 pb-1.5",children:[(0,r.jsx)(E.pd,{type:"text",inputSize:"sm",placeholder:i("sidebar.searchBranches"),"aria-label":i("sidebar.searchBranches"),value:t,onChange:e=>n(e.target.value),className:"min-w-0 flex-1 border-sidebar-border bg-background shadow-none"}),(0,r.jsx)(H,{viewMode:s,onViewModeChange:a})]})});var Y=n(41898),U=n(30061),q=n(5379),G=n(65380),X=n(45195),J=n(40823),Z=n(68704),$=n(26020);async function Q(){try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch(e){window.location.href="/login"}}let ee=P.ty;function et(){let e=(0,f.c)("common"),{size:t,setSize:n}=(0,c.Ps)(),s=(0,i.pT)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(P.mB,{}),(0,r.jsx)(P.lp,{children:e("displaySize.ariaLabel")}),(0,r.jsx)(P.Hr,{value:t,onValueChange:e=>{(0,Z.fM)(e)&&n(e)},children:Z.Uf.map(t=>(0,r.jsx)(P.Ht,{value:t,children:e("displaySize.".concat(t))},t))}),s&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(P.lp,{children:e("repoTabBar.settingLabel")}),(0,r.jsx)(P.Hr,{value:s.repoTabBarMode,onValueChange:e=>{(0,B.m3)(e)&&s.setRepoTabBarMode(e)},children:B.EN.map(t=>(0,r.jsx)(P.Ht,{value:t,children:e("repoTabBar.mode.".concat(t))},t))})]})]})}function en(e){let{children:t,testIdPrefix:n,side:s="top",align:i="end",showDisplayPreferences:o=!1,onNavigate:d}=e,c=(0,f.c)("worktree"),u=(0,h.Hq)(),{theme:m,setTheme:x}=(0,q.D)(),{currentLocale:p,switchLocale:b}=(0,X.g)(),g=(0,G.H)(),v=(0,l.a)(),{open:w}=(0,J.V0)(),j=(0,a.useRef)(!1),y=(0,a.useRef)(null),k="0.46.0",N=e=>{null==d||d(),u.push(e)};return(0,r.jsxs)(P.rI,{children:[t,(0,r.jsxs)(P.SQ,{side:s,align:i,collisionPadding:8,className:"w-56 max-w-[calc(100vw-16px)] max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto",onCloseAutoFocus:()=>{j.current&&(j.current=!1,queueMicrotask(w))},children:[(0,r.jsx)(P.lp,{"data-testid":"".concat(n,"-version"),children:c("activityBar.settingsMenu.version",{version:k?"v".concat(k):"-"})}),(0,r.jsx)(P._2,{asChild:!0,onSelect:()=>{let e=y.current;if(y.current=null,!(e&&(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey))){if(null==e||e.preventDefault(),v)return void N("/more");j.current=!0}},children:(0,r.jsx)("a",{href:"/more","data-testid":"".concat(n,"-settings"),onClick:e=>{y.current=e},children:c("activityBar.settingsMenu.settings")})}),(0,r.jsx)(P._2,{onSelect:()=>N("/skills"),children:c("activityBar.settingsMenu.skills")}),(0,r.jsx)(P.mB,{}),(0,r.jsx)(P.lp,{children:c("activityBar.settingsMenu.theme")}),(0,r.jsxs)(P.Hr,{value:null!=m?m:"system",onValueChange:e=>x(e),children:[(0,r.jsx)(P.Ht,{value:"light",children:c("activityBar.settingsMenu.themeLight")}),(0,r.jsx)(P.Ht,{value:"dark",children:c("activityBar.settingsMenu.themeDark")}),(0,r.jsx)(P.Ht,{value:"system",children:c("activityBar.settingsMenu.themeSystem")})]}),(0,r.jsx)(P.lp,{children:c("activityBar.settingsMenu.language")}),(0,r.jsx)(P.Hr,{value:p,onValueChange:e=>b(e),children:$.dI.map(e=>(0,r.jsx)(P.Ht,{value:e,children:$.vK[e]},e))}),o&&!v&&(0,r.jsx)(et,{}),(0,r.jsx)(P.mB,{}),(0,r.jsx)(P._2,{asChild:!0,children:(0,r.jsx)("a",{href:"https://github.com/kewton/MyCodeBranchDesk",target:"_blank",rel:"noopener noreferrer",children:c("activityBar.settingsMenu.github")})}),g&&(0,r.jsx)(P._2,{onSelect:()=>{Q()},children:c("activityBar.settingsMenu.logout")})]})]})}var er=n(59847),es=n(11010),ea=n(86651),ei=n(79651),el=n(92614),eo=n(51743);let ed=["global","terminal","composer","editor"],ec=[{id:"commandPalette",keys:["MOD","K"],scope:"global"},{id:"toggleSidebar",keys:["MOD","B"],scope:"global"},{id:"keyboardHelp",keys:["?"],scope:"global"},{id:"closeOverlay",keys:["Esc"],scope:"global"},{id:"navigateList",keys:["↑","↓"],scope:"global"},{id:"terminalSearch",keys:["MOD","F"],scope:"terminal"},{id:"toggleSurfaceMode",keys:["MOD","Shift","M"],scope:"terminal"},{id:"sendMessage",keys:["↵"],scope:"composer"},{id:"composerNewline",keys:["Shift","↵"],scope:"composer"},{id:"editorIndent",keys:["Tab"],scope:"editor"},{id:"editorOutdent",keys:["Shift","Tab"],scope:"editor"},{id:"editorTabFocus",keys:["Ctrl","M"],scope:"editor"},{id:"editorSave",keys:["MOD","S"],scope:"editor"},{id:"editorFullscreen",keys:["MOD","Shift","F"],scope:"editor"}];function eu(){if("undefined"==typeof navigator)return!1;let e=navigator.platform||navigator.userAgent||"";return/Mac|iPhone|iPad|iPod/.test(e)}function em(e,t){return"MOD"===e?t?"⌘":"Ctrl":e}var eh=n(26550),ex=n(78845),ef=n(65229);let ep="flex items-center justify-center rounded-md text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",eb={width:"".concat(B.KI,"px"),height:"".concat(B.KI,"px")};function eg(e){let{testId:t,onClose:n}=e,s=(0,f.c)("common"),{isOpen:a,toggle:l}=(0,i.VF)(),o=s(a?"sidebar.close":"sidebar.open"),d=a?eh.A:ex.A;return(0,r.jsx)("div",{"data-sidebar-toggle-cell":"",className:"flex flex-shrink-0",style:{padding:"".concat(B.df,"px")},children:n?(0,r.jsx)("button",{type:"button","data-testid":t,onClick:n,"aria-label":s("sidebar.close"),style:eb,className:ep,children:(0,r.jsx)(ef.A,{size:20,"aria-hidden":"true"})}):(0,r.jsx)(Y.m_,{content:o,placement:a?"bottom":"right",children:(0,r.jsx)("button",{type:"button","data-testid":t,onClick:l,"aria-label":o,"aria-expanded":a,style:eb,className:ep,children:(0,r.jsx)(d,{size:20,"aria-hidden":"true"})})})})}let ev="flex w-full min-w-0 items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";function ew(e){let{drawer:t=!1}=e,n=(0,f.c)("common"),s=(0,f.c)("commandPalette"),{setOpen:l}=(0,el.C)(),{openNewTask:o}=(0,eo.hX)(),{closeMobileDrawer:d}=(0,i.VF)(),c=function(){let[e,t]=a.useState(null);return a.useEffect(()=>{t(eu()?"⌘":"Ctrl")},[]),e}(),u=t?d:void 0;return(0,r.jsxs)("div",{"data-testid":t?"sidebar-drawer-top-controls":"sidebar-top-controls",className:"flex-shrink-0",children:[(0,r.jsxs)("div",{className:"flex min-w-0 items-center",children:[t?(0,r.jsx)(eg,{testId:"sidebar-drawer-close",onClose:d}):(0,r.jsx)(eg,{testId:"sidebar-panel-toggle"}),(0,r.jsxs)(x,{href:"/",onClick:u,"data-testid":"sidebar-logo",className:"flex min-w-0 items-center gap-2 rounded-md px-1 py-1 transition-opacity hover:opacity-80 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,r.jsx)("span",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-md bg-accent-600",children:(0,r.jsx)(er.A,{size:14,strokeWidth:2,className:"text-white","aria-hidden":"true"})}),(0,r.jsx)("span",{className:"truncate text-sm font-bold text-sidebar-foreground",children:"CommandMate"})]})]}),(0,r.jsxs)("div",{className:"space-y-0.5 px-2",children:[(0,r.jsxs)("button",{type:"button","data-testid":"sidebar-new-task",onClick:()=>{null==u||u(),o()},"aria-haspopup":"dialog",className:ev,children:[(0,r.jsx)(es.A,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:n("newTask.title")})]}),(0,r.jsxs)("button",{type:"button","data-testid":"sidebar-search",onClick:()=>{null==u||u(),l(!0)},"aria-label":s("mobileTrigger"),className:ev,children:[(0,r.jsx)(ea.A,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:s("searchAction")}),!t&&null!==c&&(0,r.jsxs)("span",{className:"flex flex-shrink-0 items-center gap-0.5","aria-hidden":"true",children:[(0,r.jsx)(ei.u,{children:c}),(0,r.jsx)(ei.u,{children:"K"})]})]})]})]})}var ej=n(94442),ey=n(24373),ek=n(80344),eN=n(98873);let eC="mcbd-sidebar-group-collapsed",eS="mcbd-sidebar-scroll-top",eI=0,eT=(0,a.memo)(function(){var e,t,n;let o=(0,h.Hq)(),{worktrees:d,repositories:c,selectedWorktreeId:u,selectWorktree:m,refreshWorktrees:x,isLoading:v,error:y}=(0,k.$f)(),{closeMobileDrawer:C,sortKey:S,sortDirection:M,viewMode:L,setViewMode:P,repositoryOrder:K,setRepositoryOrder:R}=(0,i.VF)(),O=(0,f.c)("common"),D=null!=(e=(0,s.usePathname)())?e:"",F=(0,B.jn)(D,u),W=(0,l.a)(),{count:z}=(0,ey.Lv)(),[_,H]=(0,a.useState)(""),Y=(0,a.useRef)(null),[U,q]=(0,a.useState)(()=>{try{let e=localStorage.getItem(eC);return e?function(e){try{let t=JSON.parse(e);if("object"!=typeof t||null===t||Array.isArray(t))return{};let n={},r=0;for(let[e,s]of Object.entries(t))if(!eE.has(e)&&"boolean"==typeof s){if(++r>100)break;n[e]=s}return n}catch(e){return{}}}(e):{}}catch(e){return{}}}),G=(0,a.useRef)(!1);(0,a.useEffect)(()=>{G.current||(G.current=!0,fetch("/api/sidebar/group-order").then(e=>e.json()).then(e=>{e.success&&Array.isArray(e.order)&&R(e.order)}).catch(()=>{}))},[R]);let X=(0,a.useMemo)(()=>(0,B.UZ)(c),[c]),J=(0,a.useMemo)(()=>(0,B.s6)(d,X),[d,X]),Z=(0,a.useMemo)(()=>(0,ey.Rc)(d),[d]),$=(0,a.useMemo)(()=>new Set(J.map(e=>e.id)),[J]),Q=(0,a.useMemo)(()=>J.map(T.XK),[J]),ee=(0,a.useMemo)(()=>new Map(Q.map(e=>[e.id,e])),[Q]),et=(0,a.useDeferredValue)(Q),en=(0,a.useRef)(null),er=(0,a.useRef)(null),es=(0,a.useRef)(null),ea=(0,a.useRef)(new Set),[ei,el]=(0,a.useState)(0);(0,a.useEffect)(()=>()=>{null!==er.current&&clearTimeout(er.current)},[]);let eo=(0,a.useCallback)(()=>{null!==er.current&&(clearTimeout(er.current),er.current=null),en.current=null,es.current=null},[]),ed=(0,a.useMemo)(()=>{let e=en.current;return!e||0===e.items.length||Date.now()>=e.expiresAt?et:e.items},[et,ei]),ec=(0,a.useRef)(ed),eu=es.current,em=new Set(ed.filter(e=>(null==eu?void 0:eu.has(e.id))===!0||(0,B.rL)(e,F,ee)).map(e=>e.id));(0,a.useLayoutEffect)(()=>{if(ec.current=ed,ea.current=em,es.current)for(let e of em)es.current.add(e);let e=en.current;e&&0===e.items.length&&et.length>0&&eo()});let eh=(0,a.useCallback)(()=>{if(0===ec.current.length)return;null!==er.current&&(clearTimeout(er.current),er.current=null);let e=en.current;if(e&&Date.now()<e.expiresAt){en.current={...e,expiresAt:1/0};return}en.current={items:ec.current,expiresAt:1/0},es.current=new Set(ea.current)},[]),ex=(0,a.useCallback)(()=>{en.current&&(en.current={...en.current,expiresAt:Date.now()+1e3},null!==er.current&&clearTimeout(er.current),er.current=setTimeout(()=>{eo(),el(e=>e+1)},1e3))},[eo]),{sortedItems:ef,groupedItems:ep}=(0,eN.D)({items:ed,sortKey:S,sortDirection:M,viewMode:L,filterText:_}),eb=(0,a.useMemo)(()=>"grouped"===L&&ep?_.trim()?ep:(0,B.Ew)(ep,K):null,[L,ep,K,_]),eg="grouped"===L?eb:null,ev=(0,a.useMemo)(()=>"sessions"===L?(0,B.EY)((0,B.UB)(ef),S,M):[],[L,ef,S,M]);(0,a.useEffect)(()=>{try{localStorage.setItem(eC,JSON.stringify(U))}catch(e){}},[U]);let ej=(0,a.useCallback)(e=>{q(t=>({...t,[e]:!t[e]}))},[]),ek=(0,a.useCallback)(()=>{var e,t,n=null!=(t=null==(e=Y.current)?void 0:e.scrollTop)?t:0;let r=Number.isFinite(n)&&n>0?n:0;eI=r;try{localStorage.setItem(eS,String(r))}catch(e){}},[]),eT=ef.length>0||(null!=(t=null==eg?void 0:eg.length)?t:0)>0||ev.length>0;(0,a.useEffect)(()=>{let e=Y.current;if(!e)return;let t=window.requestAnimationFrame(()=>{e.scrollTop=function(){try{let e=localStorage.getItem(eS);if(!e)return eI=0,0;let t=Number(e);Number.isFinite(t)&&t>=0&&(eI=t)}catch(e){}return eI}()});return()=>{window.cancelAnimationFrame(t)}},[eT,L]);let eL=(0,a.useCallback)(e=>{ek(),m(e),o.push("/worktrees/".concat(e)),C()},[ek,m,o,C]),eK=(0,a.useCallback)(e=>{ek(),m(e.worktreeId),o.push((0,B.Ii)(e)),C()},[ek,m,o,C]),eR=(0,w.FR)((0,w.MS)(w.AN,{activationConstraint:{distance:8}})),eO=(0,a.useCallback)(e=>{let{active:t,over:n}=e;if(!n||t.id===n.id||!eg)return;let r=eg.map(e=>e.repositoryName),s=r.indexOf(String(t.id)),a=r.indexOf(String(n.id));if(-1===s||-1===a)return;let i=(0,j.be)(r,s,a);R(i),fetch("/api/sidebar/group-order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:i})}).catch(()=>{R(r)})},[eg,R]),eW="grouped"===L?(null!=(n=null==eg?void 0:eg.length)?n:0)===0:"sessions"===L?0===ev.length:0===ef.length,ez=v&&0===d.length,e_=!ez&&!!y&&0===d.length,eH=(0,a.useCallback)(()=>{x()},[x]),eV={sessions:(0,r.jsx)("li",{className:"flex min-w-0",children:(0,r.jsx)(eP,{href:"/sessions",icon:p.A,label:O("nav.sessions"),testId:"sidebar-nav-sessions",isActive:D.startsWith("/sessions"),onNavigate:C})}),repositories:(0,r.jsxs)("li",{className:"flex min-w-0 items-center gap-1",children:[(0,r.jsx)(eP,{href:"/repositories",icon:b.A,label:O("nav.repositories"),testId:"sidebar-nav-repositories",isActive:D.startsWith("/repositories"),onNavigate:C}),(0,r.jsx)(eD,{refreshWorktrees:x})]}),review:(0,r.jsx)("li",{className:"flex min-w-0",children:(0,r.jsx)(eP,{href:z>0?I.ks:"/review",icon:g.A,label:O("nav.review"),testId:"sidebar-nav-review",isActive:D.startsWith("/review"),onNavigate:C,trailing:z>0?(0,r.jsx)("span",{"data-testid":"sidebar-nav-review-count",role:"status","aria-label":O("attention.badgeLabel",{count:z}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-xs font-semibold leading-5 tabular-nums text-warning-foreground",children:z>99?"99+":z}):null})})};return(0,r.jsx)(N.Fy.Provider,{value:!W,children:(0,r.jsxs)("nav",{"data-testid":"sidebar","aria-label":O("sidebar.branchNavigation"),className:"h-full flex flex-col bg-sidebar text-sidebar-foreground",role:"navigation",children:[(0,r.jsx)(ew,{drawer:W}),(0,r.jsx)("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 space-y-2 border-b border-sidebar-border px-2 py-2",children:(0,r.jsx)("ul",{"data-testid":"sidebar-nav",className:"space-y-0.5",children:B.go.map(e=>(0,r.jsx)(a.Fragment,{children:eV[e]},e))})}),(0,r.jsx)(A,{worktrees:Z,visibleWorktreeIds:$,selectedWorktreeId:F,onSelect:eL,onNavigate:C}),(0,r.jsx)(V,{searchQuery:_,onSearchChange:H,viewMode:L,onViewModeChange:P}),(0,r.jsx)("div",{ref:Y,"data-testid":"branch-list",onScroll:ek,onMouseEnter:eh,onMouseLeave:ex,className:"flex-1 overflow-y-auto overflow-x-hidden",children:ez?(0,r.jsx)(eA,{label:O("sidebar.loadingBranches")}):e_?(0,r.jsxs)("div",{"data-testid":"branch-list-error",role:"alert",className:"px-4 py-8 text-center text-sidebar-muted",children:[(0,r.jsx)("p",{className:"text-sm",children:O("sidebar.branchesLoadFailed")}),(0,r.jsx)(E.$n,{type:"button",variant:"secondary",size:"sm",className:"mt-3","data-testid":"branch-list-retry",onClick:eH,children:O("sidebar.retryLoadBranches")})]}):eW?(0,r.jsx)("div",{className:"px-4 py-8 text-center text-sidebar-muted",children:O(_?"sidebar.noBranchesFound":"sidebar.noBranchesAvailable")}):"sessions"===L?ev.map(e=>(0,r.jsx)(eB,{row:e,isSelected:e.worktreeId===F,onClick:eK},e.key)):"grouped"===L&&eg?(0,r.jsx)(w.Mp,{sensors:eR,collisionDetection:w.fp,onDragEnd:eO,children:(0,r.jsx)(j.gB,{items:eg.map(e=>e.repositoryName),strategy:j._G,children:eg.map(e=>{let t=!U[e.repositoryName]||!!_.trim();return(0,r.jsx)(eM,{group:e,isExpanded:t,selectedWorktreeId:F,onToggle:()=>ej(e.repositoryName),onBranchClick:eL,isDragDisabled:!!_.trim(),isFiltering:!!_.trim(),liveBranchById:ee,stickyShownIds:eu},e.repositoryName)})})}):ef.map(e=>(0,r.jsx)(N.yP,{branch:e,isSelected:e.id===F,onClick:()=>eL(e.id)},e.id))}),(0,r.jsx)("div",{"data-testid":"sidebar-footer",className:"flex-shrink-0 px-4 py-3 border-t border-sidebar-border",children:(0,r.jsx)(eF,{onNavigate:C})})]})})}),eA=(0,a.memo)(function(e){let{label:t}=e;return(0,r.jsxs)("div",{"data-testid":"branch-list-skeleton",role:"status","aria-live":"polite",className:"px-4 py-3 space-y-3",children:[(0,r.jsx)("span",{className:"sr-only",children:t}),[0,1,2,3,4].map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(E.EA,{className:"h-2 w-2 rounded-full"}),(0,r.jsx)(E.EA,{className:"h-3 flex-1"})]},e))]})});function eM(e){let{group:t,isExpanded:n,selectedWorktreeId:s,onToggle:a,onBranchClick:i,isDragDisabled:l,isFiltering:o,liveBranchById:d,stickyShownIds:c}=e,{attributes:u,listeners:m,setNodeRef:h,setActivatorNodeRef:x,transform:f,transition:p,isDragging:b}=(0,j.gl)({id:t.repositoryName,disabled:l}),g={transform:y.Ks.Transform.toString(f),transition:p,opacity:b?.5:1},{shown:v,other:w}=(0,B.FS)(t.branches,s,d,null!=c?c:void 0);return(0,r.jsxs)("div",{ref:h,style:g,className:"w-full min-w-0 pt-2",children:[(0,r.jsx)(eL,{repositoryName:t.repositoryName,branchCount:t.branches.length,isExpanded:n,onClick:a,dragHandleRef:x,dragHandleListeners:l?void 0:m,dragHandleAttributes:l?void 0:u}),n&&v.map(e=>(0,r.jsx)(N.yP,{branch:e,isSelected:e.id===s,onClick:()=>i(e.id),showRepositoryName:!1},e.id)),n&&w.length>0&&(0,r.jsx)(M,{branches:w,selectedWorktreeId:s,onBranchClick:i,forceExpanded:o})]})}let eE=new Set(["__proto__","constructor","prototype"]);function eL(e){let{repositoryName:t,branchCount:n,isExpanded:s,onClick:a,dragHandleRef:i,dragHandleListeners:l,dragHandleAttributes:o}=e,d=(0,f.c)("common");return(0,r.jsxs)("div",{className:"group/header flex items-center w-full",children:[l&&(0,r.jsx)("div",{ref:i,...l,...o,"data-testid":"group-drag-handle","aria-label":d("sidebar.dragToReorderGroup"),className:" flex-shrink-0 flex items-center justify-center w-6 h-full pl-2 cursor-grab active:cursor-grabbing text-sidebar-muted hover:text-sidebar-foreground transition-[color,opacity] opacity-0 group-hover/header:opacity-100 group-focus-within/header:opacity-100 [@media(hover:none)]:opacity-100 rounded focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ",children:(0,r.jsx)(eR,{})}),(0,r.jsxs)("button",{"data-testid":"group-header",type:"button",onClick:a,"aria-expanded":s,className:" flex-1 min-w-0 flex items-center gap-2 px-2 py-1 text-xs font-normal text-sidebar-muted focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring transition-colors ",children:[(0,r.jsx)(eK,{isExpanded:s}),(0,r.jsx)(E.nF,{color:(0,B.LV)(t)}),(0,r.jsx)(U.nR,{content:t,className:"flex-1 min-w-0 text-left truncate",children:t}),(0,r.jsx)("span",{className:"text-sidebar-muted font-normal tabular-nums pr-2",children:n})]})]})}function eP(e){let{href:t,icon:n,label:s,testId:a,isActive:i,onNavigate:l,trailing:o}=e;return(0,r.jsxs)(x,{href:t,"data-testid":a,"aria-current":i?"page":void 0,onClick:l,className:"flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ".concat(i?"bg-sidebar-hover font-medium text-sidebar-foreground":"text-sidebar-muted"),children:[(0,r.jsx)(n,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:s}),o]})}let eB=(0,a.memo)(function(e){let{row:t,isSelected:n,onClick:s}=e,a=(0,f.c)("common"),i=(0,C.Mq)(t.status,t.unclassified),l=a(i?C.rH:"status.".concat(t.status));return(0,r.jsx)("div",{className:"w-full min-w-0 ".concat(N.R8),children:(0,r.jsxs)("button",{type:"button","data-testid":"session-list-item","data-session-key":t.key,onClick:()=>s(t),"aria-current":n?"true":void 0,className:"w-full min-w-0 min-h-[34px] px-3 py-1.5 flex items-center gap-2 text-left ".concat((0,N.Xd)(n)),children:[(0,r.jsx)(E.md,{status:t.status,size:"sm",label:t.exited?"".concat(l," (").concat(a("branchItem.agentExited"),")"):l,className:i?C.Jd:void 0}),(0,r.jsx)("span",{className:"flex-shrink-0 max-w-[45%] truncate text-sm font-semibold text-sidebar-foreground",children:t.label}),(0,r.jsxs)("span",{className:"min-w-0 flex-1 truncate text-xs text-sidebar-muted",children:[t.branchName," \xb7 ",t.repositoryName]})]})})});function eK(e){let{isExpanded:t}=e;return(0,r.jsx)("svg",{className:"w-3 h-3 flex-shrink-0 transition-transform ".concat(t?"rotate-90":""),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})}function eR(){return(0,r.jsxs)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"9",cy:"5",r:"1.5"}),(0,r.jsx)("circle",{cx:"15",cy:"5",r:"1.5"}),(0,r.jsx)("circle",{cx:"9",cy:"12",r:"1.5"}),(0,r.jsx)("circle",{cx:"15",cy:"12",r:"1.5"}),(0,r.jsx)("circle",{cx:"9",cy:"19",r:"1.5"}),(0,r.jsx)("circle",{cx:"15",cy:"19",r:"1.5"})]})}function eO(e){let{className:t=""}=e;return(0,r.jsx)("svg",{className:"".concat("w-4 h-4"," ").concat(t),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h5M20 20v-5h-5M20.49 9A9 9 0 005.64 5.64L4 4m16 16l-1.64-1.64A9 9 0 014.51 15"})})}let eD=(0,a.memo)(function(e){let{refreshWorktrees:t}=e,[n,s]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{showToast:l}=(0,ej.dj)(),o=(0,f.c)("common"),d=(0,a.useCallback)(async()=>{if(!i.current){i.current=!0,s(!0);try{let e=await ek.Rx.sync();await t(),l(o("syncSuccess",{count:e.worktreeCount}),"success",3e3)}catch(e){e instanceof ek.hD&&401===e.status?l(o("syncAuthError"),"error",5e3):l(o("syncError"),"error",5e3)}finally{i.current=!1,s(!1)}}},[t,l,o]);return(0,r.jsx)(r.Fragment,{children:(0,r.jsx)(Y.m_,{content:o("tooltips.sync"),placement:"bottom",children:(0,r.jsx)("button",{type:"button",onClick:d,disabled:n,"aria-label":o("syncButtonLabel"),className:"p-1 rounded-md text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:(0,r.jsx)(eO,{className:n?"animate-spin":""})})})})});function eF(e){let{onNavigate:t}=e,n=(0,f.c)("common")("settings.title");return(0,r.jsx)(en,{testIdPrefix:"sidebar-settings-menu",side:"top",align:"start",showDisplayPreferences:!0,onNavigate:t,children:(0,r.jsx)(ee,{asChild:!0,children:(0,r.jsxs)("button",{type:"button","data-testid":"sidebar-settings-menu",className:"flex w-full items-center gap-2 px-2 py-1.5 rounded-md text-sm text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:[(0,r.jsx)(v.A,{size:20,"aria-hidden":"true"}),(0,r.jsx)("span",{className:"truncate",children:n})]})})})}var eW=n(52407);function ez(){let{shouldSurface:e,isReconnecting:t}=(0,eW.Fx)(),n=(0,f.c)("common");if(!e)return null;let s=n(t?"connection.reconnecting":"connection.offline");return(0,r.jsxs)("span",{"data-testid":"connection-status-indicator","data-connection-state":t?"reconnecting":"offline",role:"status","aria-live":"polite",title:n(t?"connection.reconnectingTooltip":"connection.offlineTooltip"),className:"hidden sm:inline-flex items-center gap-1.5 rounded-full border border-border bg-surface px-2 py-0.5 text-xs text-muted-foreground",children:[(0,r.jsx)("span",{"aria-hidden":"true",className:["w-1.5 h-1.5 rounded-full",t?"bg-warning motion-safe:animate-pulse":"bg-muted-foreground"].join(" ")}),s]})}var e_=n(72137);let eH=[{prefix:"/sessions",labelKey:"nav.sessions"},{prefix:"/repositories",labelKey:"nav.repositories"},{prefix:"/review",labelKey:"nav.review"},{prefix:"/skills",labelKey:"nav.skills"},{prefix:"/more",labelKey:"nav.more"}];function eV(e){var t,n,a,i;let{title:l="CommandMate"}=e,o=null!==(n=null!=(t=(0,s.usePathname)())?t:"",null!=(i=null==(a=eH.find(e=>n.startsWith(e.prefix)))?void 0:a.labelKey)?i:null);return(0,r.jsxs)("header",{"data-testid":"screen-status-row",className:"flex flex-shrink-0 items-center justify-end gap-4 px-4 py-1.5 border-b border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md empty:hidden",children:[!o&&(0,r.jsx)("h1",{"data-testid":"header-screen-title",className:"mr-auto min-w-0 truncate text-lg font-bold text-foreground",children:l}),(0,r.jsx)(ez,{}),(0,r.jsx)(e_.H,{})]})}function eY(e){let{count:t}=e,n=(0,f.c)("common");return 0===t?null:(0,r.jsx)("span",{"data-testid":"attention-badge-bubble",role:"status","aria-label":n("attention.badgeLabel",{count:t}),className:"absolute -top-1.5 -right-2.5 min-w-[1.05rem] rounded-full bg-warning-foreground px-1 text-[0.625rem] font-bold leading-[1.05rem] text-warning-subtle tabular-nums text-center",children:t>99?"99+":t})}let eU="relative flex h-10 w-10 items-center justify-center rounded-md transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",eq="text-sidebar-muted hover:bg-sidebar-hover hover:text-sidebar-foreground";function eG(e){let{href:t,icon:n,label:s,testId:a,isActive:i,badge:l}=e;return(0,r.jsx)(Y.m_,{content:s,placement:"right",children:(0,r.jsx)(x,{href:t,"data-testid":a,"aria-label":s,"aria-current":i?"page":void 0,className:"".concat(eU," ").concat(i?"bg-sidebar-hover text-sidebar-foreground":eq),children:(0,r.jsxs)("span",{className:"relative flex",children:[(0,r.jsx)(n,{size:20,"aria-hidden":"true"}),l]})})})}function eX(e){let{icon:t,label:n,testId:s,onClick:a,hasPopup:i}=e;return(0,r.jsx)(Y.m_,{content:n,placement:"right",children:(0,r.jsx)("button",{type:"button","data-testid":s,"aria-label":n,"aria-haspopup":i,onClick:a,className:"".concat(eU," ").concat(eq),children:(0,r.jsx)(t,{size:20,"aria-hidden":"true"})})})}function eJ(){var e;let t=(0,f.c)("common"),n=(0,f.c)("commandPalette"),i=null!=(e=(0,s.usePathname)())?e:"",{setOpen:l}=(0,el.C)(),{openNewTask:o}=(0,eo.hX)(),{count:d}=(0,ey.Lv)(),c=t("settings.title"),u={sessions:(0,r.jsx)(eG,{href:"/sessions",icon:p.A,label:t("nav.sessions"),testId:"sidebar-rail-sessions",isActive:i.startsWith("/sessions")}),repositories:(0,r.jsx)(eG,{href:"/repositories",icon:b.A,label:t("nav.repositories"),testId:"sidebar-rail-repositories",isActive:i.startsWith("/repositories")}),review:(0,r.jsx)(eG,{href:d>0?I.ks:"/review",icon:g.A,label:t("nav.review"),testId:"sidebar-rail-review",isActive:i.startsWith("/review"),badge:(0,r.jsx)(eY,{count:d})})};return(0,r.jsxs)("nav",{"data-testid":"sidebar-rail","aria-label":t("sidebar.railLabel"),className:"flex h-full flex-col items-center gap-1 bg-sidebar pb-2 text-sidebar-foreground",style:{width:"".concat(B.BN,"px")},children:[(0,r.jsx)(eg,{testId:"sidebar-rail-toggle"}),(0,r.jsx)(eX,{icon:es.A,label:t("newTask.title"),testId:"sidebar-rail-new-task",onClick:()=>o(),hasPopup:"dialog"}),(0,r.jsx)(eX,{icon:ea.A,label:n("mobileTrigger"),testId:"sidebar-rail-search",onClick:()=>l(!0)}),(0,r.jsx)("div",{className:"my-1 w-8 border-b border-sidebar-border","aria-hidden":"true"}),B.go.map(e=>(0,r.jsx)(a.Fragment,{children:u[e]},e)),(0,r.jsx)("div",{className:"mt-auto",children:(0,r.jsx)(en,{testIdPrefix:"sidebar-rail-settings",side:"right",align:"end",showDisplayPreferences:!0,children:(0,r.jsx)(Y.m_,{content:c,placement:"right",children:(0,r.jsx)(ee,{asChild:!0,children:(0,r.jsx)("button",{type:"button","data-testid":"sidebar-rail-settings","aria-label":c,className:"".concat(eU," ").concat(eq),children:(0,r.jsx)(v.A,{size:20,"aria-hidden":"true"})})})})})})]})}var eZ=n(46365),e$=n(12906),eQ=n(37772),e0=n(9540),e1=n(55756);let e2=[{labelKey:"nav.sessions",href:"/sessions",isActive:e=>e.startsWith("/sessions"),icon:(0,r.jsx)(p.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:e=>e.startsWith("/review"),icon:(0,r.jsx)(g.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:e=>e.startsWith("/more"),icon:(0,r.jsx)(eQ.A,{size:20,"aria-hidden":"true"})}];function e5(){let e=(0,s.usePathname)(),{setOpen:t}=(0,el.C)(),n=(0,f.c)("commandPalette"),a=(0,f.c)("common"),{count:l}=(0,ey.Lv)(),o=(0,i.pT)();return(null==o?void 0:o.isMobileDrawerOpen)?null:(0,r.jsx)("nav",{"data-testid":"global-mobile-nav",className:"fixed bottom-0 left-0 right-0 z-50 border-t border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md pb-safe",children:(0,r.jsxs)("div",{className:"flex items-center justify-around h-14",children:[o&&(0,r.jsxs)("button",{type:"button","data-testid":"mobile-nav-open-sidebar",...e1.cv,onClick:o.openMobileDrawer,className:"flex flex-col items-center justify-center flex-1 h-full text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(e0.A,{size:20,"aria-hidden":"true"}),(0,r.jsx)("span",{className:"mt-1 whitespace-nowrap",children:a("sidebar.branches")})]}),e2.map(t=>{let n=t.isActive(e),s=!0===t.showsAttentionBadge&&l>0;return(0,r.jsxs)(x,{href:s?I.ks:t.href,className:"flex flex-col items-center justify-center flex-1 h-full text-xs transition-colors ".concat(n?"text-accent-600 dark:text-accent-400":"text-muted-foreground hover:text-foreground"),children:[(0,r.jsxs)("span",{className:"relative inline-flex",children:[t.icon,!0===t.showsAttentionBadge&&(0,r.jsx)(eY,{count:l})]}),(0,r.jsx)("span",{className:"mt-1 whitespace-nowrap",children:a(t.labelKey)})]},t.href)}),(0,r.jsxs)("button",{type:"button","data-testid":"mobile-command-palette-trigger",onClick:()=>t(!0),"aria-label":n("mobileTrigger"),className:"flex flex-col items-center justify-center flex-1 h-full text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(ea.A,{size:20,"aria-hidden":"true"}),(0,r.jsx)("span",{className:"mt-1 whitespace-nowrap",children:n("mobileLabel")})]})]})})}function e4(){let{shouldSurface:e,isReconnecting:t}=(0,eW.Fx)(),n=(0,f.c)("common");if(!e)return null;let s=n(t?"connection.reconnecting":"connection.offline"),a=n(t?"connection.reconnectingTooltip":"connection.offlineTooltip");return(0,r.jsx)("div",{"data-testid":"mobile-connection-banner","data-connection-state":t?"reconnecting":"offline",role:"status","aria-live":"polite",title:a,className:"shrink-0 pt-safe border-b ".concat(t?"bg-warning-subtle border-warning-border text-warning-foreground":"bg-danger-subtle border-danger-border text-danger-foreground"),children:(0,r.jsxs)("div",{className:"flex items-center justify-center gap-1.5 px-3 py-1 text-xs",children:[(0,r.jsx)("span",{"aria-hidden":"true",className:"w-1.5 h-1.5 rounded-full ".concat(t?"bg-warning motion-safe:animate-pulse":"bg-danger")}),s]})})}var e3=n(45573),e9=n(94465),e6=n(70628);function e7(e){return!0===e.isComposing||229===e.keyCode}let e8=[...ec,{id:"newTask",keys:["MOD","Shift","O"],scope:"global"},{id:"newTaskSend",keys:["MOD","↵"],scope:"global"}];function te(){let{open:e,setOpen:t}=(0,e6.K)(),{open:n}=(0,el.C)(),{isOpen:s}=(0,eo.hX)(),i=(0,f.c)("keyboardShortcuts"),[l,o]=(0,a.useState)(!1);(0,a.useEffect)(()=>o(eu()),[]);let d=(0,a.useRef)(e);(0,a.useEffect)(()=>{d.current=e},[e]);let c=(0,a.useRef)(n);(0,a.useEffect)(()=>{c.current=n},[n]);let u=(0,a.useRef)(s);(0,a.useEffect)(()=>{u.current=s},[s]),(0,a.useEffect)(()=>{function e(e){"?"!==e.key||e.isComposing||229===e.keyCode||(0,e3.tJ)(e.target)||c.current||u.current||d.current||(e.preventDefault(),t(!0))}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let m=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ec;return ed.map(t=>({scope:t,shortcuts:e.filter(e=>e.scope===t)})).filter(e=>e.shortcuts.length>0)}(e8);return(0,r.jsx)(e9.a,{isOpen:e,onClose:()=>t(!1),title:i("title"),size:"md",children:(0,r.jsx)("div",{"data-testid":"keyboard-shortcuts-overlay",className:"space-y-6",children:m.map(e=>{let{scope:t,shortcuts:n}=e;return(0,r.jsxs)("section",{"data-testid":"keyboard-shortcuts-scope-".concat(t),children:[(0,r.jsx)("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:i("scopes.".concat(t))}),(0,r.jsx)("ul",{className:"divide-y divide-border",children:n.map(e=>(0,r.jsxs)("li",{"data-testid":"keyboard-shortcut-".concat(e.id),className:"flex items-center justify-between gap-4 py-2",children:[(0,r.jsx)("span",{className:"text-sm text-foreground",children:i("shortcuts.".concat(e.id))}),(0,r.jsx)("span",{className:"flex flex-shrink-0 items-center gap-1",children:e.keys.map((e,t)=>(0,r.jsx)(ei.u,{children:em(e,l)},t))})]},e.id))})]},t)})})})}var tt=n(77016),tn=n(36809),tr=n(31166);let ts=/^v?\d+\.\d+\.\d+$/;function ta(e){return e.replace(/^v/,"").split(".").map(Number)}let ti="commandmate.lastSeenAppVersion";function tl(e){try{window.localStorage.setItem(ti,e)}catch(e){}}let to=[{key:"added",labelKey:"whatsNew.added"},{key:"improved",labelKey:"whatsNew.improved"},{key:"fixed",labelKey:"whatsNew.fixed"}];function td(){let e=(0,f.c)("common"),t=(0,tn.Ym)(),[n,s]=(0,a.useState)(null),[i,l]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e,t="0.46.0";try{e=window.localStorage.getItem(ti)}catch(e){return}let n=function(e,t){if(!ts.test(t))return{kind:"none"};if(null===e||!ts.test(e))return{kind:"remember"};let n=function(e,t){let n=ta(e),r=ta(t),s=Math.max(n.length,r.length);for(let e=0;e<s;e++){let t=n[e]||0,s=r[e]||0;if(t>s)return 1;if(t<s)return -1}return 0}(t,e);return 0===n?{kind:"none"}:n<0?{kind:"remember"}:{kind:"show",from:e}}(e,t);if("none"===n.kind)return;if("remember"===n.kind)return void tl(t);let r=!1;return ek.GQ.getReleaseNotes(n.from,t).then(e=>{r||(s({from:n.from,to:t,notes:e.notes}),l(!0))},()=>{}),()=>{r=!0}},[]);let o=(0,a.useCallback)(()=>{n&&tl(n.to),l(!1)},[n]);if(!n)return null;let d="ja"===t?"ja":"en";return(0,r.jsx)(e9.a,{isOpen:i,onClose:o,title:e("whatsNew.title",{from:n.from,to:n.to}),size:"md",children:(0,r.jsxs)("div",{className:"space-y-4","data-testid":"whats-new-dialog",children:[0===n.notes.length?(0,r.jsx)("p",{className:"text-sm text-foreground","data-testid":"whats-new-empty",children:e("whatsNew.empty")}):n.notes.map(t=>(0,r.jsxs)("section",{className:"space-y-3","data-testid":"whats-new-version-".concat(t.version),children:[(0,r.jsxs)("h4",{className:"text-sm font-semibold text-foreground",children:["v",t.version,(0,r.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:t.date})]}),t.highlight&&(0,r.jsxs)("div",{"data-testid":"whats-new-highlight",children:[(0,r.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:e("whatsNew.highlight")}),(0,r.jsx)("p",{className:"mt-1 text-sm text-foreground",children:t.highlight[d]})]}),to.map(n=>{let{key:s,labelKey:a}=n;return t[s].length>0?(0,r.jsxs)("div",{"data-testid":"whats-new-".concat(s),children:[(0,r.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:e(a)}),(0,r.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-sm text-foreground",children:t[s].map((e,t)=>(0,r.jsx)("li",{children:e[d]},t))})]},s):null})]},t.version)),(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 border-t border-border pt-3",children:[(0,r.jsx)("a",{href:"".concat("https://github.com/Kewton/CommandMate/releases/tag/v").concat(n.to),target:"_blank",rel:"noopener noreferrer",className:"text-sm text-accent-600 dark:text-accent-400 hover:underline","data-testid":"whats-new-release-link",children:e("whatsNew.releaseLink")}),(0,r.jsx)(tr.$,{type:"button",variant:"primary",size:"sm",onClick:o,"data-testid":"whats-new-close",children:e("whatsNew.close")})]})]})})}var tc=n(76351);let tu="commandmate.newTask.recentTargets";function tm(e){if(null===e||"object"!=typeof e)return!1;let{worktreeId:t,instanceId:n}=e;return"string"==typeof t&&""!==t&&"string"==typeof n&&""!==n}function th(e,t){return e.worktreeId===t.worktreeId&&e.instanceId===t.instanceId}function tx(){try{let e=window.localStorage.getItem(tu);if(!e)return[];let t=JSON.parse(e);if(!Array.isArray(t))return[];return t.filter(tm).map(e=>{let{worktreeId:t,instanceId:n}=e;return{worktreeId:t,instanceId:n}}).slice(0,3)}catch(e){return[]}}var tf=n(54014);function tp(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=new Map;for(let r of e){let e=n.get(r.repositoryPath);if(!e){let s=t.find(e=>e.path===r.repositoryPath);e={path:r.repositoryPath,name:(null==s?void 0:s.displayName)||(null==s?void 0:s.name)||r.repositoryName,worktrees:[]},n.set(r.repositoryPath,e)}e.worktrees.push(r)}let r=Array.from(n.values());for(let e of r)e.worktrees.sort((e,t)=>e.name.localeCompare(t.name));return r.sort((e,t)=>e.name.localeCompare(t.name))}function tb(e){return e.agentInstances&&e.agentInstances.length>0?e.agentInstances.slice().sort((e,t)=>e.order-t.order):e.selectedAgents&&e.selectedAgents.length>0?(0,tf.lu)(e.selectedAgents):e.cliToolId?(0,tf.lu)([e.cliToolId]):[]}function tg(e,t){let n=e.find(e=>e.id===t.worktreeId);if(!n)return null;let r=tb(n).find(e=>e.id===t.instanceId);return r?{worktree:n,instance:r}:null}function tv(e,t){var n,r,s,a;let i=null!=(a=null==(n=e.sessionStatusByInstance)?void 0:n[t.id])?a:t.id===t.cliTool?null==(r=e.sessionStatusByCli)?void 0:r[t.cliTool]:void 0,l=null==i?void 0:i.startingSince,o=null==(s=e.autoYesByInstance)?void 0:s[t.id];return{instance:t,label:(0,tf.sw)(t),running:(null==i?void 0:i.isRunning)===!0,starting:"number"==typeof l,autoYes:(null==o?void 0:o.enabled)&&"number"==typeof o.expiresAt?o:null}}var tw=n(56936);let tj={promptWaiting:"PROMPT_WAITING",sessionStarting:"SESSION_STARTING",instanceToolConflict:"instance_tool_conflict"};async function ty(e){try{let t=await e.json(),n=t&&"object"==typeof t?t.expiresAt:null;if("number"==typeof n)return{enabled:!0,expiresAt:n}}catch(e){}return null}async function tk(e){try{let t=await e.json();if(t&&"object"==typeof t){let{error:e,code:n}=t;return{error:"string"==typeof e&&""!==e?e:null,code:"string"==typeof n?n:null}}}catch(e){}return{error:null,code:null}}async function tN(e,t){let{modelRequested:n}=t;if(e.ok&&!e.redirected)return{ok:!0};let{status:r}=e,{error:s,code:a}=await tk(e);return{ok:!1,kind:409===r?a===tj.promptWaiting?"prompt_waiting":"conflict":503===r?a===tj.sessionStarting?"starting":"start_failed":400===r?n&&a!==tj.instanceToolConflict?"model_rejected":"invalid":"failed",status:e.ok?0:r,detail:s}}function tC(e){return{ok:!1,kind:"failed",status:0,detail:e instanceof ek.hD||e instanceof Error?e.message:null}}function tS(e,t){return new Promise((n,r)=>{let s=setTimeout(()=>{r(new ek.hD("Request timed out after ".concat(t,"ms"),0,void 0,"timeout"))},t);e().then(e=>{clearTimeout(s),n(e)},e=>{clearTimeout(s),r(e)})})}async function tI(e){var t;let n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ek.E,{target:s,cliToolId:a}=e,i="/api/worktrees/".concat(encodeURIComponent(s.worktreeId)),l={"Content-Type":"application/json"},o=!1,d=e.autoYesDuration;if(null!==d){let e,t=!1;try{e=await tS(async()=>{var e;let c=await r("".concat(i,"/auto-yes"),{method:"POST",headers:l,body:JSON.stringify({enabled:!0,cliToolId:a,instanceId:s.instanceId,duration:d})});if(!c.ok){let{error:e}=await tk(c);return{ok:!1,kind:"auto_yes_failed",status:c.status,detail:e}}return t=!0,n=null!=(e=await ty(c))?e:void 0,o=void 0===n,null},(0,tw.Z3)("POST"))}catch(e){if(!t){let t=tC(e);return t.ok?t:{...t,kind:"auto_yes_failed"}}return{...tC(e),autoYesStateUnknown:!0}}if(e)return e}let c=e=>n?{...e,armedAutoYes:n}:o?{...e,autoYesStateUnknown:!0}:e,u=(null==(t=e.model)?void 0:t.trim())||void 0,m=(0,tw.SE)();try{return c(await tS(async()=>{let t=await r("".concat(i,"/send"),{method:"POST",headers:l,body:JSON.stringify({content:e.content,cliToolId:a,instanceId:s.instanceId,...u?{model:u}:{}}),timeoutMs:m});return tN(t,{modelRequested:void 0!==u})},m))}catch(e){return c(tC(e))}}let tT="w-full px-3 py-2 border border-input rounded-lg bg-surface text-foreground text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent disabled:opacity-60",tA="block text-xs font-medium text-muted-foreground mb-1";function tM(){var e,t,n,i,l,o,d,c,u,m;let{requestedTarget:h,screenTarget:x,closeNewTask:p,setCloseLocked:b}=(0,eo.hX)(),g=(0,s.useRouter)(),{showToast:v}=(0,ej.dj)(),w=(0,f.c)("common"),j=(0,f.c)("autoYes"),[y,k]=(0,a.useState)({status:"loading"}),[N,C]=(0,a.useState)(0),[S]=(0,a.useState)(()=>tx()),[I,T]=(0,a.useState)(""),[A,M]=(0,a.useState)(""),[E,L]=(0,a.useState)(""),[P,K]=(0,a.useState)(""),[R,O]=(0,a.useState)(null),[D,F]=(0,a.useState)(!1),[W,z]=(0,a.useState)(null),[_,H]=(0,a.useState)(!1),V=(0,a.useRef)(null),Y=(0,a.useRef)(!0),U=(0,a.useRef)(!1),[q,G]=(0,a.useState)({}),[X,J]=(0,a.useState)({});(0,a.useEffect)(()=>(Y.current=!0,H(eu()),()=>{Y.current=!1,b(!1)}),[b]);let Z=(0,a.useCallback)(()=>{U.current||p()},[p]),$=(0,a.useRef)([h,x,null!=(e=S[0])?e:null]),Q=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=!1;return k({status:"loading"}),ek.y.getAll().then(t=>{var n,r;if(e)return;let s=null!=(n=t.worktrees)?n:[],a=null!=(r=t.repositories)?r:[];if(k({status:"ready",worktrees:s,repositories:a}),Q.current)return;Q.current=!0;let i=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];for(let n of t){if(!n)continue;if(tg(e,n))return n;let t=e.find(e=>e.id===n.worktreeId),r=t?tb(t)[0]:void 0;if(t&&r)return{worktreeId:t.id,instanceId:r.id}}for(let t of tp(e,n))for(let e of t.worktrees){let t=tb(e)[0];if(t)return{worktreeId:e.id,instanceId:t.id}}return null}(s,$.current,a);i&&(T(i.worktreeId),M(i.instanceId))}).catch(()=>{e||k({status:"error"})}),()=>{e=!0}},[N]);let ee=(0,a.useMemo)(()=>"ready"===y.status?y.worktrees:[],[y]),et=(0,a.useMemo)(()=>"ready"===y.status?tp(y.worktrees,y.repositories):[],[y]),en=null!=(t=ee.find(e=>e.id===I))?t:null,er=(0,a.useMemo)(()=>en?tb(en):[],[en]),es=null!=(n=er.find(e=>e.id===A))?n:null,ea=en&&es?tv(en,es):null,el=en&&null!=(i=et.find(e=>e.path===en.repositoryPath))?i:null,ed=ea?(m=ea.instance.cliTool,"copilot"===m?{selectable:!0}:"claude"===m||"antigravity"===m?ea.running||ea.starting?{selectable:!1,reason:"running"}:{selectable:!0}:{selectable:!1,reason:"unsupported"}):null,ec=ea?null!=(l=X["".concat(I,":").concat(ea.instance.id)])?l:ea.autoYes:null,eh=!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();return!!e&&e.enabled&&"number"==typeof e.expiresAt&&e.expiresAt-t>0}(ec)?null:ec,ex=!!ea&&!0===q["".concat(I,":").concat(ea.instance.id)],[,ef]=(0,a.useState)(0);(0,a.useEffect)(()=>{if(!eh)return;let e=setInterval(()=>ef(Date.now()),tc.$s);return()=>clearInterval(e)},[eh]),(0,a.useEffect)(()=>{var e;"ready"===y.status&&(null==(e=V.current)||e.focus())},[y.status]);let ep=(0,a.useMemo)(()=>S.flatMap(e=>{var t;let n=tg(ee,e);if(!n)return[];let r=et.find(e=>e.path===n.worktree.repositoryPath),s=tv(n.worktree,n.instance).label;return[{target:e,label:"".concat(null!=(t=null==r?void 0:r.name)?t:n.worktree.repositoryName," / ").concat(n.worktree.name," / ").concat(s)}]}),[S,ee,et]),eb=(0,a.useCallback)(e=>{T(e.worktreeId),M(e.instanceId),z(null)},[]),eg=(0,a.useCallback)(e=>{var t,n,r;let s=et.find(t=>t.path===e),a=null!=(n=null==s?void 0:s.worktrees.find(e=>tb(e).length>0))?n:null==s?void 0:s.worktrees[0];a&&eb({worktreeId:a.id,instanceId:null!=(r=null==(t=tb(a)[0])?void 0:t.id)?r:""})},[et,eb]),ev=(0,a.useCallback)(e=>{var t,n,r;let s=ee.find(t=>t.id===e);if(!s)return;let a=tb(s),i=a.find(e=>e.id===A);eb({worktreeId:s.id,instanceId:null!=(r=null!=(n=null==i?void 0:i.id)?n:null==(t=a[0])?void 0:t.id)?r:""})},[ee,A,eb]),ew=!!ea&&""!==E.trim()&&!D,ey=(0,a.useCallback)(async()=>{if(!ew||!en||!ea)return;let e={worktreeId:en.id,instanceId:ea.instance.id};U.current=!0,b(!0),F(!0),z(null);let t=await tI({target:e,cliToolId:ea.instance.cliTool,content:E.trim(),model:(null==ed?void 0:ed.selectable)?P:void 0,autoYesDuration:eh?null:R});if(U.current=!1,b(!1),!Y.current)return;let{armedAutoYes:n}=t,r="".concat(e.worktreeId,":").concat(e.instanceId);if(t.autoYesStateUnknown&&G(e=>({...e,[r]:!0})),n&&(G(e=>{let{[r]:t,...n}=e;return n}),J(e=>({...e,[r]:n})),O(null)),!t.ok){z(t),F(!1);return}var s=e;let a=[{worktreeId:s.worktreeId,instanceId:s.instanceId},...tx().filter(e=>!th(e,s))].slice(0,3);try{window.localStorage.setItem(tu,JSON.stringify(a))}catch(e){}let i="".concat(window.location.pathname).concat(window.location.search),l="".concat(en.name," / ").concat(ea.label);p(),g.push((0,B.Ii)(e)),v(w("newTask.sentToast",{target:l}),"success",6e3,{onClick:()=>g.push(i)})},[ew,en,ea,E,ed,P,eh,R,p,b,g,v,w]),eN=(0,a.useCallback)(e=>{var t;e7(t=e.nativeEvent)||"Enter"!==t.key||t.shiftKey||t.altKey||!t.metaKey&&!t.ctrlKey||(e.preventDefault(),ey())},[ey]),eC=null!=(o=null==ea?void 0:ea.label)?o:"",eS=ea?ea.starting?"starting":ea.running?"running":"stopped":null;return(0,r.jsx)(e9.a,{isOpen:!0,onClose:Z,title:w("newTask.title"),size:"md",disableClose:D,children:(0,r.jsxs)("div",{"data-testid":"new-task-dialog",className:"space-y-4",onKeyDown:eN,children:["loading"===y.status&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"new-task-loading",children:w("newTask.loading")}),"error"===y.status&&(0,r.jsxs)("div",{className:"space-y-2",role:"alert","data-testid":"new-task-load-error",children:[(0,r.jsx)("p",{className:"text-sm text-danger",children:w("newTask.loadError")}),(0,r.jsx)("button",{type:"button",onClick:()=>C(e=>e+1),className:"px-3 py-1.5 text-sm font-medium text-foreground bg-muted hover:bg-muted/80 rounded-lg",children:w("retry")})]}),"ready"===y.status&&0===et.length&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"new-task-empty",children:w("newTask.noTargets")}),"ready"===y.status&&et.length>0&&(0,r.jsxs)(r.Fragment,{children:[ep.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:tA,children:w("newTask.recentLabel")}),(0,r.jsx)("div",{className:"flex flex-wrap gap-2","data-testid":"new-task-recents",children:ep.map(e=>{let{target:t,label:n}=e,s=!!ea&&th(t,{worktreeId:I,instanceId:ea.instance.id});return(0,r.jsx)("button",{type:"button","aria-pressed":s,"data-testid":"new-task-recent",onClick:()=>eb(t),className:"max-w-full truncate rounded-full border px-3 py-1 text-xs transition-colors ".concat(s?"border-accent-500 bg-accent-500/15 text-foreground":"border-border text-muted-foreground hover:text-foreground"),children:n},"".concat(t.worktreeId,":").concat(t.instanceId))})})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"new-task-repository",className:tA,children:w("newTask.repositoryLabel")}),(0,r.jsx)("select",{id:"new-task-repository","data-testid":"new-task-repository",value:null!=(d=null==el?void 0:el.path)?d:"",onChange:e=>eg(e.target.value),className:tT,children:et.map(e=>(0,r.jsx)("option",{value:e.path,children:e.name},e.path))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"new-task-branch",className:tA,children:w("newTask.branchLabel")}),(0,r.jsx)("select",{id:"new-task-branch","data-testid":"new-task-branch",value:I,onChange:e=>ev(e.target.value),className:tT,children:(null!=(c=null==el?void 0:el.worktrees)?c:[]).map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"new-task-agent",className:tA,children:w("newTask.agentLabel")}),(0,r.jsx)("select",{id:"new-task-agent","data-testid":"new-task-agent",value:null!=(u=null==es?void 0:es.id)?u:"",onChange:e=>eb({worktreeId:I,instanceId:e.target.value}),className:tT,disabled:0===er.length,children:er.map(e=>{var t;let n=en?tv(en,e):null,s=(null==n?void 0:n.starting)?"starting":(null==n?void 0:n.running)?"running":"stopped";return(0,r.jsx)("option",{value:e.id,children:"".concat(null!=(t=null==n?void 0:n.label)?t:e.id," — ").concat(w("newTask.agentStatus.".concat(s)))},e.id)})})]})]}),"stopped"===eS&&(0,r.jsx)("p",{className:"text-xs text-foreground","data-testid":"new-task-will-start",children:w("newTask.willStart",{agent:eC})}),"starting"===eS&&(0,r.jsx)("p",{className:"text-xs text-warning-foreground","data-testid":"new-task-starting",children:w("newTask.startingNotice",{agent:eC})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"new-task-message",className:tA,children:w("newTask.messageLabel")}),(0,r.jsx)("textarea",{ref:V,id:"new-task-message","data-testid":"new-task-message",value:E,onChange:e=>L(e.target.value),placeholder:w("newTask.messagePlaceholder"),rows:5,className:"".concat(tT," resize-y")})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"new-task-model",className:tA,children:w("newTask.modelLabel")}),(0,r.jsx)("input",{id:"new-task-model","data-testid":"new-task-model",type:"text",value:(null==ed?void 0:ed.selectable)?P:"",onChange:e=>K(e.target.value),placeholder:w("newTask.modelPlaceholder"),disabled:!(null==ed?void 0:ed.selectable),className:tT}),ed&&(0,r.jsx)("p",{className:"mt-1 text-xs text-muted-foreground","data-testid":"new-task-model-note",children:ed.selectable?w((null==ea?void 0:ea.instance.cliTool)==="copilot"?"newTask.modelHintSwitch":"newTask.modelHintLaunch"):w("newTask.modelUnavailable.".concat(ed.reason),{agent:eC})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"new-task-auto-yes",className:tA,children:w("newTask.autoYesLabel")}),eh?(0,r.jsx)("p",{className:"text-sm text-foreground","data-testid":"new-task-auto-yes-active",children:w("newTask.autoYesActive",{remaining:(0,tc.$B)(eh.expiresAt)})}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("select",{id:"new-task-auto-yes","data-testid":"new-task-auto-yes",value:null!=R?R:"",onChange:e=>{let t=Number(e.target.value);O(""!==e.target.value&&(0,tc.dR)(t)?t:null)},className:tT,children:[(0,r.jsx)("option",{value:"",children:w(ex?"newTask.autoYesKeepUnknown":"newTask.autoYesKeep")}),tc.z9.map(e=>(0,r.jsx)("option",{value:e,children:w("newTask.autoYesEnableFor",{duration:j(tc.Ni[e].replace("autoYes.",""))})},e))]}),ex&&(0,r.jsx)("p",{className:"mt-1 text-xs text-warning-foreground","data-testid":"new-task-auto-yes-unknown",children:w("newTask.autoYesUnknown")}),(0,r.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:w("newTask.autoYesScope")}),null!==R&&(0,r.jsx)("p",{className:"mt-1 text-xs text-warning-foreground","data-testid":"new-task-auto-yes-risk",children:j("riskWarning")})]})]})]})]}),W&&(0,r.jsxs)("div",{role:"alert","data-testid":"new-task-error","data-kind":W.kind,className:"rounded-lg border border-danger-border bg-danger-subtle px-3 py-2 text-sm text-danger-foreground",children:[(0,r.jsx)("p",{children:w("newTask.errors.".concat(W.kind),{agent:eC})}),W.detail&&(0,r.jsx)("p",{className:"mt-1 break-words text-xs text-muted-foreground","data-testid":"new-task-error-detail",children:W.detail})]}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,r.jsxs)("span",{className:"mr-auto hidden items-center gap-1 text-xs text-muted-foreground sm:flex",children:[(0,r.jsx)(ei.u,{children:em("MOD",_)}),(0,r.jsx)(ei.u,{children:"↵"}),(0,r.jsx)("span",{children:w("newTask.sendHint")})]}),(0,r.jsx)("button",{type:"button","data-testid":"new-task-cancel",onClick:Z,disabled:D,className:"px-4 py-2 text-sm font-medium text-foreground bg-muted hover:bg-muted/80 rounded-lg transition-colors disabled:opacity-50",children:w("cancel")}),(0,r.jsx)("button",{type:"button","data-testid":"new-task-send",onClick:()=>void ey(),disabled:!ew,className:"px-4 py-2 text-sm font-medium text-white bg-accent-600 hover:bg-accent-700 disabled:opacity-50 disabled:cursor-not-allowed rounded-lg transition-colors",children:D?w("newTask.sending"):w("newTask.send")})]})]})})}function tE(){let{isOpen:e,openNewTask:t}=(0,eo.hX)(),{open:n}=(0,el.C)(),s=(0,a.useRef)(n);return(0,a.useEffect)(()=>{s.current=n},[n]),(0,a.useEffect)(()=>{function e(e){if(!e.defaultPrevented)!e7(e)&&e.shiftKey&&!e.altKey&&(e.metaKey||e.ctrlKey)&&("o"===e.key.toLowerCase()||"KeyO"===e.code)&&(s.current||(e.preventDefault(),t()))}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]),e?(0,r.jsx)(tM,{}):null}var tL=n(59854);let tP="transform transition-transform duration-300 ease-out",tB=(0,a.memo)(function(e){let{children:t}=e,{isOpen:n,isMobileDrawerOpen:u,closeMobileDrawer:m,width:h,setWidth:x,repoTabBarMode:f,toggle:p}=(0,i.VF)(),b=(0,l.a)(),{showSidebar:g,showGlobalNav:v}=function(){var e=(0,s.usePathname)();for(let t of d)if(e.startsWith(t.prefix))return{...o,...t.config};return{...o}}();!function(e,t){let{open:n}=(0,el.C)(),r=(0,a.useRef)(n),s=(0,a.useRef)(t);(0,a.useEffect)(()=>{r.current=n,s.current=t},[n,t]),(0,a.useEffect)(()=>{if(e)return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t);function t(e){!(e.defaultPrevented||!(0,B.zg)(e)||r.current||(0,eZ.Sj)())&&((0,B.al)(e.target)||(e.preventDefault(),s.current()))}},[e])}(!b&&g,p);let{factor:w}=(0,c.Ps)(),j=Math.round(160*w),y=Math.round(480*w),k=Math.round(Math.min(y,Math.max(j,h*w))),N=(0,B.fs)(null!=f?f:B.PB,n),C=(0,a.useRef)(null),S=(0,a.useRef)(null),I=(0,a.useRef)(null),T=(0,a.useRef)(u);(0,a.useLayoutEffect)(()=>{var e;let t=T.current;if(T.current=u,!b||!t||u)return;let n=document.activeElement,r=n instanceof HTMLElement&&(null==(e=I.current)?void 0:e.contains(n))===!0;(r||null===n||n===document.body)&&!(0,e1.Bl)()&&r&&n.blur()},[b,u]);let A=(0,a.useCallback)(e=>{x(Math.round(e/w))},[x,w]);return b?(0,r.jsx)(eo.Zg,{children:(0,r.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[(0,r.jsx)(e4,{}),u&&(0,r.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:m,"aria-hidden":"true"}),g&&(0,r.jsx)("aside",{ref:I,"data-testid":"sidebar-container",className:"\n fixed left-0 top-0 h-full w-72 max-w-[85vw] z-50 bg-sidebar pt-safe pb-safe\n ".concat(tP,"\n ").concat(u?"translate-x-0":"-translate-x-full","\n "),role:"complementary",children:(0,r.jsx)(eT,{})}),(0,r.jsx)("main",{className:"flex-1 min-h-0 overflow-hidden ".concat(v?"pb-nav-safe":""),role:"main","data-view-transition":"content",children:t}),v&&(0,r.jsx)(e5,{}),(0,r.jsx)(e3.xq,{}),(0,r.jsx)(te,{}),(0,r.jsx)(tt.n,{}),(0,r.jsx)(td,{}),(0,r.jsx)(tE,{})]})}):(0,r.jsx)(eo.Zg,{children:(0,r.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[(0,r.jsxs)("div",{className:"flex flex-1 min-h-0",children:[g&&(0,r.jsxs)("aside",{ref:C,"data-testid":"sidebar-container",className:"\n fixed left-0 top-0 h-full\n border-r border-border\n ".concat(tP,"\n ").concat(n?"translate-x-0":"-translate-x-full","\n "),style:{width:"".concat(k,"px"),zIndex:tL.M.SIDEBAR},role:"complementary","aria-hidden":!n,children:[(0,r.jsx)(eT,{}),(0,r.jsx)(tK,{currentWidth:k,minWidth:j,maxWidth:y,sidebarRef:C,mainRef:S,onWidthChange:A})]}),g&&!n&&(0,r.jsx)("aside",{"data-testid":"sidebar-rail-container",className:"\n fixed left-0 top-0 h-full\n border-r border-border\n ",style:{width:"".concat(B.BN,"px"),zIndex:tL.M.SIDEBAR},children:(0,r.jsx)(eJ,{})}),(0,r.jsxs)("main",{ref:S,className:"flex-1 min-w-0 h-full overflow-hidden flex flex-col transition-[padding] duration-300 ease-out",style:{paddingLeft:g?"".concat(n?k:B.BN,"px"):0},role:"main","data-view-transition":"content",children:[N&&(0,r.jsx)(e$.vP,{}),v&&(0,r.jsx)(eV,{}),(0,r.jsx)("div",{className:"flex-1 min-h-0",children:t})]})]}),(0,r.jsx)(e3.xq,{}),(0,r.jsx)(te,{}),(0,r.jsx)(tt.n,{}),(0,r.jsx)(td,{}),(0,r.jsx)(tE,{})]})})});function tK(e){let{currentWidth:t,minWidth:n,maxWidth:s,sidebarRef:a,mainRef:i,onWidthChange:l}=e;return(0,r.jsx)("div",{"data-testid":"sidebar-resize-handle","aria-hidden":"true",onMouseDown:e=>{e.preventDefault();let r=e.clientX,o=t;i.current&&(i.current.style.transition="none");let d=e=>{o=Math.max(n,Math.min(s,t+(e.clientX-r))),a.current&&(a.current.style.width="".concat(o,"px")),i.current&&(i.current.style.paddingLeft="".concat(o,"px"))},c=()=>{document.body.style.cursor="",document.body.style.userSelect="",i.current&&(i.current.style.transition=""),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",c),l(o)};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",d),document.addEventListener("mouseup",c)},className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-accent-500/40 transition-colors"})}let tR=["/login","/offline","/proxy"],tO=/^\/worktrees\/[^/]+\/(terminal|files)(\/|$)/;function tD(e){var t;let{children:n}=e,a=(0,s.usePathname)();return(t=null!=a?a:"",tR.some(e=>t===e||t.startsWith("".concat(e,"/")))||tO.test(t)||0)?(0,r.jsx)(r.Fragment,{children:n}):(0,r.jsx)(tB,{children:n})}}},e=>{e.O(0,[5373,2978,6809,4909,2770,2619,6606,7730,5927,8407,2407,344,6654,8606,4768,8165,602,5794,8441,1255,7358],()=>e(e.s=80903)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3135],{540:(e,t,s)=>{Promise.resolve().then(s.bind(s,24502))},9219:(e,t,s)=>{"use strict";s.d(t,{k:()=>i});var r=s(95155),a=s(12115),l=s(48407),n=s(87531);function i(e){let{onRefresh:t,enabled:s=!0,className:i,children:o}=e,{containerRef:c,pullDistance:d,isRefreshing:u,isPulling:p}=function(e){let{onRefresh:t,enabled:s=!0,threshold:r=64,maxPull:l=96,resistance:n=.5}=e,i=(0,a.useRef)(null),[o,c]=(0,a.useState)(0),[d,u]=(0,a.useState)(!1),[p,m]=(0,a.useState)(!1),h=(0,a.useRef)(null),x=(0,a.useRef)(0),f=(0,a.useRef)(!1);f.current=d;let g=(0,a.useCallback)(()=>{h.current=null,x.current=0,c(0),m(!1)},[]),b=(0,a.useCallback)(e=>{if(!s||f.current)return;let t=i.current;t&&!(t.scrollTop>0)&&(h.current=e.touches[0].clientY,x.current=0)},[s]),v=(0,a.useCallback)(e=>{if(null===h.current)return;let t=i.current;if(!t)return;if(t.scrollTop>0)return void g();let s=e.touches[0].clientY-h.current;if(s<=0){0!==x.current&&(x.current=0,c(0),m(!1));return}e.cancelable&&e.preventDefault();let r=Math.min(s*n,l);x.current=r,c(r),m(!0)},[n,l,g]),y=(0,a.useCallback)(async()=>{u(!0),m(!1),c(r);try{await Promise.resolve(t())}finally{u(!1),c(0)}},[t,r]),j=(0,a.useCallback)(()=>{if(null===h.current)return;let e=x.current>=r&&!f.current;h.current=null,x.current=0,e?y():(c(0),m(!1))},[r,y]);return(0,a.useEffect)(()=>{let e=i.current;if(e)return e.addEventListener("touchstart",b,{passive:!0}),e.addEventListener("touchmove",v,{passive:!1}),e.addEventListener("touchend",j,{passive:!0}),e.addEventListener("touchcancel",j,{passive:!0}),()=>{e.removeEventListener("touchstart",b),e.removeEventListener("touchmove",v),e.removeEventListener("touchend",j),e.removeEventListener("touchcancel",j)}},[b,v,j]),{containerRef:i,pullDistance:o,isRefreshing:d,isPulling:p}}({onRefresh:t,enabled:s,threshold:64}),m=u||d>0,h=u?1:Math.min(d/64,1);return(0,r.jsxs)("div",{ref:c,className:(0,n.cn)("relative overflow-auto",i),style:{overscrollBehaviorY:"contain"},"data-testid":"pull-to-refresh",children:[(0,r.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 z-10 flex justify-center",style:{transform:"translateY(".concat(m?Math.max(d-24,8):-32,"px)"),opacity:h,transition:p?"none":"transform 0.2s ease-out, opacity 0.2s ease-out"},"data-testid":"pull-to-refresh-indicator",role:"status","aria-hidden":!u,children:(0,r.jsx)(l.y$,{size:"sm",variant:"accent"})}),(0,r.jsx)("div",{style:{transform:m?"translateY(".concat(d,"px)"):void 0,transition:p?"none":"transform 0.2s ease-out"},children:o})]})}},18514:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(71847).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},24502:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>A});var r=s(95155),a=s(12115),l=s(18955),n=s(9219),i=s(38218),o=s(58734),c=s(48407),d=s(80344);class u{static getInstance(){return u.instance||(u.instance=new u),u.instance}normalize(e){let t=e.match(/^ssh:\/\/git@([^:\/]+)(:\d+)?\/(.+?)(\.git)?$/);if(t)return"https://".concat(t[1],"/").concat(t[3]).toLowerCase().replace(/\/$/,"");let s=e.match(/^git@([^:]+):(.+?)(\.git)?$/);return s?"https://".concat(s[1],"/").concat(s[2]).toLowerCase().replace(/\/$/,""):e.replace(/\.git\/?$/,"").replace(/\/$/,"").toLowerCase()}isSameRepository(e,t){return this.normalize(e)===this.normalize(t)}extractRepoName(e){let t=e.match(/^ssh:\/\/git@[^\/]+\/(.+?)(\.git)?$/);if(t){let e=t[1].split("/");return e[e.length-1]}let s=e.match(/:(.+?)(\.git)?$/);if(s&&e.startsWith("git@")){let e=s[1].split("/");return e[e.length-1]}let r=e.match(/\/([^\/]+?)(\.git)?$/);return r?r[1]:""}getUrlType(e){return e.startsWith("https://")?"https":e.startsWith("git@")||e.startsWith("ssh://")?"ssh":null}validate(e){if(!e||"string"!=typeof e||""===e.trim())return{valid:!1,error:"EMPTY_URL"};let t=e.trim();return t.startsWith("https://")?/^https:\/\/[^\/]+\/[^\/]+\/[^\/]+(\.git)?$/.test(t)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:t.startsWith("git@")?/^git@[^:]+:.+\/.+(\.git)?$/.test(t)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:t.startsWith("ssh://")?/^ssh:\/\/git@[^\/]+(:\d+)?\/[^\/]+\/.+(\.git)?$/.test(t)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:{valid:!1,error:"INVALID_URL_FORMAT"}}constructor(){}}var p=s(27937),m=s(59847);let h=(0,s(71847).A)("corner-left-up",[["path",{d:"M14 9 9 4 4 9",key:"1af5af"}],["path",{d:"M20 20h-7a4 4 0 0 1-4-4V4",key:"1blwi3"}]]);var x=s(39332);let f="w-full min-h-[44px] flex items-center gap-2 px-3 py-2 rounded-md text-left text-sm text-foreground hover:bg-muted transition-colors touch-manipulation";function g(e){var t,s;let{isOpen:n,onClose:i,onSelect:o,initialPath:u}=e,g=(0,l.c)("common"),[b,v]=(0,a.useState)(null),[y,j]=(0,a.useState)(!1),[N,k]=(0,a.useState)(null),w=(0,a.useCallback)(async e=>{j(!0),k(null);try{v(await d.gC.browse(e))}catch(e){k((0,d.hS)(e))}finally{j(!1)}},[]);(0,a.useEffect)(()=>{if(!n)return;let e=!1;return(async()=>{j(!0),k(null);try{let t=await d.gC.browse(u);if(e)return;let s=u?void 0:t.recentPaths[0];if(s)try{let t=await d.gC.browse(s);e||v(t);return}catch(t){if(e)return}v(t)}catch(t){e||k((0,d.hS)(t))}finally{e||j(!1)}})(),()=>{e=!0}},[n,u]);let C=(0,a.useCallback)(async()=>{let e=null==b?void 0:b.path;e&&(await d.gC.addRecentPath(e).catch(()=>void 0),o(e),i())},[null==b?void 0:b.path,o,i]),S=function(e,t){let s=[{label:"/",path:null}];if(!e)return s;let r=t.filter(t=>e===t||e.startsWith("".concat(t,"/"))).sort((e,t)=>t.length-e.length)[0];if(!r)return s.push({label:e,path:e}),s;s.push({label:r,path:r});let a=e.slice(r.length).split("/").filter(Boolean),l=r;for(let e of a)l="".concat(l,"/").concat(e),s.push({label:e,path:l});return s}(null!=(t=null==b?void 0:b.path)?t:null,null!=(s=null==b?void 0:b.roots)?s:[]),R=null!==b&&null===b.path;return(0,r.jsx)(c.Jh,{isOpen:n,onClose:i,title:g("repositories.pickerTitle"),size:"full",children:(0,r.jsxs)("div",{className:"flex flex-col h-[calc(100vh-12rem)] md:h-[26rem]",children:[(0,r.jsx)("nav",{"aria-label":g("repositories.pickerTitle"),className:"flex items-center flex-wrap gap-1 pb-2 border-b border-border text-xs",children:S.map((e,t)=>{var s;return(0,r.jsxs)(a.Fragment,{children:[t>0&&(0,r.jsx)(p.A,{className:"w-3 h-3 text-muted-foreground flex-shrink-0","aria-hidden":!0}),(0,r.jsx)("button",{type:"button",onClick:()=>{var t;w(null!=(t=e.path)?t:void 0)},disabled:t===S.length-1,className:"min-h-[32px] px-1.5 rounded font-mono text-muted-foreground hover:text-foreground hover:bg-muted disabled:text-foreground disabled:font-semibold disabled:hover:bg-transparent touch-manipulation",children:e.label})]},null!=(s=e.path)?s:"roots")})}),(0,r.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto py-2",children:[y&&(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground",children:[(0,r.jsx)(c.y$,{size:"sm"}),g("repositories.pickerLoading")]}),!y&&N&&(0,r.jsx)("p",{className:"px-3 py-2 text-sm text-danger-foreground",children:N}),!y&&!N&&b&&(0,r.jsxs)(r.Fragment,{children:[R&&b.recentPaths.length>0&&(0,r.jsxs)("div",{className:"mb-3",children:[(0,r.jsx)("p",{className:"px-3 pb-1 text-xs font-medium text-muted-foreground",children:g("repositories.pickerRecentLabel")}),b.recentPaths.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>void w(e),className:f,children:[(0,r.jsx)(m.A,{className:"w-4 h-4 text-muted-foreground flex-shrink-0","aria-hidden":!0}),(0,r.jsx)("span",{className:"font-mono truncate",children:e})]},e))]}),R&&(0,r.jsx)("p",{className:"px-3 pb-1 text-xs font-medium text-muted-foreground",children:g("repositories.pickerRootsLabel")}),b.parent&&(0,r.jsxs)("button",{type:"button",onClick:()=>{var e;w(null!=(e=b.parent)?e:void 0)},className:f,children:[(0,r.jsx)(h,{className:"w-4 h-4 text-muted-foreground flex-shrink-0","aria-hidden":!0}),g("repositories.pickerUp")]}),b.entries.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>void w(e.path),className:f,children:[(0,r.jsx)(m.A,{className:"w-4 h-4 text-muted-foreground flex-shrink-0","aria-hidden":!0}),(0,r.jsx)("span",{className:"font-mono truncate flex-1",children:e.name}),e.isGitRepo&&(0,r.jsxs)(c.Ex,{variant:"info",className:"flex-shrink-0",children:[(0,r.jsx)(x.A,{className:"w-3 h-3 mr-1","aria-hidden":!0}),null===e.worktreeCount?"git":g("repositories.pickerWorktreeCount",{count:e.worktreeCount})]})]},e.path)),0===b.entries.length&&(0,r.jsx)("p",{className:"px-3 py-2 text-sm text-muted-foreground",children:g("repositories.pickerEmpty")}),b.truncated&&(0,r.jsx)("p",{className:"px-3 py-2 text-xs text-warning-foreground",children:g("repositories.pickerTruncated",{limit:b.entryLimit})})]})]}),(0,r.jsxs)("div",{className:"flex gap-2 pt-2 border-t border-border",children:[(0,r.jsx)(c.$n,{type:"button",variant:"primary",onClick:()=>void C(),disabled:!(null==b?void 0:b.path),className:"min-h-[44px]",children:g("repositories.pickerSelectHere")}),(0,r.jsx)(c.$n,{type:"button",variant:"ghost",onClick:i,className:"min-h-[44px]",children:g("cancel")})]})]})})}let b={ok:"text-success-foreground",warn:"text-warning-foreground",error:"text-danger-foreground"};function v(e){var t,s,n,i,p,m;let{onRepositoryAdded:h}=e,x=(0,l.c)("common"),[f,v]=(0,a.useState)(!1),[y,j]=(0,a.useState)("local"),[N,k]=(0,a.useState)(""),[w,C]=(0,a.useState)(""),[S,R]=(0,a.useState)(!1),[A,E]=(0,a.useState)(!1),[L,T]=(0,a.useState)(!1),[$,D]=(0,a.useState)(!1),[P,M]=(0,a.useState)(null),[z,O]=(0,a.useState)(null),[U,_]=(0,a.useState)(null),[I,F]=(0,a.useState)(!1),[V,W]=(0,a.useState)([]),[H,q]=(0,a.useState)(null),[B,Y]=(0,a.useState)(null),[Z,G]=(0,a.useState)(null),K=u.getInstance(),X=(0,a.useCallback)(async e=>{try{let s=await d.Rx.getCloneStatus(e);if("completed"===s.status)_(x("repositories.cloneSuccess")),D(!1),M(null),C(""),R(!1),v(!1),h&&h();else if("failed"===s.status){var t;O((null==(t=s.error)?void 0:t.message)||x("repositories.cloneFailed")),D(!1),M(null)}else("running"===s.status||"pending"===s.status)&&setTimeout(()=>X(e),2e3)}catch(e){O((0,d.hS)(e)),D(!1),M(null)}},[h,x]);(0,a.useEffect)(()=>{P&&$&&X(P)},[P,$]),(0,a.useEffect)(()=>{if(!f)return;let e=!1;return d.gC.browse().then(t=>{e||W(t.roots)}).catch(()=>void 0),()=>{e=!0}},[f]),(0,a.useEffect)(()=>{let e=N.trim();if(!e){q(null),Y(null);return}let t=!1,s=setTimeout(()=>{d.Rx.validatePath(e).then(s=>{t||(q(s),Y(e))}).catch(()=>{t||(q(null),Y(null))})},400);return()=>{t=!0,clearTimeout(s)}},[N]);let J=(0,a.useCallback)(async e=>{var t,s;let r;if(B===e&&H)return null!=(t=H.duplicateScanRoots)?t:[];try{let t=await Promise.race([d.Rx.validatePath(e).then(t=>(q(t),Y(e),t)),new Promise(e=>{r=setTimeout(()=>e(null),400)})]);return null!=(s=null==t?void 0:t.duplicateScanRoots)?s:[]}catch(e){return[]}finally{void 0!==r&&clearTimeout(r)}},[H,B]),Q=(0,a.useCallback)(async e=>{try{let t=await d.Rx.scan(e);_(t.message),k(""),v(!1),h&&h()}catch(e){O((0,d.hS)(e))}},[h]),ee=async e=>{e.preventDefault();let t=N.trim();if(!t)return void O(x("repositories.pathRequired"));O(null),_(null),E(!0);try{let e=await J(t);if(e.length>0)return void G({path:t,duplicates:e});await Q(t)}finally{E(!1)}},et=(0,a.useCallback)(()=>{G(null),Z&&(E(!0),Q(Z.path).finally(()=>E(!1)))},[Z,Q]),es=async e=>{if(e.preventDefault(),!w.trim())return void O(x("repositories.urlRequired"));let t=K.validate(w.trim());if(!t.valid)return void("EMPTY_URL"===t.error?O(x("repositories.urlRequired")):O(x("repositories.urlInvalid")));O(null),_(null),D(!0);try{let e=await d.Rx.clone(w.trim(),{fork:S});M(e.jobId)}catch(e){O((0,d.hS)(e)),D(!1)}},er=async()=>{O(null),_(null),T(!0);try{let e=await d.Rx.sync();_(e.message),h&&h()}catch(e){O((0,d.hS)(e))}finally{T(!1)}},ea=()=>{v(!1),k(""),C(""),R(!1),O(null),j("local"),G(null)},el=H?(i=x,(p=H).valid?p.isGitRepo?{message:i("repositories.validationGitRepo",{count:null!=(m=p.worktreeCount)?m:1}),intent:"ok"}:{message:i("repositories.validationNotGitRepo"),intent:"warn"}:"not-found"===p.reason?{message:i("repositories.validationNotFound"),intent:"error"}:{message:i("repositories.validationOutsideRoots",{roots:p.allowedRootsLabel}),intent:"error"}):null,en=null!=(t=null==H?void 0:H.duplicateScanRoots)?t:[];return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[!f&&(0,r.jsxs)(c.$n,{"data-testid":"add-repository-button",variant:"primary",size:"sm",onClick:()=>v(!0),children:["+ ",x("repositories.add")]}),(0,r.jsx)(c.$n,{"data-testid":"sync-all-button",variant:"secondary",size:"sm",onClick:er,disabled:L,children:L?x("repositories.syncing"):x("repositories.syncAll")})]}),f&&(0,r.jsx)(c.Zp,{padding:"lg",children:(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)("div",{children:(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2 text-foreground",children:x("repositories.addNewTitle")})}),(0,r.jsxs)(c.tU,{value:y,onValueChange:e=>j(e),children:[(0,r.jsxs)(c.j7,{className:"w-full",children:[(0,r.jsx)(c.Xi,{value:"local",children:x("repositories.localPathTab")}),(0,r.jsx)(c.Xi,{value:"url",children:x("repositories.cloneUrlTab")})]}),(0,r.jsx)(c.av,{value:"local",children:(0,r.jsxs)("form",{onSubmit:ee,className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:x("repositories.localPathDescription")}),(0,r.jsx)("label",{htmlFor:"repositoryPath",className:"block text-sm font-medium text-foreground mb-2",children:x("repositories.localPathLabel")}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.pd,{id:"repositoryPath","data-testid":"repository-path-input",type:"text",value:N,onChange:e=>k(e.target.value),placeholder:"/absolute/path/to/repository",className:"font-mono flex-1",disabled:A}),(0,r.jsxs)(c.$n,{type:"button",variant:"secondary",onClick:()=>F(!0),disabled:A,className:"min-h-[44px] flex-shrink-0",children:[(0,r.jsx)(o.A,{className:"w-4 h-4 mr-1","aria-hidden":!0}),x("repositories.browse")]})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:x("repositories.localPathExample",{example:V[0]?"".concat(V[0],"/my-repo"):"/Users/username/projects/my-repo"})}),V.length>0&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1 font-mono break-all",children:x("repositories.localPathAllowedRoots",{roots:V.join(", ")})}),el&&(0,r.jsx)("p",{className:"text-xs mt-1 ".concat(b[el.intent]),children:el.message}),en.length>0&&(0,r.jsx)("p",{className:"text-xs mt-1 text-warning-foreground break-all","data-testid":"duplicate-scan-root-warning",children:x("repositories.duplicateScanRootWarning",{paths:en.join(", ")})})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{"data-testid":"repository-scan-submit",type:"submit",variant:"primary",disabled:A||!N.trim(),children:A?x("repositories.scanning"):x("repositories.scan")}),(0,r.jsx)(c.$n,{type:"button",variant:"ghost",onClick:ea,disabled:A,children:x("cancel")})]})]})}),(0,r.jsx)(c.av,{value:"url",children:(0,r.jsxs)("form",{onSubmit:es,className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:x("repositories.cloneUrlDescription")}),(0,r.jsx)("label",{htmlFor:"cloneUrl",className:"block text-sm font-medium text-foreground mb-2",children:x("repositories.cloneUrlLabel")}),(0,r.jsx)(c.pd,{id:"cloneUrl",type:"text",value:w,onChange:e=>C(e.target.value),placeholder:"https://github.com/user/repo.git",className:"font-mono",disabled:$}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:x("repositories.cloneUrlHelp")})]}),(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)("input",{id:"forkBeforeClone",type:"checkbox",checked:S,onChange:e=>R(e.target.checked),disabled:$,className:"mt-1"}),(0,r.jsxs)("label",{htmlFor:"forkBeforeClone",className:"text-sm text-foreground",children:[x("repositories.forkOptionLabel"),(0,r.jsx)("span",{className:"block text-xs text-muted-foreground",children:x("repositories.forkOptionHelp")})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{type:"submit",variant:"primary",disabled:$||!w.trim(),children:$?x("repositories.cloning"):S?x("repositories.forkAndClone"):x("repositories.clone")}),(0,r.jsx)(c.$n,{type:"button",variant:"ghost",onClick:ea,disabled:$,children:x("cancel")})]})]})})]})]})}),U&&(0,r.jsx)("div",{className:"p-4 bg-success-subtle border border-success-border rounded-lg",children:(0,r.jsx)("p",{className:"text-sm text-success-foreground",children:U})}),z&&(0,r.jsx)("div",{className:"p-4 bg-danger-subtle border border-danger-border rounded-lg",children:(0,r.jsx)("p",{className:"text-sm text-danger-foreground",children:z})}),(0,r.jsx)(g,{isOpen:I,onClose:()=>F(!1),onSelect:e=>{k(e),O(null)}}),(0,r.jsx)(c.TM,{isOpen:null!==Z,title:x("repositories.duplicateConfirmTitle"),description:x("repositories.duplicateConfirmBody",{path:null!=(s=null==Z?void 0:Z.path)?s:"",paths:(null!=(n=null==Z?void 0:Z.duplicates)?n:[]).join("\n")}),confirmLabel:x("repositories.duplicateConfirmAction"),variant:"default",onConfirm:et,onCancel:()=>G(null)})]})}var y=s(18514),j=s(87531);let N={id:null,value:"",error:null,saving:!1};function k(){return(0,r.jsx)("thead",{className:"bg-muted border-b border-border",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Name"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Display name"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Visibility"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Path"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Worktrees"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Scan"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Actions"})]})})}function w(e){let{repo:t,pending:s,onToggle:a}=e,l=t.visible;return(0,r.jsxs)("button",{type:"button",role:"switch","aria-checked":l,"aria-label":l?"Hide ".concat(t.name," from sidebar"):"Show ".concat(t.name," in sidebar"),"data-testid":"visibility-toggle-".concat(t.id),onClick:()=>a(t),disabled:s,className:(0,j.cn)("inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs font-medium","text-muted-foreground transition-colors","hover:bg-muted hover:text-foreground","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:opacity-60 disabled:cursor-not-allowed"),children:[(0,r.jsx)(c.md,{status:l?"ready":"idle",size:"sm",label:l?"Visible":"Hidden","aria-hidden":"true"}),l?"Visible":"Hidden"]})}function C(e){let{repo:t,pending:s,onToggle:a,registerRef:l}=e,n=t.enabled;return(0,r.jsxs)("button",{ref:e=>l(t.id,e),type:"button",role:"switch","aria-checked":n,"aria-label":n?"Exclude ".concat(t.name," from repository scans"):"Include ".concat(t.name," in repository scans"),"data-testid":"scan-toggle-".concat(t.id),onClick:()=>a(t),disabled:s,className:(0,j.cn)("inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs font-medium","text-muted-foreground transition-colors","hover:bg-muted hover:text-foreground","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:opacity-60 disabled:cursor-not-allowed"),children:[(0,r.jsx)(c.md,{status:n?"ready":"idle",size:"sm",label:n?"Enabled":"Disabled","aria-hidden":"true"}),n?"Enabled":"Disabled"]})}function S(e){var t;let{repo:s,onNavigateToScanToggle:a}=e,n=(0,l.c)("common"),i=null!=(t=s.duplicateOf)?t:[];if(0===i.length)return null;let o=n("repositories.duplicateRowDetail",{paths:i.join(", ")});return(0,r.jsx)("button",{type:"button","data-testid":"duplicate-scan-root-".concat(s.id),onClick:()=>a(s.id),title:o,"aria-label":o,className:(0,j.cn)("rounded-full","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring"),children:(0,r.jsx)(c.Ex,{variant:"warning",children:n("repositories.duplicateRowBadge")})})}let R=(0,a.memo)(function(e){var t,s;let{refreshKey:n,onChanged:i}=e,o=(0,l.c)("common"),[u,p]=(0,a.useState)([]),[m,h]=(0,a.useState)(!0),[x,f]=(0,a.useState)(null),[g,b]=(0,a.useState)(N),[v,R]=(0,a.useState)(null),[A,E]=(0,a.useState)(new Set),[L,T]=(0,a.useState)(new Set),[$,D]=(0,a.useState)("all"),[P,M]=(0,a.useState)(null),z=(0,a.useRef)(new Map),O=(0,a.useCallback)((e,t)=>{t?z.current.set(e,t):z.current.delete(e)},[]),U=(0,a.useCallback)(e=>{var t;null==(t=z.current.get(e))||t.focus()},[]),_=(0,a.useCallback)(async()=>{h(!0),f(null);try{let e=await d.Rx.list();p(e.repositories)}catch(e){f((0,d.hS)(e))}finally{h(!1)}},[]);(0,a.useEffect)(()=>{_()},[_,n]);let I=(0,a.useCallback)(e=>{var t;b({id:e.id,value:null!=(t=e.displayName)?t:"",error:null,saving:!1}),R(null)},[]),F=(0,a.useCallback)(()=>{b(N)},[]),V=(0,a.useCallback)(e=>{b(t=>{if(null===t.id)return t;let s=e.length>100?"Display name must be ".concat(100," characters or less"):null;return{...t,value:e,error:s}})},[]),W=(0,a.useCallback)(async e=>{let t=g.value.trim();if(t.length>100)return void b(e=>({...e,error:"Display name must be ".concat(100," characters or less")}));b(e=>({...e,saving:!0,error:null}));try{let s=0===t.length?null:t,r=await d.Rx.updateDisplayName(e.id,s);p(t=>t.map(t=>t.id===e.id?{...t,...r.repository}:t)),b(N),R({type:"success",message:"Display name updated"}),i&&i()}catch(t){let e=(0,d.hS)(t);b(t=>({...t,saving:!1,error:e})),R({type:"error",message:e})}},[g.value,i]),H=(0,a.useCallback)((e,t)=>{"Enter"!==e.key||e.nativeEvent.isComposing?"Escape"===e.key&&(e.preventDefault(),F()):(e.preventDefault(),W(t))},[F,W]),q=(0,a.useCallback)(async e=>{if(A.has(e.id))return;let t=!e.visible;E(t=>{let s=new Set(t);return s.add(e.id),s}),p(s=>s.map(s=>s.id===e.id?{...s,visible:t}:s)),R(null);try{let s=await d.Rx.updateVisibility(e.id,t);p(t=>t.map(t=>t.id===e.id?{...t,...s.repository}:t)),i&&i()}catch(t){p(t=>t.map(t=>t.id===e.id?{...e}:t)),R({type:"error",message:(0,d.hS)(t)})}finally{E(t=>{let s=new Set(t);return s.delete(e.id),s})}},[i,A]),B=(0,a.useCallback)((e,t)=>{T(s=>{let r=new Set(s);return t?r.add(e):r.delete(e),r})},[]),Y=(0,a.useCallback)(async e=>{B(e.id,!0),R(null);try{let t=await d.Rx.updateEnabled(e.id,!1);p(s=>s.map(s=>{var r,a;if(s.id===e.id)return{...s,...t.repository,duplicateOf:[]};let l=(null!=(r=s.duplicateOf)?r:[]).filter(t=>t!==e.path);return l.length===(null!=(a=s.duplicateOf)?a:[]).length?s:{...s,duplicateOf:l}})),R({type:"success",message:o("repositories.disableSuccess",{name:e.name})}),i&&i()}catch(e){R({type:"error",message:(0,d.hS)(e)})}finally{B(e.id,!1)}},[i,B,o]),Z=(0,a.useCallback)(async e=>{B(e.id,!0),R(null);try{var t;let s=await d.Rx.restore(e.path);await _(),R({type:s.warning?"error":"success",message:null!=(t=s.warning)?t:o("repositories.enableSuccess",{name:e.name,count:s.worktreeCount})}),i&&i()}catch(e){R({type:"error",message:(0,d.hS)(e)})}finally{B(e.id,!1)}},[_,i,B,o]),G=(0,a.useCallback)(e=>{if(!L.has(e.id)){if(e.enabled)return void M(e);Z(e)}},[Z,L]),K=(0,a.useCallback)(()=>{M(null),P&&Y(P)},[Y,P]),X=(0,a.useMemo)(()=>u.filter(e=>!e.enabled).length,[u]),J=(0,a.useMemo)(()=>"disabled"===$?u.filter(e=>!e.enabled):u,[$,u]);return m&&0===u.length?(0,r.jsx)(c.Zp,{padding:"none",children:(0,r.jsx)("div",{className:"overflow-x-auto","data-testid":"repository-list-loading",role:"status","aria-label":o("repositories.loading"),children:(0,r.jsxs)("table",{className:"min-w-full text-sm",children:[(0,r.jsx)(k,{}),(0,r.jsx)("tbody",{children:[0,1,2].map(e=>(0,r.jsxs)("tr",{className:"border-b border-border",children:[(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-24"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-20"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-16"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-48"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-10"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-14"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-20"})})]},e))})]})})}):x?(0,r.jsx)(c.Zp,{padding:"lg",children:(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("p",{className:"text-sm text-danger-foreground",children:["Failed to load repositories: ",x]}),(0,r.jsx)(c.$n,{variant:"secondary",size:"sm",onClick:()=>void _(),children:"Retry"})]})}):(0,r.jsxs)("div",{className:"space-y-3",children:[v&&(0,r.jsx)("div",{role:"status",className:"p-3 rounded-lg text-sm ".concat("success"===v.type?"bg-success-subtle border border-success-border text-success-foreground":"bg-danger-subtle border border-danger-border text-danger-foreground"),children:v.message}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)(c.$n,{variant:"all"===$?"secondary":"ghost",size:"sm","aria-pressed":"all"===$,"data-testid":"repository-filter-all",onClick:()=>D("all"),children:o("repositories.filterAll",{count:u.length})}),(0,r.jsx)(c.$n,{variant:"disabled"===$?"secondary":"ghost",size:"sm","aria-pressed":"disabled"===$,"data-testid":"repository-filter-disabled",onClick:()=>D("disabled"),children:o("repositories.filterDisabled",{count:X})})]}),(0,r.jsx)(c.Zp,{padding:"none",children:(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"min-w-full text-sm",children:[(0,r.jsx)(k,{}),(0,r.jsxs)("tbody",{children:[0===J.length&&(0,r.jsx)("tr",{children:(0,r.jsx)("td",{colSpan:7,className:"px-4 py-6 text-center text-muted-foreground",children:"disabled"===$?o("repositories.emptyDisabled"):o("repositories.empty")})}),J.map(e=>{let t=g.id===e.id;return(0,r.jsxs)("tr",{className:(0,j.cn)("border-b border-border",!e.enabled&&"bg-muted/40"),"data-testid":"repository-row-".concat(e.id),children:[(0,r.jsx)("td",{className:"px-4 py-3 align-top text-foreground",children:(0,r.jsxs)("span",{className:"flex flex-wrap items-center gap-1.5",children:[e.name,(0,r.jsx)(S,{repo:e,onNavigateToScanToggle:U})]})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:t?(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)(c.pd,{"aria-label":"Edit display name for ".concat(e.name),type:"text",value:g.value,disabled:g.saving,maxLength:101,onChange:e=>V(e.target.value),onKeyDown:t=>H(t,e)}),g.error&&(0,r.jsx)("p",{className:"text-xs text-danger-foreground",children:g.error})]}):e.displayName?(0,r.jsx)("span",{className:"text-foreground",children:e.displayName}):(0,r.jsx)("span",{className:"text-muted-foreground","aria-hidden":"true",children:"—"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(w,{repo:e,pending:A.has(e.id),onToggle:q})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)("span",{className:"block max-w-[240px] truncate font-mono text-xs text-muted-foreground",title:e.path,children:e.path})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top text-foreground",children:e.worktreeCount}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(C,{repo:e,pending:L.has(e.id),onToggle:G,registerRef:O})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:t?(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{variant:"primary",size:"sm",onClick:()=>void W(e),disabled:g.saving||null!==g.error,children:g.saving?"Saving...":"Save"}),(0,r.jsx)(c.$n,{variant:"ghost",size:"sm",onClick:F,disabled:g.saving,children:"Cancel"})]}):(0,r.jsx)(c.$n,{variant:"ghost",size:"sm",className:"px-2",onClick:()=>I(e),"aria-label":"Edit display name for ".concat(e.name),children:(0,r.jsx)(y.A,{className:"h-4 w-4","aria-hidden":"true"})})})]},e.id)})]})]})})}),(0,r.jsx)(c.TM,{isOpen:null!==P,title:o("repositories.disableConfirmTitle"),description:o("repositories.disableConfirmBody",{name:null!=(t=null==P?void 0:P.name)?t:"",count:null!=(s=null==P?void 0:P.worktreeCount)?s:0}),confirmLabel:o("repositories.disableConfirmAction"),variant:"default",onConfirm:K,onCancel:()=>M(null)})]})});function A(){let e=(0,l.c)("common"),t=(0,i.a)(),[s,o]=(0,a.useState)(0),c=(0,a.useCallback)(()=>{o(e=>e+1)},[]),d=(0,a.useCallback)(async()=>{o(e=>e+1),await new Promise(e=>setTimeout(e,500))},[]);return(0,r.jsxs)(n.k,{onRefresh:d,enabled:t,className:"container-custom py-8 h-full",children:[(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("nav.repositories")}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:e("repositories.pageDescription")})]}),(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(v,{onRepositoryAdded:c}),(0,r.jsx)(R,{refreshKey:s,onChanged:c})]})]})}},27937:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(71847).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},38218:(e,t,s)=>{"use strict";s.d(t,{D:()=>l,a:()=>n});var r=s(12115);let a=r.useLayoutEffect,l=768;function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{breakpoint:t=l}=e,[s,n]=(0,r.useState)(!1);return a(()=>{let e=window.matchMedia("(max-width: ".concat(t-1,"px)"));n(e.matches);let s=e=>{n(e.matches)};return e.addEventListener("change",s),()=>{e.removeEventListener("change",s)}},[t]),s}},39332:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(71847).A)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]])},58734:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(71847).A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},59847:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(71847).A)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])}},e=>{e.O(0,[6809,4909,2770,8407,2407,344,8441,1255,7358],()=>e(e.s=540)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8975],{3199:(e,t,a)=>{"use strict";a.d(t,{Vt:()=>s,aN:()=>l,zK:()=>p,I_:()=>c,JY:()=>d,sd:()=>u,kj:()=>m,z7:()=>o});let r=/^[a-zA-Z0-9][a-zA-Z0-9\-._/:]*$/,n=/^[a-zA-Z0-9][a-zA-Z0-9\-._]*$/,s=new Set(["copilot","opencode","opencode-v2"]),l=new Set(["opencode","opencode-v2"]),i=new Set(["opencode-v2"]);function o(e,t,a){if(i.has(e)&&!(!(null==a?void 0:a.trim())||(null==t?void 0:t.trim())))return"".concat(e,' option "--variant" needs "--model" (sent as -m <provider/model>#<variant>)')}function c(e){let t=e.trim();if(!t)return{cliToolId:"claude",model:void 0};let{tokens:a,error:r}=function(e){let t=[],a="",r=!1,n=null;for(let s of e){if(n){s===n?n=null:a+=s;continue}if('"'===s||"'"===s){n=s,r=!0;continue}if(/\s/.test(s)){r&&(t.push(a),a="",r=!1);continue}a+=s,r=!0}return n?{tokens:[],error:"CLI Tool column has an unterminated quote"}:(r&&t.push(a),{tokens:t})}(t);if(r)return{cliToolId:t.split(/\s+/)[0],error:r};let n=a[0];return 1===a.length?{cliToolId:n,model:void 0}:s.has(n)?l.has(n)?function(e,t){let a={cliToolId:e},r=new Set,n=(e,a)=>{let r=t[a+1];return void 0===r||r.startsWith("-")?null:r};for(let s=0;s<t.length;s++){let l=t[s];if(r.has(l))return{cliToolId:e,error:"".concat(e,' option "').concat(l,'" is repeated')};switch(l){case"--model":case"-m":{let t=n(l,s);if(null===t)return{cliToolId:e,error:"".concat(e,' option "').concat(l,'" needs a value')};r.add("--model"),r.add("-m"),a.model=t,s++;break}case"--agent":{let t=n(l,s);if(null===t)return{cliToolId:e,error:"".concat(e,' option "').concat(l,'" needs a value')};r.add(l),a.agent=t,s++;break}case"--variant":{let t=n(l,s);if(null===t)return{cliToolId:e,error:"".concat(e,' option "').concat(l,'" needs a value')};r.add(l),a.variant=t,s++;break}case"--title":{let t=n(l,s);if(null===t)return{cliToolId:e,error:"".concat(e,' option "').concat(l,'" needs a value')};r.add(l),a.title=t,s++;break}case"--continue":case"-c":r.add("--continue"),r.add("-c"),a.continueSession=!0;break;default:{let t="opencode-v2"===e?"opencode-v2 [--model <provider/model> [--variant <name>]] [--agent <name>] [--continue] [--title <text>]":"opencode [--model <provider/model>] [--agent <name>] [--variant <name>] [--continue] [--title <text>]";return{cliToolId:e,error:"".concat(e," only supports: ").concat(t)}}}}let s=o(e,a.model,a.variant);return s?{cliToolId:e,error:s}:a}(n,a.slice(1)):3===a.length&&"--model"===a[1]?{cliToolId:n,model:a[2]}:{cliToolId:n,error:"".concat(n," only supports: ").concat(n," --model <modelName>")}:{cliToolId:n,error:'CLI Tool "'.concat(n,'" does not support additional options')}}function d(e){return/[\x00-\x1f\x7f]/.test(e)?{valid:!1,reason:"Model name contains control characters"}:""===e.trim()?{valid:!1,reason:"Model name must not be empty"}:r.test(e)?e.length>128?{valid:!1,reason:"Model name exceeds ".concat(128," characters")}:{valid:!0}:{valid:!1,reason:"Model name contains invalid characters"}}function u(e,t){return/[\x00-\x1f\x7f]/.test(e)?{valid:!1,reason:"opencode ".concat(t," contains control characters")}:""===e.trim()?{valid:!1,reason:"opencode ".concat(t," must not be empty")}:n.test(e)?e.length>64?{valid:!1,reason:"opencode ".concat(t," exceeds ").concat(64," characters")}:{valid:!0}:{valid:!1,reason:"opencode ".concat(t," contains invalid characters")}}function m(e){return/[\x00-\x1f\x7f]/.test(e)?{valid:!1,reason:"opencode title contains control characters"}:""===e.trim()?{valid:!1,reason:"opencode title must not be empty"}:e.startsWith("-")?{valid:!1,reason:'opencode title must not start with "-"'}:e.includes("|")?{valid:!1,reason:'opencode title must not contain "|"'}:e.length>200?{valid:!1,reason:"opencode title exceeds ".concat(200," characters")}:{valid:!0}}function p(e){let t=[],a=c(e);if(a.error&&t.push(a.error),a.model){let e=d(a.model);e.valid||t.push(e.reason)}if(a.agent){let e=u(a.agent,"agent");e.valid||t.push(e.reason)}if(a.variant){let e=u(a.variant,"variant");e.valid||t.push(e.reason)}if(a.title){let e=m(a.title);e.valid||t.push(e.reason)}return{result:a,errors:t}}},4138:(e,t,a)=>{"use strict";a.d(t,{q:()=>s});var r=a(12115),n=a(9900);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.pX,[t,a]=(0,r.useState)(!1),s=(0,r.useRef)(null);return(0,r.useEffect)(()=>()=>{null!==s.current&&(clearTimeout(s.current),s.current=null)},[]),{copied:t,markCopied:(0,r.useCallback)(()=>{a(!0),null!==s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{s.current=null,a(!1)},e)},[e]),reset:(0,r.useCallback)(()=>{null!==s.current&&(clearTimeout(s.current),s.current=null),a(!1)},[])}}},17442:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>E});var r=a(95155),n=a(12115),s=a(18955),l=a(48407),i=a(52619),o=a.n(i),c=a(20063),d=a(87531),u=a(44308),m=a(55449),p=a(38606),f=a(76471),v=a(54014),x=a(46892);let h={in_review:"status.inReview",approval:"status.approval",stalled:"status.stalled"},g=u.DR,b={in_review:e=>"in_review"===e.status,approval:e=>!0===e.isWaitingForResponse,stalled:e=>!0===e.isStalled};function y(e){let{status:t,label:a,unclassified:n}=e,l=(0,s.c)("common"),i=x.PL[t],o="w-2.5 h-2.5 rounded-full flex-shrink-0";if((0,f.Mq)(t,n))return(0,r.jsx)("span",{className:"".concat(o," ").concat(f.Jd),title:"".concat(a,": ").concat(l(f.rH)),"data-unclassified":"true"});let c="".concat(a,": ").concat(l(i.labelKey));return"spinner"===i.type?(0,r.jsx)("span",{className:"".concat(o," border-2 border-t-transparent animate-spin ").concat(i.className),title:c}):(0,r.jsx)("span",{className:"".concat(o," ").concat(i.className),title:c})}function j(){var e;let t=(0,s.c)("review"),[a,i]=(0,n.useState)([]),[f,x]=(0,n.useState)(!0),j=(0,c.useSearchParams)(),[w,N]=(0,n.useState)(()=>{var e;return null!=(e=(0,u._d)(null==j?void 0:j.get(u.z7)))?e:u.SD}),S=(0,n.useRef)(null),k=null!=(e=null==j?void 0:j.get(u.z7))?e:null;(0,n.useEffect)(()=>{let e=(0,u._d)(k);e&&N(e)},[k]);let C=(0,n.useCallback)(async()=>{try{let t=await fetch("/api/worktrees?include=review");if(t.ok){var e;let a=await t.json();(0,m.IK)(a.defaultSelectedAgents),i(null!=(e=a.worktrees)?e:[])}}catch(e){}finally{x(!1)}},[]);(0,n.useEffect)(()=>(C(),S.current=setInterval(C,u.Iu),()=>{S.current&&clearInterval(S.current)}),[C]);let z=(0,n.useMemo)(()=>a.filter(b[w]),[a,w]),T=(0,n.useMemo)(()=>({in_review:a.filter(b.in_review).length,approval:a.filter(b.approval).length,stalled:a.filter(b.stalled).length}),[a]),A=(0,n.useMemo)(()=>{switch(w){case"in_review":return t("empty.inReview");case"approval":return t("empty.approval");case"stalled":return t("empty.stalled")}},[w,t]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-6 inline-flex items-center gap-1 rounded-lg bg-muted p-1",role:"group","aria-label":t("filters.ariaLabel"),"data-testid":"review-filters",children:g.map(e=>{let a=w===e;return(0,r.jsxs)("button",{type:"button","aria-pressed":a,onClick:()=>N(e),"data-testid":"review-filter-".concat(e),className:(0,d.cn)("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",a?"bg-accent-500/15 text-accent-700 dark:text-accent-300":"text-muted-foreground hover:text-foreground"),children:[t(h[e]),(0,r.jsx)("span",{className:(0,d.cn)("text-xs font-semibold tabular-nums",a?"text-accent-700 dark:text-accent-300":"text-muted-foreground"),children:T[e]})]},e)})}),f&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"review-loading",role:"status","aria-label":t("filters.loading"),children:[0,1,2].map(e=>(0,r.jsx)(l.Zp,{padding:"md",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,r.jsx)(l.EA,{className:"h-4 w-40 max-w-full"}),(0,r.jsx)(l.EA,{className:"h-3 w-24 max-w-full"})]}),(0,r.jsx)(l.EA,{className:"ml-4 h-5 w-16 flex-shrink-0"})]})},e))}),!f&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"review-list",children:0===z.length?(0,r.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"review-empty",children:A}):z.map(e=>{var a;let n=null!=(a=e.selectedAgents)?a:(0,m.sA)();return(0,r.jsx)(o(),{href:"/worktrees/".concat(e.id),className:"block","data-testid":"review-item-".concat(e.id),children:(0,r.jsxs)(l.Zp,{padding:"md",className:"transition-colors ".concat(function(e){switch(e){case"in_review":return"border-info-border hover:border-info-border";case"approval":return"border-warning-border hover:border-warning-border";case"stalled":return"border-danger-border hover:border-danger-border"}}(w)),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:e.name}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:e.repositoryName})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-4 flex-shrink-0",children:[(0,r.jsx)("span",{className:"px-2 py-0.5 text-xs font-medium rounded ".concat(function(e){switch(e){case"in_review":return"bg-info-subtle text-info-foreground";case"approval":return"bg-warning-subtle text-warning-foreground";case"stalled":return"bg-danger-subtle text-danger-foreground"}}(w)),children:t(h[w])}),n.map(t=>{var a;let n=null==(a=e.sessionStatusByCli)?void 0:a[t],s=(0,p.kA)(n);return(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(y,{status:s,label:(0,v.oo)(t),unclassified:(0,p.px)(n)}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,v.oo)(t)})]},t)})]})]}),e.description&&(0,r.jsx)("div",{className:"mt-2",children:(0,r.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 whitespace-pre-wrap",children:e.description})})]})},e.id)})})]})}function w(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(r)}function N(e){let{value:t,onChange:a}=e,n=(0,s.c)("review"),i=w(new Date),o=t===i;return(0,r.jsxs)("div",{className:"flex items-center gap-2","data-testid":"report-date-picker",children:[(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{let e=new Date(t+"T00:00:00");e.setDate(e.getDate()-1),a(w(e))},"data-testid":"date-prev","aria-label":n("datePicker.previousDay"),children:"<"}),(0,r.jsx)(l.pd,{type:"date",inputSize:"sm",value:t,max:i,onChange:e=>a(e.target.value),className:"w-auto","data-testid":"date-input"}),(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{if(o)return;let e=new Date(t+"T00:00:00");e.setDate(e.getDate()+1);let r=w(e);r>i||a(r)},disabled:o,"data-testid":"date-next","aria-label":n("datePicker.nextDay"),children:">"})]})}var S=a(36402),k=a(3199),C=a(4138),z=a(60322);let T=[{value:"none",labelKey:"report.modes.none"},{value:"template",labelKey:"report.modes.template"},{value:"custom",labelKey:"report.modes.custom"}];function A(){let e=(0,s.c)("review"),t=(0,S.SC)(),[a,i]=(0,n.useState)(function(){let e=new Date,t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(r)}()),[o,c]=(0,n.useState)("claude"),[d,m]=(0,n.useState)(""),[p,f]=(0,n.useState)(null),[v,x]=(0,n.useState)(0),[h,g]=(0,n.useState)(""),[b,y]=(0,n.useState)(!1),[j,w]=(0,n.useState)(!1),[A,_]=(0,n.useState)(!1),[P,E]=(0,n.useState)(!1),{copied:D,markCopied:I}=(0,C.q)(),[K,L]=(0,n.useState)(null),R=k.Vt.has(o),{mode:$,setMode:M,userInstruction:O,setUserInstruction:Z,isUserInstructionReadOnly:J,templates:q,selectedTemplateId:H,selectTemplate:V,isLoadingTemplates:F}=function(){let[e,t]=(0,n.useState)("none"),[a,r]=(0,n.useState)(""),[s,l]=(0,n.useState)([]),[i,o]=(0,n.useState)(null),[c,d]=(0,n.useState)(!1),u=(0,n.useCallback)(async()=>{d(!0);try{let e=await fetch("/api/templates");if(e.ok){let t=await e.json();l(t.templates||[])}}catch(e){}finally{d(!1)}},[]);(0,n.useEffect)(()=>{u()},[u]);let m=(0,n.useCallback)(e=>{t(e),r(""),o(null)},[]),p=(0,n.useCallback)(t=>{"custom"===e&&r(t)},[e]),f=(0,n.useCallback)(t=>{let a=s.find(e=>e.id===t);a&&"template"===e&&(o(t),r(a.content))},[s,e]);return{mode:e,setMode:m,userInstruction:a,setUserInstruction:p,isUserInstructionReadOnly:"template"===e,templates:s,selectedTemplateId:i,selectTemplate:f,isLoadingTemplates:c,refreshTemplates:u}}(),U=function(e){let[t,a]=(0,n.useState)({generating:!1}),r=(0,n.useRef)(null),s=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/daily-summary/status");if(e.ok){let t=await e.json();a(t)}}catch(e){}},[]);return(0,n.useEffect)(()=>e?(s(),r.current=setInterval(s,5e3),()=>{r.current&&(clearInterval(r.current),r.current=null)}):void a({generating:!1}),[e,s]),t}(!A),W=U.generating&&!A,X=(0,n.useCallback)(async t=>{w(!0),L(null);try{let a=await fetch("/api/daily-summary?date=".concat(t));if(!a.ok){let t=await a.json();L(t.error||e("report.errors.fetch"));return}let r=await a.json();f(r.report),x(r.messageCount),r.report?g(r.report.content):g(""),y(!1)}catch(t){L(e("report.errors.fetch"))}finally{w(!1)}},[e]);(0,n.useEffect)(()=>{X(a)},[a,X]);let[B,Y]=(0,n.useState)(!1);(0,n.useEffect)(()=>{U.generating?Y(!0):B&&(Y(!1),X(a))},[U.generating,B,X,a]);let G=async()=>{if(!p||await t({description:e("report.regenerateConfirm")})){_(!0),L(null);try{let t={date:a,tool:o};R&&d.trim()&&(t.model=d.trim()),"none"!==$&&O.trim()&&(t.userInstruction=O.trim());let r=await fetch("/api/daily-summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(429===r.status)return void L(e("report.errors.rateLimited"));if(!r.ok){let t=await r.json();L(t.error||e("report.errors.generate"));return}let n=await r.json();f(n.report),g(n.report.content),y(!1)}catch(t){L(e("report.errors.generate"))}finally{_(!1)}}},Q=async()=>{if(!h.trim())return void L(e("report.errors.emptyContent"));E(!0),L(null);try{let t=await fetch("/api/daily-summary",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({date:a,content:h})});if(!t.ok){let a=await t.json();L(a.error||e("report.errors.save"));return}let r=await t.json();f(r.report),y(!1)}catch(t){L(e("report.errors.save"))}finally{E(!1)}};return(0,r.jsxs)("div",{"data-testid":"report-tab",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-4 mb-6",children:[(0,r.jsx)(N,{value:a,onChange:e=>{i(e)}}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("label",{className:"text-sm text-muted-foreground",children:e("report.toolLabel")}),(0,r.jsx)("select",{value:o,onChange:e=>c(e.target.value),className:"px-3 py-1 text-sm rounded border border-input bg-surface dark:bg-surface-2 text-surface-foreground","data-testid":"tool-selector",children:u.IH.map(e=>(0,r.jsx)("option",{value:e,children:e},e))}),R&&(0,r.jsx)(l.pd,{type:"text",inputSize:"sm",placeholder:"opencode"===o?e("report.modelPlaceholderOpencode"):e("report.modelPlaceholder"),value:d,onChange:e=>m(e.target.value),className:"w-auto","data-testid":"model-input"})]})]}),(0,r.jsxs)("div",{className:"mb-4","data-testid":"generation-mode-selector",children:[(0,r.jsx)("label",{className:"text-sm font-medium text-foreground mb-2 block",children:e("report.generationMode")}),(0,r.jsx)(l.z6,{value:$,onValueChange:e=>M(e),name:"generation-mode",className:"flex flex-row gap-4",children:T.map(t=>(0,r.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[(0,r.jsx)(l.CU,{value:t.value,"data-testid":"mode-radio-".concat(t.value)}),(0,r.jsx)("span",{className:"text-foreground",children:e(t.labelKey)})]},t.value))})]}),"template"===$&&(0,r.jsxs)("div",{className:"mb-4","data-testid":"template-selector",children:[(0,r.jsx)("label",{className:"text-sm font-medium text-foreground mb-2 block",children:e("report.selectTemplate")}),F?(0,r.jsx)(l.EA,{className:"h-9 w-full","data-testid":"report-template-loading",role:"status","aria-label":e("report.loadingTemplates"),"aria-hidden":void 0}):0===q.length?(0,r.jsx)("div",{className:"text-sm text-muted-foreground",children:e("report.noTemplates")}):(0,r.jsxs)("select",{value:H||"",onChange:e=>V(e.target.value),className:"px-3 py-1 text-sm rounded border border-input bg-surface dark:bg-surface-2 text-surface-foreground","data-testid":"template-select",children:[(0,r.jsx)("option",{value:"",children:e("report.templatePlaceholderOption")}),q.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),"none"!==$&&(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsx)(l.k_,{value:O,onChange:e=>Z(e.target.value),rows:3,maxLength:u.t7,readOnly:J,placeholder:"template"===$?e("report.instructionPlaceholderTemplate"):e("report.instructionPlaceholderCustom"),className:"resize-y ".concat(J?"bg-muted cursor-not-allowed":""),"data-testid":"user-instruction-input"})}),(0,r.jsx)("div",{className:"mb-6",children:(0,r.jsx)(l.$n,{variant:"primary",onClick:G,disabled:A||W||0===v,"data-testid":"generate-button",children:A||W?e("report.generating"):e("report.generate")})}),(0,r.jsx)("div",{className:"mb-4 text-sm text-muted-foreground","data-testid":"message-count",children:j?(0,r.jsx)(l.EA,{className:"h-4 w-48"}):0===v?e("report.noMessages"):e("report.messagesFound",{count:v})}),K&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-danger-subtle text-danger-foreground rounded-lg text-sm","data-testid":"report-error",children:K}),(A||W)&&(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4 text-sm text-muted-foreground","data-testid":"generating-spinner",children:[(0,r.jsx)(l.y$,{size:"sm",variant:"muted"}),W&&U.tool?U.startedAt?e("report.generatingRemoteWithTime",{tool:U.tool,seconds:Math.round((Date.now()-new Date(U.startedAt).getTime())/1e3)}):e("report.generatingRemote",{tool:U.tool}):e("report.generatingSummary")]}),!j&&p&&(0,r.jsxs)(l.Zp,{"data-testid":"report-content",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,r.jsxs)("div",{className:"text-xs text-muted-foreground",children:[e("report.generatedBy",{tool:p.generatedByTool}),p.model&&" (".concat(p.model,")")]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:async()=>{await (0,z.l)(p.content),I()},"data-testid":"copy-report-button",children:D?e("report.copied"):e("report.copy")}),(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{b?Q():y(!0)},disabled:P,"data-testid":"edit-save-button",children:P?e("report.saving"):b?e("report.save"):e("report.edit")})]})]}),b?(0,r.jsx)(l.k_,{value:h,onChange:e=>g(e.target.value),className:"h-64 p-3 font-mono","data-testid":"report-editor"}):(0,r.jsx)("div",{className:"prose dark:prose-invert max-w-none text-sm whitespace-pre-wrap","data-testid":"report-preview",children:p.content})]})]})}function _(){let e=(0,s.c)("review"),t=(0,S.SC)(),[a,i]=(0,n.useState)([]),[o,c]=(0,n.useState)(!1),[d,m]=(0,n.useState)(null),[p,f]=(0,n.useState)(""),[v,x]=(0,n.useState)(""),[h,g]=(0,n.useState)(!1),[b,y]=(0,n.useState)(null),[j,w]=(0,n.useState)(""),[N,k]=(0,n.useState)(""),[C,z]=(0,n.useState)(!1),T=(0,n.useCallback)(async()=>{c(!0),m(null);try{let t=await fetch("/api/templates");if(!t.ok){let a=await t.json();m(a.error||e("template.errors.fetch"));return}let a=await t.json();i(a.templates||[])}catch(t){m(e("template.errors.fetch"))}finally{c(!1)}},[e]);(0,n.useEffect)(()=>{T()},[T]);let A=async()=>{if(!p.trim()||!v.trim())return void m(e("template.errors.nameAndContentRequired"));g(!0),m(null);try{let t=await fetch("/api/templates",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:p.trim(),content:v.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.create"));return}f(""),x(""),await T()}catch(t){m(e("template.errors.create"))}finally{g(!1)}},_=async()=>{if(!b||!j.trim()||!N.trim())return void m(e("template.errors.nameAndContentRequired"));z(!0),m(null);try{let t=await fetch("/api/templates/".concat(b),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:j.trim(),content:N.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.update"));return}y(null),await T()}catch(t){m(e("template.errors.update"))}finally{z(!1)}},P=async a=>{if(await t({description:e("template.deleteConfirm"),variant:"danger"})){m(null);try{let t=await fetch("/api/templates/".concat(a),{method:"DELETE"});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.delete"));return}await T()}catch(t){m(e("template.errors.delete"))}}},E=()=>{y(null),w(""),k("")};return(0,r.jsxs)("div",{"data-testid":"template-tab",children:[d&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-danger-subtle text-danger-foreground rounded-lg text-sm","data-testid":"template-error",children:d}),(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-foreground mb-3",children:e("template.heading",{count:a.length,max:u.$h})}),o?(0,r.jsx)("div",{className:"space-y-3","data-testid":"template-loading",role:"status","aria-label":e("template.loading"),children:[0,1].map(e=>(0,r.jsx)(l.Zp,{padding:"md",children:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l.EA,{className:"h-4 w-32"}),(0,r.jsx)(l.EA,{className:"h-3 w-full"}),(0,r.jsx)(l.EA,{className:"h-3 w-2/3"})]})},e))}):0===a.length?(0,r.jsx)("div",{className:"text-sm text-muted-foreground","data-testid":"template-empty",children:e("template.empty")}):(0,r.jsx)("div",{className:"space-y-3","data-testid":"template-list",children:a.map(t=>(0,r.jsx)(l.Zp,{padding:"sm","data-testid":"template-item-".concat(t.id),children:b===t.id?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l.pd,{type:"text",inputSize:"sm",value:j,onChange:e=>w(e.target.value),maxLength:u.Nb,"data-testid":"edit-name-input"}),(0,r.jsx)(l.k_,{value:N,onChange:e=>k(e.target.value),maxLength:u.bm,rows:3,className:"resize-y","data-testid":"edit-content-input"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(l.$n,{variant:"primary",size:"sm",onClick:_,disabled:C,"data-testid":"edit-save-button",children:C?e("template.saving"):e("template.save")}),(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:E,"data-testid":"edit-cancel-button",children:e("template.cancel")})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,r.jsx)("span",{className:"font-medium text-sm text-foreground","data-testid":"template-name",children:t.name}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{y(t.id),w(t.name),k(t.content)},"data-testid":"edit-button-".concat(t.id),children:e("template.edit")}),(0,r.jsx)(l.$n,{variant:"danger",size:"sm",onClick:()=>P(t.id),"data-testid":"delete-button-".concat(t.id),children:e("template.delete")})]})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground whitespace-pre-wrap","data-testid":"template-content",children:t.content})]})},t.id))})]}),a.length<u.$h&&(0,r.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg shadow-sm","data-testid":"create-form",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground mb-3",children:e("template.newHeading")}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(l.pd,{type:"text",value:p,onChange:e=>f(e.target.value),maxLength:u.Nb,placeholder:e("template.namePlaceholder"),"data-testid":"new-name-input"}),(0,r.jsx)(l.k_,{value:v,onChange:e=>x(e.target.value),maxLength:u.bm,rows:3,placeholder:e("template.contentPlaceholder"),className:"resize-y","data-testid":"new-content-input"}),(0,r.jsx)(l.$n,{variant:"primary",onClick:A,disabled:h||!p.trim()||!v.trim(),"data-testid":"create-button",children:h?e("template.creating"):e("template.create")})]})]})]})}let P=[{value:"review",labelKey:"tabs.review"},{value:"report",labelKey:"tabs.report"},{value:"template",labelKey:"tabs.template"}];function E(){let e=(0,s.c)("review"),[t,a]=(0,n.useState)("review");return(0,r.jsxs)("div",{className:"container-custom py-8 overflow-auto h-full",children:[(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("page.title")}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:e("page.description")})]}),(0,r.jsxs)(l.tU,{value:t,onValueChange:e=>a(e),children:[(0,r.jsx)(l.j7,{className:"mb-6 w-full justify-start","data-testid":"page-tabs",children:P.map(t=>(0,r.jsx)(l.Xi,{value:t.value,"data-testid":"page-tab-".concat(t.value),children:e(t.labelKey)},t.value))}),(0,r.jsx)(l.av,{value:"review",children:(0,r.jsx)(n.Suspense,{fallback:null,children:(0,r.jsx)(j,{})})}),(0,r.jsx)(l.av,{value:"report",children:(0,r.jsx)(A,{})}),(0,r.jsx)(l.av,{value:"template",children:(0,r.jsx)(_,{})})]})]})}},20063:(e,t,a)=>{"use strict";var r=a(47260);a.o(r,"useParams")&&a.d(t,{useParams:function(){return r.useParams}}),a.o(r,"usePathname")&&a.d(t,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(t,{useRouter:function(){return r.useRouter}}),a.o(r,"useSearchParams")&&a.d(t,{useSearchParams:function(){return r.useSearchParams}})},44308:(e,t,a)=>{"use strict";a.d(t,{$h:()=>u,DR:()=>n,IH:()=>c,Iu:()=>r,Nb:()=>m,SD:()=>s,_d:()=>o,bm:()=>p,ks:()=>i,t7:()=>d,z7:()=>l});let r=7e3,n=["in_review","approval","stalled"],s="in_review",l="filter",i="/review?".concat(l,"=approval");function o(e){return e&&n.includes(e)?e:null}let c=["claude","codex","copilot","antigravity","opencode"],d=1e3,u=5,m=100,p=1e3},46892:(e,t,a)=>{"use strict";a.d(t,{PL:()=>n,sb:()=>s});let r={idle:"bg-muted-foreground",ready:"bg-success",spinner:"border-info",waiting:"bg-warning"},n={idle:{className:r.idle,labelKey:"status.idle",type:"dot"},ready:{className:r.ready,labelKey:"status.ready",type:"dot"},running:{className:r.spinner,labelKey:"status.running",type:"spinner"},waiting:{className:r.waiting,labelKey:"status.waiting",type:"dot"},generating:{className:r.spinner,labelKey:"status.generating",type:"spinner"}},s={idle:"detailStatus.idle",ready:"detailStatus.ready",running:"detailStatus.running",waiting:"detailStatus.waiting"}},54014:(e,t,a)=>{"use strict";a.d(t,{Ab:()=>n,NL:()=>x,O6:()=>p,XH:()=>r,f_:()=>u,hR:()=>c,lu:()=>f,n6:()=>i,oo:()=>d,pQ:()=>s,sw:()=>m,vz:()=>v});let r=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code","opencode-v2"],n=10,s=50,l=/^[a-zA-Z0-9_-]+$/;function i(e){return"string"==typeof e&&e.length>0&&e.length<=64&&l.test(e)}let o={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code","opencode-v2":"OpenCode V2"};function c(e){return r.includes(e)}function d(e){var t;return null!=(t=o[e])?t:e}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Assistant";return e&&c(e)?d(e):t}function m(e){let t=e.alias;return"string"==typeof t&&t.trim().length>0?t:d(e.cliTool)}function p(e,t,a){let r=e.find(e=>e.id===t);return r?m(r):d(a)}function f(e){return e.map((e,t)=>({id:e,cliTool:e,alias:d(e),order:t}))}let v=128,x=2097152},55449:(e,t,a)=>{"use strict";a.d(t,{IK:()=>o,qD:()=>u,sA:()=>i,zk:()=>n});var r=a(63001);let n="/api/settings/default-agents",s=r.fJ,l=new Set;function i(){return s}function o(e){if(!Array.isArray(e))return!1;let t=(0,r.Lt)(e);if(!t.valid)return!1;let a=t.value;if(a.length===s.length&&a.every((e,t)=>e===s[t]))return!1;for(let e of(s=a,l))e();return!0}let c=null,d=!1;async function u(){return d?s:c||("function"!=typeof fetch?s:c=(async()=>{try{let e=await fetch(n);if(e.ok){let t=await e.json();o(null==t?void 0:t.defaultSelectedAgents),d=!0}}catch(e){}finally{c=null}return s})())}},60322:(e,t,a)=>{"use strict";a.d(t,{l:()=>n});let r=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function n(e){var t;if(!e||0===e.trim().length)return;let a=e.replace(r,"");if(null==(t=navigator.clipboard)?void 0:t.writeText)try{await navigator.clipboard.writeText(a);return}catch(e){}let n=document.createElement("textarea");n.value=a,n.style.position="fixed",n.style.left="-9999px",n.style.top="-9999px",n.style.opacity="0",document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy")}finally{document.body.removeChild(n)}}},63001:(e,t,a)=>{"use strict";a.d(t,{Lt:()=>i,Wj:()=>s,eu:()=>n,fJ:()=>l});var r=a(54014);let n=2,s=6,l=["claude","codex","antigravity"];function i(e){return e.length<n||e.length>s?{valid:!1,error:"Must be ".concat(n,"-").concat(s," elements")}:e.every(e=>"string"==typeof e&&r.XH.includes(e))?new Set(e).size!==e.length?{valid:!1,error:"Duplicate tool IDs not allowed"}:{valid:!0,value:e}:{valid:!1,error:"Invalid CLI tool ID"}}},76471:(e,t,a)=>{"use strict";a.d(t,{Ej:()=>d,Jd:()=>i,Mq:()=>c,rH:()=>o});var r=a(95155),n=a(12115),s=a(18955),l=a(48481);let i="bg-transparent border-2 border-muted-foreground",o="status.unknown";function c(e,t){return!0===t&&"ready"===e}let d=(0,n.memo)(function(e){let{status:t,label:a,waitingKind:n,unclassified:d}=e,u=(0,s.c)("common"),m=c(t,d);return(0,r.jsx)(l.m,{"data-testid":"status-indicator",status:t,label:m?null!=a?a:u(o):a,waitingKind:n,size:"sm",className:m?i:void 0,"data-unclassified":m?"true":void 0})})},80488:(e,t,a)=>{Promise.resolve().then(a.bind(a,17442))}},e=>{e.O(0,[6809,4909,2770,2619,8407,8606,8441,1255,7358],()=>e(e.s=80488)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8898],{9219:(e,s,t)=>{"use strict";t.d(s,{k:()=>l});var n=t(95155),a=t(12115),i=t(48407),r=t(87531);function l(e){let{onRefresh:s,enabled:t=!0,className:l,children:o}=e,{containerRef:c,pullDistance:d,isRefreshing:u,isPulling:m}=function(e){let{onRefresh:s,enabled:t=!0,threshold:n=64,maxPull:i=96,resistance:r=.5}=e,l=(0,a.useRef)(null),[o,c]=(0,a.useState)(0),[d,u]=(0,a.useState)(!1),[m,h]=(0,a.useState)(!1),x=(0,a.useRef)(null),f=(0,a.useRef)(0),g=(0,a.useRef)(!1);g.current=d;let p=(0,a.useCallback)(()=>{x.current=null,f.current=0,c(0),h(!1)},[]),v=(0,a.useCallback)(e=>{if(!t||g.current)return;let s=l.current;s&&!(s.scrollTop>0)&&(x.current=e.touches[0].clientY,f.current=0)},[t]),b=(0,a.useCallback)(e=>{if(null===x.current)return;let s=l.current;if(!s)return;if(s.scrollTop>0)return void p();let t=e.touches[0].clientY-x.current;if(t<=0){0!==f.current&&(f.current=0,c(0),h(!1));return}e.cancelable&&e.preventDefault();let n=Math.min(t*r,i);f.current=n,c(n),h(!0)},[r,i,p]),y=(0,a.useCallback)(async()=>{u(!0),h(!1),c(n);try{await Promise.resolve(s())}finally{u(!1),c(0)}},[s,n]),j=(0,a.useCallback)(()=>{if(null===x.current)return;let e=f.current>=n&&!g.current;x.current=null,f.current=0,e?y():(c(0),h(!1))},[n,y]);return(0,a.useEffect)(()=>{let e=l.current;if(e)return e.addEventListener("touchstart",v,{passive:!0}),e.addEventListener("touchmove",b,{passive:!1}),e.addEventListener("touchend",j,{passive:!0}),e.addEventListener("touchcancel",j,{passive:!0}),()=>{e.removeEventListener("touchstart",v),e.removeEventListener("touchmove",b),e.removeEventListener("touchend",j),e.removeEventListener("touchcancel",j)}},[v,b,j]),{containerRef:l,pullDistance:o,isRefreshing:d,isPulling:m}}({onRefresh:s,enabled:t,threshold:64}),h=u||d>0,x=u?1:Math.min(d/64,1);return(0,n.jsxs)("div",{ref:c,className:(0,r.cn)("relative overflow-auto",l),style:{overscrollBehaviorY:"contain"},"data-testid":"pull-to-refresh",children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 z-10 flex justify-center",style:{transform:"translateY(".concat(h?Math.max(d-24,8):-32,"px)"),opacity:x,transition:m?"none":"transform 0.2s ease-out, opacity 0.2s ease-out"},"data-testid":"pull-to-refresh-indicator",role:"status","aria-hidden":!u,children:(0,n.jsx)(i.y$,{size:"sm",variant:"accent"})}),(0,n.jsx)("div",{style:{transform:h?"translateY(".concat(d,"px)"):void 0,transition:m?"none":"transform 0.2s ease-out"},children:o})]})}},46617:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>eu});var n=t(95155),a=t(12115),i=t(52619),r=t.n(i),l=t(18955),o=t(20562),c=t(8803),d=t(9219),u=t(37586),m=t(22479),h=t(54485),x=t(58597),f=t(83051),g=t(14006),p=t(88155),v=t(92509),b=t(73333),y=t(2954),j=t(48407),w=t(32771),k=t(89599),N=t(308),A=t(80635),S=t(52407);function C(){let{signals:e}=(0,S.Fx)();return(0,a.useMemo)(()=>({offline:(0,S.sV)(e),reachable:(0,S._X)(e)}),[e])}var M=t(66966);let I=Object.freeze({enabled:!1,expiresAt:null});var L=t(81507),T=t(2317),P=t(75676),E=t(63881),R=t(8355),D=t(80344),z=t(38606),F=t(76471),_=t(54014),K=t(55449),U=t(67149),B=t(68394);let O=[{mode:"chat",labelKey:"surfaceMode.showChat",icon:u.A},{mode:"terminal",labelKey:"surfaceMode.showTerminal",icon:m.A}];function H(e){return"flex h-7 w-7 shrink-0 items-center justify-center rounded transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ".concat(e?"bg-accent-500/15 text-accent-600 dark:text-accent-400":"text-muted-foreground hover:bg-muted hover:text-foreground")}let V=()=>{},Y=(0,a.memo)(function(e){return e.connectivity?(0,n.jsx)(W,{...e,connectivity:e.connectivity}):(0,n.jsx)(q,{...e})});function q(e){let s=C();return(0,n.jsx)(W,{...e,connectivity:s})}function W(e){var s,t,i,o,c,d,u;let{worktree:m,enabled:S,connectivity:C,className:Y=""}=e,q=(0,l.c)("common"),W=(0,l.c)("worktree"),J=(0,a.useMemo)(()=>{var e;return m.agentInstances&&m.agentInstances.length>0?m.agentInstances:(0,_.lu)(null!=(e=m.selectedAgents)?e:(0,K.sA)())},[m]),[Q,G]=(0,a.useState)(null),X=null!=(t=J.find(e=>e.id===Q))?t:J[0],Z=null==X?void 0:X.id,$=null!=(i=null==X?void 0:X.cliTool)?i:"claude",ee=null!=Z?Z:$,{surfaceMode:es,setSurfaceMode:et}=function(e){let{value:s,setValue:t}=(0,T.V)({key:"".concat("commandmate.sessions.tileSurfaceMode-").concat(e),defaultValue:"chat",validate:P.jg,serialize:e=>e,deserialize:e=>e});return{surfaceMode:s,setSurfaceMode:(0,a.useCallback)(e=>t(e),[t])}}(m.id),{visible:en,toggle:ea}=(0,L.TG)(L.jt),ei="terminal"===es,er=ei&&en,[el,eo]=(0,a.useState)(null),[ec,ed]=(0,a.useState)(null),{terminal:eu,prompt:em,refresh:eh,setAutoScroll:ex}=(0,w.NK)({worktreeId:m.id,cliToolId:$,instanceId:Z,enabled:S,cadence:U.sD}),{messages:ef,isLoading:eg,refresh:ep}=(0,N.Md)({worktreeId:m.id,cliToolId:$,instanceId:Z,enabled:S&&(!ei||en),cadence:U.WT}),ev=(0,a.useCallback)((e,s)=>D.y.sendMessage(m.id,e,s),[m.id]),{messages:eb,sendOptimistic:ey,retry:ej,discard:ew}=(0,A.v4)({worktreeId:m.id,serverMessages:ef,sendFn:ev,onSent:ep,connectivity:C}),ek=(0,a.useMemo)(()=>(function(e,s){let t=e=>{var t;return void 0!==e.optimisticState&&(null!=(t=e.instanceId)?t:e.cliToolId)!==s};return e.some(t)?e.filter(e=>!t(e)):e})(eb,ee),[eb,ee]),[eN,eA]=(0,a.useState)(null),eS=(0,a.useCallback)(()=>eA(null),[]),eC=(0,a.useCallback)(e=>{let s=ew(e);s&&eA(s)},[ew]),eM=(0,a.useCallback)(()=>{eh()},[eh]),eI=function(e){var s;let{worktree:t,cliToolId:n,instanceId:i}=e,r=null==(s=(0,M.rC)())?void 0:s.refresh,l=t.id,o=(0,a.useMemo)(()=>(function(e,s){var t;let n=null==(t=e.autoYesByInstance)?void 0:t[s];return n&&!0===n.enabled?{enabled:!0,expiresAt:"number"==typeof n.expiresAt?n.expiresAt:null}:I})(t,i),[t,i]),[c,d]=(0,a.useState)(null),u=(0,a.useRef)(t);u.current=t;let m=null===c||c.instanceId!==i||function(e,s,t){let n=s.enabled===e.value.enabled&&(!s.enabled||s.expiresAt===e.value.expiresAt),a=null!==e.settledRow&&t!==e.settledRow;return n||a}(c,o,t)?null:c;(0,a.useEffect)(()=>{null!==c&&null===m&&d(null)},[c,m]);let h=(0,a.useCallback)(async e=>{let s;try{let t=await fetch("/api/worktrees/".concat(encodeURIComponent(l),"/auto-yes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e.enabled,cliToolId:n,instanceId:i,duration:e.duration,stopPattern:e.stopPattern})});if(!t.ok)return;let a=await t.json(),r=!0===a.enabled;s={enabled:r,expiresAt:r&&"number"==typeof a.expiresAt?a.expiresAt:null}}catch(e){return}let t={instanceId:i,value:s,settledRow:null};d(t);try{await (null==r?void 0:r())}catch(e){}d(e=>e===t?{...t,settledRow:u.current}:e)},[l,n,i,r]),x=m?m.value:o;return{enabled:x.enabled,expiresAt:x.expiresAt,toggle:h}}({worktree:m,cliToolId:$,instanceId:ee}),eL=(0,a.useMemo)(()=>({isRunning:eu.isRunning,attaching:eu.attaching,sessionStatus:eu.sessionStatus,isThinking:eu.isThinking,isPromptWaiting:em.visible,promptData:em.data,isSelectionListActive:eu.isSelectionListActive,isPagerActive:eu.isPagerActive,isDismissablePanelActive:eu.isDismissablePanelActive,isUnclassifiedActive:eu.isUnclassifiedActive,startingSince:eu.startingSince}),[eu.isRunning,eu.attaching,eu.sessionStatus,eu.isThinking,eu.isSelectionListActive,eu.isPagerActive,eu.isDismissablePanelActive,eu.isUnclassifiedActive,eu.startingSince,em.visible,em.data]),eT=(0,k.Bj)((0,k.qi)(m.id,ee),eu.startingSince),eP=S&&ei&&eu.isSelectionListActive&&!eT.starting,eE=eP?{className:"min-h-[18rem]",px:288}:{className:"min-h-[15rem]",px:240},eR=(0,E.b4)(el,ec,eE.px),eD=(0,a.useCallback)(e=>et(e),[et]),ez=(0,a.useMemo)(()=>({isLoading:eg,onRetryPending:ej,onDiscardPending:eC,onInsertToMessage:eA}),[eg,ej,eC]),{compactTuiLayoutPadding:eF,preservePaintedPanelRows:e_}=(0,a.useMemo)(()=>(0,B.EK)($),[$]),eK="opencode"===$||"copilot"===$,eU=(u=m.id,"session-tile-history-".concat(u)),eB=(0,a.useCallback)(e=>{G(e.target.value)},[]),eO=null!=(o=m.branch)?o:m.name,eH=null!=(c=m.repositoryDisplayName)?c:m.repositoryName,eV=Z?null==(s=m.sessionStatusByInstance)?void 0:s[Z]:void 0,eY=(0,z.kA)(eV),eq=(0,F.Mq)(eY,(0,z.px)(eV));return(0,n.jsxs)("section",{className:"flex h-full min-w-0 flex-col overflow-hidden rounded-lg border border-border bg-surface shadow-sm ".concat(Y),"data-testid":"session-tile-".concat(m.id),"data-enabled":S?"true":"false","aria-label":q("sessions.tileAriaLabel",{branch:eO}),children:[(0,n.jsxs)("header",{className:"flex shrink-0 items-center gap-2 border-b border-border px-3 py-2",children:[(0,n.jsx)(j.md,{status:eY,size:"sm",label:q(eq?F.rH:"status.".concat(eY)),className:eq?F.Jd:void 0,"data-unclassified":eq?"true":void 0}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:eH}),(0,n.jsx)(r(),{href:"/worktrees/".concat(m.id),className:"block truncate text-sm font-medium text-foreground underline-offset-2 hover:text-accent-600 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring dark:hover:text-accent-400","data-testid":"session-tile-branch-".concat(m.id),title:eO,children:eO})]}),J.length>1&&(0,n.jsx)("select",{value:null!=(d=null==X?void 0:X.id)?d:"",onChange:eB,className:"max-w-[9rem] shrink-0 rounded-md border border-border bg-surface px-2 py-1 text-xs text-muted-foreground transition-colors hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring","data-testid":"session-tile-instance-".concat(m.id),"aria-label":q("sessions.tileInstanceAriaLabel"),children:J.map(e=>(0,n.jsx)("option",{value:e.id,children:(0,_.sw)(e)},e.id))}),ei&&(0,n.jsx)("button",{type:"button",onClick:ea,"aria-pressed":en,"aria-expanded":en,"aria-controls":eU,"aria-label":en?W("terminal.hideHistory"):W("terminal.showHistory"),title:en?W("terminal.hideHistory"):W("terminal.showHistory"),className:H(en),"data-testid":"session-tile-history-toggle-".concat(m.id),children:(0,n.jsx)(h.A,{size:14,"aria-hidden":"true"})}),(0,n.jsx)("div",{role:"group","aria-label":W("surfaceMode.groupLabelMobile"),className:"flex shrink-0 items-center gap-0.5 rounded-md border border-border p-0.5","data-testid":"session-tile-surface-mode-".concat(m.id),children:O.map(e=>{let{mode:s,labelKey:t,icon:a}=e,i=es===s,r=W(t);return(0,n.jsx)("button",{type:"button",onClick:()=>et(s),"aria-pressed":i,"aria-label":r,title:r,className:H(i),"data-testid":"session-tile-surface-".concat(s,"-").concat(m.id),children:(0,n.jsx)(a,{size:14,"aria-hidden":"true"})},s)})})]}),(0,n.jsx)("div",{ref:eo,className:"min-w-0 flex-1 overflow-hidden ".concat(eE.className),"data-testid":"session-tile-body-".concat(m.id),children:S&&ei?(0,n.jsxs)("div",{className:"flex h-full min-h-0 min-w-0 flex-col","data-testid":"session-tile-terminal-stack-".concat(m.id),children:[(0,n.jsx)("div",{className:"relative min-w-0 overflow-hidden ".concat(er?"flex-[3_3_0%] min-h-[8.5rem]":"min-h-0 flex-1"),"data-testid":"session-tile-terminal-".concat(m.id),children:eT.noticeVisible&&null!==eT.startingSince?(0,n.jsx)(p.TE,{cliToolId:$,startingSince:eT.startingSince,onShowTerminal:eT.revealTerminal}):(0,n.jsx)(g.D,{output:eu.output,isActive:eu.isRunning,attaching:eu.attaching,isThinking:eu.isThinking,autoScroll:eu.autoScroll,onScrollChange:ex,disableAutoFollow:eK,compactTuiLayoutPadding:eF,preservePaintedPanelRows:e_,wrapMode:B.Wq.wrapMode,density:B.Wq.density})}),eP?(0,n.jsx)("div",{className:"min-w-0 shrink overflow-y-auto border-t border-border p-2 ".concat("min-h-[3rem] max-h-[8rem]"),"data-testid":"session-tile-selection-keys-".concat(m.id),children:(0,n.jsx)(v.Z,{worktreeId:m.id,cliToolId:$,instanceId:ee,onKeysSent:eh,frame:eu.output,surface:"terminal",showPagerKeys:eu.isPagerActive})}):null,er&&(0,n.jsx)("div",{id:eU,className:"min-w-0 overflow-hidden border-t border-border ".concat("flex-[2_2_0%] min-h-[6.5rem]"),"data-testid":"session-tile-history-".concat(m.id),children:(0,n.jsx)(f.bl,{messages:ek,worktreeId:m.id,worktreePath:m.path,cliToolId:$,isLoading:eg,onFilePathClick:V,onInsertToMessage:eA,onRetryPending:ej,onDiscardPending:eC,className:"h-full"})})]}):S?(0,n.jsx)(x.wY,{messages:ek,worktreeId:m.id,worktreePath:m.path,cliToolId:$,instanceId:Z,live:eL,frame:eu.output,onKeysSent:eh,onSurfaceModeChange:eD,compact:!0,history:ez}):(0,n.jsx)("div",{className:"h-full","data-testid":"session-tile-placeholder-".concat(m.id),"aria-hidden":"true"})}),S&&(0,n.jsx)("div",{ref:ed,className:"shrink-0 border-t border-border p-2","data-testid":"session-tile-composer-".concat(m.id),children:(0,n.jsx)(b.E,{worktreeId:m.id,cliToolId:$,instanceId:ee,isSessionRunning:eu.isRunning,isSessionStarting:eT.starting,onOptimisticSend:ey,onMessageSent:eM,pendingInsertText:eN,onInsertConsumed:eS,heightScope:R.CM,maxHeight:eR,autoYesSlot:(0,n.jsx)(y.T,{enabled:eI.enabled,expiresAt:eI.expiresAt,onToggle:eI.toggle,lastAutoResponse:null,cliToolName:$,inline:!0})})})]})}let J=(0,a.memo)(function(e){let{worktree:s,connectivity:t}=e,{ref:i,inViewport:r}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{rootMargin:s,threshold:t}=e,[n,i]=(0,a.useState)(!1),[r,l]=(0,a.useState)(null),o=(0,a.useCallback)(e=>{l(e)},[]);return(0,a.useEffect)(()=>{if("undefined"==typeof IntersectionObserver)return void i(!0);if(!r)return;let e=new IntersectionObserver(e=>{let s=e[e.length-1];s&&i(s.isIntersecting)},{rootMargin:s,threshold:t});return e.observe(r),()=>e.disconnect()},[r,s,t]),{ref:o,inViewport:n}}({rootMargin:"560px"});return(0,n.jsx)("div",{ref:i,className:"min-w-0 ".concat("h-[35rem]"),children:(0,n.jsx)(Y,{worktree:s,enabled:r,connectivity:t})})}),Q=(0,a.memo)(function(e){let{worktrees:s}=e,t=C();return(0,n.jsx)("div",{className:"grid grid-cols-1 gap-4 xl:grid-cols-2","data-testid":"sessions-tile-grid",children:s.map(e=>(0,n.jsx)(J,{worktree:e,connectivity:t},e.id))})});var G=t(80003),X=t(91456);let Z=["list","tile"];function $(e){return"string"==typeof e&&Z.includes(e)}let ee=[{mode:"list",labelKey:"sessions.viewMode.list",icon:G.A},{mode:"tile",labelKey:"sessions.viewMode.tile",icon:X.A}],es=(0,a.memo)(function(e){let{value:s,onChange:t}=e,a=(0,l.c)("common");return(0,n.jsx)("div",{className:"flex shrink-0 items-center gap-1 rounded-md border border-input bg-surface p-0.5",role:"group","aria-label":a("sessions.viewMode.groupAriaLabel"),"data-testid":"sessions-view-mode",children:ee.map(e=>{let{mode:i,labelKey:r,icon:l}=e,o=s===i;return(0,n.jsx)("button",{type:"button",onClick:()=>t(i),"aria-pressed":o,"aria-label":a(r),title:a(r),"data-testid":"sessions-view-mode-".concat(i),className:"rounded p-1.5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ".concat(o?"bg-accent-100 text-accent-700 dark:bg-accent-900/30 dark:text-accent-400":"text-muted-foreground hover:text-foreground"),children:(0,n.jsx)(l,{size:16,"aria-hidden":"true"})},i)})})});var et=t(38218),en=t(50857),ea=t(7636),ei=t(83012),er=t(39970);let el=[{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"status",labelKey:"sort.status"},{key:"lastSent",labelKey:"sort.lastSent"}],eo={lastSent:"desc",updatedAt:"desc"},ec={ready:0,in_progress:1,in_review:2,done:3};function ed(e){let{status:s,label:t,unclassified:a}=e,i=(0,l.c)("common"),r=(0,F.Mq)(s,a),o="".concat(t,": ").concat(i(r?F.rH:"status.".concat(s)));return(0,n.jsx)(j.md,{status:s,size:"md",label:o,className:r?F.Jd:void 0,"data-unclassified":r?"true":void 0})}function eu(){let e=(0,l.c)("common"),s=(0,l.c)("worktree"),t=(0,et.a)(),{worktrees:i,isLoading:u,error:m,refresh:h}=(0,M.Fn)(),x=i.length>0,[f,g]=(0,a.useState)(""),[p,v]=(0,a.useState)("lastSent"),[b,y]=(0,a.useState)("desc"),{viewMode:w,setViewMode:k}=function(){let{value:e,setValue:s}=(0,T.V)({key:"mcbd-sessions-view-mode",defaultValue:"list",validate:$,serialize:e=>e,deserialize:e=>e});return{viewMode:e,setViewMode:(0,a.useCallback)(e=>s(e),[s])}}(),N="tile"===w;(0,a.useEffect)(()=>{(0,K.qD)()},[]);let A=(0,a.useMemo)(()=>{let e=i;if(f){let s=f.toLowerCase();e=e.filter(e=>{var t,n;return e.name.toLowerCase().includes(s)||e.repositoryName.toLowerCase().includes(s)||null!=(n=null==(t=e.repositoryDisplayName)?void 0:t.toLowerCase().includes(s))&&n})}let s=[...e];return s.sort((e,s)=>{var t,n,a,i,r,l,o,c;let d=0;switch(p){case"lastSent":{let t=(0,ea.nO)(e.lastUserMessageAt,s.lastUserMessageAt);if(!e.lastUserMessageAt&&!s.lastUserMessageAt)return 0;if(!e.lastUserMessageAt)return 1;if(!s.lastUserMessageAt)return -1;d=t;break}case"repositoryName":{let a=(null!=(t=e.repositoryDisplayName)?t:e.repositoryName).toLowerCase(),i=(null!=(n=s.repositoryDisplayName)?n:s.repositoryName).toLowerCase();0===(d=a.localeCompare(i))&&(d=e.name.toLowerCase().localeCompare(s.name.toLowerCase()));break}case"status":if(0==(d=(null!=(i=ec[null!=(a=e.status)?a:""])?i:4)-(null!=(l=ec[null!=(r=s.status)?r:""])?l:4))){let t=(null!=(o=e.repositoryDisplayName)?o:e.repositoryName).toLowerCase(),n=(null!=(c=s.repositoryDisplayName)?c:s.repositoryName).toLowerCase();d=t.localeCompare(n)}break;default:d=0}return("lastSent"===p?"desc"===b:"asc"===b)?d:-d}),s},[i,f,p,b]),S=(0,a.useCallback)(e=>{g(e.target.value)},[]),C=(0,a.useCallback)(e=>{var s;v(e),y(null!=(s=eo[e])?s:"asc")},[]),I=(0,a.useCallback)(()=>{y(e=>"asc"===e?"desc":"asc")},[]);return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)(d.k,{onRefresh:h,enabled:t,className:"".concat(N?"w-full px-4 sm:px-6 lg:px-8":"container-custom"," py-8 h-full"),children:[(0,n.jsxs)("div",{className:"mb-6",children:[(0,n.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("sessions.title")}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:e("sessions.description")})]}),(0,n.jsxs)("div",{className:"mb-6 flex items-center gap-3",children:[(0,n.jsx)(j.pd,{type:"text",placeholder:e("sessions.filterPlaceholder"),value:f,onChange:S,className:"max-w-md flex-1","data-testid":"sessions-filter","aria-label":e("sessions.filterAriaLabel"),inputMode:"search",enterKeyHint:"search"}),(0,n.jsxs)(j.l6,{value:p,onValueChange:C,children:[(0,n.jsx)(j.bq,{className:"w-40","data-testid":"sessions-sort-select","aria-label":e("sessions.sortByAriaLabel"),children:(0,n.jsx)(j.yv,{})}),(0,n.jsx)(j.gC,{children:el.map(s=>(0,n.jsx)(j.eb,{value:s.key,children:e(s.labelKey)},s.key))})]}),(0,n.jsx)("button",{type:"button",onClick:I,"data-testid":"sessions-sort-direction","aria-label":"asc"===b?e("sessions.sortAscending"):e("sessions.sortDescending"),className:"rounded-md border border-input bg-surface p-2 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:"asc"===b?(0,n.jsx)(o.A,{size:16,"aria-hidden":"true"}):(0,n.jsx)(c.A,{size:16,"aria-hidden":"true"})}),(0,n.jsx)(es,{value:w,onChange:k})]}),x?(0,n.jsxs)(n.Fragment,{children:[m&&(0,n.jsx)("div",{className:"mb-4 rounded-md border border-danger-border bg-danger-subtle px-3 py-2 text-sm text-danger-foreground",role:"status","data-testid":"sessions-error-banner",children:e("sessions.refreshError",{message:m.message})}),N?0===A.length?(0,n.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:e("sessions.noMatching")}):(0,n.jsx)(Q,{worktrees:A}):(0,n.jsx)("div",{className:"space-y-2","data-testid":"sessions-list",children:0===A.length?(0,n.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:e("sessions.noMatching")}):A.map((t,a)=>{var i,l,o,c;let d=null!=(i=t.selectedAgents)?i:(0,K.sA)(),u=t.lastUserMessage?t.lastUserMessage.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]/g,"").replace(/[\u200B-\u200F\u2028-\u202F\uFEFF\u061C]/g,"").replace(/[\r\n\t]/g," ").replace(/\s+/g," ").trim():null,m=t.lastUserMessageAt?(0,ei.Fx)(String(t.lastUserMessageAt)):null,h=d.map(e=>{var s;let n=null==(s=t.sessionStatusByCli)?void 0:s[e];return{agent:e,status:(0,z.kA)(n),unclassified:(0,z.px)(n)}}),x=h.filter(e=>(0,en.Qo)(e.status)||e.unclassified),f=h.length-x.length,g=d.some(e=>{var s;let n=(0,z.kA)(null==(s=t.sessionStatusByCli)?void 0:s[e]);return"running"===n||"generating"===n});return(0,n.jsxs)(r(),{href:"/worktrees/".concat(t.id),style:{animationDelay:function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:40,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;if(Number.isFinite(e)&&!(e<=0)&&!(e>=t))return"".concat(e*s,"ms")}(a)},className:"block bg-surface rounded-lg p-4 border transition-colors ".concat(g?"border-accent-500/40 shadow-[0_0_16px_-4px_rgb(var(--accent-500)/0.45)] hover:border-accent-400":"border-border shadow-sm hover:border-accent-300 dark:hover:border-accent-700"," ").concat("animate-in fade-in-0 slide-in-from-bottom-2 fill-mode-backwards duration-300"),"data-testid":"session-item-".concat(t.id),children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:null!=(l=t.repositoryDisplayName)?l:t.repositoryName}),(0,n.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:t.name})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 ml-4 flex-shrink-0","data-testid":"session-agents-".concat(t.id),children:[x.map(e=>{let{agent:s,status:t,unclassified:a}=e;return(0,n.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-agent-".concat(s),children:[(0,n.jsx)(ed,{status:t,label:(0,_.oo)(s),unclassified:a}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,_.oo)(s)})]},s)}),f>0&&(0,n.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-idle-cluster-".concat(t.id),"aria-label":e("sessions.idleAgents",{count:f}),children:[(0,n.jsx)(j.md,{status:"idle",size:"sm","aria-hidden":!0,title:void 0}),(0,n.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums",children:["+",f]})]})]})]}),t.description&&(0,n.jsx)("div",{className:"mt-2",children:(0,n.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 whitespace-pre-wrap",children:t.description})}),t.status&&(0,n.jsx)("div",{className:"mt-2",children:(0,n.jsx)("span",{className:"px-2 py-0.5 text-xs font-medium rounded ".concat(null!=(c=er.SE[null!=(o=t.status)?o:""])?c:"bg-muted text-muted-foreground"),children:function(e,s){if(!e)return"";let t=er.m9.find(s=>s.value===e);return t?s(t.labelKey):e}(t.status,s)})}),u&&(0,n.jsxs)("div",{className:"mt-2 flex items-center gap-2","data-testid":"session-message-".concat(t.id),children:[(0,n.jsx)("span",{className:"text-xs text-muted-foreground truncate min-w-0 flex-1","data-testid":"session-message-text-".concat(t.id),title:u,children:u}),m&&(0,n.jsx)("span",{className:"text-xs text-muted-foreground flex-shrink-0 whitespace-nowrap tabular-nums","data-testid":"session-time-".concat(t.id),children:m})]})]},t.id)})})]}):(0,n.jsxs)(n.Fragment,{children:[u&&(0,n.jsx)("div",{className:"space-y-2","data-testid":"sessions-loading",role:"status","aria-label":e("sessions.loadingAriaLabel"),children:[0,1,2].map(e=>(0,n.jsxs)("div",{className:"block bg-surface rounded-lg p-4 border border-border shadow-sm",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,n.jsx)(j.EA,{className:"h-4 w-40 max-w-full"}),(0,n.jsx)(j.EA,{className:"h-3 w-56 max-w-full"})]}),(0,n.jsx)(j.EA,{className:"ml-4 h-3 w-16 flex-shrink-0"})]}),(0,n.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,n.jsx)(j.EA,{className:"h-3 min-w-0 flex-1"}),(0,n.jsx)(j.EA,{className:"h-3 w-10 flex-shrink-0"})]})]},e))}),!u&&m&&(0,n.jsx)("div",{className:"text-danger-foreground","data-testid":"sessions-error",children:e("sessions.loadError",{message:m.message})}),!u&&!m&&(0,n.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:f?e("sessions.noMatching"):e("sessions.empty")})]})]})})}},75676:(e,s,t)=>{"use strict";t.d(s,{jg:()=>i,kQ:()=>r,mR:()=>c,mS:()=>o,wf:()=>n});let n="terminal",a=new Set(["terminal","chat"]);function i(e){return"string"==typeof e&&a.has(e)}let r={data:null,messageId:null,visible:!1,answering:!1},l={mode:"split",mobileActivePane:"terminal",leftPaneTab:"history",splitRatio:.5,leftPaneCollapsed:!1,activityBar:{active:"files"},historyPane:{visible:!0,width:25,collapsed:!1}},o={type:null,message:null,retryable:!1,retryCount:0};function c(){return{phase:"idle",prompt:{...r},layout:{...l},error:{...o},messages:[],wsConnected:!1}}},80003:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(0,t(71847).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])},87047:(e,s,t)=>{Promise.resolve().then(t.bind(t,46617))}},e=>{e.O(0,[6809,4909,2770,2619,3662,6606,934,9465,8407,2407,344,6654,8606,5371,4768,602,3201,8441,1255,7358],()=>e(e.s=87047)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9404],{38021:(e,t,s)=>{"use strict";s.d(t,{n:()=>n});var l=s(95155),i=s(12115),a=s(18955);function n(e){let{apiUrl:t,alt:s,width:n,height:r,lazy:d=!1,loadingFallback:o,errorFallback:c,className:u,style:m,wrap:x}=e,h=(0,a.c)("worktree"),[g,p]=(0,i.useState)(null),[f,j]=(0,i.useState)("idle"),[b,k]=(0,i.useState)(!d),v=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(b)return;let e=v.current;if(!e||"undefined"==typeof IntersectionObserver)return void k(!0);let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(k(!0),t.disconnect())});return t.observe(e),()=>t.disconnect()},[b]),(0,i.useEffect)(()=>{if(!b)return;let e=!1;return p(null),j("idle"),fetch(t).then(e=>e.ok?e.json():null).then(t=>{e||("string"==typeof(null==t?void 0:t.content)&&t.content?(p(t.content),j("loaded")):j("error"))}).catch(()=>{e||j("error")}),()=>{e=!0}},[t,b]);let N=null!=o?o:(0,l.jsx)("span",{style:{color:"#999"},children:h("markdownPreview.loadingImage")});if("error"===f)return(0,l.jsx)(l.Fragment,{children:null!=c?c:N});if(!g)return d?(0,l.jsx)("span",{ref:v,children:N}):N;let y=(0,l.jsx)("img",{src:g,alt:s,width:n,height:r,className:u,style:null!=m?m:{maxWidth:n||"100%"},onError:void 0!==c?()=>j("error"):void 0});return x?(0,l.jsx)(l.Fragment,{children:x(y)}):y}},54014:(e,t,s)=>{"use strict";s.d(t,{Ab:()=>i,NL:()=>p,O6:()=>x,XH:()=>l,f_:()=>u,hR:()=>o,lu:()=>h,n6:()=>r,oo:()=>c,pQ:()=>a,sw:()=>m,vz:()=>g});let l=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code","opencode-v2"],i=10,a=50,n=/^[a-zA-Z0-9_-]+$/;function r(e){return"string"==typeof e&&e.length>0&&e.length<=64&&n.test(e)}let d={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code","opencode-v2":"OpenCode V2"};function o(e){return l.includes(e)}function c(e){var t;return null!=(t=d[e])?t:e}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Assistant";return e&&o(e)?c(e):t}function m(e){let t=e.alias;return"string"==typeof t&&t.trim().length>0?t:c(e.cliTool)}function x(e,t,s){let l=e.find(e=>e.id===t);return l?m(l):c(s)}function h(e){return e.map((e,t)=>({id:e,cliTool:e,alias:c(e),order:t}))}let g=128,p=2097152},65229:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});let l=(0,s(71847).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},68331:(e,t,s)=>{"use strict";s.d(t,{y:()=>r});var l=s(95155);s(12115);var i=s(18955),a=s(37381),n=s(95584);function r(e){let{catalog:t}=e,s=(0,i.c)("skills");return t.stale||t.offline?(0,l.jsx)(a.u,{tone:"warning","data-testid":"skill-catalog-stale",className:"flex-col sm:flex-row",children:(0,l.jsxs)("div",{className:"space-y-1",children:[(0,l.jsx)("p",{className:"font-medium",children:s("catalog.staleHeading")}),(0,l.jsx)("p",{children:s("catalog.staleNotice")}),t.offline&&(0,l.jsx)("p",{children:s("catalog.offlineNotice")}),(0,l.jsx)("p",{children:s((0,n.pk)(t.staleReason))}),(0,l.jsxs)("p",{className:"break-words",children:[s("catalog.fetchedAt",{timestamp:t.fetchedAt})," \xb7"," ",s("catalog.revalidatedAt",{timestamp:t.revalidatedAt})]}),(0,l.jsx)("p",{className:"break-words",children:s("catalog.sourceLabel",{repository:t.source.repository,ref:t.source.ref})})]})}):(0,l.jsxs)("p",{"data-testid":"skill-catalog-fresh",className:"text-xs text-muted-foreground break-words",children:[s("catalog.freshLabel")," \xb7"," ",s("catalog.revalidatedAt",{timestamp:t.revalidatedAt})," \xb7"," ",s("catalog.sourceLabel",{repository:t.source.repository,ref:t.source.ref})]})}},69352:(e,t,s)=>{"use strict";s.d(t,{WU:()=>o,d3:()=>c,dj:()=>d,uO:()=>u});var l,i,a,n,r=s(9567);function d(e){return e.startsWith("#")?"anchor":e.startsWith("http://")||e.startsWith("https://")||e.startsWith("mailto:")||e.startsWith("tel:")?"external":"relative"}function o(e,t){if(!t)return null;let s=e.substring(0,e.lastIndexOf("/")+1);try{let e=new URL(s,"file:///"),l=new URL(t,e),i=decodeURIComponent(l.pathname);if(i.startsWith("/")){let e=i.substring(1);if(e.length>0)return e}}catch(e){}return null}function c(e){return!e||0===e.length||e.length>2048||/[\x00-\x1f\x7f]/.test(e)?null:e}let u={...r.j,attributes:{...r.j.attributes,a:[...(null!=(a=null==(l=r.j.attributes)?void 0:l.a)?a:[]).filter(e=>"href"!==e),["href",/^(?:#|mailto:|tel:|https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/]],img:[...(null!=(n=null==(i=r.j.attributes)?void 0:i.img)?n:[]).filter(e=>"src"!==e),["src",/^(?:https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/],"alt","width","height"]}}},74385:(e,t,s)=>{"use strict";s.d(t,{I:()=>l,k:()=>i});let l="skill:installed";function i(e){window.dispatchEvent(new CustomEvent(l,{detail:{worktreeId:e}}))}},76246:(e,t,s)=>{"use strict";function l(e){return e?e.split("/").map(encodeURIComponent).join("/"):""}s.d(t,{o:()=>l})},89675:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>R});var l=s(95155),i=s(20063),a=s(12115),n=s(52619),r=s.n(n),d=s(18955),o=s(35626),c=s(48407),u=s(99648),m=s(75333),x=s(68331),h=s(50825),g=s(5118),p=s(95584);function f(e){let{changelog:t}=e,s=(0,d.c)("skills"),i=(0,p.RG)(t).trim();return 0===i.length?(0,l.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"skill-changelog-empty",children:s("detail.changelogEmpty")}):(0,l.jsxs)("div",{"data-testid":"skill-changelog",children:[(0,l.jsx)("div",{className:"prose prose-sm max-w-none dark:prose-invert break-words",children:(0,l.jsx)(g.G8,{content:i})}),(0,l.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:s("detail.mediaStripped")})]})}var j=s(34380),b=s(37381),k=s(80130);let v={status:"loading",catalog:null,skill:null,failure:null};function N(e){let{label:t,children:s,mono:i=!1}=e;return(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:t}),(0,l.jsx)("dd",{className:"mt-0.5 text-sm text-foreground ".concat(i?"break-all font-mono text-xs":"break-words"),children:s})]})}function y(e){let{title:t,children:s,testId:i}=e;return(0,l.jsxs)(c.Zp,{"data-testid":i,className:"space-y-3",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:t}),s]})}function w(e){var t;let{compatibility:s}=e,i=(0,d.c)("skills");return(0,l.jsx)("p",{className:"text-sm text-foreground","data-testid":"skill-compatibility-reason",children:i((0,p.e5)(s.messageKey),{range:s.requiredRange,currentVersion:null!=(t=s.currentVersion)?t:""})})}function A(e){let{version:t}=e,s=(0,d.c)("skills");return(0,l.jsxs)(c.Zp,{"data-testid":"skill-version-".concat(t.version),className:"space-y-3",padding:"sm",children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)("span",{className:"font-mono text-sm font-semibold text-foreground",children:t.version}),t.prerelease&&(0,l.jsx)(c.Ex,{variant:"warning",children:s("detail.prerelease")}),(0,l.jsx)(m.Xz,{status:t.compatibility.commandmate.status}),(0,l.jsx)(m.qW,{risk:t.declaredRisk})]}),(0,l.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,l.jsx)(N,{label:s("detail.publishedAt"),children:t.publishedAt}),(0,l.jsx)(N,{label:s("detail.requiredRangeLabel"),children:t.compatibility.commandmate.requiredRange}),(0,l.jsx)(N,{label:s("detail.sourceRepository"),children:t.source.repository}),(0,l.jsx)(N,{label:s("detail.sourceRef"),children:t.source.ref}),(0,l.jsx)(N,{label:s("detail.sourceCommit"),mono:!0,children:t.source.commit}),(0,l.jsx)(N,{label:s("detail.packageAsset"),mono:!0,children:t.artifact.assetName}),(0,l.jsx)(N,{label:s("detail.packageDigest"),mono:!0,children:t.artifact.sha256}),(0,l.jsx)(N,{label:s("detail.packageSize"),children:s("detail.packageBytes",{bytes:t.artifact.size})})]}),(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5",children:t.compatibility.agents.length>0?t.compatibility.agents.map(e=>(0,l.jsx)(m.uE,{agent:e},e.agent)):(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:s("compatibility.agentsUnknown")})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-xs font-medium text-muted-foreground",children:s("detail.changelogHeading")}),(0,l.jsx)("div",{className:"mt-1",children:(0,l.jsx)(f,{changelog:t.changelog})})]})]})}function I(e){var t,s,i,n,g,f,I,R,C;let{skillId:V}=e,E=(0,d.c)("skills"),[z,q]=(0,a.useState)(v),[W,U]=(0,a.useState)(0);(0,a.useEffect)(()=>{let e=new AbortController;return q(v),(0,k.Db)(V,e.signal).then(t=>{e.signal.aborted||q(t.ok?{status:"loaded",catalog:t.data.catalog,skill:t.data.skill,failure:null}:{status:"error",catalog:null,skill:null,failure:t.failure})}).catch(()=>{}),()=>e.abort()},[V,W]);let _=(0,a.useCallback)(()=>U(e=>e+1),[]),H=(0,l.jsxs)(r(),{href:"/skills",className:"inline-flex items-center gap-1 text-sm text-accent-600 hover:underline dark:text-accent-400","data-testid":"skill-detail-back",children:[(0,l.jsx)(o.A,{size:14,"aria-hidden":"true"}),E("page.backToCatalog")]});if("loading"===z.status)return(0,l.jsxs)("div",{className:"space-y-4","data-testid":"skill-detail-loading",children:[H,(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:E("state.loading")}),(0,l.jsx)(c.EA,{className:"h-40 w-full rounded-lg"})]});if("error"===z.status||!z.skill){let e=(null==(s=z.failure)?void 0:s.status)===404;return(0,l.jsxs)("div",{className:"space-y-4",children:[H,(0,l.jsxs)(c.Zp,{"data-testid":e?"skill-detail-not-found":"skill-detail-error",className:"space-y-3",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:E(e?"state.notFoundHeading":"state.errorHeading")}),(0,l.jsxs)(b.u,{tone:"danger",children:[(0,l.jsx)("p",{children:E(e?"state.notFoundNotice":"state.errorNotice")}),(0,l.jsx)("p",{className:"mt-1 break-words",children:E("state.errorCode",{code:null!=(n=null==(i=z.failure)?void 0:i.code)?n:""})})]}),!e&&(0,l.jsx)(c.$n,{variant:"secondary",size:"sm",onClick:_,"data-testid":"skill-detail-retry",children:E("state.retry")})]})]})}let O=z.skill,Z=O.compatibility,L=null!=(g=O.versions.find(e=>e.version===O.recommendedVersion))?g:null,S=null!=(f=null==(t=null!=L?L:O.versions[0])?void 0:t.declaredRisk)?f:null,F=O.recommendedVersion?Z&&"compatible"!==Z.status?E("detail.install.blockedIncompatible",{reason:E((0,p.e5)(Z.messageKey),{range:Z.requiredRange,currentVersion:null!=(I=Z.currentVersion)?I:""})}):null:E("detail.install.blockedNoVersion");return(0,l.jsxs)("div",{className:"space-y-4",children:[H,z.catalog&&(0,l.jsx)(x.y,{catalog:z.catalog}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("h1",{className:"text-2xl font-bold text-foreground break-words",children:O.name}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground break-words",children:O.summary}),(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[Z&&(0,l.jsx)(m.Xz,{status:Z.status}),S&&(0,l.jsx)(m.qW,{risk:S})]})]}),(0,l.jsx)(y,{title:E("detail.install.action"),testId:"skill-install-section",children:(0,l.jsx)(j.B,{skillId:O.id,version:O.recommendedVersion,blockedReason:F,agents:null!=(R=null==L?void 0:L.compatibility.agents)?R:[]})}),(0,l.jsxs)(y,{title:E("capabilities.heading"),testId:"skill-capabilities-section",children:[(0,l.jsx)("p",{className:"text-sm text-foreground break-words",children:O.summary}),(0,l.jsx)(b.u,{tone:"neutral",children:E("capabilities.unavailable")})]}),(0,l.jsxs)(y,{title:E("detail.overview"),testId:"skill-overview-section",children:[(0,l.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,l.jsx)(N,{label:E("detail.skillId"),mono:!0,children:O.id}),(0,l.jsx)(N,{label:E("detail.provider"),children:O.provider.url?(0,l.jsx)("a",{href:O.provider.url,target:"_blank",rel:"noopener noreferrer",className:"text-accent-600 hover:underline dark:text-accent-400",children:O.provider.name}):O.provider.name}),O.provider.contact&&(0,l.jsx)(N,{label:E("detail.providerContact"),children:O.provider.contact}),(0,l.jsx)(N,{label:E("detail.license"),children:O.license}),O.homepage&&(0,l.jsx)(N,{label:E("detail.homepage"),children:(0,l.jsx)("a",{href:O.homepage,target:"_blank",rel:"noopener noreferrer",className:"break-all text-accent-600 hover:underline dark:text-accent-400",children:O.homepage})}),(0,l.jsx)(N,{label:E("detail.latestVersion"),mono:!0,children:O.latest}),(0,l.jsx)(N,{label:E("detail.recommendedVersion"),mono:!0,children:null!=(C=O.recommendedVersion)?C:E("detail.recommendedVersionNone")})]}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-recommendation-reason",children:E(p.TE[O.recommendedReason])}),O.keywords.length>0&&(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-xs font-medium text-muted-foreground",children:E("detail.keywords")}),(0,l.jsx)("div",{className:"mt-1 flex flex-wrap gap-1.5",children:O.keywords.map(e=>(0,l.jsx)(c.Ex,{variant:"gray",children:e},e))})]})]}),(0,l.jsxs)(y,{title:E("compatibility.label"),testId:"skill-compatibility-section",children:[Z?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)(m.Xz,{status:Z.status}),(0,l.jsx)("span",{className:"text-sm text-muted-foreground",children:E("compatibility.requiredRange",{range:Z.requiredRange})})]}),(0,l.jsx)(w,{compatibility:Z}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:Z.currentVersion?E("compatibility.currentVersion",{version:Z.currentVersion}):E("compatibility.currentVersionUnknown")}),"unknown"===Z.status&&(0,l.jsx)(b.u,{tone:"warning","data-testid":"skill-compatibility-unknown-notice",children:E("compatibility.unverifiedNotice")})]}):(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:E("compatibility.currentVersionUnknown")}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("h3",{className:"text-sm font-medium text-foreground",children:E("compatibility.agentsHeading")}),L&&L.compatibility.agents.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5",children:L.compatibility.agents.map(e=>(0,l.jsx)(m.uE,{agent:e},e.agent))}),(0,l.jsx)("div",{className:"space-y-3",children:L.compatibility.agents.map(e=>(0,l.jsx)(h.m,{agent:e},e.agent))})]}):(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:E("compatibility.agentsUnknown")}),(0,l.jsx)(b.u,{tone:"neutral",children:E("compatibility.agentsNotice")})]})]}),(0,l.jsxs)(y,{title:E("risk.declaredHeading"),testId:"skill-risk-section",children:[S?(0,l.jsx)(m.qW,{risk:S}):null,(0,l.jsx)(b.u,{tone:"neutral",children:E("risk.declaredNotice")}),"high"===S&&(0,l.jsx)(b.u,{tone:"danger","data-testid":"skill-high-risk-warning",children:E("risk.highWarning")}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-sm font-medium text-foreground",children:E("risk.computedHeading")}),(0,l.jsx)("p",{className:"mt-1 text-sm text-muted-foreground","data-testid":"skill-computed-risk-unavailable",children:E("risk.computedUnavailable")})]})]}),(0,l.jsxs)(y,{title:E("permissions.heading"),testId:"skill-permissions-section",children:[(0,l.jsx)(b.u,{tone:"warning","data-testid":"skill-permission-declaration-notice",children:E((0,p.e5)(u.Ms))}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:E("permissions.unavailable")})]}),(0,l.jsx)(y,{title:E("requirements.heading"),testId:"skill-requirements-section",children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:E("requirements.unavailable")})}),(0,l.jsx)(y,{title:E("contents.heading"),testId:"skill-contents-section",children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:E("contents.unavailable")})}),(0,l.jsxs)("section",{className:"space-y-3","data-testid":"skill-versions-section",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:E("detail.versionsHeading")}),0===O.versions.length?(0,l.jsx)(c.Zp,{children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:E("detail.versionsEmpty")})}):O.versions.map(e=>(0,l.jsx)(A,{version:e},e.version))]})]})}function R(){let e=(0,i.useParams)(),t="string"==typeof e.skillId?e.skillId:"";return(0,l.jsx)("div",{className:"container-custom py-8 overflow-auto h-full",children:(0,l.jsx)(I,{skillId:t})})}},99027:(e,t,s)=>{Promise.resolve().then(s.bind(s,89675))}},e=>{e.O(0,[6481,6809,4909,2770,2619,3662,934,4541,8407,5371,2751,6288,8441,1255,7358],()=>e(e.s=99027)),_N_E=e.O()}]);