commandmate 0.38.1 → 0.39.1

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 (792) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +463 -570
  3. package/.next/app-path-routes-manifest.json +31 -41
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/react-loadable-manifest.json +5 -5
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +0 -23
  9. package/.next/server/app/_not-found/page.js +1 -1
  10. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/app/release-notes/route.js +1 -0
  15. package/.next/server/app/api/app/release-notes/route.js.nft.json +1 -0
  16. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -0
  17. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/app/update-check/route.js +1 -1
  19. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/capabilities/route.js +1 -1
  24. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  33. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  34. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/hooks/claude-done/route.js +1 -1
  36. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  37. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  39. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  40. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  45. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  48. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  49. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/relays/route.js +1 -1
  51. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  52. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  56. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  57. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/repositories/clone/route.js +1 -1
  59. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  60. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/repositories/restore/route.js +1 -1
  63. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  64. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/repositories/route.js +1 -1
  66. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  67. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/repositories/scan/route.js +1 -1
  69. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  70. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/sync/route.js +1 -1
  72. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  73. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  76. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  77. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  88. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  92. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/verification/runs/route.js +1 -1
  94. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  97. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  100. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  103. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  112. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  169. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  172. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  175. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  199. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  202. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  228. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  238. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  245. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  254. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  257. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  259. package/.next/server/app/api/worktrees/route.js +1 -1
  260. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  261. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/login/page.js +2 -2
  263. package/.next/server/app/login/page.js.nft.json +1 -1
  264. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  265. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  266. package/.next/server/app/more/page.js +2 -2
  267. package/.next/server/app/more/page.js.nft.json +1 -1
  268. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  269. package/.next/server/app/offline/page.js +1 -1
  270. package/.next/server/app/offline/page.js.nft.json +1 -1
  271. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  272. package/.next/server/app/page.js +2 -2
  273. package/.next/server/app/page.js.nft.json +1 -1
  274. package/.next/server/app/page_client-reference-manifest.js +1 -1
  275. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/repositories/page.js +2 -2
  277. package/.next/server/app/repositories/page.js.nft.json +1 -1
  278. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  279. package/.next/server/app/review/page.js +1 -1
  280. package/.next/server/app/review/page.js.nft.json +1 -1
  281. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  282. package/.next/server/app/sessions/page.js +2 -2
  283. package/.next/server/app/sessions/page.js.nft.json +1 -1
  284. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  285. package/.next/server/app/skills/[skillId]/page.js +2 -2
  286. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  287. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  288. package/.next/server/app/skills/installed/page.js +2 -2
  289. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  290. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  291. package/.next/server/app/skills/page.js +2 -2
  292. package/.next/server/app/skills/page.js.nft.json +1 -1
  293. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  294. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  295. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  296. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  297. package/.next/server/app/worktrees/[id]/page.js +11 -11
  298. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  299. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  300. package/.next/server/app/worktrees/[id]/terminal/page.js +1 -1
  301. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  302. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  303. package/.next/server/app-paths-manifest.json +31 -41
  304. package/.next/server/chunks/1210.js +1 -1
  305. package/.next/server/chunks/1674.js +15 -0
  306. package/.next/server/chunks/1825.js +1 -1
  307. package/.next/server/chunks/2119.js +1 -1
  308. package/.next/server/chunks/2445.js +1 -1
  309. package/.next/server/chunks/3241.js +1 -1
  310. package/.next/server/chunks/3323.js +1 -1
  311. package/.next/server/chunks/3543.js +1 -1
  312. package/.next/server/chunks/3945.js +1 -1
  313. package/.next/server/chunks/4443.js +1 -1
  314. package/.next/server/chunks/4802.js +1 -1
  315. package/.next/server/chunks/5164.js +1 -1
  316. package/.next/server/chunks/5354.js +1 -1
  317. package/.next/server/chunks/5742.js +1 -0
  318. package/.next/server/chunks/6092.js +14 -0
  319. package/.next/server/chunks/6130.js +1 -1
  320. package/.next/server/chunks/6159.js +1 -1
  321. package/.next/server/chunks/6401.js +1 -1
  322. package/.next/server/chunks/650.js +1 -1
  323. package/.next/server/chunks/6661.js +1 -1
  324. package/.next/server/chunks/7075.js +1 -1
  325. package/.next/server/chunks/8581.js +60 -0
  326. package/.next/server/chunks/8728.js +2 -2
  327. package/.next/server/chunks/8807.js +184 -323
  328. package/.next/server/chunks/8918.js +1 -1
  329. package/.next/server/chunks/9130.js +3 -3
  330. package/.next/server/chunks/9584.js +1 -1
  331. package/.next/server/chunks/9627.js +1 -1
  332. package/.next/server/chunks/{1886.js → 9731.js} +3 -3
  333. package/.next/server/chunks/{6677.js → 9882.js} +1 -1
  334. package/.next/server/middleware-build-manifest.js +1 -1
  335. package/.next/server/middleware-manifest.json +5 -5
  336. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  337. package/.next/server/pages/500.html +1 -1
  338. package/.next/server/server-reference-manifest.json +1 -1
  339. package/.next/static/7Ge9-hsqlip_Z6bhEnVkd/_buildManifest.js +1 -0
  340. package/.next/static/chunks/1642-fb2e176aaadbd137.js +1 -0
  341. package/.next/static/chunks/{2053-ce3fe896ad45e50f.js → 2053-611dd27d42721b79.js} +1 -1
  342. package/.next/static/chunks/2318-af00abceb9b8eab5.js +1 -0
  343. package/.next/static/chunks/{2407-be448eda70bc19b6.js → 2407-9ac8b6188ddbb119.js} +1 -1
  344. package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
  345. package/.next/static/chunks/344-6f9fc1f38f01a839.js +1 -0
  346. package/.next/static/chunks/3778-56f41fc2cecb8c43.js +1 -0
  347. package/.next/static/chunks/{3922.9c1ec01fff819c88.js → 3922.8e79fc89f593280b.js} +1 -1
  348. package/.next/static/chunks/4768-0ad5eb716bed5de9.js +1 -0
  349. package/.next/static/chunks/5449-550bd273dccc3ae4.js +1 -0
  350. package/.next/static/chunks/{3313.53f7ff985c0c8852.js → 5694.dda65070757534df.js} +1 -1
  351. package/.next/static/chunks/6192-a67df090838b9aad.js +1 -0
  352. package/.next/static/chunks/6322-f1b30ed0ee43518f.js +1 -0
  353. package/.next/static/chunks/6966-bb854d1145783a64.js +1 -0
  354. package/.next/static/chunks/{7485.52361bc061cc663a.js → 7485.442b21101fca7257.js} +1 -1
  355. package/.next/static/chunks/8165-d3b7c8a7aa776bc7.js +1 -0
  356. package/.next/static/chunks/8283-26ad31a4670ea52d.js +1 -0
  357. package/.next/static/chunks/8318-01e7d1e5ad0a15a3.js +1 -0
  358. package/.next/static/chunks/8407-9a72e6f07c5d5458.js +1 -0
  359. package/.next/static/chunks/8606-e893c1dab6fb81bc.js +1 -0
  360. package/.next/static/chunks/9619-7bc0e9524f0773b5.js +1 -0
  361. package/.next/static/chunks/982-edf98d9d54c5ce9b.js +1 -0
  362. package/.next/static/chunks/app/api/agents/update/route-70779af8b4c8259a.js +1 -0
  363. package/.next/static/chunks/app/api/agents/versions/route-70779af8b4c8259a.js +1 -0
  364. package/.next/static/chunks/app/api/app/release-notes/route-70779af8b4c8259a.js +1 -0
  365. package/.next/static/chunks/app/api/app/update/route-70779af8b4c8259a.js +1 -0
  366. package/.next/static/chunks/app/api/app/update-check/route-70779af8b4c8259a.js +1 -0
  367. package/.next/static/chunks/app/api/auth/login/route-70779af8b4c8259a.js +1 -0
  368. package/.next/static/chunks/app/api/auth/logout/route-70779af8b4c8259a.js +1 -0
  369. package/.next/static/chunks/app/api/auth/status/route-70779af8b4c8259a.js +1 -0
  370. package/.next/static/chunks/app/api/capabilities/route-70779af8b4c8259a.js +1 -0
  371. package/.next/static/chunks/app/api/daily-summary/route-70779af8b4c8259a.js +1 -0
  372. package/.next/static/chunks/app/api/daily-summary/status/route-70779af8b4c8259a.js +1 -0
  373. package/.next/static/chunks/app/api/external-apps/[id]/health/route-70779af8b4c8259a.js +1 -0
  374. package/.next/static/chunks/app/api/external-apps/[id]/route-70779af8b4c8259a.js +1 -0
  375. package/.next/static/chunks/app/api/external-apps/route-70779af8b4c8259a.js +1 -0
  376. package/.next/static/chunks/app/api/fs/browse/route-70779af8b4c8259a.js +1 -0
  377. package/.next/static/chunks/app/api/fs/recent-paths/route-70779af8b4c8259a.js +1 -0
  378. package/.next/static/chunks/app/api/hooks/agent-event/route-70779af8b4c8259a.js +1 -0
  379. package/.next/static/chunks/app/api/hooks/claude-done/route-70779af8b4c8259a.js +1 -0
  380. package/.next/static/chunks/app/api/hooks/permission-request/route-70779af8b4c8259a.js +1 -0
  381. package/.next/static/chunks/app/api/metrics/vibe/route-70779af8b4c8259a.js +1 -0
  382. package/.next/static/chunks/app/api/ollama/models/route-70779af8b4c8259a.js +1 -0
  383. package/.next/static/chunks/app/api/push/escalation/route-70779af8b4c8259a.js +1 -0
  384. package/.next/static/chunks/app/api/push/subscriptions/route-70779af8b4c8259a.js +1 -0
  385. package/.next/static/chunks/app/api/push/vapid/route-70779af8b4c8259a.js +1 -0
  386. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-70779af8b4c8259a.js +1 -0
  387. package/.next/static/chunks/app/api/relays/route-70779af8b4c8259a.js +1 -0
  388. package/.next/static/chunks/app/api/remote/pair/route-70779af8b4c8259a.js +1 -0
  389. package/.next/static/chunks/app/api/repositories/[id]/route-70779af8b4c8259a.js +1 -0
  390. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-70779af8b4c8259a.js +1 -0
  391. package/.next/static/chunks/app/api/repositories/clone/route-70779af8b4c8259a.js +1 -0
  392. package/.next/static/chunks/app/api/repositories/excluded/route-70779af8b4c8259a.js +1 -0
  393. package/.next/static/chunks/app/api/repositories/restore/route-70779af8b4c8259a.js +1 -0
  394. package/.next/static/chunks/app/api/repositories/route-70779af8b4c8259a.js +1 -0
  395. package/.next/static/chunks/app/api/repositories/scan/route-70779af8b4c8259a.js +1 -0
  396. package/.next/static/chunks/app/api/repositories/sync/route-70779af8b4c8259a.js +1 -0
  397. package/.next/static/chunks/app/api/repositories/validate-path/route-70779af8b4c8259a.js +1 -0
  398. package/.next/static/chunks/app/api/settings/default-agents/route-70779af8b4c8259a.js +1 -0
  399. package/.next/static/chunks/app/api/settings/default-surface-mode/route-70779af8b4c8259a.js +1 -0
  400. package/.next/static/chunks/app/api/sidebar/group-order/route-70779af8b4c8259a.js +1 -0
  401. package/.next/static/chunks/app/api/skills/[id]/route-70779af8b4c8259a.js +1 -0
  402. package/.next/static/chunks/app/api/skills/installations/route-70779af8b4c8259a.js +1 -0
  403. package/.next/static/chunks/app/api/skills/operations/route-70779af8b4c8259a.js +1 -0
  404. package/.next/static/chunks/app/api/skills/reindex/route-70779af8b4c8259a.js +1 -0
  405. package/.next/static/chunks/app/api/skills/route-70779af8b4c8259a.js +1 -0
  406. package/.next/static/chunks/app/api/slash-commands/route-70779af8b4c8259a.js +1 -0
  407. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-70779af8b4c8259a.js +1 -0
  408. package/.next/static/chunks/app/api/tasks/[taskId]/route-70779af8b4c8259a.js +1 -0
  409. package/.next/static/chunks/app/api/templates/[id]/route-70779af8b4c8259a.js +1 -0
  410. package/.next/static/chunks/app/api/templates/route-70779af8b4c8259a.js +1 -0
  411. package/.next/static/chunks/app/api/verification/runs/[runId]/route-70779af8b4c8259a.js +1 -0
  412. package/.next/static/chunks/app/api/verification/runs/route-70779af8b4c8259a.js +1 -0
  413. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-70779af8b4c8259a.js +1 -0
  414. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-70779af8b4c8259a.js +1 -0
  415. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-70779af8b4c8259a.js +1 -0
  416. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-70779af8b4c8259a.js +1 -0
  417. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-70779af8b4c8259a.js +1 -0
  418. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-70779af8b4c8259a.js +1 -0
  419. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-70779af8b4c8259a.js +1 -0
  420. package/.next/static/chunks/app/api/worktrees/[id]/env/route-70779af8b4c8259a.js +1 -0
  421. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-70779af8b4c8259a.js +1 -0
  422. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-70779af8b4c8259a.js +1 -0
  423. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-70779af8b4c8259a.js +1 -0
  424. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-70779af8b4c8259a.js +1 -0
  425. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-70779af8b4c8259a.js +1 -0
  426. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-70779af8b4c8259a.js +1 -0
  427. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-70779af8b4c8259a.js +1 -0
  428. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-70779af8b4c8259a.js +1 -0
  429. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-70779af8b4c8259a.js +1 -0
  430. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-70779af8b4c8259a.js +1 -0
  431. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-70779af8b4c8259a.js +1 -0
  432. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-70779af8b4c8259a.js +1 -0
  433. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-70779af8b4c8259a.js +1 -0
  434. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-70779af8b4c8259a.js +1 -0
  435. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-70779af8b4c8259a.js +1 -0
  436. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-70779af8b4c8259a.js +1 -0
  437. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-70779af8b4c8259a.js +1 -0
  438. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-70779af8b4c8259a.js +1 -0
  439. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-70779af8b4c8259a.js +1 -0
  440. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-70779af8b4c8259a.js +1 -0
  441. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-70779af8b4c8259a.js +1 -0
  442. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-70779af8b4c8259a.js +1 -0
  443. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-70779af8b4c8259a.js +1 -0
  444. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-70779af8b4c8259a.js +1 -0
  445. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-70779af8b4c8259a.js +1 -0
  446. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-70779af8b4c8259a.js +1 -0
  447. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-70779af8b4c8259a.js +1 -0
  448. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-70779af8b4c8259a.js +1 -0
  449. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-70779af8b4c8259a.js +1 -0
  450. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-70779af8b4c8259a.js +1 -0
  451. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-70779af8b4c8259a.js +1 -0
  452. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-70779af8b4c8259a.js +1 -0
  453. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-70779af8b4c8259a.js +1 -0
  454. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-70779af8b4c8259a.js +1 -0
  455. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-70779af8b4c8259a.js +1 -0
  456. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-70779af8b4c8259a.js +1 -0
  457. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-70779af8b4c8259a.js +1 -0
  458. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-70779af8b4c8259a.js +1 -0
  459. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-70779af8b4c8259a.js +1 -0
  460. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-70779af8b4c8259a.js +1 -0
  461. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-70779af8b4c8259a.js +1 -0
  462. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-70779af8b4c8259a.js +1 -0
  463. package/.next/static/chunks/app/api/worktrees/[id]/route-70779af8b4c8259a.js +1 -0
  464. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-70779af8b4c8259a.js +1 -0
  465. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-70779af8b4c8259a.js +1 -0
  466. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-70779af8b4c8259a.js +1 -0
  467. package/.next/static/chunks/app/api/worktrees/[id]/search/route-70779af8b4c8259a.js +1 -0
  468. package/.next/static/chunks/app/api/worktrees/[id]/send/route-70779af8b4c8259a.js +1 -0
  469. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-70779af8b4c8259a.js +1 -0
  470. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-70779af8b4c8259a.js +1 -0
  471. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-70779af8b4c8259a.js +1 -0
  472. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-70779af8b4c8259a.js +1 -0
  473. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-70779af8b4c8259a.js +1 -0
  474. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-70779af8b4c8259a.js +1 -0
  475. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-70779af8b4c8259a.js +1 -0
  476. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-70779af8b4c8259a.js +1 -0
  477. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-70779af8b4c8259a.js +1 -0
  478. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-70779af8b4c8259a.js +1 -0
  479. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-70779af8b4c8259a.js +1 -0
  480. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-70779af8b4c8259a.js +1 -0
  481. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-70779af8b4c8259a.js +1 -0
  482. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-70779af8b4c8259a.js +1 -0
  483. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-70779af8b4c8259a.js +1 -0
  484. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-70779af8b4c8259a.js +1 -0
  485. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-70779af8b4c8259a.js +1 -0
  486. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-70779af8b4c8259a.js +1 -0
  487. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-70779af8b4c8259a.js +1 -0
  488. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-70779af8b4c8259a.js +1 -0
  489. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-70779af8b4c8259a.js +1 -0
  490. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-70779af8b4c8259a.js +1 -0
  491. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-70779af8b4c8259a.js +1 -0
  492. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-70779af8b4c8259a.js +1 -0
  493. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-70779af8b4c8259a.js +1 -0
  494. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-70779af8b4c8259a.js +1 -0
  495. package/.next/static/chunks/app/api/worktrees/route-70779af8b4c8259a.js +1 -0
  496. package/.next/static/chunks/app/{error-c1dc1038d0a84a33.js → error-d9a7067074e7f460.js} +1 -1
  497. package/.next/static/chunks/app/layout-542d075e9d7cc541.js +1 -0
  498. package/.next/static/chunks/app/loading-db675c84e696591f.js +1 -0
  499. package/.next/static/chunks/app/login/{page-af7241bb4c4a8e59.js → page-38d401f553693b03.js} +1 -1
  500. package/.next/static/chunks/app/manifest.webmanifest/route-70779af8b4c8259a.js +1 -0
  501. package/.next/static/chunks/app/more/loading-db675c84e696591f.js +1 -0
  502. package/.next/static/chunks/app/more/page-30057cf1e0762ad2.js +1 -0
  503. package/.next/static/chunks/app/page-8483ba400af011f5.js +1 -0
  504. package/.next/static/chunks/app/proxy/[...path]/route-70779af8b4c8259a.js +1 -0
  505. package/.next/static/chunks/app/repositories/loading-db675c84e696591f.js +1 -0
  506. package/.next/static/chunks/app/repositories/page-6f7511f4ac8449e2.js +1 -0
  507. package/.next/static/chunks/app/review/loading-db675c84e696591f.js +1 -0
  508. package/.next/static/chunks/app/review/page-8ed49e2edcc7667b.js +1 -0
  509. package/.next/static/chunks/app/sessions/loading-db675c84e696591f.js +1 -0
  510. package/.next/static/chunks/app/sessions/page-56f6a2466dd0479d.js +1 -0
  511. package/.next/static/chunks/app/skills/[skillId]/page-ab7e432b69fccb3b.js +1 -0
  512. package/.next/static/chunks/app/skills/installed/page-e000102a01a42c98.js +1 -0
  513. package/.next/static/chunks/app/skills/page-56b4fa11223e0cbd.js +1 -0
  514. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-f3361237420719b4.js → page-5445205c8dd80109.js} +1 -1
  515. package/.next/static/chunks/app/worktrees/[id]/layout-70779af8b4c8259a.js +1 -0
  516. package/.next/static/chunks/app/worktrees/[id]/loading-db675c84e696591f.js +1 -0
  517. package/.next/static/chunks/app/worktrees/[id]/page-760408096ad697b4.js +1 -0
  518. package/.next/static/chunks/app/worktrees/[id]/terminal/page-373ea37b16d930c7.js +1 -0
  519. package/.next/static/chunks/{webpack-0281b30457d46ebc.js → webpack-7e5907979c182510.js} +1 -1
  520. package/.next/static/css/b4aaf81d10efdd00.css +1 -0
  521. package/.next/trace +13 -14
  522. package/.next/types/app/api/{assistant/tools → app/release-notes}/route.ts +3 -3
  523. package/.next/types/routes.d.ts +3 -13
  524. package/.next/types/validator.ts +9 -99
  525. package/dist/cli/commands/wait.d.ts +45 -0
  526. package/dist/cli/commands/wait.d.ts.map +1 -1
  527. package/dist/cli/commands/wait.js +172 -3
  528. package/dist/server/locales/en/worktree.json +20 -4
  529. package/dist/server/locales/ja/worktree.json +20 -4
  530. package/dist/server/src/config/activity-bar-config.js +3 -1
  531. package/dist/server/src/lib/cli-tools/copilot.js +244 -11
  532. package/dist/server/src/lib/db/db.js +3 -32
  533. package/dist/server/src/lib/db/worktree-todo-db.js +1 -2
  534. package/dist/server/src/lib/detection/cli-patterns.js +39 -2
  535. package/dist/server/src/lib/detection/tools/codex/prompt.js +15 -1
  536. package/dist/server/src/lib/hooks/agent-event-types.js +19 -1
  537. package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +65 -4
  538. package/dist/server/src/lib/hooks/sources/antigravity/source.js +32 -3
  539. package/dist/server/src/lib/hooks/sources/claude/source.js +5 -0
  540. package/dist/server/src/lib/hooks/sources/codex/source.js +2 -0
  541. package/dist/server/src/lib/hooks/sources/command-code/source.js +2 -0
  542. package/dist/server/src/lib/hooks/sources/copilot/source.js +3 -0
  543. package/dist/server/src/lib/hooks/sources/gemini/source.js +2 -0
  544. package/dist/server/src/lib/hooks/sources/legacy-relay.js +2 -0
  545. package/dist/server/src/lib/hooks/sources/opencode/source.js +2 -0
  546. package/dist/server/src/lib/session/current-output-builder.js +3 -1
  547. package/dist/server/src/lib/session/send-user-message.js +112 -17
  548. package/dist/server/src/lib/verification/verification-reconciler.js +2 -2
  549. package/package.json +5 -3
  550. package/public/sw.js +5 -5
  551. package/release-notes/0.39.0.json +94 -0
  552. package/release-notes/0.39.1.json +29 -0
  553. package/.next/server/app/api/assistant/conversation/route.js +0 -1
  554. package/.next/server/app/api/assistant/conversation/route.js.nft.json +0 -1
  555. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +0 -1
  556. package/.next/server/app/api/assistant/current-output/route.js +0 -1
  557. package/.next/server/app/api/assistant/current-output/route.js.nft.json +0 -1
  558. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +0 -1
  559. package/.next/server/app/api/assistant/messages/route.js +0 -1
  560. package/.next/server/app/api/assistant/messages/route.js.nft.json +0 -1
  561. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +0 -1
  562. package/.next/server/app/api/assistant/session/route.js +0 -1
  563. package/.next/server/app/api/assistant/session/route.js.nft.json +0 -1
  564. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +0 -1
  565. package/.next/server/app/api/assistant/start/route.js +0 -32
  566. package/.next/server/app/api/assistant/start/route.js.nft.json +0 -1
  567. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +0 -1
  568. package/.next/server/app/api/assistant/terminal/route.js +0 -34
  569. package/.next/server/app/api/assistant/terminal/route.js.nft.json +0 -1
  570. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +0 -1
  571. package/.next/server/app/api/assistant/tools/route.js +0 -1
  572. package/.next/server/app/api/assistant/tools/route.js.nft.json +0 -1
  573. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +0 -1
  574. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +0 -1
  575. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +0 -1
  576. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +0 -1
  577. package/.next/server/app/api/repositories/[id]/todos/route.js +0 -1
  578. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +0 -1
  579. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +0 -1
  580. package/.next/server/app/api/todos/route.js +0 -1
  581. package/.next/server/app/api/todos/route.js.nft.json +0 -1
  582. package/.next/server/app/api/todos/route_client-reference-manifest.js +0 -1
  583. package/.next/server/app/chat/page.js +0 -2
  584. package/.next/server/app/chat/page.js.nft.json +0 -1
  585. package/.next/server/app/chat/page_client-reference-manifest.js +0 -1
  586. package/.next/server/chunks/1366.js +0 -15
  587. package/.next/server/chunks/1467.js +0 -48
  588. package/.next/server/chunks/1707.js +0 -14
  589. package/.next/server/chunks/180.js +0 -1
  590. package/.next/server/chunks/3123.js +0 -1
  591. package/.next/server/chunks/3708.js +0 -1
  592. package/.next/server/chunks/5364.js +0 -1
  593. package/.next/server/chunks/6015.js +0 -1
  594. package/.next/server/chunks/8118.js +0 -1
  595. package/.next/server/chunks/8554.js +0 -1
  596. package/.next/server/chunks/9123.js +0 -13
  597. package/.next/static/DryXJ1-iHfWxfrHkkWVy8/_buildManifest.js +0 -1
  598. package/.next/static/chunks/3160-79d24ca264a528b9.js +0 -1
  599. package/.next/static/chunks/4322-59a7dbd77a7763cc.js +0 -1
  600. package/.next/static/chunks/4388-a778968d9c4e9327.js +0 -1
  601. package/.next/static/chunks/4718-56ebb6e55073ed5e.js +0 -1
  602. package/.next/static/chunks/4949-fa93029d6e05db0d.js +0 -1
  603. package/.next/static/chunks/5520-8bde9501846ae660.js +0 -1
  604. package/.next/static/chunks/5694-498765336d0b8c2b.js +0 -1
  605. package/.next/static/chunks/6022-d2d7bd9373ff3ae9.js +0 -1
  606. package/.next/static/chunks/6402-d91e099c3f2d78f4.js +0 -1
  607. package/.next/static/chunks/6983-3ed2099251793bdf.js +0 -1
  608. package/.next/static/chunks/790-d8e6acd26e03679c.js +0 -1
  609. package/.next/static/chunks/8019-cbf130d0e6334d2d.js +0 -1
  610. package/.next/static/chunks/934-a37509667baa86ee.js +0 -1
  611. package/.next/static/chunks/9948-d139e3e5dbecaf73.js +0 -1
  612. package/.next/static/chunks/998-292ebcd30f329eb1.js +0 -1
  613. package/.next/static/chunks/app/api/agents/update/route-c4d2d5016c5f2a0a.js +0 -1
  614. package/.next/static/chunks/app/api/agents/versions/route-c4d2d5016c5f2a0a.js +0 -1
  615. package/.next/static/chunks/app/api/app/update/route-c4d2d5016c5f2a0a.js +0 -1
  616. package/.next/static/chunks/app/api/app/update-check/route-c4d2d5016c5f2a0a.js +0 -1
  617. package/.next/static/chunks/app/api/assistant/conversation/route-c4d2d5016c5f2a0a.js +0 -1
  618. package/.next/static/chunks/app/api/assistant/current-output/route-c4d2d5016c5f2a0a.js +0 -1
  619. package/.next/static/chunks/app/api/assistant/messages/route-c4d2d5016c5f2a0a.js +0 -1
  620. package/.next/static/chunks/app/api/assistant/session/route-c4d2d5016c5f2a0a.js +0 -1
  621. package/.next/static/chunks/app/api/assistant/start/route-c4d2d5016c5f2a0a.js +0 -1
  622. package/.next/static/chunks/app/api/assistant/terminal/route-c4d2d5016c5f2a0a.js +0 -1
  623. package/.next/static/chunks/app/api/assistant/tools/route-c4d2d5016c5f2a0a.js +0 -1
  624. package/.next/static/chunks/app/api/auth/login/route-c4d2d5016c5f2a0a.js +0 -1
  625. package/.next/static/chunks/app/api/auth/logout/route-c4d2d5016c5f2a0a.js +0 -1
  626. package/.next/static/chunks/app/api/auth/status/route-c4d2d5016c5f2a0a.js +0 -1
  627. package/.next/static/chunks/app/api/capabilities/route-c4d2d5016c5f2a0a.js +0 -1
  628. package/.next/static/chunks/app/api/daily-summary/route-c4d2d5016c5f2a0a.js +0 -1
  629. package/.next/static/chunks/app/api/daily-summary/status/route-c4d2d5016c5f2a0a.js +0 -1
  630. package/.next/static/chunks/app/api/external-apps/[id]/health/route-c4d2d5016c5f2a0a.js +0 -1
  631. package/.next/static/chunks/app/api/external-apps/[id]/route-c4d2d5016c5f2a0a.js +0 -1
  632. package/.next/static/chunks/app/api/external-apps/route-c4d2d5016c5f2a0a.js +0 -1
  633. package/.next/static/chunks/app/api/fs/browse/route-c4d2d5016c5f2a0a.js +0 -1
  634. package/.next/static/chunks/app/api/fs/recent-paths/route-c4d2d5016c5f2a0a.js +0 -1
  635. package/.next/static/chunks/app/api/hooks/agent-event/route-c4d2d5016c5f2a0a.js +0 -1
  636. package/.next/static/chunks/app/api/hooks/claude-done/route-c4d2d5016c5f2a0a.js +0 -1
  637. package/.next/static/chunks/app/api/hooks/permission-request/route-c4d2d5016c5f2a0a.js +0 -1
  638. package/.next/static/chunks/app/api/metrics/vibe/route-c4d2d5016c5f2a0a.js +0 -1
  639. package/.next/static/chunks/app/api/ollama/models/route-c4d2d5016c5f2a0a.js +0 -1
  640. package/.next/static/chunks/app/api/push/escalation/route-c4d2d5016c5f2a0a.js +0 -1
  641. package/.next/static/chunks/app/api/push/subscriptions/route-c4d2d5016c5f2a0a.js +0 -1
  642. package/.next/static/chunks/app/api/push/vapid/route-c4d2d5016c5f2a0a.js +0 -1
  643. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
  644. package/.next/static/chunks/app/api/relays/route-c4d2d5016c5f2a0a.js +0 -1
  645. package/.next/static/chunks/app/api/remote/pair/route-c4d2d5016c5f2a0a.js +0 -1
  646. package/.next/static/chunks/app/api/repositories/[id]/route-c4d2d5016c5f2a0a.js +0 -1
  647. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-c4d2d5016c5f2a0a.js +0 -1
  648. package/.next/static/chunks/app/api/repositories/[id]/todos/route-c4d2d5016c5f2a0a.js +0 -1
  649. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-c4d2d5016c5f2a0a.js +0 -1
  650. package/.next/static/chunks/app/api/repositories/clone/route-c4d2d5016c5f2a0a.js +0 -1
  651. package/.next/static/chunks/app/api/repositories/excluded/route-c4d2d5016c5f2a0a.js +0 -1
  652. package/.next/static/chunks/app/api/repositories/restore/route-c4d2d5016c5f2a0a.js +0 -1
  653. package/.next/static/chunks/app/api/repositories/route-c4d2d5016c5f2a0a.js +0 -1
  654. package/.next/static/chunks/app/api/repositories/scan/route-c4d2d5016c5f2a0a.js +0 -1
  655. package/.next/static/chunks/app/api/repositories/sync/route-c4d2d5016c5f2a0a.js +0 -1
  656. package/.next/static/chunks/app/api/repositories/validate-path/route-c4d2d5016c5f2a0a.js +0 -1
  657. package/.next/static/chunks/app/api/settings/default-agents/route-c4d2d5016c5f2a0a.js +0 -1
  658. package/.next/static/chunks/app/api/settings/default-surface-mode/route-c4d2d5016c5f2a0a.js +0 -1
  659. package/.next/static/chunks/app/api/sidebar/group-order/route-c4d2d5016c5f2a0a.js +0 -1
  660. package/.next/static/chunks/app/api/skills/[id]/route-c4d2d5016c5f2a0a.js +0 -1
  661. package/.next/static/chunks/app/api/skills/installations/route-c4d2d5016c5f2a0a.js +0 -1
  662. package/.next/static/chunks/app/api/skills/operations/route-c4d2d5016c5f2a0a.js +0 -1
  663. package/.next/static/chunks/app/api/skills/reindex/route-c4d2d5016c5f2a0a.js +0 -1
  664. package/.next/static/chunks/app/api/skills/route-c4d2d5016c5f2a0a.js +0 -1
  665. package/.next/static/chunks/app/api/slash-commands/route-c4d2d5016c5f2a0a.js +0 -1
  666. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
  667. package/.next/static/chunks/app/api/tasks/[taskId]/route-c4d2d5016c5f2a0a.js +0 -1
  668. package/.next/static/chunks/app/api/templates/[id]/route-c4d2d5016c5f2a0a.js +0 -1
  669. package/.next/static/chunks/app/api/templates/route-c4d2d5016c5f2a0a.js +0 -1
  670. package/.next/static/chunks/app/api/todos/route-c4d2d5016c5f2a0a.js +0 -1
  671. package/.next/static/chunks/app/api/verification/runs/[runId]/route-c4d2d5016c5f2a0a.js +0 -1
  672. package/.next/static/chunks/app/api/verification/runs/route-c4d2d5016c5f2a0a.js +0 -1
  673. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-c4d2d5016c5f2a0a.js +0 -1
  674. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-c4d2d5016c5f2a0a.js +0 -1
  675. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-c4d2d5016c5f2a0a.js +0 -1
  676. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-c4d2d5016c5f2a0a.js +0 -1
  677. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-c4d2d5016c5f2a0a.js +0 -1
  678. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-c4d2d5016c5f2a0a.js +0 -1
  679. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-c4d2d5016c5f2a0a.js +0 -1
  680. package/.next/static/chunks/app/api/worktrees/[id]/env/route-c4d2d5016c5f2a0a.js +0 -1
  681. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-c4d2d5016c5f2a0a.js +0 -1
  682. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-c4d2d5016c5f2a0a.js +0 -1
  683. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
  684. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-c4d2d5016c5f2a0a.js +0 -1
  685. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-c4d2d5016c5f2a0a.js +0 -1
  686. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-c4d2d5016c5f2a0a.js +0 -1
  687. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-c4d2d5016c5f2a0a.js +0 -1
  688. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-c4d2d5016c5f2a0a.js +0 -1
  689. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-c4d2d5016c5f2a0a.js +0 -1
  690. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-c4d2d5016c5f2a0a.js +0 -1
  691. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-c4d2d5016c5f2a0a.js +0 -1
  692. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-c4d2d5016c5f2a0a.js +0 -1
  693. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-c4d2d5016c5f2a0a.js +0 -1
  694. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-c4d2d5016c5f2a0a.js +0 -1
  695. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-c4d2d5016c5f2a0a.js +0 -1
  696. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-c4d2d5016c5f2a0a.js +0 -1
  697. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-c4d2d5016c5f2a0a.js +0 -1
  698. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-c4d2d5016c5f2a0a.js +0 -1
  699. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-c4d2d5016c5f2a0a.js +0 -1
  700. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-c4d2d5016c5f2a0a.js +0 -1
  701. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-c4d2d5016c5f2a0a.js +0 -1
  702. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-c4d2d5016c5f2a0a.js +0 -1
  703. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-c4d2d5016c5f2a0a.js +0 -1
  704. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-c4d2d5016c5f2a0a.js +0 -1
  705. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-c4d2d5016c5f2a0a.js +0 -1
  706. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-c4d2d5016c5f2a0a.js +0 -1
  707. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-c4d2d5016c5f2a0a.js +0 -1
  708. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-c4d2d5016c5f2a0a.js +0 -1
  709. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-c4d2d5016c5f2a0a.js +0 -1
  710. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-c4d2d5016c5f2a0a.js +0 -1
  711. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-c4d2d5016c5f2a0a.js +0 -1
  712. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-c4d2d5016c5f2a0a.js +0 -1
  713. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-c4d2d5016c5f2a0a.js +0 -1
  714. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-c4d2d5016c5f2a0a.js +0 -1
  715. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-c4d2d5016c5f2a0a.js +0 -1
  716. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-c4d2d5016c5f2a0a.js +0 -1
  717. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-c4d2d5016c5f2a0a.js +0 -1
  718. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-c4d2d5016c5f2a0a.js +0 -1
  719. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-c4d2d5016c5f2a0a.js +0 -1
  720. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-c4d2d5016c5f2a0a.js +0 -1
  721. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-c4d2d5016c5f2a0a.js +0 -1
  722. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-c4d2d5016c5f2a0a.js +0 -1
  723. package/.next/static/chunks/app/api/worktrees/[id]/route-c4d2d5016c5f2a0a.js +0 -1
  724. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-c4d2d5016c5f2a0a.js +0 -1
  725. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-c4d2d5016c5f2a0a.js +0 -1
  726. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-c4d2d5016c5f2a0a.js +0 -1
  727. package/.next/static/chunks/app/api/worktrees/[id]/search/route-c4d2d5016c5f2a0a.js +0 -1
  728. package/.next/static/chunks/app/api/worktrees/[id]/send/route-c4d2d5016c5f2a0a.js +0 -1
  729. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-c4d2d5016c5f2a0a.js +0 -1
  730. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-c4d2d5016c5f2a0a.js +0 -1
  731. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-c4d2d5016c5f2a0a.js +0 -1
  732. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-c4d2d5016c5f2a0a.js +0 -1
  733. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-c4d2d5016c5f2a0a.js +0 -1
  734. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-c4d2d5016c5f2a0a.js +0 -1
  735. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-c4d2d5016c5f2a0a.js +0 -1
  736. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-c4d2d5016c5f2a0a.js +0 -1
  737. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-c4d2d5016c5f2a0a.js +0 -1
  738. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-c4d2d5016c5f2a0a.js +0 -1
  739. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-c4d2d5016c5f2a0a.js +0 -1
  740. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-c4d2d5016c5f2a0a.js +0 -1
  741. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-c4d2d5016c5f2a0a.js +0 -1
  742. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-c4d2d5016c5f2a0a.js +0 -1
  743. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-c4d2d5016c5f2a0a.js +0 -1
  744. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-c4d2d5016c5f2a0a.js +0 -1
  745. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
  746. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-c4d2d5016c5f2a0a.js +0 -1
  747. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
  748. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-c4d2d5016c5f2a0a.js +0 -1
  749. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-c4d2d5016c5f2a0a.js +0 -1
  750. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
  751. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-c4d2d5016c5f2a0a.js +0 -1
  752. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-c4d2d5016c5f2a0a.js +0 -1
  753. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-c4d2d5016c5f2a0a.js +0 -1
  754. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-c4d2d5016c5f2a0a.js +0 -1
  755. package/.next/static/chunks/app/api/worktrees/route-c4d2d5016c5f2a0a.js +0 -1
  756. package/.next/static/chunks/app/chat/loading-c58ba2c3f4363277.js +0 -1
  757. package/.next/static/chunks/app/chat/page-bfc1f5bb17bd771d.js +0 -1
  758. package/.next/static/chunks/app/layout-114dc6e93e332392.js +0 -1
  759. package/.next/static/chunks/app/loading-c58ba2c3f4363277.js +0 -1
  760. package/.next/static/chunks/app/manifest.webmanifest/route-c4d2d5016c5f2a0a.js +0 -1
  761. package/.next/static/chunks/app/more/loading-c58ba2c3f4363277.js +0 -1
  762. package/.next/static/chunks/app/more/page-400ffa825f8f150e.js +0 -1
  763. package/.next/static/chunks/app/page-a4f03c188610c6c8.js +0 -1
  764. package/.next/static/chunks/app/proxy/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
  765. package/.next/static/chunks/app/repositories/loading-c58ba2c3f4363277.js +0 -1
  766. package/.next/static/chunks/app/repositories/page-a15efb4ce1d1721e.js +0 -1
  767. package/.next/static/chunks/app/review/loading-c58ba2c3f4363277.js +0 -1
  768. package/.next/static/chunks/app/review/page-90ac618489676cbc.js +0 -1
  769. package/.next/static/chunks/app/sessions/loading-c58ba2c3f4363277.js +0 -1
  770. package/.next/static/chunks/app/sessions/page-fe42c8f6fd59b9e7.js +0 -1
  771. package/.next/static/chunks/app/skills/[skillId]/page-ce8f6fd9e4356580.js +0 -1
  772. package/.next/static/chunks/app/skills/installed/page-566dfde26d7e63ba.js +0 -1
  773. package/.next/static/chunks/app/skills/page-7859540e8092aace.js +0 -1
  774. package/.next/static/chunks/app/worktrees/[id]/layout-c4d2d5016c5f2a0a.js +0 -1
  775. package/.next/static/chunks/app/worktrees/[id]/loading-c58ba2c3f4363277.js +0 -1
  776. package/.next/static/chunks/app/worktrees/[id]/page-1eb4297af22afac8.js +0 -1
  777. package/.next/static/chunks/app/worktrees/[id]/terminal/page-2631bc5c4b0a9fb8.js +0 -1
  778. package/.next/static/css/ed092b853e52b5eb.css +0 -1
  779. package/.next/types/app/api/assistant/conversation/route.ts +0 -347
  780. package/.next/types/app/api/assistant/current-output/route.ts +0 -347
  781. package/.next/types/app/api/assistant/messages/route.ts +0 -347
  782. package/.next/types/app/api/assistant/session/route.ts +0 -347
  783. package/.next/types/app/api/assistant/start/route.ts +0 -347
  784. package/.next/types/app/api/assistant/terminal/route.ts +0 -347
  785. package/.next/types/app/api/repositories/[id]/todos/[todoId]/route.ts +0 -347
  786. package/.next/types/app/api/repositories/[id]/todos/route.ts +0 -347
  787. package/.next/types/app/api/todos/route.ts +0 -347
  788. package/.next/types/app/chat/page.ts +0 -84
  789. package/dist/server/src/lib/db/assistant-conversation-db.js +0 -428
  790. package/dist/server/src/lib/db/todo-db.js +0 -150
  791. package/dist/server/src/types/assistant.js +0 -5
  792. /package/.next/static/{DryXJ1-iHfWxfrHkkWVy8 → 7Ge9-hsqlip_Z6bhEnVkd}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8039],{18955:(e,t,n)=>{"use strict";n.d(t,{c:()=>o});var r=n(36809);function i(e,t){return(...e)=>{try{return t(...e)}catch{throw Error(void 0)}}}let o=i(0,r.c3);i(0,r.kc)},48278:(e,t,n)=>{"use strict";n.d(t,{$7:()=>l,oz:()=>i,tV:()=>o,v9:()=>c});let r="cm:chunk-reload-at";function i(e){if(null==e||"object"!=typeof e)return!1;let{name:t,message:n}=e;return"ChunkLoadError"===t||"string"==typeof n&&(n.includes("Loading chunk")||n.includes("Failed to fetch dynamically imported module"))}function o(e){let t=null;try{t=window.sessionStorage;let e="__cm_chunk_probe__";t.setItem(e,"1"),t.removeItem(e)}catch(e){t=null}return function(e,t){var n;let o=(n=t.onLine,i(e)?n?"build":"network":"none");if("none"===o)return"skipped";if("network"===o)return"offline";let{storage:l,now:c,reload:u}=t;if(!l)return"guarded";let s=Number(l.getItem(r));return Number.isFinite(s)&&s>0&&c-s<3e4?"guarded":(l.setItem(r,String(c)),u(),"reloaded")}(e,{storage:t,now:Date.now(),reload:()=>window.location.reload(),onLine:"undefined"==typeof navigator||!1!==navigator.onLine})}function l(e,t){let n=!1,r=null,i=null,o=()=>{null==r||r(),null==i||i(),r=null,i=null},l=()=>{n||(n=!0,o(),e())};return r=t.subscribeOnline(()=>{n||t.probe().then(e=>{e&&l()})}),i=t.subscribeReachability(e=>{e&&l()}),()=>{n=!0,o()}}function c(e){return{subscribeOnline:e=>(window.addEventListener("online",e),()=>window.removeEventListener("online",e)),subscribeReachability:e.subscribeReachability,probe:e.probe}}},50960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(95155),i=n(12115),o=n(18955),l=n(48278),c=n(52407);function u(e){let{error:t,reset:n}=e,u=(0,o.c)("error"),s=(0,o.c)("common"),a=(0,l.oz)(t),[d,f]=(0,i.useState)(!1);(0,i.useEffect)(()=>{a&&f("offline"===(0,l.tV)(t))},[a,t]),(0,i.useEffect)(()=>{if(d)return(0,l.$7)(n,(0,l.v9)({subscribeReachability:c.Rh,probe:()=>(0,c.fl)()}))},[d,n]);let m=u(d?"chunkOffline.title":a?"chunkReload.title":"unexpected.title"),b=u(d?"chunkOffline.description":a?"chunkReload.description":"unexpected.description");return(0,r.jsxs)("main",{"data-testid":"app-error","data-error-kind":d?"chunk-offline":a?"chunk-reload":"unexpected",className:"flex min-h-screen flex-col items-center justify-center gap-6 bg-background px-6 pt-safe pb-safe text-center",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:m}),(0,r.jsx)("p",{className:"mx-auto max-w-sm text-sm text-muted-foreground",children:b}),d&&(0,r.jsx)("p",{className:"mx-auto max-w-sm text-xs text-muted-foreground",role:"status","aria-live":"polite",children:u("chunkOffline.waiting")})]}),(0,r.jsx)("button",{type:"button",onClick:a&&!d?()=>window.location.reload():n,className:"rounded-lg bg-accent-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-accent-700",children:s(a&&!d?"reload":"retry")})]})}},93350:(e,t,n)=>{Promise.resolve().then(n.bind(n,50960))}},e=>{e.O(0,[6809,2407,8441,1255,7358],()=>e(e.s=93350)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8039],{18955:(e,t,n)=>{"use strict";n.d(t,{c:()=>o});var r=n(36809);function i(e,t){return(...e)=>{try{return t(...e)}catch{throw Error(void 0)}}}let o=i(0,r.c3);i(0,r.kc)},48278:(e,t,n)=>{"use strict";n.d(t,{$7:()=>l,oz:()=>i,tV:()=>o,v9:()=>c});let r="cm:chunk-reload-at";function i(e){if(null==e||"object"!=typeof e)return!1;let{name:t,message:n}=e;return"ChunkLoadError"===t||"string"==typeof n&&(n.includes("Loading chunk")||n.includes("Failed to fetch dynamically imported module"))}function o(e){let t=null;try{t=window.sessionStorage;let e="__cm_chunk_probe__";t.setItem(e,"1"),t.removeItem(e)}catch(e){t=null}return function(e,t){var n;let o=(n=t.onLine,i(e)?n?"build":"network":"none");if("none"===o)return"skipped";if("network"===o)return"offline";let{storage:l,now:c,reload:u}=t;if(!l)return"guarded";let s=Number(l.getItem(r));return Number.isFinite(s)&&s>0&&c-s<3e4?"guarded":(l.setItem(r,String(c)),u(),"reloaded")}(e,{storage:t,now:Date.now(),reload:()=>window.location.reload(),onLine:"undefined"==typeof navigator||!1!==navigator.onLine})}function l(e,t){let n=!1,r=null,i=null,o=()=>{null==r||r(),null==i||i(),r=null,i=null},l=()=>{n||(n=!0,o(),e())};return r=t.subscribeOnline(()=>{n||t.probe().then(e=>{e&&l()})}),i=t.subscribeReachability(e=>{e&&l()}),()=>{n=!0,o()}}function c(e){return{subscribeOnline:e=>(window.addEventListener("online",e),()=>window.removeEventListener("online",e)),subscribeReachability:e.subscribeReachability,probe:e.probe}}},50960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(95155),i=n(12115),o=n(18955),l=n(48278),c=n(52407);function u(e){let{error:t,reset:n}=e,u=(0,o.c)("error"),s=(0,o.c)("common"),a=(0,l.oz)(t),[d,f]=(0,i.useState)(!1);(0,i.useEffect)(()=>{a&&f("offline"===(0,l.tV)(t))},[a,t]),(0,i.useEffect)(()=>{if(d)return(0,l.$7)(n,(0,l.v9)({subscribeReachability:c.Rh,probe:()=>(0,c.fl)()}))},[d,n]);let m=u(d?"chunkOffline.title":a?"chunkReload.title":"unexpected.title"),b=u(d?"chunkOffline.description":a?"chunkReload.description":"unexpected.description");return(0,r.jsxs)("main",{"data-testid":"app-error","data-error-kind":d?"chunk-offline":a?"chunk-reload":"unexpected",className:"flex min-h-full flex-col items-center justify-center gap-6 bg-background px-6 pt-safe pb-safe text-center",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:m}),(0,r.jsx)("p",{className:"mx-auto max-w-sm text-sm text-muted-foreground",children:b}),d&&(0,r.jsx)("p",{className:"mx-auto max-w-sm text-xs text-muted-foreground",role:"status","aria-live":"polite",children:u("chunkOffline.waiting")})]}),(0,r.jsx)("button",{type:"button",onClick:a&&!d?()=>window.location.reload():n,className:"rounded-lg bg-accent-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-accent-700",children:s(a&&!d?"reload":"retry")})]})}},93350:(e,t,n)=>{Promise.resolve().then(n.bind(n,50960))}},e=>{e.O(0,[6809,2407,8441,1255,7358],()=>e(e.s=93350)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{13533:(e,t,r)=>{"use strict";r.d(t,{AppShellGate:()=>to});var n=r(95155),s=r(20063),a=r(12115),o=r(32916),i=r(38218);let l={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},c=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var d=r(22592),u=r(52619),m=r.n(u),f=r(89275);let h=(0,a.forwardRef)(function(e,t){let{href:r,onClick:a,target:o,...i}=e,l=(0,s.usePathname)(),c=(0,f.Hq)();return(0,n.jsx)(m(),{ref:t,href:r,target:o,onClick:e=>{var t;null==a||a(e),e.defaultPrevented||0!==(t=e).button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||void 0!==o&&"_self"!==o||/^([a-z][a-z0-9+.-]*:)?\/\//i.test(r)||/^(mailto:|tel:)/i.test(r)||(e.preventDefault(),r!==l&&c.push(r))},...i})});var x=r(18955),b=r(85710),p=r(66685),g=r(61362),v=r(15870),y=r(17787),w=r(49027),j=r(27587),N=r(39649),k=r(47650),C=r(38606),S=r(48481);let M=(0,a.memo)(function(e){let{status:t,label:r,waitingKind:s}=e;return(0,n.jsx)(S.m,{"data-testid":"status-indicator",status:t,label:r,waitingKind:s,size:"lg"})});function E(e,t,r){let n=r-8-t;return n<=8?8:Math.min(Math.max(e,8),n)}function A(e){let{id:t,branch:r,isVisible:s,anchorRef:o,nextActionLabel:i}=e,[l,c]=(0,a.useState)({top:-9999,left:-9999}),d=(0,a.useRef)(null);if((0,a.useEffect)(()=>{var e,t,r;if(!s||!o.current)return;let n=o.current.getBoundingClientRect(),a=null==(e=d.current)?void 0:e.getBoundingClientRect(),i=null!=(t=null==a?void 0:a.width)?t:0,l=null!=(r=null==a?void 0:a.height)?r:0,u=window.innerWidth,m=window.innerHeight,f=n.right+8;if(f+i>u-8){let e=n.left-8-i;e>=8&&(f=e)}c({top:E(n.top,l,m),left:E(f,i,u)})},[s,o]),"undefined"==typeof document||!s)return null;let u=Math.min(384,Math.max(0,window.innerWidth-16));return k.createPortal((0,n.jsxs)("div",{ref:d,id:t,role:"tooltip",className:" fixed z-[9999] px-3 py-2 rounded-md shadow-lg bg-sidebar text-xs text-sidebar-foreground border border-sidebar-border pointer-events-none max-w-sm transition-opacity duration-150 ",style:{top:l.top,left:l.left,maxWidth:u},children:[(0,n.jsx)("p",{className:"font-medium text-sidebar-foreground whitespace-nowrap",children:r.name}),(0,n.jsx)("p",{className:"text-sidebar-muted whitespace-nowrap",children:r.repositoryName}),(0,n.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Status: ",r.status]}),r.worktreePath&&(0,n.jsx)("p",{className:"text-sidebar-muted truncate",children:r.worktreePath}),i&&(0,n.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Next: ",i]}),r.description&&(0,n.jsx)("p",{className:"text-sidebar-muted mt-1 border-t border-sidebar-border pt-1 whitespace-pre-wrap break-words",children:r.description})]}),document.body)}let L=0,K=(0,a.memo)(function(e){let{branch:t,isSelected:r,onClick:s,showRepositoryName:o=!0}=e,i=(0,x.c)("common"),l=(0,x.c)("worktree"),c="tooltip-".concat(t.id),d=(0,a.useRef)(null),[u,m]=(0,a.useState)(!1),f=(0,a.useRef)(null),h=(0,a.useCallback)(()=>{null!==f.current&&(clearTimeout(f.current),f.current=null)},[]);(0,a.useEffect)(()=>()=>h(),[h]);let b=(0,C.A7)(t.cliStatus),p="waiting"===b,g=!0===t.awaitingInstruction,v=t.nextActionKey?l(t.nextActionKey):null,y=(0,a.useMemo)(()=>{var e;return new Set(null!=(e=t.exitedInstanceIds)?e:[])},[t.exitedInstanceIds]),w=(p||g)&&null!==v,j=u&&!r;return(0,a.useEffect)(()=>{r&&m(!1)},[r]),(0,a.useEffect)(()=>{if(!u)return;let e=()=>m(!1);return document.addEventListener("click",e),()=>document.removeEventListener("click",e)},[u]),(0,n.jsxs)("button",{ref:d,"data-testid":"branch-list-item",onClick:()=>{h(),L=Date.now()+400,m(!1),s()},onMouseEnter:()=>{h(),Date.now()>=L&&(f.current=setTimeout(()=>{m(!0)},150))},onMouseLeave:()=>{h(),m(!1)},onFocus:e=>{h(),e.target.matches(":focus-visible")&&(f.current=setTimeout(()=>{m(!0)},150))},onBlur:()=>{h(),m(!1)},"aria-current":r?"true":void 0,"aria-describedby":j?c:void 0,"aria-label":o?void 0:"".concat(t.name," - ").concat(t.repositoryName),className:"\n group relative w-full px-4 py-3 flex flex-col gap-1\n hover:bg-sidebar-hover transition-colors\n focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring\n ".concat(r?"bg-sidebar-hover border-l-2 border-accent-500":"border-l-2 border-transparent","\n "),children:[(0,n.jsxs)("div",{className:"flex items-center gap-3 w-full",children:[t.cliStatus&&Object.keys(t.cliStatus).length>0&&(0,n.jsx)("div",{className:"flex items-center justify-center flex-shrink-0 w-4","aria-label":i("branchItem.cliToolStatus"),children:(0,n.jsx)(M,{status:b,label:(0,C.dw)(t.cliStatus,t.cliStatusLabels,y.size>0?e=>y.has(e)?i("branchItem.agentExited"):null:void 0),waitingKind:t.waitingKind})}),(0,n.jsxs)("div",{className:"flex-1 min-w-0 text-left",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-sidebar-foreground truncate",children:t.name}),o&&(0,n.jsx)("p",{className:"text-xs text-sidebar-muted truncate",children:t.repositoryName}),w&&(0,n.jsx)("p",{"data-testid":"branch-next-action",className:"text-xs font-medium truncate ".concat(p?"text-warning-foreground":"text-success-foreground"),children:v})]}),g&&(0,n.jsx)("span",{"data-testid":"awaiting-instruction-badge",className:"flex-shrink-0 rounded-full bg-success-subtle px-1.5 py-0.5 text-[10px] font-medium leading-4 text-success-foreground",title:l("awaitingInstruction.label"),children:l("awaitingInstruction.badge")}),t.hasUnread&&(0,n.jsx)("span",{"data-testid":"unread-indicator",className:"w-2 h-2 rounded-full bg-accent-500 flex-shrink-0","aria-label":i("branchItem.hasUnread")})]}),t.description&&(0,n.jsx)("div",{"data-testid":"branch-description",className:"pl-6 pr-2 mt-1 text-left",children:(0,n.jsx)("p",{className:"text-xs text-sidebar-muted line-clamp-2",children:t.description})}),(0,n.jsx)(A,{id:c,branch:t,isVisible:j,anchorRef:d,nextActionLabel:v})]})});var T=r(24033),R=r(41898);function W(e,t,r){if(t<=0||r<=0)return 0;let n=e+t+8-r;return n>0?-Math.min(n,Math.max(0,e-8)):e<8?8-e:0}let z=(0,a.memo)(function(e){var t,r;let{sortKey:s,sortDirection:o,onSortKeyChange:i,onSortDirectionChange:l,options:c,defaultDirections:d,compact:u,showLabel:m=!1,directionLabels:f,tooltip:h,iconClassName:b="w-3 h-3"}=e,p=(0,x.c)("common"),[g,v]=(0,a.useState)(!1),y=(0,a.useRef)(null),w=(0,a.useRef)(null),j=(0,a.useRef)({x:0,y:0}),[N,k]=(0,a.useState)({x:0,y:0});(0,a.useEffect)(()=>{function e(e){y.current&&!y.current.contains(e.target)&&v(!1)}if(g)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[g]),(0,a.useEffect)(()=>{function e(e){"Escape"===e.key&&v(!1)}if(g)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[g]),(0,a.useLayoutEffect)(()=>{let e=e=>{j.current=e,k(t=>t.x===e.x&&t.y===e.y?t:e)};if(!g)return void e({x:0,y:0});let t=w.current;if(!t)return;let r=t.getBoundingClientRect();e({x:W(r.left-j.current.x,r.width,window.innerWidth),y:W(r.top-j.current.y,r.height,window.innerHeight)})},[g]);let C=(0,a.useCallback)(()=>{v(e=>!e)},[]),S=(0,a.useCallback)(e=>{if(e===s)l("asc"===o?"desc":"asc");else{var t;i(e),l(null!=(t=null==d?void 0:d[e])?t:"asc")}v(!1)},[s,o,i,l,d]),M=(0,a.useCallback)(()=>{l("asc"===o?"desc":"asc")},[o,l]),E=(null==(t=c.find(e=>e.key===s))?void 0:t.label)||p("sort.label"),A=null==f||null==(r=f[s])?void 0:r[o],L=p("asc"===o?"sort.ascShort":"sort.descShort"),K=(0,n.jsx)("button",{type:"button",onClick:C,"aria-expanded":g,"aria-haspopup":"listbox","aria-label":p("sort.sortBy",{label:E}),className:m?"flex min-w-0 max-w-full items-center gap-1 rounded border border-sidebar-border px-2 py-1 text-xs text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors":"flex items-center gap-1 px-2 py-1 rounded text-xs text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:m?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"min-w-0 truncate",children:E}),(0,n.jsx)(T.A,{className:"h-3 w-3 flex-shrink-0","aria-hidden":"true"})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(I,{className:b}),(0,n.jsx)("span",{className:u?"hidden":"hidden sm:inline",children:E})]})});return(0,n.jsxs)("div",{ref:y,className:m?"relative min-w-0":"relative","data-testid":"sort-selector-base",children:[(0,n.jsxs)("div",{className:m?"flex min-w-0 flex-wrap items-center gap-1":"flex items-center gap-1",children:[h?(0,n.jsx)(R.m_,{content:h,placement:"bottom",children:K}):K,(0,n.jsx)("button",{type:"button",onClick:M,"aria-label":null!=A?A:p("asc"===o?"sort.ascending":"sort.descending"),className:A?"min-w-0 max-w-full truncate rounded px-2 py-1 text-xs text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors":"p-1 rounded text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:null!=A?A:"asc"===o?(0,n.jsx)(B,{className:b}):(0,n.jsx)(P,{className:b})})]}),g&&(0,n.jsx)("div",{ref:w,role:"listbox","aria-label":p("sort.options"),className:" absolute right-0 top-full mt-1 z-50 min-w-[140px] py-1 rounded-md shadow-lg bg-sidebar border border-sidebar-border ",style:0!==N.x||0!==N.y?{transform:"translate(".concat(N.x,"px, ").concat(N.y,"px)")}:void 0,children:c.map(e=>{var t,r;return(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":s===e.key,onClick:()=>S(e.key),className:"\n w-full px-3 py-2 text-left text-sm whitespace-nowrap\n flex items-center justify-between gap-3\n hover:bg-sidebar-hover transition-colors\n ".concat(s===e.key?"text-accent-700 dark:text-accent-400":"text-sidebar-muted","\n "),children:[(0,n.jsx)("span",{children:e.label}),s===e.key&&(0,n.jsx)("span",{className:"text-xs",children:null!=(r=null==f||null==(t=f[e.key])?void 0:t[o])?r:L})]},e.key)})})]})});function I(e){let{className:t}=e;return(0,n.jsx)("svg",{className:t,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})})}function B(e){let{className:t}=e;return(0,n.jsx)("svg",{className:t,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"})})}function P(e){let{className:t}=e;return(0,n.jsx)("svg",{className:t,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})}let D=[{key:"updatedAt",labelKey:"sort.updatedAt"},{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"branchName",labelKey:"sort.branchName"},{key:"status",labelKey:"sort.status"}],O={updatedAt:"desc"},F=(0,a.memo)(function(){let{sortKey:e,sortDirection:t,setSortKey:r,setSortDirection:s}=(0,o.VF)(),i=(0,x.c)("common"),l=(0,a.useMemo)(()=>D.map(e=>{let{key:t,labelKey:r}=e;return{key:t,label:i(r)}}),[i]),c=(0,a.useMemo)(()=>({updatedAt:{asc:i("sort.direction.oldestFirst"),desc:i("sort.direction.newestFirst")},repositoryName:{asc:i("sort.direction.aToZ"),desc:i("sort.direction.zToA")},branchName:{asc:i("sort.direction.aToZ"),desc:i("sort.direction.zToA")},status:{asc:i("sort.direction.attentionFirst"),desc:i("sort.direction.attentionLast")}}),[i]);return(0,n.jsx)(z,{sortKey:e,sortDirection:t,onSortKeyChange:r,onSortDirectionChange:s,options:l,defaultDirections:O,showLabel:!0,directionLabels:c,iconClassName:"w-4 h-4"})});var V=r(48407),_=r(30061),H=r(45195),G=r(26020);function q(){let{currentLocale:e,switchLocale:t}=(0,H.g)(),r=(0,x.c)("common");return(0,n.jsx)("select",{value:e,onChange:e=>t(e.target.value),"data-testid":"locale-switcher","aria-label":r("language"),className:" w-full px-3 py-2 rounded-md bg-sidebar text-sidebar-foreground border border-sidebar-border focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent text-sm ",children:G.dI.map(e=>(0,n.jsx)("option",{value:e,children:G.vK[e]},e))})}var U=r(5379),$=r(59427),X=r(37494);function Y(){let{theme:e,setTheme:t}=(0,U.D)(),[r,s]=(0,a.useState)(!1);if((0,a.useEffect)(()=>{s(!0)},[]),!r)return(0,n.jsx)("div",{"data-testid":"theme-toggle-placeholder",className:"w-8 h-8","aria-hidden":"true"});let o="dark"===e;return(0,n.jsx)("button",{"data-testid":"theme-toggle",onClick:()=>t(o?"light":"dark"),className:"p-1.5 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors focus:outline-none focus:ring-2 focus:ring-ring","aria-label":o?"Switch to light mode":"Switch to dark mode",title:o?"Switch to light mode":"Switch to dark mode",children:o?(0,n.jsx)($.A,{className:"w-5 h-5","data-testid":"theme-icon-sun"}):(0,n.jsx)(X.A,{className:"w-5 h-5","data-testid":"theme-icon-moon"})})}var Z=r(65380);function J(){let e=(0,x.c)("auth"),t=(0,Z.H)(),[r,s]=(0,a.useState)(!1);if(!t)return null;async function o(){s(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch(e){window.location.href="/login"}}return(0,n.jsx)("button",{type:"button",onClick:o,disabled:r,"data-testid":"logout-button",className:" w-full px-3 py-2 text-sm text-left rounded-md text-muted-foreground hover:text-foreground hover:bg-muted focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50 transition-colors ",children:r?"...":e("logout.button")})}var Q=r(94442),ee=r(44308),et=r(24373),er=r(40823),en=r(80344),es=r(7636);function ea(e){let{items:t,sortKey:r,sortDirection:n,viewMode:s,filterText:o}=e,i=(0,a.useMemo)(()=>{if(!o)return t;let e=o.toLowerCase();return t.filter(t=>t.name.toLowerCase().includes(e)||t.repositoryName.toLowerCase().includes(e))},[t,o]);return{sortedItems:(0,a.useMemo)(()=>(0,es.Xn)(i,r,n),[i,r,n]),groupedItems:(0,a.useMemo)(()=>"grouped"===s?(0,es._s)(i,r,n):[],[i,r,n,s])}}let eo="mcbd-sidebar-group-collapsed",ei="mcbd-sidebar-scroll-top",el=0,ec=(0,a.memo)(function(){var e,t,r;let i=(0,f.Hq)(),{worktrees:l,repositories:c,selectedWorktreeId:d,selectWorktree:u,refreshWorktrees:m,isLoading:h,error:v}=(0,N.$f)(),{closeMobileDrawer:j,sortKey:k,sortDirection:S,viewMode:M,setViewMode:E,repositoryOrder:A,setRepositoryOrder:L}=(0,o.VF)(),T=(0,x.c)("common"),R=null!=(e=(0,s.usePathname)())?e:"",{count:W}=(0,et.Lv)(),[z,I]=(0,a.useState)(""),B=(0,a.useRef)(null),[P,D]=(0,a.useState)(()=>{try{let e=localStorage.getItem(eo);return e?function(e){try{let t=JSON.parse(e);if("object"!=typeof t||null===t||Array.isArray(t))return{};let r={},n=0;for(let[e,s]of Object.entries(t))if(!em.has(e)&&"boolean"==typeof s){if(++n>100)break;r[e]=s}return r}catch(e){return{}}}(e):{}}catch(e){return{}}}),O=(0,a.useRef)(!1);(0,a.useEffect)(()=>{O.current||(O.current=!0,fetch("/api/sidebar/group-order").then(e=>e.json()).then(e=>{e.success&&Array.isArray(e.order)&&L(e.order)}).catch(()=>{}))},[L]);let _=(0,a.useMemo)(()=>(0,es.UZ)(c),[c]),H=(0,a.useMemo)(()=>(0,es.s6)(l,_),[l,_]),G=(0,a.useMemo)(()=>H.map(C.XK),[H]),U=(0,a.useDeferredValue)(G),$=(0,a.useRef)(null),X=(0,a.useRef)(null),[Z,Q]=(0,a.useState)(0);(0,a.useEffect)(()=>()=>{null!==X.current&&clearTimeout(X.current)},[]);let er=(0,a.useCallback)(()=>{null!==X.current&&(clearTimeout(X.current),X.current=null),$.current=null},[]),en=(0,a.useMemo)(()=>{let e=$.current;return!e||0===e.items.length||Date.now()>=e.expiresAt?U:e.items},[U,Z]),ec=(0,a.useRef)(en);(0,a.useLayoutEffect)(()=>{ec.current=en;let e=$.current;e&&0===e.items.length&&U.length>0&&er()});let ef=(0,a.useCallback)(()=>{if(0===ec.current.length)return;null!==X.current&&(clearTimeout(X.current),X.current=null);let e=$.current;if(e&&Date.now()<e.expiresAt){$.current={...e,expiresAt:1/0};return}$.current={items:ec.current,expiresAt:1/0}},[]),ep=(0,a.useCallback)(()=>{$.current&&($.current={...$.current,expiresAt:Date.now()+1e3},null!==X.current&&clearTimeout(X.current),X.current=setTimeout(()=>{er(),Q(e=>e+1)},1e3))},[er]),{sortedItems:eg,groupedItems:ev}=ea({items:en,sortKey:k,sortDirection:S,viewMode:M,filterText:z}),ej=(0,a.useMemo)(()=>"grouped"===M&&ev?z.trim()?ev:(0,es.BN)(ev,A):null,[M,ev,A,z]),eN="grouped"===M?ej:null,ek=(0,a.useMemo)(()=>"sessions"===M?(0,es.EY)((0,es.UB)(eg),k,S):[],[M,eg,k,S]);(0,a.useEffect)(()=>{try{localStorage.setItem(eo,JSON.stringify(P))}catch(e){}},[P]);let eC=(0,a.useCallback)(e=>{D(t=>({...t,[e]:!t[e]}))},[]),eS=(0,a.useCallback)(()=>{var e,t,r=null!=(t=null==(e=B.current)?void 0:e.scrollTop)?t:0;let n=Number.isFinite(r)&&r>0?r:0;el=n;try{localStorage.setItem(ei,String(n))}catch(e){}},[]),eM=eg.length>0||(null!=(t=null==eN?void 0:eN.length)?t:0)>0||ek.length>0;(0,a.useEffect)(()=>{let e=B.current;if(!e)return;let t=window.requestAnimationFrame(()=>{e.scrollTop=function(){try{let e=localStorage.getItem(ei);if(!e)return el=0,0;let t=Number(e);Number.isFinite(t)&&t>=0&&(el=t)}catch(e){}return el}()});return()=>{window.cancelAnimationFrame(t)}},[eM,M]);let eE=(0,a.useCallback)(e=>{eS(),u(e),i.push("/worktrees/".concat(e)),j()},[eS,u,i,j]),eA=(0,a.useCallback)(e=>{eS(),u(e.worktreeId),i.push((0,es.Ii)(e)),j()},[eS,u,i,j]),eL=(0,y.FR)((0,y.MS)(y.AN,{activationConstraint:{distance:8}})),eK=(0,a.useCallback)(e=>{let{active:t,over:r}=e;if(!r||t.id===r.id||!eN)return;let n=eN.map(e=>e.repositoryName),s=n.indexOf(String(t.id)),a=n.indexOf(String(r.id));if(-1===s||-1===a)return;let o=(0,w.be)(n,s,a);L(o),fetch("/api/sidebar/group-order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:o})}).catch(()=>{L(n)})},[eN,L]),eT="grouped"===M?(null!=(r=null==eN?void 0:eN.length)?r:0)===0:"sessions"===M?0===ek.length:0===eg.length,eR=h&&0===l.length,eW=!eR&&!!v&&0===l.length,ez=(0,a.useCallback)(()=>{m()},[m]);return(0,n.jsxs)("nav",{"data-testid":"sidebar","aria-label":T("sidebar.branchNavigation"),className:"h-full flex flex-col bg-sidebar text-sidebar-foreground",role:"navigation",children:[(0,n.jsxs)("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 space-y-2 border-b border-sidebar-border px-2 py-2",children:[(0,n.jsxs)("ul",{"data-testid":"sidebar-nav",className:"space-y-0.5",children:[(0,n.jsxs)("li",{className:"flex min-w-0 items-center gap-1",children:[(0,n.jsx)(eh,{href:"/repositories",icon:b.A,label:T("nav.repositories"),testId:"sidebar-nav-repositories",isActive:R.startsWith("/repositories"),onNavigate:j}),(0,n.jsx)(ey,{refreshWorktrees:m})]}),(0,n.jsx)("li",{className:"flex min-w-0",children:(0,n.jsx)(eh,{href:"/sessions",icon:p.A,label:T("nav.sessions"),testId:"sidebar-nav-sessions",isActive:R.startsWith("/sessions"),onNavigate:j})}),(0,n.jsx)("li",{className:"flex min-w-0",children:(0,n.jsx)(eh,{href:W>0?ee.ks:"/review",icon:g.A,label:T("nav.review"),testId:"sidebar-nav-review",isActive:R.startsWith("/review"),onNavigate:j,trailing:W>0?(0,n.jsx)("span",{"data-testid":"sidebar-nav-review-count",role:"status","aria-label":T("attention.badgeLabel",{count:W}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-xs font-semibold leading-5 tabular-nums text-warning-foreground",children:W>99?"99+":W}):null})})]}),(0,n.jsxs)("div",{"data-testid":"sidebar-list-controls",className:"grid grid-cols-[auto_minmax(0,1fr)] items-center gap-x-2 gap-y-1.5 px-2",children:[(0,n.jsx)(ex,{viewMode:M,onChange:E}),(0,n.jsx)("span",{className:"whitespace-nowrap text-xs text-sidebar-muted",children:T("sort.label")}),(0,n.jsx)(F,{})]})]}),(0,n.jsx)("div",{className:"flex-shrink-0 px-4 py-3 border-b border-sidebar-border",children:(0,n.jsx)(V.pd,{type:"text",placeholder:T("sidebar.searchBranches"),value:z,onChange:e=>I(e.target.value),className:"bg-background shadow-none"})}),(0,n.jsx)("div",{ref:B,"data-testid":"branch-list",onScroll:eS,onMouseEnter:ef,onMouseLeave:ep,className:"flex-1 overflow-y-auto overflow-x-hidden",children:eR?(0,n.jsx)(ed,{label:T("sidebar.loadingBranches")}):eW?(0,n.jsxs)("div",{"data-testid":"branch-list-error",role:"alert",className:"px-4 py-8 text-center text-sidebar-muted",children:[(0,n.jsx)("p",{className:"text-sm",children:T("sidebar.branchesLoadFailed")}),(0,n.jsx)(V.$n,{type:"button",variant:"secondary",size:"sm",className:"mt-3","data-testid":"branch-list-retry",onClick:ez,children:T("sidebar.retryLoadBranches")})]}):eT?(0,n.jsx)("div",{className:"px-4 py-8 text-center text-sidebar-muted",children:T(z?"sidebar.noBranchesFound":"sidebar.noBranchesAvailable")}):"sessions"===M?ek.map(e=>(0,n.jsx)(eb,{row:e,isSelected:e.worktreeId===d,onClick:eA},e.key)):"grouped"===M&&eN?(0,n.jsx)(y.Mp,{sensors:eL,collisionDetection:y.fp,onDragEnd:eK,children:(0,n.jsx)(w.gB,{items:eN.map(e=>e.repositoryName),strategy:w._G,children:eN.map(e=>{let t=!P[e.repositoryName]||!!z.trim();return(0,n.jsx)(eu,{group:e,isExpanded:t,selectedWorktreeId:d,onToggle:()=>eC(e.repositoryName),onBranchClick:eE,isDragDisabled:!!z.trim()},e.repositoryName)})})}):eg.map(e=>(0,n.jsx)(K,{branch:e,isSelected:e.id===d,onClick:()=>eE(e.id)},e.id))}),(0,n.jsxs)("div",{className:"flex-shrink-0 px-4 py-3 border-t border-sidebar-border space-y-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(ew,{onNavigate:j}),(0,n.jsx)("div",{className:"flex-1 min-w-0",children:(0,n.jsx)(q,{})}),(0,n.jsx)(Y,{})]}),(0,n.jsx)(J,{})]})]})}),ed=(0,a.memo)(function(e){let{label:t}=e;return(0,n.jsxs)("div",{"data-testid":"branch-list-skeleton",role:"status","aria-live":"polite",className:"px-4 py-3 space-y-3",children:[(0,n.jsx)("span",{className:"sr-only",children:t}),[0,1,2,3,4].map(e=>(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(V.EA,{className:"h-2 w-2 rounded-full"}),(0,n.jsx)(V.EA,{className:"h-3 flex-1"})]},e))]})});function eu(e){let{group:t,isExpanded:r,selectedWorktreeId:s,onToggle:a,onBranchClick:o,isDragDisabled:i}=e,{attributes:l,listeners:c,setNodeRef:d,setActivatorNodeRef:u,transform:m,transition:f,isDragging:h}=(0,w.gl)({id:t.repositoryName,disabled:i}),x={transform:j.Ks.Transform.toString(m),transition:f,opacity:h?.5:1};return(0,n.jsxs)("div",{ref:d,style:x,className:"w-full min-w-0",children:[(0,n.jsx)(ef,{repositoryName:t.repositoryName,branchCount:t.branches.length,isExpanded:r,onClick:a,dragHandleRef:u,dragHandleListeners:i?void 0:c,dragHandleAttributes:i?void 0:l}),r&&t.branches.map(e=>(0,n.jsx)(K,{branch:e,isSelected:e.id===s,onClick:()=>o(e.id),showRepositoryName:!1},e.id))]})}let em=new Set(["__proto__","constructor","prototype"]);function ef(e){let{repositoryName:t,branchCount:r,isExpanded:s,onClick:a,dragHandleRef:o,dragHandleListeners:i,dragHandleAttributes:l}=e,c=(0,x.c)("common");return(0,n.jsxs)("div",{className:"flex items-center w-full",children:[i&&(0,n.jsx)("div",{ref:o,...i,...l,"aria-label":c("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-colors ",children:(0,n.jsx)(eg,{})}),(0,n.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-2 text-xs font-semibold text-sidebar-muted uppercase tracking-wider focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring transition-colors ",children:[(0,n.jsx)(ep,{isExpanded:s}),(0,n.jsx)(V.nF,{color:(0,es.LV)(t)}),(0,n.jsx)(_.nR,{content:t,className:"flex-1 min-w-0 text-left truncate",children:t}),(0,n.jsx)("span",{className:"text-sidebar-muted font-normal tabular-nums pr-2",children:r})]})]})}function eh(e){let{href:t,icon:r,label:s,testId:a,isActive:o,onNavigate:i,trailing:l}=e;return(0,n.jsxs)(h,{href:t,"data-testid":a,"aria-current":o?"page":void 0,onClick:i,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(o?"bg-sidebar-hover font-medium text-sidebar-foreground":"text-sidebar-muted"),children:[(0,n.jsx)(r,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate",children:s}),l]})}function ex(e){let{viewMode:t,onChange:r}=e,s=(0,x.c)("common"),o=(0,a.useId)();return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("label",{htmlFor:o,className:"whitespace-nowrap text-xs text-sidebar-muted",children:s("sidebar.viewLabel")}),(0,n.jsxs)("select",{id:o,"data-testid":"view-mode-select",value:t,onChange:e=>{let t=e.target.value;(0,es.$m)(t)&&r(t)},className:"w-full min-w-0 truncate rounded border border-sidebar-border bg-sidebar px-1.5 py-1 text-xs text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring",children:[(0,n.jsx)("option",{value:"grouped",children:s("sidebar.viewMode.grouped")}),(0,n.jsx)("option",{value:"flat",children:s("sidebar.viewMode.flat")}),(0,n.jsx)("option",{value:"sessions",children:s("sidebar.viewMode.sessions")})]})]})}let eb=(0,a.memo)(function(e){let{row:t,isSelected:r,onClick:s}=e,a=(0,x.c)("common"),o=a("status.".concat(t.status));return(0,n.jsxs)("button",{type:"button","data-testid":"session-list-item","data-session-key":t.key,onClick:()=>s(t),"aria-current":r?"true":void 0,className:"w-full min-w-0 px-4 py-2 flex items-center gap-3 text-left hover:bg-sidebar-hover transition-colors focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring ".concat(r?"bg-sidebar-hover border-l-2 border-accent-500":"border-l-2 border-transparent"),children:[(0,n.jsx)(V.md,{status:t.status,size:"lg",label:t.exited?"".concat(o," (").concat(a("branchItem.agentExited"),")"):o}),(0,n.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,n.jsx)("span",{className:"block truncate text-sm font-semibold text-sidebar-foreground",children:t.label}),(0,n.jsxs)("span",{className:"block truncate text-xs text-sidebar-muted",children:[t.branchName," \xb7 ",t.repositoryName]})]})]})});function ep(e){let{isExpanded:t}=e;return(0,n.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,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})}function eg(){return(0,n.jsxs)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"9",cy:"5",r:"1.5"}),(0,n.jsx)("circle",{cx:"15",cy:"5",r:"1.5"}),(0,n.jsx)("circle",{cx:"9",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"15",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"9",cy:"19",r:"1.5"}),(0,n.jsx)("circle",{cx:"15",cy:"19",r:"1.5"})]})}function ev(e){let{className:t=""}=e;return(0,n.jsx)("svg",{className:"".concat("w-4 h-4"," ").concat(t),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,n.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 ey=(0,a.memo)(function(e){let{refreshWorktrees:t}=e,[r,s]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{showToast:i}=(0,Q.dj)(),l=(0,x.c)("common"),c=(0,a.useCallback)(async()=>{if(!o.current){o.current=!0,s(!0);try{let e=await en.Rx.sync();await t(),i(l("syncSuccess",{count:e.worktreeCount}),"success",3e3)}catch(e){e instanceof en.hD&&401===e.status?i(l("syncAuthError"),"error",5e3):i(l("syncError"),"error",5e3)}finally{o.current=!1,s(!1)}}},[t,i,l]);return(0,n.jsx)(n.Fragment,{children:(0,n.jsx)(R.m_,{content:l("tooltips.sync"),placement:"bottom",children:(0,n.jsx)("button",{type:"button",onClick:c,disabled:r,"aria-label":l("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,n.jsx)(ev,{className:r?"animate-spin":""})})})})});function ew(e){let{onNavigate:t}=e,r=(0,x.c)("common"),s=(0,i.a)(),{open:o}=(0,er.V0)(),l=r("settings.title"),c=(0,a.useCallback)(e=>{t(),!s&&(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),o()))},[s,t,o]);return(0,n.jsx)(R.m_,{content:l,placement:"top",className:"flex-shrink-0",children:(0,n.jsx)(h,{href:"/more","data-testid":"sidebar-settings","aria-label":l,"aria-haspopup":s?void 0:"dialog",onClick:c,className:"p-1.5 rounded-md text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:(0,n.jsx)(v.A,{size:20,"aria-hidden":"true"})})})}var ej=r(59847),eN=r(86651),ek=r(94684),eC=r(34681);function eS(){let e=(0,o.pT)(),t=(0,x.c)("common");if(!e)return null;let{repoTabBarMode:r,setRepoTabBarMode:s}=e;return(0,n.jsxs)("div",{className:"hidden md:flex items-center",children:[(0,n.jsx)("label",{htmlFor:"repo-tab-bar-mode",className:"sr-only",children:t("repoTabBar.settingLabel")}),(0,n.jsx)("select",{id:"repo-tab-bar-mode","data-testid":"repo-tab-bar-mode-select","aria-label":t("repoTabBar.settingLabel"),title:t("repoTabBar.settingLabel"),value:r,onChange:e=>{let t=e.target.value;(0,es.m3)(t)&&s(t)},className:"rounded-md border border-border bg-surface px-2 py-1 text-sm text-muted-foreground transition-colors hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring",children:es.EN.map(e=>(0,n.jsx)("option",{value:e,children:t("repoTabBar.mode.".concat(e))},e))})]})}var eM=r(52407);function eE(){let{shouldSurface:e,isReconnecting:t}=(0,eM.Fx)(),r=(0,x.c)("common");if(!e)return null;let s=r(t?"connection.reconnecting":"connection.offline");return(0,n.jsxs)("span",{"data-testid":"connection-status-indicator","data-connection-state":t?"reconnecting":"offline",role:"status","aria-live":"polite",title:r(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,n.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 eA=r(72137),eL=r(79651),eK=r(92614);let eT=[{labelKey:"nav.sessions",href:"/sessions",isActive:e=>e.startsWith("/sessions")},{labelKey:"nav.repositoriesShort",href:"/repositories",isActive:e=>e.startsWith("/repositories")},{labelKey:"nav.reviewReport",href:"/review",isActive:e=>e.startsWith("/review")},{labelKey:"nav.more",href:"/more",isActive:e=>e.startsWith("/more"),opensSettings:!0}];function eR(e){let{title:t="CommandMate"}=e,r=(0,s.usePathname)(),o=(0,x.c)("commandPalette"),i=(0,x.c)("common"),{setOpen:l}=(0,eK.C)(),[c,d]=a.useState(null);a.useEffect(()=>{d("undefined"!=typeof navigator&&/Mac|iPhone|iPad|iPod/i.test(navigator.platform||"")?"⌘":"Ctrl")},[]);let{open:u}=(0,er.V0)(),m=a.useCallback(e=>{0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),u())},[u]);return(0,n.jsx)("header",{className:"sticky top-0 z-50 border-b border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md",children:(0,n.jsx)("div",{className:"container-custom",children:(0,n.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,n.jsx)("div",{className:"flex items-center space-x-4",children:(0,n.jsxs)(h,{href:"/",className:"flex items-center space-x-2 hover:opacity-80 transition-opacity",children:[(0,n.jsx)("div",{className:"w-8 h-8 bg-accent-600 rounded-lg flex items-center justify-center",children:(0,n.jsx)(ej.A,{size:20,strokeWidth:2,className:"text-white","aria-hidden":"true"})}),(0,n.jsx)("h1",{className:"text-xl font-bold text-foreground",children:t})]})}),(0,n.jsxs)("nav",{className:"flex items-center space-x-6",role:"navigation",children:[eT.map(e=>{let t=e.isActive(r);return(0,n.jsx)(h,{href:e.href,"aria-current":t?"page":void 0,"aria-haspopup":e.opensSettings?"dialog":void 0,onClick:e.opensSettings?m:void 0,className:"relative py-1 text-sm font-medium transition-colors after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:rounded-full after:bg-accent-600 dark:after:bg-accent-400 after:origin-center motion-safe:after:transition-transform after:duration-200 after:ease-[var(--motion-ease-out)] ".concat(t?"text-accent-600 dark:text-accent-400 after:scale-x-100":"text-muted-foreground hover:text-foreground after:scale-x-0"),children:i(e.labelKey)},e.href)}),(0,n.jsxs)("button",{type:"button","data-testid":"header-command-palette-trigger",onClick:()=>l(!0),"aria-label":o("mobileTrigger"),className:"hidden md:inline-flex items-center gap-2 rounded-md border border-border bg-surface px-2.5 py-1.5 text-sm text-muted-foreground hover:bg-surface-2 transition-colors",children:[(0,n.jsx)(eN.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0"}),(0,n.jsx)("span",{children:o("searchAction")}),c&&(0,n.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,n.jsx)(eL.u,{children:c}),(0,n.jsx)(eL.u,{children:"K"})]})]}),(0,n.jsx)(eE,{}),(0,n.jsx)(eC.g,{}),(0,n.jsx)(eS,{}),(0,n.jsx)(eA.H,{}),(0,n.jsx)(Y,{}),(0,n.jsxs)("a",{href:"https://github.com/kewton/MyCodeBranchDesk",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-muted-foreground hover:text-foreground transition-colors flex items-center space-x-1",children:[(0,n.jsx)(ek.A,{size:20,strokeWidth:2,"aria-hidden":"true"}),(0,n.jsx)("span",{children:"GitHub"})]})]})]})})})}var eW=r(37772),ez=r(17848),eI=r(46892),eB=r(59854);let eP=/^\/worktrees\/([^/]+)/;function eD(e,t,r){let n=r-8-t;return n<=8?8:Math.min(Math.max(e.left+t>r-8?e.right-t:e.left,8),n)}function eO(e){var t;null==e||null==(t=e.scrollIntoView)||t.call(e,{block:"nearest",inline:"nearest"})}let eF=(0,a.memo)(function(){var e;let t=(0,x.c)("common"),r=(0,s.usePathname)(),i=(0,f.Hq)(),{sortKey:l,sortDirection:c,repositoryOrder:u}=(0,o.VF)(),{worktrees:m,repositories:h,selectedWorktreeId:b,selectWorktree:p}=(0,N.$f)(),{factor:g}=(0,d.Ps)(),v=(0,a.useMemo)(()=>(0,es.UZ)(null!=h?h:[]),[h]),y=(0,a.useMemo)(()=>(0,es.s6)(null!=m?m:[],v),[m,v]),{groupedItems:w}=ea({items:(0,a.useMemo)(()=>y.map(C.XK),[y]),sortKey:l,sortDirection:c,viewMode:"grouped"}),j=(0,a.useMemo)(()=>(0,es.BN)(w,u),[w,u]),k=function(e,t){let r=eP.exec(e);if(!r)return t;try{return decodeURIComponent(r[1])}catch(e){return r[1]}}(r,b),S=(0,a.useMemo)(()=>{var e,t;return null!=(t=null==(e=j.find(e=>e.branches.some(e=>e.id===k)))?void 0:e.repositoryName)?t:null},[j,k]),[M,E]=(0,a.useState)(null),[A,L]=(0,a.useState)(null),[K,T]=(0,a.useState)(!1),R=(0,a.useRef)(null),W=(0,a.useRef)(null),z=(0,a.useRef)(new Map),I=(0,a.useCallback)((e,t)=>{t?z.current.set(e,t):z.current.delete(e)},[]),B=(0,a.useCallback)(()=>{E(null),L(null),T(!1)},[]),P=(0,a.useCallback)(e=>{let t=z.current.get(e);if(!t)return;let r=t.getBoundingClientRect();L({left:r.left,right:r.right,bottom:r.bottom}),E(e),T(!1)},[]),D=(0,a.useCallback)(e=>{if(M===e)return void B();P(e)},[M,B,P]),[O,F]=(0,a.useState)(!1),V=(0,a.useCallback)(()=>{let e=R.current;e&&F(e.scrollWidth>e.clientWidth+1)},[]);(0,a.useLayoutEffect)(()=>{V()},[V,j.length,g]),(0,a.useEffect)(()=>{window.addEventListener("resize",V);let e="undefined"!=typeof ResizeObserver?new ResizeObserver(()=>V()):null;return e&&R.current&&e.observe(R.current),()=>{window.removeEventListener("resize",V),null==e||e.disconnect()}},[V]);let _=null!==M||K;(0,a.useEffect)(()=>{if(!_)return;let e=e=>{var t,r,n;let s=e.target;!(!s||(null==(t=R.current)?void 0:t.contains(s))||(null==(r=W.current)?void 0:r.contains(s)))&&((null==(n=s.closest)?void 0:n.call(s,"[data-repository-tab-panel]"))||B())},t=e=>{if("Escape"!==e.key)return;let t=M?z.current.get(M):W.current;B(),null==t||t.focus()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[_,M,B]),(0,a.useEffect)(()=>{B()},[r,B]),(0,a.useLayoutEffect)(()=>{S&&eO(z.current.get(S))},[S,r,O]);let H=(0,a.useCallback)(e=>{B(),p(e),i.push("/worktrees/".concat(e))},[B,p,i]),G=(0,a.useCallback)(e=>{let t=z.current.get(e);eO(t),P(e),null==t||t.focus()},[P]),q=(0,a.useCallback)(e=>{var t;let r=e.currentTarget,n=(t=r.clientWidth,e.ctrlKey||e.shiftKey||Math.abs(e.deltaY)<=Math.abs(e.deltaX)?0:1===e.deltaMode?40*e.deltaY:2===e.deltaMode?e.deltaY*t:e.deltaY);0!==n&&(r.scrollLeft+=n)},[]);if(0===j.length)return null;let U=Math.round(32*g),$=null!=(e=j.find(e=>e.repositoryName===M))?e:null;return(0,n.jsxs)("div",{"data-testid":"repository-tab-bar",className:"relative flex-shrink-0 flex items-stretch border-b border-border bg-surface",style:{height:"".concat(U,"px")},children:[(0,n.jsx)("nav",{ref:R,"data-testid":"repository-tab-strip","aria-label":t("nav.repositories"),onWheel:q,className:"flex min-w-0 flex-1 flex-nowrap items-stretch overflow-x-auto overflow-y-hidden scrollbar-hide",children:j.map(e=>(0,n.jsx)(eV,{group:e,isActive:e.repositoryName===S,isOpen:e.repositoryName===M,registerTab:I,onToggle:D},e.repositoryName))}),O&&(0,n.jsx)("button",{ref:W,type:"button","data-testid":"repository-tab-overflow","aria-haspopup":"menu","aria-expanded":K,"aria-label":t("repoTabBar.overflow"),title:t("repoTabBar.overflow"),onClick:()=>{E(null),L(null),T(e=>!e)},className:"flex-shrink-0 flex items-center border-l border-border px-2 text-muted-foreground transition-colors hover:bg-surface-2 hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:(0,n.jsx)(eW.A,{size:16,strokeWidth:2,"aria-hidden":"true"})}),$&&A&&(0,n.jsx)(e_,{group:$,anchor:A,factor:g,activeWorktreeId:k,onBranchClick:H}),K&&(0,n.jsx)(eH,{groups:j,anchorRef:W,activeRepositoryName:S,onSelect:G})]})}),eV=(0,a.memo)(function(e){let{group:t,isActive:r,isOpen:s,registerTab:a,onToggle:o}=e,i=(0,x.c)("common"),l=(0,es.zD)(t.branches),c=(0,es.j)(t.branches),d=i(eI.PL[l].labelKey);return(0,n.jsxs)("button",{ref:e=>a(t.repositoryName,e),type:"button","data-testid":"repository-tab","data-repository":t.repositoryName,"aria-haspopup":"menu","aria-expanded":s,"aria-current":r?"true":void 0,title:"".concat(t.repositoryName," — ").concat(d),onClick:()=>o(t.repositoryName),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),s||o(t.repositoryName))},className:"\n group/tab flex-shrink-0 flex max-w-[14rem] items-center gap-1.5 px-2.5\n border-b-2 text-xs font-medium transition-colors\n focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring\n ".concat(r?"border-accent-500 bg-surface-2 text-foreground":"border-transparent text-muted-foreground hover:bg-surface-2 hover:text-foreground","\n "),children:[(0,n.jsx)(ez.n,{className:"h-3.5 w-3.5",color:(0,es.LV)(t.repositoryName)}),(0,n.jsx)("span",{className:"min-w-0 truncate",children:t.repositoryName}),(0,n.jsx)(S.m,{status:l,size:"sm",label:d,"data-testid":"repository-tab-status"}),c>0&&(0,n.jsx)("span",{"data-testid":"repository-tab-attention-count","aria-label":i("attention.badgeLabel",{count:c}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-[10px] font-semibold leading-4 tabular-nums text-warning-foreground",children:c})]})});function e_(e){let{group:t,anchor:r,factor:s,activeWorktreeId:o,onBranchClick:i}=e,l=(0,x.c)("common"),c=(0,a.useRef)(null);if((0,a.useEffect)(()=>{var e;let t=null==(e=c.current)?void 0:e.querySelector("button");null==t||t.focus()},[t.repositoryName]),"undefined"==typeof document)return null;let d=Math.round(300*s),u=window.innerWidth;return k.createPortal((0,n.jsx)("div",{ref:c,"data-repository-tab-panel":"","data-testid":"repository-tab-popover","data-repository":t.repositoryName,role:"menu","aria-label":l("sidebar.branchNavigation"),className:"fixed rounded-md border border-sidebar-border bg-sidebar text-sidebar-foreground shadow-lg",style:{top:r.bottom+4,left:eD(r,d,u),width:d,zIndex:eB.M.POPOVER},children:(0,n.jsx)("div",{"data-testid":"repository-tab-popover-list",className:"overflow-y-auto overflow-x-hidden py-1",style:{maxHeight:"".concat(Math.round(520*s),"px")},children:0===t.branches.length?(0,n.jsx)("p",{className:"px-4 py-6 text-center text-sm text-sidebar-muted",children:l("sidebar.noBranchesAvailable")}):t.branches.map(e=>(0,n.jsx)(K,{branch:e,isSelected:e.id===o,onClick:()=>i(e.id),showRepositoryName:!1},e.id))})}),document.body)}function eH(e){var t;let{groups:r,anchorRef:s,activeRepositoryName:a,onSelect:o}=e,i=(0,x.c)("common"),l=null==(t=s.current)?void 0:t.getBoundingClientRect();if("undefined"==typeof document||!l)return null;let c=window.innerWidth;return k.createPortal((0,n.jsx)("div",{"data-repository-tab-panel":"","data-testid":"repository-tab-overflow-menu",role:"menu","aria-label":i("nav.repositories"),className:"fixed rounded-md border border-sidebar-border bg-sidebar text-sidebar-foreground shadow-lg",style:{top:l.bottom+4,left:eD({left:l.left,right:l.right,bottom:l.bottom},300,c),width:300,maxHeight:"".concat(520,"px"),zIndex:eB.M.POPOVER},children:(0,n.jsx)("div",{className:"overflow-y-auto py-1",style:{maxHeight:"inherit"},children:r.map(e=>{let t=(0,es.zD)(e.branches);return(0,n.jsxs)("button",{type:"button",role:"menuitem","data-testid":"repository-tab-overflow-item","data-repository":e.repositoryName,"aria-current":e.repositoryName===a?"true":void 0,onClick:()=>o(e.repositoryName),className:"flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors hover:bg-sidebar-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:[(0,n.jsx)(ez.n,{className:"h-3.5 w-3.5",color:(0,es.LV)(e.repositoryName)}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.repositoryName}),(0,n.jsx)(S.m,{status:t,size:"sm",label:i(eI.PL[t].labelKey)}),(0,n.jsx)("span",{className:"tabular-nums text-xs text-sidebar-muted",children:e.branches.length})]},e.repositoryName)})})}),document.body)}var eG=r(9540);function eq(e){let{count:t}=e,r=(0,x.c)("common");return 0===t?null:(0,n.jsx)("span",{"data-testid":"attention-badge-bubble",role:"status","aria-label":r("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=[{labelKey:"nav.sessions",href:"/sessions",isActive:e=>e.startsWith("/sessions"),icon:(0,n.jsx)(p.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:e=>e.startsWith("/review"),icon:(0,n.jsx)(g.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:e=>e.startsWith("/more"),icon:(0,n.jsx)(eW.A,{size:20,"aria-hidden":"true"})}];function e$(){let e=(0,s.usePathname)(),{setOpen:t}=(0,eK.C)(),r=(0,x.c)("commandPalette"),a=(0,x.c)("common"),{count:i}=(0,et.Lv)(),l=(0,o.pT)();return(null==l?void 0:l.isMobileDrawerOpen)?null:(0,n.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,n.jsxs)("div",{className:"flex items-center justify-around h-14",children:[l&&(0,n.jsxs)("button",{type:"button","data-testid":"mobile-nav-open-sidebar",onClick:l.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,n.jsx)(eG.A,{size:20,"aria-hidden":"true"}),(0,n.jsx)("span",{className:"mt-1 whitespace-nowrap",children:a("sidebar.branches")})]}),eU.map(t=>{let r=t.isActive(e),s=!0===t.showsAttentionBadge&&i>0;return(0,n.jsxs)(h,{href:s?ee.ks:t.href,className:"flex flex-col items-center justify-center flex-1 h-full text-xs transition-colors ".concat(r?"text-accent-600 dark:text-accent-400":"text-muted-foreground hover:text-foreground"),children:[(0,n.jsxs)("span",{className:"relative inline-flex",children:[t.icon,!0===t.showsAttentionBadge&&(0,n.jsx)(eq,{count:i})]}),(0,n.jsx)("span",{className:"mt-1 whitespace-nowrap",children:a(t.labelKey)})]},t.href)}),(0,n.jsxs)("button",{type:"button","data-testid":"mobile-command-palette-trigger",onClick:()=>t(!0),"aria-label":r("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,n.jsx)(eN.A,{size:20,"aria-hidden":"true"}),(0,n.jsx)("span",{className:"mt-1 whitespace-nowrap",children:r("mobileLabel")})]})]})})}function eX(){let{shouldSurface:e,isReconnecting:t}=(0,eM.Fx)(),r=(0,x.c)("common");if(!e)return null;let s=r(t?"connection.reconnecting":"connection.offline"),a=r(t?"connection.reconnectingTooltip":"connection.offlineTooltip");return(0,n.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,n.jsxs)("div",{className:"flex items-center justify-center gap-1.5 px-3 py-1 text-xs",children:[(0,n.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 eY=r(45573),eZ=r(94465),eJ=r(70628);let eQ=["global","terminal","composer","editor"],e0=[{id:"commandPalette",keys:["MOD","K"],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 e1(){let{open:e,setOpen:t}=(0,eJ.K)(),{open:r}=(0,eK.C)(),s=(0,x.c)("keyboardShortcuts"),[o,i]=(0,a.useState)(!1);(0,a.useEffect)(()=>i(function(){if("undefined"==typeof navigator)return!1;let e=navigator.platform||navigator.userAgent||"";return/Mac|iPhone|iPad|iPod/.test(e)}()),[]);let l=(0,a.useRef)(e);(0,a.useEffect)(()=>{l.current=e},[e]);let c=(0,a.useRef)(r);(0,a.useEffect)(()=>{c.current=r},[r]),(0,a.useEffect)(()=>{function e(e){"?"!==e.key||e.isComposing||229===e.keyCode||(0,eY.tJ)(e.target)||c.current||l.current||(e.preventDefault(),t(!0))}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let d=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e0;return eQ.map(t=>({scope:t,shortcuts:e.filter(e=>e.scope===t)})).filter(e=>e.shortcuts.length>0)}();return(0,n.jsx)(eZ.a,{isOpen:e,onClose:()=>t(!1),title:s("title"),size:"md",children:(0,n.jsx)("div",{"data-testid":"keyboard-shortcuts-overlay",className:"space-y-6",children:d.map(e=>{let{scope:t,shortcuts:r}=e;return(0,n.jsxs)("section",{"data-testid":"keyboard-shortcuts-scope-".concat(t),children:[(0,n.jsx)("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:s("scopes.".concat(t))}),(0,n.jsx)("ul",{className:"divide-y divide-border",children:r.map(e=>(0,n.jsxs)("li",{"data-testid":"keyboard-shortcut-".concat(e.id),className:"flex items-center justify-between gap-4 py-2",children:[(0,n.jsx)("span",{className:"text-sm text-foreground",children:s("shortcuts.".concat(e.id))}),(0,n.jsx)("span",{className:"flex flex-shrink-0 items-center gap-1",children:e.keys.map((e,t)=>(0,n.jsx)(eL.u,{children:"MOD"===e?o?"⌘":"Ctrl":e},t))})]},e.id))})]},t)})})})}var e2=r(77016),e5=r(36809),e4=r(31166);let e3=/^v?\d+\.\d+\.\d+$/;function e9(e){return e.replace(/^v/,"").split(".").map(Number)}let e6="commandmate.lastSeenAppVersion";function e8(e){try{window.localStorage.setItem(e6,e)}catch(e){}}let e7=[{key:"added",labelKey:"whatsNew.added"},{key:"improved",labelKey:"whatsNew.improved"},{key:"fixed",labelKey:"whatsNew.fixed"}];function te(){let e=(0,x.c)("common"),t=(0,e5.Ym)(),[r,s]=(0,a.useState)(null),[o,i]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e,t="0.39.1";try{e=window.localStorage.getItem(e6)}catch(e){return}let r=function(e,t){if(!e3.test(t))return{kind:"none"};if(null===e||!e3.test(e))return{kind:"remember"};let r=function(e,t){let r=e9(e),n=e9(t),s=Math.max(r.length,n.length);for(let e=0;e<s;e++){let t=r[e]||0,s=n[e]||0;if(t>s)return 1;if(t<s)return -1}return 0}(t,e);return 0===r?{kind:"none"}:r<0?{kind:"remember"}:{kind:"show",from:e}}(e,t);if("none"===r.kind)return;if("remember"===r.kind)return void e8(t);let n=!1;return en.GQ.getReleaseNotes(r.from,t).then(e=>{n||(s({from:r.from,to:t,notes:e.notes}),i(!0))},()=>{}),()=>{n=!0}},[]);let l=(0,a.useCallback)(()=>{r&&e8(r.to),i(!1)},[r]);if(!r)return null;let c="ja"===t?"ja":"en";return(0,n.jsx)(eZ.a,{isOpen:o,onClose:l,title:e("whatsNew.title",{from:r.from,to:r.to}),size:"md",children:(0,n.jsxs)("div",{className:"space-y-4","data-testid":"whats-new-dialog",children:[0===r.notes.length?(0,n.jsx)("p",{className:"text-sm text-foreground","data-testid":"whats-new-empty",children:e("whatsNew.empty")}):r.notes.map(t=>(0,n.jsxs)("section",{className:"space-y-3","data-testid":"whats-new-version-".concat(t.version),children:[(0,n.jsxs)("h4",{className:"text-sm font-semibold text-foreground",children:["v",t.version,(0,n.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:t.date})]}),t.highlight&&(0,n.jsxs)("div",{"data-testid":"whats-new-highlight",children:[(0,n.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:e("whatsNew.highlight")}),(0,n.jsx)("p",{className:"mt-1 text-sm text-foreground",children:t.highlight[c]})]}),e7.map(r=>{let{key:s,labelKey:a}=r;return t[s].length>0?(0,n.jsxs)("div",{"data-testid":"whats-new-".concat(s),children:[(0,n.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:e(a)}),(0,n.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-sm text-foreground",children:t[s].map((e,t)=>(0,n.jsx)("li",{children:e[c]},t))})]},s):null})]},t.version)),(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3 border-t border-border pt-3",children:[(0,n.jsx)("a",{href:"".concat("https://github.com/Kewton/CommandMate/releases/tag/v").concat(r.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,n.jsx)(e4.$,{type:"button",variant:"primary",size:"sm",onClick:l,"data-testid":"whats-new-close",children:e("whatsNew.close")})]})]})})}let tt="transform transition-transform duration-300 ease-out",tr=(0,a.memo)(function(e){let{children:t}=e,{isOpen:r,isMobileDrawerOpen:u,closeMobileDrawer:m,width:f,setWidth:h,repoTabBarMode:x}=(0,o.VF)(),b=(0,i.a)(),{showSidebar:p,showGlobalNav:g}=function(){var e=(0,s.usePathname)();for(let t of c)if(e.startsWith(t.prefix))return{...l,...t.config};return{...l}}(),{factor:v}=(0,d.Ps)(),y=Math.round(160*v),w=Math.round(480*v),j=Math.round(Math.min(w,Math.max(y,f*v))),N=(0,es.fs)(null!=x?x:es.PB,r),k=Math.round(32*v)+64*!!g,C=(0,a.useRef)(null),S=(0,a.useRef)(null),M=(0,a.useCallback)(e=>{h(Math.round(e/v))},[h,v]);return b?(0,n.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[(0,n.jsx)(eX,{}),u&&(0,n.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:m,"aria-hidden":"true"}),p&&(0,n.jsx)("aside",{"data-testid":"sidebar-container",className:"\n fixed left-0 top-0 h-full w-72 z-50\n ".concat(tt,"\n ").concat(u?"translate-x-0":"-translate-x-full","\n "),role:"complementary",children:(0,n.jsx)(ec,{})}),(0,n.jsx)("main",{className:"flex-1 min-h-0 overflow-hidden ".concat(g?"pb-nav-safe":""),role:"main","data-view-transition":"content",children:t}),g&&(0,n.jsx)(e$,{}),(0,n.jsx)(eY.xq,{}),(0,n.jsx)(e1,{}),(0,n.jsx)(e2.n,{}),(0,n.jsx)(te,{})]}):(0,n.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[N&&(0,n.jsx)(eF,{}),g&&(0,n.jsx)(eR,{}),(0,n.jsxs)("div",{className:"flex flex-1 min-h-0",children:[p&&(0,n.jsxs)("aside",{ref:C,"data-testid":"sidebar-container",className:"\n fixed left-0\n ".concat(g?"top-16 h-[calc(100vh-4rem)]":"top-0 h-full","\n border-r border-border\n ").concat(tt,"\n ").concat(r?"translate-x-0":"-translate-x-full","\n "),style:{width:"".concat(j,"px"),zIndex:eB.M.SIDEBAR,...N?{top:"".concat(k,"px"),height:"calc(100vh - ".concat(k,"px)")}:{}},role:"complementary","aria-hidden":!r,children:[(0,n.jsx)(ec,{}),(0,n.jsx)(tn,{currentWidth:j,minWidth:y,maxWidth:w,sidebarRef:C,mainRef:S,onWidthChange:M})]}),(0,n.jsx)("main",{ref:S,className:"flex-1 min-w-0 h-full overflow-hidden transition-[padding] duration-300 ease-out",style:{paddingLeft:p&&r?"".concat(j,"px"):0},role:"main","data-view-transition":"content",children:t})]}),(0,n.jsx)(eY.xq,{}),(0,n.jsx)(e1,{}),(0,n.jsx)(e2.n,{}),(0,n.jsx)(te,{})]})});function tn(e){let{currentWidth:t,minWidth:r,maxWidth:s,sidebarRef:a,mainRef:o,onWidthChange:i}=e;return(0,n.jsx)("div",{"data-testid":"sidebar-resize-handle","aria-hidden":"true",onMouseDown:e=>{e.preventDefault();let n=e.clientX,l=t;o.current&&(o.current.style.transition="none");let c=e=>{l=Math.max(r,Math.min(s,t+(e.clientX-n))),a.current&&(a.current.style.width="".concat(l,"px")),o.current&&(o.current.style.paddingLeft="".concat(l,"px"))},d=()=>{document.body.style.cursor="",document.body.style.userSelect="",o.current&&(o.current.style.transition=""),document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",d),i(l)};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",c),document.addEventListener("mouseup",d)},className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-accent-500/40 transition-colors"})}let ts=["/login","/offline","/proxy"],ta=/^\/worktrees\/[^/]+\/(terminal|files)(\/|$)/;function to(e){var t;let{children:r}=e,a=(0,s.usePathname)();return(t=null!=a?a:"",ts.some(e=>t===e||t.startsWith("".concat(e,"/")))||ta.test(t)||0)?(0,n.jsx)(n.Fragment,{children:r}):(0,n.jsx)(tr,{children:r})}},13673:()=>{},25772:(e,t,r)=>{"use strict";r.d(t,{AppProviders:()=>E});var n=r(95155),s=r(3809),a=r(5379),o=r(32916),i=r(65380),l=r(22592),c=r(92614),d=r(70628),u=r(66966),m=r(89275),f=r(60199),h=r(36402),x=r(63470),b=r(40823),p=r(58165),g=r(94442),v=r(72604),y=r(95275),w=r(79832),j=r(12115),N=r(18955),k=r(89559),C=r(59854),S=r(77016);function M(){let e=(0,N.c)("pwa"),[t,r]=(0,j.useState)(null),s=(0,j.useRef)(!1),a=(0,S.W)();return((0,j.useEffect)(()=>{if("undefined"==typeof navigator||!("serviceWorker"in navigator))return;let e=!1,t=t=>{e||r(t)};navigator.serviceWorker.register("/sw.js").then(e=>{e.waiting&&navigator.serviceWorker.controller&&t(e.waiting),e.addEventListener("updatefound",()=>{let r=e.installing;r&&r.addEventListener("statechange",()=>{"installed"===r.state&&navigator.serviceWorker.controller&&t(r)})})}).catch(()=>{});let n=()=>{s.current||(s.current=!0,window.location.reload())};return navigator.serviceWorker.addEventListener("controllerchange",n),()=>{e=!0,navigator.serviceWorker.removeEventListener("controllerchange",n)}},[]),!t||a)?null:(0,n.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:C.M.TOAST},children:(0,n.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,n.jsx)("span",{className:"text-sm font-medium text-foreground",children:e("update.available")}),(0,n.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,n.jsx)(k.A,{className:"h-4 w-4"}),e("update.reload")]})]})})}function E(e){let{children:t,locale:r,messages:j,timeZone:N,authEnabled:k=!1}=e;return(0,n.jsx)(s.default,{locale:r,messages:j,timeZone:N,children:(0,n.jsx)(g.tE,{children:(0,n.jsx)(a.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,n.jsx)(i.O,{authEnabled:k,children:(0,n.jsx)(l.W5,{children:(0,n.jsx)(o.GB,{children:(0,n.jsx)(f.tS,{children:(0,n.jsxs)(u.g7,{children:[(0,n.jsx)(v.rM,{}),(0,n.jsx)(w.o,{}),(0,n.jsx)(y.H,{}),(0,n.jsx)(c.E,{children:(0,n.jsx)(d.S,{children:(0,n.jsx)(h.aF,{children:(0,n.jsx)(x.y2,{children:(0,n.jsxs)(b.NS,{children:[(0,n.jsx)(m.Bo,{children:t}),(0,n.jsx)(M,{}),(0,n.jsx)(p.gZ,{})]})})})})})]})})})})})})})})}},38218:(e,t,r)=>{"use strict";r.d(t,{D:()=>a,a:()=>o});var n=r(12115);let s=n.useLayoutEffect,a=768;function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{breakpoint:t=a}=e,[r,o]=(0,n.useState)(!1);return s(()=>{let e=window.matchMedia("(max-width: ".concat(t-1,"px)"));o(e.matches);let r=e=>{o(e.matches)};return e.addEventListener("change",r),()=>{e.removeEventListener("change",r)}},[t]),r}},77016:(e,t,r)=>{"use strict";r.d(t,{W:()=>g,n:()=>v});var n=r(95155),s=r(12115),a=r(18955),o=r(52056),i=r(89559),l=r(65229),c=r(59854),d=r(60199),u=r(52703);let m=0,f=new Set;function h(){for(let e of f)e()}function x(e){return f.add(e),()=>{f.delete(e)}}function b(){return m>0}function p(){return!1}function g(){return(0,s.useSyncExternalStore)(x,b,p)}function v(){let e=(0,a.c)("common"),[t,r]=(0,s.useState)(null),[f,x]=(0,s.useState)(null),b=(0,s.useCallback)(e=>{if(e.type!==u.Oo)return;let{serverVersion:t,clientVersion:n}=e;"string"==typeof t&&"string"==typeof n&&t&&n&&t!==f&&r({serverVersion:t,clientVersion:n})},[f]);(0,d.T3)(b);let p=null!==t;(0,s.useEffect)(()=>{if(p)return m+=1,h(),()=>{m-=1,h()}},[p]);let g=(0,s.useCallback)(()=>{window.location.reload()},[]),v=(0,s.useCallback)(()=>{r(e=>(e&&x(e.serverVersion),null))},[]);return t?(0,n.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:c.M.TOAST},children:[(0,n.jsx)(o.A,{className:"h-5 w-5 shrink-0 mt-0.5","aria-hidden":"true"}),(0,n.jsxs)("div",{className:"flex flex-col gap-0.5 text-sm",children:[(0,n.jsx)("span",{className:"font-semibold",children:e("versionMismatch.title")}),(0,n.jsx)("span",{children:e("versionMismatch.description",{serverVersion:t.serverVersion,clientVersion:t.clientVersion})})]}),(0,n.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,n.jsx)(i.A,{className:"h-4 w-4","aria-hidden":"true"}),e("versionMismatch.reload")]}),(0,n.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,n.jsx)(l.A,{className:"h-4 w-4","aria-hidden":"true"})})]}):null}},80903:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,22311,23)),Promise.resolve().then(r.t.bind(r,7183,23)),Promise.resolve().then(r.t.bind(r,13673,23)),Promise.resolve().then(r.bind(r,13533)),Promise.resolve().then(r.bind(r,25772))}},e=>{e.O(0,[5373,2978,6809,4909,2770,2619,6192,8318,8407,2407,344,5449,6966,8606,4768,8165,9619,8441,1255,7358],()=>e(e.s=80903)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662,1174,3125,4209,5361,6926],{3809:(e,r,l)=>{"use strict";l.d(r,{default:()=>t});var s=l(36809),o=l(95155);function t(e){let{locale:r,...l}=e;if(!r)throw Error(void 0);return(0,o.jsx)(s.Dk,{locale:r,...l})}},22998:(e,r,l)=>{Promise.resolve().then(l.bind(l,3809))}},e=>{e.O(0,[6809,8441,1255,7358],()=>e(e.s=22998)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{48935:(e,t,n)=>{Promise.resolve().then(n.bind(n,70462))},65380:(e,t,n)=>{"use strict";n.d(t,{H:()=>o,O:()=>a});var r=n(95155),i=n(12115);let l=(0,i.createContext)(!1);function a(e){let{children:t,authEnabled:n}=e;return(0,r.jsx)(l.Provider,{value:n,children:t})}function o(){return(0,i.useContext)(l)}},70462:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n(95155),i=n(12115),l=n(18955),a=n(65380);let o=/(?:^|&)code=([^&]*)/,u=/(?:^|&)token=([^&]*)/,s={code:"/api/remote/pair",token:"/api/auth/login"};var d=n(28019);function c(){var e;let t=(0,l.c)("auth"),n=(0,a.H)(),[c,f]=(0,i.useState)(""),[h,m]=(0,i.useState)(null),[g,p]=(0,i.useState)(!1),[k,x]=(0,i.useState)(null),{autoLoginErrorKey:v,retryAfterSeconds:w,pairingInProgress:b,clearError:y}=function(e){let[t,n]=(0,i.useState)(null),[r,l]=(0,i.useState)(null),[a,d]=(0,i.useState)(!1),c=(0,i.useRef)(!1);return(0,i.useEffect)(()=>{let t;if(!e||c.current)return;c.current=!0;let r=window.location.hash;if(!r)return;let i=function(e){let t=e.match(o);if(t)return{kind:"code",raw:t[1]};let n=e.match(u);return n?{kind:"token",raw:n[1]}:null}(r.startsWith("#")?r.substring(1):r);if(!i)return;history.replaceState(null,"","".concat(window.location.pathname).concat(window.location.search));let a="code"===i.kind?"pairing_invalid":"token_invalid";try{t=decodeURIComponent(i.raw)}catch(e){n(a);return}if(t=t.trim()){if(t.length>256)return void n(a);"token"===i.kind?console.warn("[useFragmentLogin] The #token= login link is deprecated and will be removed in a future release (Issue #1937). Use the pairing URL that `commandmate remote` prints."):d(!0),(async()=>{try{let e=await fetch(s[i.kind],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify("code"===i.kind?{code:t}:{token:t})});if(e.ok){window.location.href="/";return}401===e.status?n(a):410===e.status?n("pairing_expired"):429===e.status?(l(function(e){if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:null}(e.headers.get("Retry-After"))),n("rate_limited")):n("auto_login_failed")}catch(e){n("auto_login_failed")}finally{d(!1)}})()}},[e]),{autoLoginErrorKey:t,retryAfterSeconds:r,pairingInProgress:a,clearError:()=>{n(null),l(null)}}}(n),_={token_invalid:t("login.qr.tokenExpiredOrInvalid"),rate_limited:t("login.qr.rateLimited"),auto_login_failed:t("login.qr.autoLoginError"),pairing_invalid:t("login.pairing.invalidCode"),pairing_expired:t("login.pairing.expired")},j=v&&null!=(e=_[v])?e:null;async function N(e){e.preventDefault(),m(null),y(),p(!0);try{let e=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:c})});if(e.ok){window.location.href="/";return}if(429===e.status){let n=e.headers.get("Retry-After"),r=n?parseInt(n,10):900;x(r),m(t("error.lockedOut"));return}if(401===e.status)return void m(t("error.invalidToken"));m(t("error.unknownError"))}catch(e){m(t("error.unknownError"))}finally{p(!1)}}if((0,i.useEffect)(()=>{n||(window.location.href="/")},[n]),(0,i.useEffect)(()=>{null!==w&&x(w)},[w]),(0,i.useEffect)(()=>{if(null===k||k<=0)return;let e=setInterval(()=>{x(t=>null===t||t<=1?(clearInterval(e),null):t-1)},1e3);return()=>clearInterval(e)},[k]),!n)return null;let E=j||h;return(0,r.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-background",children:(0,r.jsxs)("div",{className:"bg-surface p-8 rounded-lg shadow-md w-full max-w-md",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold mb-6 text-center text-foreground",children:t("login.title")}),b&&(0,r.jsx)("p",{className:"mb-4 text-center text-sm text-muted-foreground",role:"status",children:t("login.pairing.inProgress")}),(0,r.jsxs)("form",{onSubmit:N,className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"token",className:"block text-sm font-medium text-foreground mb-1",children:t("login.tokenLabel")}),(0,r.jsx)(d.pd,{id:"token",type:"password",value:c,onChange:e=>f(e.target.value),placeholder:t("login.tokenPlaceholder"),autoFocus:!0,autoComplete:"off",disabled:null!==k&&k>0})]}),E&&(0,r.jsxs)("div",{className:"text-danger-foreground text-sm",children:[E,null!==k&&k>0&&(0,r.jsx)("div",{className:"mt-1",children:t("error.retryAfter",{minutes:Math.ceil(k/60)})})]}),(0,r.jsx)(d.$n,{type:"submit",fullWidth:!0,loading:g,disabled:!c||null!==k&&k>0,children:t("login.submitButton")})]})]})})}}},e=>{e.O(0,[6809,4909,2770,6402,8019,8441,1255,7358],()=>e(e.s=48935)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{48935:(e,t,n)=>{Promise.resolve().then(n.bind(n,70462))},65380:(e,t,n)=>{"use strict";n.d(t,{H:()=>o,O:()=>a});var r=n(95155),i=n(12115);let l=(0,i.createContext)(!1);function a(e){let{children:t,authEnabled:n}=e;return(0,r.jsx)(l.Provider,{value:n,children:t})}function o(){return(0,i.useContext)(l)}},70462:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n(95155),i=n(12115),l=n(18955),a=n(65380);let o=/(?:^|&)code=([^&]*)/,u=/(?:^|&)token=([^&]*)/,s={code:"/api/remote/pair",token:"/api/auth/login"};var d=n(48407);function c(){var e;let t=(0,l.c)("auth"),n=(0,a.H)(),[c,f]=(0,i.useState)(""),[h,m]=(0,i.useState)(null),[g,p]=(0,i.useState)(!1),[k,x]=(0,i.useState)(null),{autoLoginErrorKey:v,retryAfterSeconds:w,pairingInProgress:b,clearError:y}=function(e){let[t,n]=(0,i.useState)(null),[r,l]=(0,i.useState)(null),[a,d]=(0,i.useState)(!1),c=(0,i.useRef)(!1);return(0,i.useEffect)(()=>{let t;if(!e||c.current)return;c.current=!0;let r=window.location.hash;if(!r)return;let i=function(e){let t=e.match(o);if(t)return{kind:"code",raw:t[1]};let n=e.match(u);return n?{kind:"token",raw:n[1]}:null}(r.startsWith("#")?r.substring(1):r);if(!i)return;history.replaceState(null,"","".concat(window.location.pathname).concat(window.location.search));let a="code"===i.kind?"pairing_invalid":"token_invalid";try{t=decodeURIComponent(i.raw)}catch(e){n(a);return}if(t=t.trim()){if(t.length>256)return void n(a);"token"===i.kind?console.warn("[useFragmentLogin] The #token= login link is deprecated and will be removed in a future release (Issue #1937). Use the pairing URL that `commandmate remote` prints."):d(!0),(async()=>{try{let e=await fetch(s[i.kind],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify("code"===i.kind?{code:t}:{token:t})});if(e.ok){window.location.href="/";return}401===e.status?n(a):410===e.status?n("pairing_expired"):429===e.status?(l(function(e){if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:null}(e.headers.get("Retry-After"))),n("rate_limited")):n("auto_login_failed")}catch(e){n("auto_login_failed")}finally{d(!1)}})()}},[e]),{autoLoginErrorKey:t,retryAfterSeconds:r,pairingInProgress:a,clearError:()=>{n(null),l(null)}}}(n),_={token_invalid:t("login.qr.tokenExpiredOrInvalid"),rate_limited:t("login.qr.rateLimited"),auto_login_failed:t("login.qr.autoLoginError"),pairing_invalid:t("login.pairing.invalidCode"),pairing_expired:t("login.pairing.expired")},j=v&&null!=(e=_[v])?e:null;async function N(e){e.preventDefault(),m(null),y(),p(!0);try{let e=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:c})});if(e.ok){window.location.href="/";return}if(429===e.status){let n=e.headers.get("Retry-After"),r=n?parseInt(n,10):900;x(r),m(t("error.lockedOut"));return}if(401===e.status)return void m(t("error.invalidToken"));m(t("error.unknownError"))}catch(e){m(t("error.unknownError"))}finally{p(!1)}}if((0,i.useEffect)(()=>{n||(window.location.href="/")},[n]),(0,i.useEffect)(()=>{null!==w&&x(w)},[w]),(0,i.useEffect)(()=>{if(null===k||k<=0)return;let e=setInterval(()=>{x(t=>null===t||t<=1?(clearInterval(e),null):t-1)},1e3);return()=>clearInterval(e)},[k]),!n)return null;let E=j||h;return(0,r.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-background",children:(0,r.jsxs)("div",{className:"bg-surface p-8 rounded-lg shadow-md w-full max-w-md",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold mb-6 text-center text-foreground",children:t("login.title")}),b&&(0,r.jsx)("p",{className:"mb-4 text-center text-sm text-muted-foreground",role:"status",children:t("login.pairing.inProgress")}),(0,r.jsxs)("form",{onSubmit:N,className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"token",className:"block text-sm font-medium text-foreground mb-1",children:t("login.tokenLabel")}),(0,r.jsx)(d.pd,{id:"token",type:"password",value:c,onChange:e=>f(e.target.value),placeholder:t("login.tokenPlaceholder"),autoFocus:!0,autoComplete:"off",disabled:null!==k&&k>0})]}),E&&(0,r.jsxs)("div",{className:"text-danger-foreground text-sm",children:[E,null!==k&&k>0&&(0,r.jsx)("div",{className:"mt-1",children:t("error.retryAfter",{minutes:Math.ceil(k/60)})})]}),(0,r.jsx)(d.$n,{type:"submit",fullWidth:!0,loading:g,disabled:!c||null!==k&&k>0,children:t("login.submitButton")})]})]})})}}},e=>{e.O(0,[6809,4909,2770,8407,8441,1255,7358],()=>e(e.s=48935)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662,1174,3125,4209,5361,6926],{3809:(e,r,l)=>{"use strict";l.d(r,{default:()=>t});var s=l(36809),o=l(95155);function t(e){let{locale:r,...l}=e;if(!r)throw Error(void 0);return(0,o.jsx)(s.Dk,{locale:r,...l})}},22998:(e,r,l)=>{Promise.resolve().then(l.bind(l,3809))}},e=>{e.O(0,[6809,8441,1255,7358],()=>e(e.s=22998)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3310],{6191:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},8803:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},20063:(e,t,a)=>{"use strict";var s=a(47260);a.o(s,"useParams")&&a.d(t,{useParams:function(){return s.useParams}}),a.o(s,"usePathname")&&a.d(t,{usePathname:function(){return s.usePathname}}),a.o(s,"useRouter")&&a.d(t,{useRouter:function(){return s.useRouter}}),a.o(s,"useSearchParams")&&a.d(t,{useSearchParams:function(){return s.useSearchParams}})},20562:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]])},23327:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},42529:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},48314:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},52056:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},57101:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>d});var s=a(95155),r=a(18955),c=a(58165);function d(){let e=(0,r.c)("common");return(0,s.jsxs)("div",{className:"container-custom py-8 overflow-auto h-full",children:[(0,s.jsxs)("div",{className:"mb-6",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("nav.more")}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:e("settings.pageDescription")})]}),(0,s.jsx)(c.O3,{})]})}},65229:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},68695:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]])},78874:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},80867:(e,t,a)=>{Promise.resolve().then(a.bind(a,57101))},85998:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(71847).A)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]])}},e=>{e.O(0,[6809,4909,2770,2619,8407,2407,344,5449,6966,8165,8441,1255,7358],()=>e(e.s=80867)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{20063:(e,t,s)=>{"use strict";var a=s(47260);s.o(a,"useParams")&&s.d(t,{useParams:function(){return a.useParams}}),s.o(a,"usePathname")&&s.d(t,{usePathname:function(){return a.usePathname}}),s.o(a,"useRouter")&&s.d(t,{useRouter:function(){return a.useRouter}}),s.o(a,"useSearchParams")&&s.d(t,{useSearchParams:function(){return a.useSearchParams}})},43424:(e,t,s)=>{"use strict";s.d(t,{OO:()=>i,cx:()=>r,hO:()=>n});let a="commandmate.lastOpenedWorktreeId";function r(){try{return window.localStorage.getItem(a)||null}catch(e){return null}}function n(e){if(e)try{window.localStorage.setItem(a,e)}catch(e){}}function i(e){let{lastOpenedId:t,worktreeIds:s}=e;return t&&s.includes(t)?"/worktrees/".concat(encodeURIComponent(t)):"/sessions"}},54799:(e,t,s)=>{Promise.resolve().then(s.bind(s,89957))},61362:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},65229:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},89957:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>y});var a=s(95155),r=s(12115),n=s(52619),i=s.n(n),o=s(20063),c=s(18955),d=s(66966),l=s(65229),u=s(61362),m=s(99051),h=s(48407),g=s(2317);function f(e){return"boolean"==typeof e}let x=[{key:"registerRepository",href:"/repositories"},{key:"sendFirstMessage",href:"/sessions"}];function p(e){let{worktrees:t,repositories:s,isLoading:n=!1,error:o=null}=e,d=(0,c.c)("home"),{value:p,setValue:b}=(0,g.V)({key:"commandmate:onboarding-dismissed",defaultValue:!1,validate:f}),[v,y]=(0,r.useState)(!1);(0,r.useEffect)(()=>y(!0),[]);let k=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{hasRepository:(null!=t?t:[]).length>0,hasSentMessage:(null!=e?e:[]).some(e=>!!e.lastUserMessageAt)}}(t,s),j=k.hasRepository&&k.hasSentMessage,N=v&&!n&&null===o;return((0,r.useEffect)(()=>{N&&j&&!p&&b(!0)},[N,j,p,b]),!N||j||p)?null:(0,a.jsx)("div",{className:"mb-8",children:(0,a.jsxs)(h.Zp,{variant:"elevated","data-testid":"onboarding-checklist",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,a.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:d("onboarding.title")}),(0,a.jsx)(h.$n,{variant:"ghost",size:"sm","aria-label":d("onboarding.dismiss"),"data-testid":"onboarding-dismiss",onClick:()=>b(!0),children:(0,a.jsx)(l.A,{size:16,"aria-hidden":"true"})})]}),(0,a.jsx)("ol",{className:"mt-3 space-y-3",children:x.map(e=>{let{key:t,href:s}=e,r="registerRepository"===t?k.hasRepository:k.hasSentMessage;return(0,a.jsxs)("li",{className:"flex items-center gap-3","data-testid":"onboarding-step-".concat(t),"data-complete":r,children:[r?(0,a.jsx)(u.A,{size:20,className:"shrink-0 text-success-foreground","aria-hidden":"true"}):(0,a.jsx)(m.A,{size:20,className:"shrink-0 text-muted-foreground","aria-hidden":"true"}),(0,a.jsx)("span",{className:"min-w-0 flex-1 text-sm ".concat(r?"text-muted-foreground line-through":"text-foreground"),children:d("onboarding.steps.".concat(t))}),!r&&(0,a.jsx)(i(),{href:s,"data-testid":"onboarding-action-".concat(t),className:"shrink-0 rounded-md bg-accent-600 px-3 py-1.5 text-xs font-medium text-white transition-colors hover:bg-accent-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring dark:bg-accent-500 dark:hover:bg-accent-600",children:d("onboarding.actions.".concat(t))})]},t)})})]})})}var b=s(7636),v=s(43424);function y(){let e=(0,c.c)("common"),t=(0,o.useRouter)(),{worktrees:s,repositories:n,isLoading:l,error:u,refresh:m}=(0,d.Fn)(),g=l&&0===s.length,f=!g&&null!==u&&0===s.length,x=!g&&!f&&0===s.length,y=!g&&!f&&!x,k=(0,r.useMemo)(()=>(0,b.s6)(s,(0,b.UZ)(n)).map(e=>e.id),[s,n]),j=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{y&&!j.current&&(j.current=!0,t.replace((0,v.OO)({lastOpenedId:(0,v.cx)(),worktreeIds:k})))},[y,k,t]),(0,a.jsx)("div",{className:"container-custom py-8 overflow-auto h-full",children:f?(0,a.jsxs)("div",{"data-testid":"home-load-error",role:"alert",className:"py-16 text-center",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:e("sidebar.branchesLoadFailed")}),(0,a.jsx)(h.$n,{type:"button",variant:"secondary",size:"sm",className:"mt-3","data-testid":"home-load-retry",onClick:()=>{m()},children:e("sidebar.retryLoadBranches")})]}):x?(0,a.jsxs)("div",{"data-testid":"home-empty",children:[(0,a.jsx)(p,{worktrees:s,repositories:n,isLoading:!1,error:null}),(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:e("sidebar.noBranchesAvailable")}),(0,a.jsx)(i(),{href:"/repositories","data-testid":"home-add-repository",className:"mt-3 inline-block 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 dark:bg-accent-500 dark:hover:bg-accent-600",children:e("repositories.add")})]})]}):(0,a.jsx)("div",{"data-testid":"home-loading",role:"status","aria-label":e("loadingPage"),className:"flex justify-center py-16",children:(0,a.jsx)(h.y$,{size:"lg",variant:"muted"})})})}}},e=>{e.O(0,[6809,4909,2770,2619,8407,2407,344,5449,6966,8606,4768,8441,1255,7358],()=>e(e.s=54799)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662,1174,3125,4209,5361,6926],{3809:(e,r,l)=>{"use strict";l.d(r,{default:()=>t});var s=l(36809),o=l(95155);function t(e){let{locale:r,...l}=e;if(!r)throw Error(void 0);return(0,o.jsx)(s.Dk,{locale:r,...l})}},22998:(e,r,l)=>{Promise.resolve().then(l.bind(l,3809))}},e=>{e.O(0,[6809,8441,1255,7358],()=>e(e.s=22998)),_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 a=s(95155),r=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:a=64,maxPull:l=96,resistance:n=.5}=e,i=(0,r.useRef)(null),[o,c]=(0,r.useState)(0),[d,u]=(0,r.useState)(!1),[p,m]=(0,r.useState)(!1),h=(0,r.useRef)(null),x=(0,r.useRef)(0),f=(0,r.useRef)(!1);f.current=d;let g=(0,r.useCallback)(()=>{h.current=null,x.current=0,c(0),m(!1)},[]),b=(0,r.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,r.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 a=Math.min(s*n,l);x.current=a,c(a),m(!0)},[n,l,g]),y=(0,r.useCallback)(async()=>{u(!0),m(!1),c(a);try{await Promise.resolve(t())}finally{u(!1),c(0)}},[t,a]),j=(0,r.useCallback)(()=>{if(null===h.current)return;let e=x.current>=a&&!f.current;h.current=null,x.current=0,e?y():(c(0),m(!1))},[a,y]);return(0,r.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,a.jsxs)("div",{ref:c,className:(0,n.cn)("relative overflow-auto",i),style:{overscrollBehaviorY:"contain"},"data-testid":"pull-to-refresh",children:[(0,a.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,a.jsx)(l.y$,{size:"sm",variant:"accent"})}),(0,a.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:()=>a});let a=(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 a=s(95155),r=s(12115),l=s(9219),n=s(38218),i=s(18955),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 a=e.match(/\/([^\/]+?)(\.git)?$/);return a?a[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:l,onClose:n,onSelect:o,initialPath:u}=e,g=(0,i.c)("common"),[b,v]=(0,r.useState)(null),[y,j]=(0,r.useState)(!1),[N,k]=(0,r.useState)(null),w=(0,r.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,r.useEffect)(()=>{if(!l)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}},[l,u]);let C=(0,r.useCallback)(async()=>{let e=null==b?void 0:b.path;e&&(await d.gC.addRecentPath(e).catch(()=>void 0),o(e),n())},[null==b?void 0:b.path,o,n]),S=function(e,t){let s=[{label:"/",path:null}];if(!e)return s;let a=t.filter(t=>e===t||e.startsWith("".concat(t,"/"))).sort((e,t)=>t.length-e.length)[0];if(!a)return s.push({label:e,path:e}),s;s.push({label:a,path:a});let r=e.slice(a.length).split("/").filter(Boolean),l=a;for(let e of r)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,a.jsx)(c.Jh,{isOpen:l,onClose:n,title:g("repositories.pickerTitle"),size:"full",children:(0,a.jsxs)("div",{className:"flex flex-col h-[calc(100vh-12rem)] md:h-[26rem]",children:[(0,a.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,a.jsxs)(r.Fragment,{children:[t>0&&(0,a.jsx)(p.A,{className:"w-3 h-3 text-muted-foreground flex-shrink-0","aria-hidden":!0}),(0,a.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,a.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto py-2",children:[y&&(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground",children:[(0,a.jsx)(c.y$,{size:"sm"}),g("repositories.pickerLoading")]}),!y&&N&&(0,a.jsx)("p",{className:"px-3 py-2 text-sm text-danger-foreground",children:N}),!y&&!N&&b&&(0,a.jsxs)(a.Fragment,{children:[R&&b.recentPaths.length>0&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsx)("p",{className:"px-3 pb-1 text-xs font-medium text-muted-foreground",children:g("repositories.pickerRecentLabel")}),b.recentPaths.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>void w(e),className:f,children:[(0,a.jsx)(m.A,{className:"w-4 h-4 text-muted-foreground flex-shrink-0","aria-hidden":!0}),(0,a.jsx)("span",{className:"font-mono truncate",children:e})]},e))]}),R&&(0,a.jsx)("p",{className:"px-3 pb-1 text-xs font-medium text-muted-foreground",children:g("repositories.pickerRootsLabel")}),b.parent&&(0,a.jsxs)("button",{type:"button",onClick:()=>{var e;w(null!=(e=b.parent)?e:void 0)},className:f,children:[(0,a.jsx)(h,{className:"w-4 h-4 text-muted-foreground flex-shrink-0","aria-hidden":!0}),g("repositories.pickerUp")]}),b.entries.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>void w(e.path),className:f,children:[(0,a.jsx)(m.A,{className:"w-4 h-4 text-muted-foreground flex-shrink-0","aria-hidden":!0}),(0,a.jsx)("span",{className:"font-mono truncate flex-1",children:e.name}),e.isGitRepo&&(0,a.jsxs)(c.Ex,{variant:"info",className:"flex-shrink-0",children:[(0,a.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,a.jsx)("p",{className:"px-3 py-2 text-sm text-muted-foreground",children:g("repositories.pickerEmpty")}),b.truncated&&(0,a.jsx)("p",{className:"px-3 py-2 text-xs text-warning-foreground",children:g("repositories.pickerTruncated",{limit:b.entryLimit})})]})]}),(0,a.jsxs)("div",{className:"flex gap-2 pt-2 border-t border-border",children:[(0,a.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,a.jsx)(c.$n,{type:"button",variant:"ghost",onClick:n,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,l,n,p,m;let{onRepositoryAdded:h}=e,x=(0,i.c)("common"),[f,v]=(0,r.useState)(!1),[y,j]=(0,r.useState)("local"),[N,k]=(0,r.useState)(""),[w,C]=(0,r.useState)(""),[S,R]=(0,r.useState)(!1),[A,E]=(0,r.useState)(!1),[L,T]=(0,r.useState)(!1),[$,D]=(0,r.useState)(!1),[M,P]=(0,r.useState)(null),[z,O]=(0,r.useState)(null),[U,_]=(0,r.useState)(null),[I,F]=(0,r.useState)(!1),[V,W]=(0,r.useState)([]),[H,q]=(0,r.useState)(null),[B,Y]=(0,r.useState)(null),[Z,G]=(0,r.useState)(null),K=u.getInstance(),X=(0,r.useCallback)(async e=>{try{let s=await d.Rx.getCloneStatus(e);if("completed"===s.status)_(x("repositories.cloneSuccess")),D(!1),P(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),P(null)}else("running"===s.status||"pending"===s.status)&&setTimeout(()=>X(e),2e3)}catch(e){O((0,d.hS)(e)),D(!1),P(null)}},[h,x]);(0,r.useEffect)(()=>{M&&$&&X(M)},[M,$]),(0,r.useEffect)(()=>{if(!f)return;let e=!1;return d.gC.browse().then(t=>{e||W(t.roots)}).catch(()=>void 0),()=>{e=!0}},[f]),(0,r.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,r.useCallback)(async e=>{var t,s;let a;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=>{a=setTimeout(()=>e(null),400)})]);return null!=(s=null==t?void 0:t.duplicateScanRoots)?s:[]}catch(e){return[]}finally{void 0!==a&&clearTimeout(a)}},[H,B]),Q=(0,r.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,r.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});P(e.jobId)}catch(e){O((0,d.hS)(e)),D(!1)}},ea=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)}},er=()=>{v(!1),k(""),C(""),R(!1),O(null),j("local"),G(null)},el=H?(n=x,(p=H).valid?p.isGitRepo?{message:n("repositories.validationGitRepo",{count:null!=(m=p.worktreeCount)?m:1}),intent:"ok"}:{message:n("repositories.validationNotGitRepo"),intent:"warn"}:"not-found"===p.reason?{message:n("repositories.validationNotFound"),intent:"error"}:{message:n("repositories.validationOutsideRoots",{roots:p.allowedRootsLabel}),intent:"error"}):null,en=null!=(t=null==H?void 0:H.duplicateScanRoots)?t:[];return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[!f&&(0,a.jsxs)(c.$n,{"data-testid":"add-repository-button",variant:"primary",size:"sm",onClick:()=>v(!0),children:["+ ",x("repositories.add")]}),(0,a.jsx)(c.$n,{"data-testid":"sync-all-button",variant:"secondary",size:"sm",onClick:ea,disabled:L,children:L?x("repositories.syncing"):x("repositories.syncAll")})]}),f&&(0,a.jsx)(c.Zp,{padding:"lg",children:(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("div",{children:(0,a.jsx)("h3",{className:"text-lg font-semibold mb-2 text-foreground",children:x("repositories.addNewTitle")})}),(0,a.jsxs)(c.tU,{value:y,onValueChange:e=>j(e),children:[(0,a.jsxs)(c.j7,{className:"w-full",children:[(0,a.jsx)(c.Xi,{value:"local",children:x("repositories.localPathTab")}),(0,a.jsx)(c.Xi,{value:"url",children:x("repositories.cloneUrlTab")})]}),(0,a.jsx)(c.av,{value:"local",children:(0,a.jsxs)("form",{onSubmit:ee,className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:x("repositories.localPathDescription")}),(0,a.jsx)("label",{htmlFor:"repositoryPath",className:"block text-sm font-medium text-foreground mb-2",children:x("repositories.localPathLabel")}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.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,a.jsxs)(c.$n,{type:"button",variant:"secondary",onClick:()=>F(!0),disabled:A,className:"min-h-[44px] flex-shrink-0",children:[(0,a.jsx)(o.A,{className:"w-4 h-4 mr-1","aria-hidden":!0}),x("repositories.browse")]})]}),(0,a.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,a.jsx)("p",{className:"text-xs text-muted-foreground mt-1 font-mono break-all",children:x("repositories.localPathAllowedRoots",{roots:V.join(", ")})}),el&&(0,a.jsx)("p",{className:"text-xs mt-1 ".concat(b[el.intent]),children:el.message}),en.length>0&&(0,a.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,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.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,a.jsx)(c.$n,{type:"button",variant:"ghost",onClick:er,disabled:A,children:x("cancel")})]})]})}),(0,a.jsx)(c.av,{value:"url",children:(0,a.jsxs)("form",{onSubmit:es,className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:x("repositories.cloneUrlDescription")}),(0,a.jsx)("label",{htmlFor:"cloneUrl",className:"block text-sm font-medium text-foreground mb-2",children:x("repositories.cloneUrlLabel")}),(0,a.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,a.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:x("repositories.cloneUrlHelp")})]}),(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsx)("input",{id:"forkBeforeClone",type:"checkbox",checked:S,onChange:e=>R(e.target.checked),disabled:$,className:"mt-1"}),(0,a.jsxs)("label",{htmlFor:"forkBeforeClone",className:"text-sm text-foreground",children:[x("repositories.forkOptionLabel"),(0,a.jsx)("span",{className:"block text-xs text-muted-foreground",children:x("repositories.forkOptionHelp")})]})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{type:"submit",variant:"primary",disabled:$||!w.trim(),children:$?x("repositories.cloning"):S?x("repositories.forkAndClone"):x("repositories.clone")}),(0,a.jsx)(c.$n,{type:"button",variant:"ghost",onClick:er,disabled:$,children:x("cancel")})]})]})})]})]})}),U&&(0,a.jsx)("div",{className:"p-4 bg-success-subtle border border-success-border rounded-lg",children:(0,a.jsx)("p",{className:"text-sm text-success-foreground",children:U})}),z&&(0,a.jsx)("div",{className:"p-4 bg-danger-subtle border border-danger-border rounded-lg",children:(0,a.jsx)("p",{className:"text-sm text-danger-foreground",children:z})}),(0,a.jsx)(g,{isOpen:I,onClose:()=>F(!1),onSelect:e=>{k(e),O(null)}}),(0,a.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!=(l=null==Z?void 0:Z.duplicates)?l:[]).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,a.jsx)("thead",{className:"bg-muted border-b border-border",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Name"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Display name"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Visibility"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Path"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Worktrees"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Scan"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Actions"})]})})}function w(e){let{repo:t,pending:s,onToggle:r}=e,l=t.visible;return(0,a.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:()=>r(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,a.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:r,registerRef:l}=e,n=t.enabled;return(0,a.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:()=>r(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,a.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:r}=e,l=(0,i.c)("common"),n=null!=(t=s.duplicateOf)?t:[];if(0===n.length)return null;let o=l("repositories.duplicateRowDetail",{paths:n.join(", ")});return(0,a.jsx)("button",{type:"button","data-testid":"duplicate-scan-root-".concat(s.id),onClick:()=>r(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,a.jsx)(c.Ex,{variant:"warning",children:l("repositories.duplicateRowBadge")})})}let R=(0,r.memo)(function(e){var t,s;let{refreshKey:l,onChanged:n}=e,o=(0,i.c)("common"),[u,p]=(0,r.useState)([]),[m,h]=(0,r.useState)(!0),[x,f]=(0,r.useState)(null),[g,b]=(0,r.useState)(N),[v,R]=(0,r.useState)(null),[A,E]=(0,r.useState)(new Set),[L,T]=(0,r.useState)(new Set),[$,D]=(0,r.useState)("all"),[M,P]=(0,r.useState)(null),z=(0,r.useRef)(new Map),O=(0,r.useCallback)((e,t)=>{t?z.current.set(e,t):z.current.delete(e)},[]),U=(0,r.useCallback)(e=>{var t;null==(t=z.current.get(e))||t.focus()},[]),_=(0,r.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,r.useEffect)(()=>{_()},[_,l]);let I=(0,r.useCallback)(e=>{var t;b({id:e.id,value:null!=(t=e.displayName)?t:"",error:null,saving:!1}),R(null)},[]),F=(0,r.useCallback)(()=>{b(N)},[]),V=(0,r.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,r.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,a=await d.Rx.updateDisplayName(e.id,s);p(t=>t.map(t=>t.id===e.id?{...t,...a.repository}:t)),b(N),R({type:"success",message:"Display name updated"}),n&&n()}catch(t){let e=(0,d.hS)(t);b(t=>({...t,saving:!1,error:e})),R({type:"error",message:e})}},[g.value,n]),H=(0,r.useCallback)((e,t)=>{"Enter"!==e.key||e.nativeEvent.isComposing?"Escape"===e.key&&(e.preventDefault(),F()):(e.preventDefault(),W(t))},[F,W]),q=(0,r.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)),n&&n()}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})}},[n,A]),B=(0,r.useCallback)((e,t)=>{T(s=>{let a=new Set(s);return t?a.add(e):a.delete(e),a})},[]),Y=(0,r.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 a,r;if(s.id===e.id)return{...s,...t.repository,duplicateOf:[]};let l=(null!=(a=s.duplicateOf)?a:[]).filter(t=>t!==e.path);return l.length===(null!=(r=s.duplicateOf)?r:[]).length?s:{...s,duplicateOf:l}})),R({type:"success",message:o("repositories.disableSuccess",{name:e.name})}),n&&n()}catch(e){R({type:"error",message:(0,d.hS)(e)})}finally{B(e.id,!1)}},[n,B,o]),Z=(0,r.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})}),n&&n()}catch(e){R({type:"error",message:(0,d.hS)(e)})}finally{B(e.id,!1)}},[_,n,B,o]),G=(0,r.useCallback)(e=>{if(!L.has(e.id)){if(e.enabled)return void P(e);Z(e)}},[Z,L]),K=(0,r.useCallback)(()=>{P(null),M&&Y(M)},[Y,M]),X=(0,r.useMemo)(()=>u.filter(e=>!e.enabled).length,[u]),J=(0,r.useMemo)(()=>"disabled"===$?u.filter(e=>!e.enabled):u,[$,u]);return m&&0===u.length?(0,a.jsx)(c.Zp,{padding:"none",children:(0,a.jsx)("div",{className:"overflow-x-auto","data-testid":"repository-list-loading",role:"status","aria-label":o("repositories.loading"),children:(0,a.jsxs)("table",{className:"min-w-full text-sm",children:[(0,a.jsx)(k,{}),(0,a.jsx)("tbody",{children:[0,1,2].map(e=>(0,a.jsxs)("tr",{className:"border-b border-border",children:[(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-24"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-20"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-16"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-48"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-10"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-14"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-20"})})]},e))})]})})}):x?(0,a.jsx)(c.Zp,{padding:"lg",children:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("p",{className:"text-sm text-danger-foreground",children:["Failed to load repositories: ",x]}),(0,a.jsx)(c.$n,{variant:"secondary",size:"sm",onClick:()=>void _(),children:"Retry"})]})}):(0,a.jsxs)("div",{className:"space-y-3",children:[v&&(0,a.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,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.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,a.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,a.jsx)(c.Zp,{padding:"none",children:(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"min-w-full text-sm",children:[(0,a.jsx)(k,{}),(0,a.jsxs)("tbody",{children:[0===J.length&&(0,a.jsx)("tr",{children:(0,a.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,a.jsxs)("tr",{className:(0,j.cn)("border-b border-border",!e.enabled&&"bg-muted/40"),"data-testid":"repository-row-".concat(e.id),children:[(0,a.jsx)("td",{className:"px-4 py-3 align-top text-foreground",children:(0,a.jsxs)("span",{className:"flex flex-wrap items-center gap-1.5",children:[e.name,(0,a.jsx)(S,{repo:e,onNavigateToScanToggle:U})]})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:t?(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.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,a.jsx)("p",{className:"text-xs text-danger-foreground",children:g.error})]}):e.displayName?(0,a.jsx)("span",{className:"text-foreground",children:e.displayName}):(0,a.jsx)("span",{className:"text-muted-foreground","aria-hidden":"true",children:"—"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(w,{repo:e,pending:A.has(e.id),onToggle:q})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)("span",{className:"block max-w-[240px] truncate font-mono text-xs text-muted-foreground",title:e.path,children:e.path})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top text-foreground",children:e.worktreeCount}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(C,{repo:e,pending:L.has(e.id),onToggle:G,registerRef:O})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:t?(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{variant:"primary",size:"sm",onClick:()=>void W(e),disabled:g.saving||null!==g.error,children:g.saving?"Saving...":"Save"}),(0,a.jsx)(c.$n,{variant:"ghost",size:"sm",onClick:F,disabled:g.saving,children:"Cancel"})]}):(0,a.jsx)(c.$n,{variant:"ghost",size:"sm",className:"px-2",onClick:()=>I(e),"aria-label":"Edit display name for ".concat(e.name),children:(0,a.jsx)(y.A,{className:"h-4 w-4","aria-hidden":"true"})})})]},e.id)})]})]})})}),(0,a.jsx)(c.TM,{isOpen:null!==M,title:o("repositories.disableConfirmTitle"),description:o("repositories.disableConfirmBody",{name:null!=(t=null==M?void 0:M.name)?t:"",count:null!=(s=null==M?void 0:M.worktreeCount)?s:0}),confirmLabel:o("repositories.disableConfirmAction"),variant:"default",onConfirm:K,onCancel:()=>P(null)})]})});function A(){let e=(0,n.a)(),[t,s]=(0,r.useState)(0),i=(0,r.useCallback)(()=>{s(e=>e+1)},[]),o=(0,r.useCallback)(async()=>{s(e=>e+1),await new Promise(e=>setTimeout(e,500))},[]);return(0,a.jsxs)(l.k,{onRefresh:o,enabled:e,className:"container-custom py-8 h-full",children:[(0,a.jsxs)("div",{className:"mb-6",children:[(0,a.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:"Repositories"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Manage repositories and worktrees."})]}),(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsx)(v,{onRepositoryAdded:i}),(0,a.jsx)(R,{refreshKey:t,onChanged:i})]})]})}},27937:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(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 a=s(12115);let r=a.useLayoutEffect,l=768;function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{breakpoint:t=l}=e,[s,n]=(0,a.useState)(!1);return r(()=>{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:()=>a});let a=(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:()=>a});let a=(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:()=>a});let a=(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([[662,1174,3125,4209,5361,6926],{3809:(e,r,l)=>{"use strict";l.d(r,{default:()=>t});var s=l(36809),o=l(95155);function t(e){let{locale:r,...l}=e;if(!r)throw Error(void 0);return(0,o.jsx)(s.Dk,{locale:r,...l})}},22998:(e,r,l)=>{Promise.resolve().then(l.bind(l,3809))}},e=>{e.O(0,[6809,8441,1255,7358],()=>e(e.s=22998)),_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:()=>u,I_:()=>i,JY:()=>o,sd:()=>d,kj:()=>c});let r=/^[a-zA-Z0-9][a-zA-Z0-9\-._/:]*$/,n=/^[a-zA-Z0-9][a-zA-Z0-9\-._]*$/,s=new Set(["copilot","opencode"]),l=new Set(["opencode"]);function i(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:return{cliToolId:e,error:"".concat(e," only supports: ").concat("opencode [--model <provider/model>] [--agent <name>] [--variant <name>] [--continue] [--title <text>]")}}}return 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 o(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 d(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 c(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 u(e){let t=[],a=i(e);if(a.error&&t.push(a.error),a.model){let e=o(a.model);e.valid||t.push(e.reason)}if(a.agent){let e=d(a.agent,"agent");e.valid||t.push(e.reason)}if(a.variant){let e=d(a.variant,"variant");e.valid||t.push(e.reason)}if(a.title){let e=c(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),d=a(20063),c=a(87531),u=a(44308),m=a(55449),p=a(38606),x=a(54014),h=a(46892);let f={in_review:"status.inReview",approval:"status.approval",stalled:"status.stalled"},g=u.DR,v={in_review:e=>"in_review"===e.status,approval:e=>!0===e.isWaitingForResponse,stalled:e=>!0===e.isStalled};function b(e){let{status:t,label:a}=e,n=(0,s.c)("common"),l=h.PL[t],i="".concat(a,": ").concat(n(l.labelKey)),o="w-2.5 h-2.5 rounded-full flex-shrink-0";return"spinner"===l.type?(0,r.jsx)("span",{className:"".concat(o," border-2 border-t-transparent animate-spin ").concat(l.className),title:i}):(0,r.jsx)("span",{className:"".concat(o," ").concat(l.className),title:i})}function y(){var e;let t=(0,s.c)("review"),[a,i]=(0,n.useState)([]),[h,y]=(0,n.useState)(!0),j=(0,d.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{y(!1)}},[]);(0,n.useEffect)(()=>(C(),S.current=setInterval(C,u.Iu),()=>{S.current&&clearInterval(S.current)}),[C]);let T=(0,n.useMemo)(()=>a.filter(v[w]),[a,w]),P=(0,n.useMemo)(()=>({in_review:a.filter(v.in_review).length,approval:a.filter(v.approval).length,stalled:a.filter(v.stalled).length}),[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,c.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(f[e]),(0,r.jsx)("span",{className:(0,c.cn)("text-xs font-semibold tabular-nums",a?"text-accent-700 dark:text-accent-300":"text-muted-foreground"),children:P[e]})]},e)})}),h&&(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))}),!h&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"review-list",children:0===T.length?(0,r.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"review-empty",children:_}):T.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(f[w])}),n.map(t=>{var a;let n=(0,p.kA)(null==(a=e.sessionStatusByCli)?void 0:a[t]);return(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(b,{status:n,label:(0,x.oo)(t)}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,x.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 j(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 w(e){let{value:t,onChange:a}=e,n=(0,s.c)("review"),i=j(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(j(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=j(e);r>i||a(r)},disabled:o,"data-testid":"date-next","aria-label":n("datePicker.nextDay"),children:">"})]})}var N=a(36402),S=a(3199),k=a(4138),C=a(60322);let T=[{value:"none",labelKey:"report.modes.none"},{value:"template",labelKey:"report.modes.template"},{value:"custom",labelKey:"report.modes.custom"}];function P(){let e=(0,s.c)("review"),t=(0,N.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,d]=(0,n.useState)("claude"),[c,m]=(0,n.useState)(""),[p,x]=(0,n.useState)(null),[h,f]=(0,n.useState)(0),[g,v]=(0,n.useState)(""),[b,y]=(0,n.useState)(!1),[j,P]=(0,n.useState)(!1),[_,z]=(0,n.useState)(!1),[E,A]=(0,n.useState)(!1),{copied:D,markCopied:I}=(0,k.q)(),[K,R]=(0,n.useState)(null),$=S.Vt.has(o),{mode:L,setMode:M,userInstruction:O,setUserInstruction:Z,isUserInstructionReadOnly:q,templates:F,selectedTemplateId:J,selectTemplate:U,isLoadingTemplates:V}=function(){let[e,t]=(0,n.useState)("none"),[a,r]=(0,n.useState)(""),[s,l]=(0,n.useState)([]),[i,o]=(0,n.useState)(null),[d,c]=(0,n.useState)(!1),u=(0,n.useCallback)(async()=>{c(!0);try{let e=await fetch("/api/templates");if(e.ok){let t=await e.json();l(t.templates||[])}}catch(e){}finally{c(!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]),x=(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:x,isLoadingTemplates:d,refreshTemplates:u}}(),W=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}(!_),B=W.generating&&!_,H=(0,n.useCallback)(async t=>{P(!0),R(null);try{let a=await fetch("/api/daily-summary?date=".concat(t));if(!a.ok){let t=await a.json();R(t.error||e("report.errors.fetch"));return}let r=await a.json();x(r.report),f(r.messageCount),r.report?v(r.report.content):v(""),y(!1)}catch(t){R(e("report.errors.fetch"))}finally{P(!1)}},[e]);(0,n.useEffect)(()=>{H(a)},[a,H]);let[Y,X]=(0,n.useState)(!1);(0,n.useEffect)(()=>{W.generating?X(!0):Y&&(X(!1),H(a))},[W.generating,Y,H,a]);let G=async()=>{if(!p||await t({description:e("report.regenerateConfirm")})){z(!0),R(null);try{let t={date:a,tool:o};$&&c.trim()&&(t.model=c.trim()),"none"!==L&&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 R(e("report.errors.rateLimited"));if(!r.ok){let t=await r.json();R(t.error||e("report.errors.generate"));return}let n=await r.json();x(n.report),v(n.report.content),y(!1)}catch(t){R(e("report.errors.generate"))}finally{z(!1)}}},Q=async()=>{if(!g.trim())return void R(e("report.errors.emptyContent"));A(!0),R(null);try{let t=await fetch("/api/daily-summary",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({date:a,content:g})});if(!t.ok){let a=await t.json();R(a.error||e("report.errors.save"));return}let r=await t.json();x(r.report),y(!1)}catch(t){R(e("report.errors.save"))}finally{A(!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)(w,{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=>d(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))}),$&&(0,r.jsx)(l.pd,{type:"text",inputSize:"sm",placeholder:"opencode"===o?e("report.modelPlaceholderOpencode"):e("report.modelPlaceholder"),value:c,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:L,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"===L&&(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")}),V?(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===F.length?(0,r.jsx)("div",{className:"text-sm text-muted-foreground",children:e("report.noTemplates")}):(0,r.jsxs)("select",{value:J||"",onChange:e=>U(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")}),F.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),"none"!==L&&(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:q,placeholder:"template"===L?e("report.instructionPlaceholderTemplate"):e("report.instructionPlaceholderCustom"),className:"resize-y ".concat(q?"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:_||B||0===h,"data-testid":"generate-button",children:_||B?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===h?e("report.noMessages"):e("report.messagesFound",{count:h})}),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}),(_||B)&&(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"}),B&&W.tool?W.startedAt?e("report.generatingRemoteWithTime",{tool:W.tool,seconds:Math.round((Date.now()-new Date(W.startedAt).getTime())/1e3)}):e("report.generatingRemote",{tool:W.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,C.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:E,"data-testid":"edit-save-button",children:E?e("report.saving"):b?e("report.save"):e("report.edit")})]})]}),b?(0,r.jsx)(l.k_,{value:g,onChange:e=>v(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,N.SC)(),[a,i]=(0,n.useState)([]),[o,d]=(0,n.useState)(!1),[c,m]=(0,n.useState)(null),[p,x]=(0,n.useState)(""),[h,f]=(0,n.useState)(""),[g,v]=(0,n.useState)(!1),[b,y]=(0,n.useState)(null),[j,w]=(0,n.useState)(""),[S,k]=(0,n.useState)(""),[C,T]=(0,n.useState)(!1),P=(0,n.useCallback)(async()=>{d(!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{d(!1)}},[e]);(0,n.useEffect)(()=>{P()},[P]);let _=async()=>{if(!p.trim()||!h.trim())return void m(e("template.errors.nameAndContentRequired"));v(!0),m(null);try{let t=await fetch("/api/templates",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:p.trim(),content:h.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.create"));return}x(""),f(""),await P()}catch(t){m(e("template.errors.create"))}finally{v(!1)}},z=async()=>{if(!b||!j.trim()||!S.trim())return void m(e("template.errors.nameAndContentRequired"));T(!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:S.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.update"));return}y(null),await P()}catch(t){m(e("template.errors.update"))}finally{T(!1)}},E=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 P()}catch(t){m(e("template.errors.delete"))}}},A=()=>{y(null),w(""),k("")};return(0,r.jsxs)("div",{"data-testid":"template-tab",children:[c&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-danger-subtle text-danger-foreground rounded-lg text-sm","data-testid":"template-error",children:c}),(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:S,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:z,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:A,"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:()=>E(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=>x(e.target.value),maxLength:u.Nb,placeholder:e("template.namePlaceholder"),"data-testid":"new-name-input"}),(0,r.jsx)(l.k_,{value:h,onChange:e=>f(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:_,disabled:g||!p.trim()||!h.trim(),"data-testid":"create-button",children:g?e("template.creating"):e("template.create")})]})]})]})}let z=[{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:z.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)(y,{})})}),(0,r.jsx)(l.av,{value:"report",children:(0,r.jsx)(P,{})}),(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:()=>d,Iu:()=>r,Nb:()=>m,SD:()=>s,_d:()=>o,bm:()=>p,ks:()=>i,t7:()=>c,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 d=["claude","codex","copilot","antigravity","opencode"],c=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"}},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)}}},80488:(e,t,a)=>{Promise.resolve().then(a.bind(a,17442))}},e=>{e.O(0,[6809,4909,2770,2619,8407,5449,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([[662,1174,3125,4209,5361,6926],{3809:(e,r,l)=>{"use strict";l.d(r,{default:()=>t});var s=l(36809),o=l(95155);function t(e){let{locale:r,...l}=e;if(!r)throw Error(void 0);return(0,o.jsx)(s.Dk,{locale:r,...l})}},22998:(e,r,l)=>{Promise.resolve().then(l.bind(l,3809))}},e=>{e.O(0,[6809,8441,1255,7358],()=>e(e.s=22998)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8898],{9219:(e,t,s)=>{"use strict";s.d(t,{k:()=>l});var n=s(95155),a=s(12115),r=s(48407),i=s(87531);function l(e){let{onRefresh:t,enabled:s=!0,className:l,children:o}=e,{containerRef:c,pullDistance:d,isRefreshing:u,isPulling:m}=function(e){let{onRefresh:t,enabled:s=!0,threshold:n=64,maxPull:r=96,resistance:i=.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)},[]),b=(0,a.useCallback)(e=>{if(!s||g.current)return;let t=l.current;t&&!(t.scrollTop>0)&&(x.current=e.touches[0].clientY,f.current=0)},[s]),v=(0,a.useCallback)(e=>{if(null===x.current)return;let t=l.current;if(!t)return;if(t.scrollTop>0)return void p();let s=e.touches[0].clientY-x.current;if(s<=0){0!==f.current&&(f.current=0,c(0),h(!1));return}e.cancelable&&e.preventDefault();let n=Math.min(s*i,r);f.current=n,c(n),h(!0)},[i,r,p]),y=(0,a.useCallback)(async()=>{u(!0),h(!1),c(n);try{await Promise.resolve(t())}finally{u(!1),c(0)}},[t,n]),w=(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",b,{passive:!0}),e.addEventListener("touchmove",v,{passive:!1}),e.addEventListener("touchend",w,{passive:!0}),e.addEventListener("touchcancel",w,{passive:!0}),()=>{e.removeEventListener("touchstart",b),e.removeEventListener("touchmove",v),e.removeEventListener("touchend",w),e.removeEventListener("touchcancel",w)}},[b,v,w]),{containerRef:l,pullDistance:o,isRefreshing:d,isPulling:m}}({onRefresh:t,enabled:s,threshold:64}),h=u||d>0,x=u?1:Math.min(d/64,1);return(0,n.jsxs)("div",{ref:c,className:(0,i.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)(r.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})]})}},75676:(e,t,s)=>{"use strict";s.d(t,{jg:()=>r,kQ:()=>i,mR:()=>c,mS:()=>o,wf:()=>n});let n="terminal",a=new Set(["terminal","chat"]);function r(e){return"string"==typeof e&&a.has(e)}let i={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:{...i},layout:{...l},error:{...o},messages:[],wsConnected:!1}}},80003:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(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,t,s)=>{Promise.resolve().then(s.bind(s,89569))},89569:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>eo});var n=s(95155),a=s(12115),r=s(52619),i=s.n(r),l=s(18955),o=s(20562),c=s(8803),d=s(9219),u=s(37586),m=s(22479),h=s(54485),x=s(84228),f=s(83051),g=s(14006),p=s(73333),b=s(2954),v=s(48407),y=s(62560),w=s(308),j=s(80635),k=s(52407);function N(){let{signals:e}=(0,k.Fx)();return(0,a.useMemo)(()=>({offline:(0,k.sV)(e),reachable:(0,k._X)(e)}),[e])}var A=s(66966);let C=Object.freeze({enabled:!1,expiresAt:null});var M=s(81507),S=s(2317),I=s(75676),L=s(63881),P=s(8355),E=s(80344),T=s(38606),R=s(54014),_=s(55449),D=s(67149),z=s(68394);let F=[{mode:"chat",labelKey:"surfaceMode.showChat",icon:u.A},{mode:"terminal",labelKey:"surfaceMode.showTerminal",icon:m.A}];function U(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 K=()=>{},B=(0,a.memo)(function(e){return e.connectivity?(0,n.jsx)(Y,{...e,connectivity:e.connectivity}):(0,n.jsx)(O,{...e})});function O(e){let t=N();return(0,n.jsx)(Y,{...e,connectivity:t})}function Y(e){var t,s,r,o,c,d,u;let{worktree:m,enabled:k,connectivity:N,className:B=""}=e,O=(0,l.c)("common"),Y=(0,l.c)("worktree"),V=(0,a.useMemo)(()=>{var e;return m.agentInstances&&m.agentInstances.length>0?m.agentInstances:(0,R.lu)(null!=(e=m.selectedAgents)?e:(0,_.sA)())},[m]),[H,q]=(0,a.useState)(null),W=null!=(s=V.find(e=>e.id===H))?s:V[0],Q=null==W?void 0:W.id,G=null!=(r=null==W?void 0:W.cliTool)?r:"claude",J=null!=Q?Q:G,{surfaceMode:X,setSurfaceMode:$}=function(e){let{value:t,setValue:s}=(0,S.V)({key:"".concat("commandmate.sessions.tileSurfaceMode-").concat(e),defaultValue:"chat",validate:I.jg,serialize:e=>e,deserialize:e=>e});return{surfaceMode:t,setSurfaceMode:(0,a.useCallback)(e=>s(e),[s])}}(m.id),{visible:Z,toggle:ee}=(0,M.TG)(M.jt),et="terminal"===X,es=et&&Z,[en,ea]=(0,a.useState)(null),[er,ei]=(0,a.useState)(null),el=(0,L.b4)(en,er,240),{terminal:eo,prompt:ec,refresh:ed,setAutoScroll:eu}=(0,y.NK)({worktreeId:m.id,cliToolId:G,instanceId:Q,enabled:k,cadence:D.sD}),{messages:em,isLoading:eh,refresh:ex}=(0,w.Md)({worktreeId:m.id,cliToolId:G,instanceId:Q,enabled:k&&(!et||Z),cadence:D.WT}),ef=(0,a.useCallback)((e,t)=>E.y.sendMessage(m.id,e,t),[m.id]),{messages:eg,sendOptimistic:ep,retry:eb,discard:ev}=(0,j.v4)({worktreeId:m.id,serverMessages:em,sendFn:ef,onSent:ex,connectivity:N}),ey=(0,a.useMemo)(()=>(function(e,t){let s=e=>{var s;return void 0!==e.optimisticState&&(null!=(s=e.instanceId)?s:e.cliToolId)!==t};return e.some(s)?e.filter(e=>!s(e)):e})(eg,J),[eg,J]),[ew,ej]=(0,a.useState)(null),ek=(0,a.useCallback)(()=>ej(null),[]),eN=(0,a.useCallback)(e=>{let t=ev(e);t&&ej(t)},[ev]),eA=(0,a.useCallback)(()=>{ed()},[ed]),eC=function(e){var t;let{worktree:s,cliToolId:n,instanceId:r}=e,i=null==(t=(0,A.rC)())?void 0:t.refresh,l=s.id,o=(0,a.useMemo)(()=>(function(e,t){var s;let n=null==(s=e.autoYesByInstance)?void 0:s[t];return n&&!0===n.enabled?{enabled:!0,expiresAt:"number"==typeof n.expiresAt?n.expiresAt:null}:C})(s,r),[s,r]),[c,d]=(0,a.useState)(null),u=(0,a.useRef)(s);u.current=s;let m=null===c||c.instanceId!==r||function(e,t,s){let n=t.enabled===e.value.enabled&&(!t.enabled||t.expiresAt===e.value.expiresAt),a=null!==e.settledRow&&s!==e.settledRow;return n||a}(c,o,s)?null:c;(0,a.useEffect)(()=>{null!==c&&null===m&&d(null)},[c,m]);let h=(0,a.useCallback)(async e=>{let t;try{let s=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:r,duration:e.duration,stopPattern:e.stopPattern})});if(!s.ok)return;let a=await s.json(),i=!0===a.enabled;t={enabled:i,expiresAt:i&&"number"==typeof a.expiresAt?a.expiresAt:null}}catch(e){return}let s={instanceId:r,value:t,settledRow:null};d(s);try{await (null==i?void 0:i())}catch(e){}d(e=>e===s?{...s,settledRow:u.current}:e)},[l,n,r,i]),x=m?m.value:o;return{enabled:x.enabled,expiresAt:x.expiresAt,toggle:h}}({worktree:m,cliToolId:G,instanceId:J}),eM=(0,a.useMemo)(()=>({isRunning:eo.isRunning,attaching:eo.attaching,sessionStatus:eo.sessionStatus,isThinking:eo.isThinking,isPromptWaiting:ec.visible,promptData:ec.data,isSelectionListActive:eo.isSelectionListActive,isPagerActive:eo.isPagerActive,isDismissablePanelActive:eo.isDismissablePanelActive,isUnclassifiedActive:eo.isUnclassifiedActive}),[eo.isRunning,eo.attaching,eo.sessionStatus,eo.isThinking,eo.isSelectionListActive,eo.isPagerActive,eo.isDismissablePanelActive,eo.isUnclassifiedActive,ec.visible,ec.data]),eS=(0,a.useCallback)(e=>$(e),[$]),eI=(0,a.useMemo)(()=>({isLoading:eh,onRetryPending:eb,onDiscardPending:eN,onInsertToMessage:ej}),[eh,eb,eN]),{compactTuiLayoutPadding:eL,preservePaintedPanelRows:eP}=(0,a.useMemo)(()=>(0,z.EK)(G),[G]),eE="opencode"===G||"copilot"===G,eT=(u=m.id,"session-tile-history-".concat(u)),eR=(0,a.useCallback)(e=>{q(e.target.value)},[]),e_=null!=(o=m.branch)?o:m.name,eD=null!=(c=m.repositoryDisplayName)?c:m.repositoryName,ez=(0,T.kA)(Q?null==(t=m.sessionStatusByInstance)?void 0:t[Q]:void 0);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(B),"data-testid":"session-tile-".concat(m.id),"data-enabled":k?"true":"false","aria-label":O("sessions.tileAriaLabel",{branch:e_}),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)(v.md,{status:ez,size:"sm",label:O("status.".concat(ez))}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:eD}),(0,n.jsx)(i(),{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:e_,children:e_})]}),V.length>1&&(0,n.jsx)("select",{value:null!=(d=null==W?void 0:W.id)?d:"",onChange:eR,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":O("sessions.tileInstanceAriaLabel"),children:V.map(e=>(0,n.jsx)("option",{value:e.id,children:(0,R.sw)(e)},e.id))}),et&&(0,n.jsx)("button",{type:"button",onClick:ee,"aria-pressed":Z,"aria-expanded":Z,"aria-controls":eT,"aria-label":Z?Y("terminal.hideHistory"):Y("terminal.showHistory"),title:Z?Y("terminal.hideHistory"):Y("terminal.showHistory"),className:U(Z),"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":Y("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:F.map(e=>{let{mode:t,labelKey:s,icon:a}=e,r=X===t,i=Y(s);return(0,n.jsx)("button",{type:"button",onClick:()=>$(t),"aria-pressed":r,"aria-label":i,title:i,className:U(r),"data-testid":"session-tile-surface-".concat(t,"-").concat(m.id),children:(0,n.jsx)(a,{size:14,"aria-hidden":"true"})},t)})})]}),(0,n.jsx)("div",{ref:ea,className:"min-w-0 flex-1 overflow-hidden ".concat("min-h-[15rem]"),"data-testid":"session-tile-body-".concat(m.id),children:k&&et?(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(es?"flex-[3_3_0%] min-h-[8.5rem]":"min-h-0 flex-1"),"data-testid":"session-tile-terminal-".concat(m.id),children:(0,n.jsx)(g.D,{output:eo.output,isActive:eo.isRunning,attaching:eo.attaching,isThinking:eo.isThinking,autoScroll:eo.autoScroll,onScrollChange:eu,disableAutoFollow:eE,compactTuiLayoutPadding:eL,preservePaintedPanelRows:eP,wrapMode:z.Wq.wrapMode,density:z.Wq.density})}),es&&(0,n.jsx)("div",{id:eT,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:ey,worktreeId:m.id,worktreePath:m.path,cliToolId:G,isLoading:eh,onFilePathClick:K,onInsertToMessage:ej,onRetryPending:eb,onDiscardPending:eN,className:"h-full"})})]}):k?(0,n.jsx)(x.wY,{messages:ey,worktreeId:m.id,worktreePath:m.path,cliToolId:G,instanceId:Q,live:eM,frame:eo.output,onKeysSent:ed,onSurfaceModeChange:eS,compact:!0,history:eI}):(0,n.jsx)("div",{className:"h-full","data-testid":"session-tile-placeholder-".concat(m.id),"aria-hidden":"true"})}),k&&(0,n.jsx)("div",{ref:ei,className:"shrink-0 border-t border-border p-2","data-testid":"session-tile-composer-".concat(m.id),children:(0,n.jsx)(p.E,{worktreeId:m.id,cliToolId:G,instanceId:J,isSessionRunning:eo.isRunning,onOptimisticSend:ep,onMessageSent:eA,pendingInsertText:ew,onInsertConsumed:ek,heightScope:P.CM,maxHeight:el,autoYesSlot:(0,n.jsx)(b.T,{enabled:eC.enabled,expiresAt:eC.expiresAt,onToggle:eC.toggle,lastAutoResponse:null,cliToolName:G,inline:!0})})})]})}let V=(0,a.memo)(function(e){let{worktree:t,connectivity:s}=e,{ref:r,inViewport:i}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{rootMargin:t,threshold:s}=e,[n,r]=(0,a.useState)(!1),[i,l]=(0,a.useState)(null),o=(0,a.useCallback)(e=>{l(e)},[]);return(0,a.useEffect)(()=>{if("undefined"==typeof IntersectionObserver)return void r(!0);if(!i)return;let e=new IntersectionObserver(e=>{let t=e[e.length-1];t&&r(t.isIntersecting)},{rootMargin:t,threshold:s});return e.observe(i),()=>e.disconnect()},[i,t,s]),{ref:o,inViewport:n}}({rootMargin:"560px"});return(0,n.jsx)("div",{ref:r,className:"min-w-0 ".concat("h-[35rem]"),children:(0,n.jsx)(B,{worktree:t,enabled:i,connectivity:s})})}),H=(0,a.memo)(function(e){let{worktrees:t}=e,s=N();return(0,n.jsx)("div",{className:"grid grid-cols-1 gap-4 xl:grid-cols-2","data-testid":"sessions-tile-grid",children:t.map(e=>(0,n.jsx)(V,{worktree:e,connectivity:s},e.id))})});var q=s(80003);let W=(0,s(71847).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),Q=["list","tile"];function G(e){return"string"==typeof e&&Q.includes(e)}let J=[{mode:"list",labelKey:"sessions.viewMode.list",icon:q.A},{mode:"tile",labelKey:"sessions.viewMode.tile",icon:W}],X=(0,a.memo)(function(e){let{value:t,onChange:s}=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:J.map(e=>{let{mode:r,labelKey:i,icon:l}=e,o=t===r;return(0,n.jsx)("button",{type:"button",onClick:()=>s(r),"aria-pressed":o,"aria-label":a(i),title:a(i),"data-testid":"sessions-view-mode-".concat(r),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"})},r)})})});var $=s(38218),Z=s(50857),ee=s(7636),et=s(83012);let es=[{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"status",labelKey:"sort.status"},{key:"lastSent",labelKey:"sort.lastSent"}],en={lastSent:"desc",updatedAt:"desc"},ea={ready:0,in_progress:1,in_review:2,done:3};function er(e){let{status:t,label:s}=e,a=(0,l.c)("common"),r="".concat(s,": ").concat(a("status.".concat(t)));return(0,n.jsx)(v.md,{status:t,size:"md",label:r})}let ei={ready:"worktreeStatus.ready",in_progress:"worktreeStatus.inProgress",in_review:"worktreeStatus.inReview",done:"worktreeStatus.done"},el={done:"bg-success-subtle text-success-foreground",in_review:"bg-info-subtle text-info-foreground",in_progress:"bg-accent-100 dark:bg-accent-900/30 text-accent-700 dark:text-accent-400"};function eo(){let e=(0,l.c)("common"),t=(0,l.c)("worktree"),s=(0,$.a)(),{worktrees:r,isLoading:u,error:m,refresh:h}=(0,A.Fn)(),x=r.length>0,[f,g]=(0,a.useState)(""),[p,b]=(0,a.useState)("lastSent"),[y,w]=(0,a.useState)("desc"),{viewMode:j,setViewMode:k}=function(){let{value:e,setValue:t}=(0,S.V)({key:"mcbd-sessions-view-mode",defaultValue:"list",validate:G,serialize:e=>e,deserialize:e=>e});return{viewMode:e,setViewMode:(0,a.useCallback)(e=>t(e),[t])}}(),N="tile"===j;(0,a.useEffect)(()=>{(0,_.qD)()},[]);let C=(0,a.useMemo)(()=>{let e=r;if(f){let t=f.toLowerCase();e=e.filter(e=>{var s,n;return e.name.toLowerCase().includes(t)||e.repositoryName.toLowerCase().includes(t)||null!=(n=null==(s=e.repositoryDisplayName)?void 0:s.toLowerCase().includes(t))&&n})}let t=[...e];return t.sort((e,t)=>{var s,n,a,r,i,l,o,c;let d=0;switch(p){case"lastSent":{let s=(0,ee.nO)(e.lastUserMessageAt,t.lastUserMessageAt);if(!e.lastUserMessageAt&&!t.lastUserMessageAt)return 0;if(!e.lastUserMessageAt)return 1;if(!t.lastUserMessageAt)return -1;d=s;break}case"repositoryName":{let a=(null!=(s=e.repositoryDisplayName)?s:e.repositoryName).toLowerCase(),r=(null!=(n=t.repositoryDisplayName)?n:t.repositoryName).toLowerCase();0===(d=a.localeCompare(r))&&(d=e.name.toLowerCase().localeCompare(t.name.toLowerCase()));break}case"status":if(0==(d=(null!=(r=ea[null!=(a=e.status)?a:""])?r:4)-(null!=(l=ea[null!=(i=t.status)?i:""])?l:4))){let s=(null!=(o=e.repositoryDisplayName)?o:e.repositoryName).toLowerCase(),n=(null!=(c=t.repositoryDisplayName)?c:t.repositoryName).toLowerCase();d=s.localeCompare(n)}break;default:d=0}return("lastSent"===p?"desc"===y:"asc"===y)?d:-d}),t},[r,f,p,y]),M=(0,a.useCallback)(e=>{g(e.target.value)},[]),I=(0,a.useCallback)(e=>{var t;b(e),w(null!=(t=en[e])?t:"asc")},[]),L=(0,a.useCallback)(()=>{w(e=>"asc"===e?"desc":"asc")},[]);return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)(d.k,{onRefresh:h,enabled:s,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)(v.pd,{type:"text",placeholder:e("sessions.filterPlaceholder"),value:f,onChange:M,className:"max-w-md flex-1","data-testid":"sessions-filter","aria-label":e("sessions.filterAriaLabel"),inputMode:"search",enterKeyHint:"search"}),(0,n.jsxs)(v.l6,{value:p,onValueChange:I,children:[(0,n.jsx)(v.bq,{className:"w-40","data-testid":"sessions-sort-select","aria-label":e("sessions.sortByAriaLabel"),children:(0,n.jsx)(v.yv,{})}),(0,n.jsx)(v.gC,{children:es.map(t=>(0,n.jsx)(v.eb,{value:t.key,children:e(t.labelKey)},t.key))})]}),(0,n.jsx)("button",{type:"button",onClick:L,"data-testid":"sessions-sort-direction","aria-label":"asc"===y?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"===y?(0,n.jsx)(o.A,{size:16,"aria-hidden":"true"}):(0,n.jsx)(c.A,{size:16,"aria-hidden":"true"})}),(0,n.jsx)(X,{value:j,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===C.length?(0,n.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:e("sessions.noMatching")}):(0,n.jsx)(H,{worktrees:C}):(0,n.jsx)("div",{className:"space-y-2","data-testid":"sessions-list",children:0===C.length?(0,n.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:e("sessions.noMatching")}):C.map((s,a)=>{var r,l,o,c;let d=null!=(r=s.selectedAgents)?r:(0,_.sA)(),u=s.lastUserMessage?s.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=s.lastUserMessageAt?(0,et.Fx)(String(s.lastUserMessageAt)):null,h=d.map(e=>{var t;return{agent:e,status:(0,T.kA)(null==(t=s.sessionStatusByCli)?void 0:t[e])}}),x=h.filter(e=>(0,Z.Qo)(e.status)),f=h.length-x.length,g=d.some(e=>{var t;let n=(0,T.kA)(null==(t=s.sessionStatusByCli)?void 0:t[e]);return"running"===n||"generating"===n});return(0,n.jsxs)(i(),{href:"/worktrees/".concat(s.id),style:{animationDelay:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:40,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;if(Number.isFinite(e)&&!(e<=0)&&!(e>=s))return"".concat(e*t,"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(s.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=s.repositoryDisplayName)?l:s.repositoryName}),(0,n.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:s.name})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 ml-4 flex-shrink-0","data-testid":"session-agents-".concat(s.id),children:[x.map(e=>{let{agent:t,status:s}=e;return(0,n.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-agent-".concat(t),children:[(0,n.jsx)(er,{status:s,label:(0,R.oo)(t)}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,R.oo)(t)})]},t)}),f>0&&(0,n.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-idle-cluster-".concat(s.id),"aria-label":e("sessions.idleAgents",{count:f}),children:[(0,n.jsx)(v.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]})]})]})]}),s.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:s.description})}),s.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=el[null!=(o=s.status)?o:""])?c:"bg-muted text-muted-foreground"),children:function(e,t){if(!e)return"";let s=ei[e];return s?t(s):e}(s.status,t)})}),u&&(0,n.jsxs)("div",{className:"mt-2 flex items-center gap-2","data-testid":"session-message-".concat(s.id),children:[(0,n.jsx)("span",{className:"text-xs text-muted-foreground truncate min-w-0 flex-1","data-testid":"session-message-text-".concat(s.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(s.id),children:m})]})]},s.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)(v.EA,{className:"h-4 w-40 max-w-full"}),(0,n.jsx)(v.EA,{className:"h-3 w-56 max-w-full"})]}),(0,n.jsx)(v.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)(v.EA,{className:"h-3 min-w-0 flex-1"}),(0,n.jsx)(v.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")})]})]})})}}},e=>{e.O(0,[6809,4909,2770,2619,8566,6322,3778,8407,2407,344,5449,6966,8606,4768,2039,982,8441,1255,7358],()=>e(e.s=87047)),_N_E=e.O()}]);